Featured image of post openwrt多播

openwrt多播

简短介绍了openwrt的多播,至于负载均衡,下次一定

OpenWrt单线多拨以及负载均衡

最近因为叼毛在搞多播,还鼓动我也试试看,那没办法了,我只能在晚上 抽时间来搞一搞多播了。

在文章开始前先简单介绍一下openwrt的网卡吧,要不然会云里雾里的

eth0 是一块物理网卡。eth0.1 eth0.2都是从此设备上虚拟出来的。 eth0.1 是vlan 1分出的lan口。 eth0.2 是vlan 2分出的wan口。 br-lan 是虚拟设备,用于LAN口设备桥接 = eth0.1 + wlan0 + wlan1

我用的Openwrt是21.02如果你使用的是L大的固件,可能略微有点不同。

准备工作

多播第一步,先换软件源

1
2
3
sed -i 's/downloads.openwrt.org/mirrors.ustc.edu.cn\/openwrt/g' /etc/opkg/distfeeds.conf
opkg update
opkg install kmod-macvlan

因为需要安装的东西还是挺多的,用默认的软件源很慢,浪费时间,而且以后opkg update也会变快一点的。

首先我们先看一下自己的[接口-设备],实在虚拟机里面演示的,因为现在是白天还在上网课,我要是动路由器,室友会把我祭天的。所以咱们就虚拟机和路由器对比起来分析。

我这里的虚拟机的eth0 eth1对应路由器上的eth0.1 eth0.2,因为虚拟机要多少网口就有多少网口,所以不需要划分vlan,而路由器只有单wan口,所以要想多播只能靠划分vlan。

image-20220426162102598

image-20220426162954086

可以看到路由器全部是依靠一个eth0网卡来干所有的事情,一个网卡处理这么多接口的数据可想而知,那应该是挺吃力的。

接口设置

到了这一步,咱路由器上需要删除已存在的wan wan6接口,具体是什么原因呢,咱也不知道,反正就是一顿操作,先把eth0.2整没了。在一顿操作创建一个接口把eth0.2整回来。【常规设置】协议随便选,设备如果有eth0.2就选,没有就手写一个,不过前提是没有动过vlan,也就是路由器上的【switch】。还有就是记得把开机自动运行勾上。【防火墙设置】选择wan区域就可以了。

image-20220426175515436

至于虚拟机里面,咱不用这大怨种操作,因为咱有单独的eth1接口用于拨号。

多播设置

路由器设备

咱路由器就是爽,直接新建pppoe拨号接口,设置按照下图来,你要多播几次就新建几个接口

image-20220426200208206

还有就是在创建的时候【高级设置】-【使用网关跃点】,如果我没有记错范围是(1-255)0是数据包随机选择你创建的接口线路走。一些教程说一定要配置,其实也不一定,咱路由器要是性能可以,大马拉小车,千兆路由器,百兆宽带,完全没必要配置。反正我是这么感觉的,如果配置了反而会优先使用跃点小的,让一个累死,另一个清闲。

最后看一下多播成功的效果。真让人羡慕,又多了一个公网IP,嘿嘿嘿,凡尔赛一下:)

image-20220426203514677

x86设备

那咱就有点冤大头了,咱需要先在【接口】【设备】里面添加macvlan设备,按照下面来。

image-20220426201923806

解释一下哈:重要的参数有下面几个

1
2
3
4
5
设备类型:macvlan
基设备:eth1 #也就是wan接口所在的网卡
模式:桥接、私有都可以,直通只能虚拟出来一个,如果你创建第二个直通会报错
设备名:随便写
MAC 地址:如果你有需求就写,不写也有

你要多播几次,就创建几个macvlan

然后再基于这些macvlan创建接口

image-20220426203129960

据说啊,也可以用命令创建,但是我试了,x86设备好像不太行,大家可以也试试看,我他喵的只能在21.02的路由器上用这些命令。

1
2
3
4
ip link add link eth0.2 name veth1 type macvlan
ifconfig veth1 up
ip link add link eth0.2 name veth2 type macvlan
ifconfig veth2 up

image-20220426203220018

这个是效果图,虽然我是用的dhcp,但是换成pppoe一样可以用哈,我在路由器上已经播过号了,所以只能用dhcp替代一下。