OpenWrt使用macvlan和mwan3实现单线(并发)多拨、负载均衡,并与IPV6共存
- 实用技巧
- 2024-08-14
- 296热度
- 0评论
背景:电信宽带,在openwrt上设置设置单线多拔与负载均,且实现与ipv6共存。可以正常上网
设备:红米AX6S
固件:ImmortalWrt 18.06-5.4-SNAPSHOT r11814-ef0c86bdb0
macvlan和mwan3 安装
如果路由器是运行的OpenWrt或者LEDE,只需用过以下命令安装这两个软件:
opkg update
opkg install kmod-macvlan mwan3 luci-app-mwan3
其中,luci-app-mwan3是mwan3的luci界面,可以很方便的使用网页端对mwan3进行配置。
luci-app-syncdial
多播luci界面管理,也就是用于多播的脚本.
- 依赖:kmod-macvlan
- 项目地址:https://github.com/monokoo/luci-app-syncdial
luci-app-nwan3
负载均衡 luci界面管理器
负载均衡简单理解,
是多拨后,宽带流量均衡分配的套件.
如果没有负载均衡,那么所有流量可能会单走一条线,多播变得没有意义.
负载均衡会让网络请求分布走不同的(拨号)路线.
- 依赖:nwan3
- 安装方式:直接opkg install 安装,或者网页管理里面安装.
luci-app-syncdial安装
两种安装方式:
1、直接复制文件安装
顾名思义就是,直接克隆项目,拷贝到路由器对应目录.
项目文件(项目files文件内所有文件)和路由器目录路径是一一对应的,不需要怎么管路径的问题.
如果你不想搭建openwrt编译环境.那么可以选这个方式安装.
当然你手动复制文件安装,首先得安装依赖包.kmod-macvlan
复制后,有三个需要做.
1. 给可执行文件添加执行权限.
2. 修改usr/lib/lua/luci/model/cbi/syncdial.lua
```
#第三行
local e="mwan3 status | grep -c \"is online and tracking is active\""
<pre><code>#修改为
local e="mwan3 status | grep -c \"is online\""
```
- 添加rpcd
仅openwrt 19.07之后版本才需要,在19.07之后的版本,没有这个文件会提示:
> LuCi 提示:权限不足,无法读取UCI配置。
添加一个文件/usr/share/rpcd/acl.d/luci-app-syncdial.json 内容如下:
{
"luci-app-syncdial": {
"description": "syncdial",
"read": {
"uci": [
"syncdial"
]
},
"write": {
"uci": [
"syncdial"
]
}
}
}
- 清理luci缓存
rm /tmp/luci-indexcache.*
2、编译安装
将项目克隆到openwrt编译环境的主目录package文件夹中,不过不能直接编译,
要做一些修改.
- 添加rpcd
参考上面rpcd说明新建一个文件,放在files目录.文件内容直接是上面的. -
修改files/usr/lib/lua/luci/model/cbi/syncdial.lua
-
修改Makefile
删除依赖,将DEPENDS:=+kmod-macvlan +shellsync
修改成
DEPENDS:=+kmod-macvlan
将添加rpcd的文件,在define Package/$(PKG_NAME)/install处理下.
make menuconfig
#选luci --> 3. Applications -->选择luci-app-syncdial
#保存后直接make编译
端口设置
光猫一定要使用桥连模式,光猫一定要使用桥连模式,光猫一定要使用桥连模式。
删除默认的WAN6,并修改LAN接口配置,如图修改,经过测试选服务器模式,并且NDP代理禁用,完全行不通。如下为我的设置。
全局网络选项,一定要删除留空,一定要删除留空,一定要删除留空!!!
取消勾选:DHCP/DNS >> 高级设置 >> 禁止解析 IPV6 DNS 记录
修改 mwan.sh 文件
按红框内修改,即 IPT6的值修改为 /bin/true
wan 口正常拔号,也就是 pppoe 拔号
负载均衡设置
网络 >> 负载均衡 >> 接口
删除除了 wan 之外所有接口
检查 负载均衡 >> 规则 >> Https -> 粘滞模式,是否启动,设置为否
如果设置为是
,那么根据官方描述:
来自相同源 IP 的流量,如果已经匹配过此规则并且在粘滞超时时间内,将会使用相同的 WAN 接口
意思就是如果你同一个设备连接,Https走的WAN接口始终是同一个,就达不到负载均衡的效果了!
多线多拔设置
设置如下图,注意:设置完后,点击保存,不要点保存并应用
- 修改 vwan1,很重要
上述步骤已进行 wan 接口的 pppoe 拔号,且多线多拔设置,点击保存后,vwan1~vwan* 协议全为 pppoe,所以此步不需要像其他教程那样,进去 pppoe 拔号的账号和密码设置。
vwan1 高级设置如下图修改:
此处,选择阿里云公共DNS进行IPv6地址解析,选择腾讯云或者其他DNS服务商也可以。
- DNS1: 2400:3200::1
- DNS2: 2400:3200:baba::1
经测试,如像别的教程那样,取消勾选 使用默认网关 ,会导致多拔不上。
- vwan2~vwan* 修改
取消勾选:使用内置的IPV6管理 和 obtain ipv6-address
重启路由,至此,我们可以在子网设备和路由器上都能获取IPv6并且访问IPv6网站了。
效果
Win系统下:
Openwrt >> 网络 >> 接口:
可以看到,进行了单线五拔,最终获取到了4个公网IP。
测速:
单线多播前,如下图:
单线5拔号,如下图: