openwrt路由器(红米AC2100)折腾全程——多拨、ipv6负载均衡、ipv6 nat6、ddns、端口转发

openwrt路由器(红米AC2100)折腾全程——多拨、ipv6负载均衡、ipv6 nat6、ddns、端口转发

本文主要内容:
一、 红米AC2100刷机安装openwrt
二、校园网ipv6转发实现(无PD的ipv6)
三、 多线多拨/单线多拨、ipv6负载均衡实现
四、DDNS配置(阿里云DDNS)
五、端口转发+群晖NAS(ipv4+ipv6访问)

一、红米AC2100刷机安装openwrt

1. 刷入不死BREED(联网状态下刷入)

根据教程链接刷入breed后,点击增加环境变量:xiaomi.r3g.bootfw 值为:2

教程链接:小米 红米【AC2100】一键刷BREED【30秒刷完】小白帅小伙专用 检查坏块 | 无需Telnet - 小米无线路由器以及小米无线相关的设备 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)

2. 刷入openwrt系统

2.1 根据教程,先在Breed刷入OpenWrt刷入过度包固件。

教程链接: 【教程】红米AC2100官方固件/OpenWrt/Padavan间互刷 - 寒枫叶

2.2 在openwrt路由器管理界面选择 系统--备份/升级--最后一项(过度包为英文),上传固件sysupgrade.bin文件升级即可。

  • 固件链接:【0310更新】红米&小米AC2100多功能|精简|AP版下载 - 寒枫叶 (openwrt.ink)

    固件名:03.10-openwrt-ramips-mt7621-redmi-ac2100-squashfs-sysupgrade.bin


正常刷入openwrt后开始折腾


二、功能折腾①——校园网ipv6转发实现(无PD的ipv6)

因为本人使用的网络为校园网,所给的IPV6不能下发,即无pd的IPV6,故使用nat6来实现网络内所有设备获取IPV6。

若获得的是带PD的ipv6(一般三大运营商都是),则此部分可以跳过,使用自动的ipv6管理即可。

教程链接:openwrt 无线中继(二级路由)模式通过nat6插件实现路由器下所有设备支持ipv6 - 小米无线路由器以及小米无线相关的设备 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)

由于我是多拨,所以在防火墙自定义规则处添加了6条如下:

ip6tables -t nat -A POSTROUTING -o pppoe-vwan1 -j MASQUERADE
ip6tables -t nat -A POSTROUTING -o pppoe-vwan2 -j MASQUERADE
ip6tables -t nat -A POSTROUTING -o pppoe-vwan3 -j MASQUERADE
ip6tables -t nat -A POSTROUTING -o pppoe-vwan4 -j MASQUERADE
ip6tables -t nat -A POSTROUTING -o pppoe-vwan5 -j MASQUERADE
ip6tables -t nat -A POSTROUTING -o pppoe-vwan6 -j MASQUERADE

注:在网络--接口--全局网络选项 的 IPv6 ULA 前缀 一定不能删除,删除了就无IPV6了,按教程改为d开头即可。

三、功能折腾②——多线多拨/单线多拨、ipv6负载均衡

1. 在路由器里进行拨号设置 网络--交换机,新增分配vlan,如下:

Snipaste_2021-10-03_14-58-20

其中,原来的WAN、LAN1口用作新的WAN口使用,LAN2、LAN3作为LAN口使用。

2. 在网络--接口处 删除原来的WAN、WAN6接口,只保留LAN,并核对编辑LAN口--物理设置--接口 处 核对接口

image-20211003160856419

3. 按下面教程新建两个WAN口,并启用多线多拨功能

【双网线网速叠加】新三 (Newifi D2) OpenWRT 双WAN 双拨号 (多线多拨) 网速叠加 (负载均衡)_一如既往的博客-CSDN博客_openwrt双wan网速叠加

注意:单线多拨/多线多拨这里的多拨就是指虚拟WAN口数量,比如我使用的就是2个WAN口,每个WAN口虚拟3拨,最终也就实现了2*3=6拨。 经测试红米AC2100路由器最多只能2WAN口,3WAN口就也只能同时在线2WAN口,个人猜测是硬件限制,不过没关系,虚拟VWAN能用就行。

4.设置MWAN3负载均衡(ipv4)

重点:策略无需添加,使用balanced即可,备用选项选择默认,别选拒绝(防止ipv6失效)

按3.的教程设置只能针对IPV4,经过查阅资料IPV6的负载均衡也可实现,

5. 设置MWAN3负载均衡(ipv6)

ipv6负载均衡,使用别名,参考来源:mwan3如何实现ipv6负载均衡? - OPENWRT专版 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)

通过WINSCP进入/etc/config network文件,新建vlan1接口的别名为wana,其他类似,比如我创建了6个接口就按下面方式设置了wana、wanb、wanc、wand、wanf、wane。

config interface 'wana'
    option ifname '@vwan1'
    option proto 'dhcpv6'
    option reqaddress 'try'
    option reqprefix 'auto'
    option metric '51'

注意:跃点数metric参数设置不能相同,我设置的51、52、53、54、55、56对应wana-wane

设置完成保存后,在网络--接口处将他们防火墙分配到wan(与vwan1等分配在一起),如下图:


image-20211003160430196

将上一步设置的wana-wane添加至接口,并配置成员、策略、规则。这一步路由器界面手点很麻烦,建议使用WINSCP修改/etc/config mwan3文件。

配置重点:全局设置强烈建议选上 路由表查找!!!
如下:

image-20211004185607117

本人配置文件如下,供参考:

config globals 'globals'
    option mmx_mask '0x3F00'
    option rtmon_interval '5'
    option logging '1'
    option loglevel 'notice'
    list rt_table_lookup '220'

config policy 'balanced'
    list use_member 'wana_m1_w1'
    list use_member 'wanb_m1_w1'
    list use_member 'wanc_m1_w1'
    list use_member 'wand_m1_w1'
    list use_member 'wane_m1_w1'
    list use_member 'wanf_m1_w1'
    list use_member 'vwan1_m1_w1'
    list use_member 'vwan2_m1_w1'
    list use_member 'vwan3_m1_w1'
    list use_member 'vwan4_m1_w1'
    list use_member 'vwan5_m1_w1'
    list use_member 'vwan6_m1_w1'
    option last_resort 'default'

config rule 'https'
    option sticky '1'
    option dest_port '443'
    option proto 'tcp'
    option use_policy 'balanced'

config rule 'default_rule'
    option dest_ip '0.0.0.0/0'
    option use_policy 'balanced'

config interface 'wana'
    option enabled '1'
    option family 'ipv6'
    option count '2'
    option timeout '2'
    option up '1'
    option reliability '1'
    option down '4'
    option size '56'
    option interval '5'
    option failure_interval '5'
    option recovery_interval '5'
    list track_ip '240C::6666'
    list track_ip '2400:3200::1'
    option track_method 'ping'
    option initial_state 'online'

config member 'wana_m1_w1'
    option interface 'wana'
    option metric '1'
    option weight '1'

config interface 'wanb'
    option enabled '1'
    option family 'ipv6'
    option count '2'
    option timeout '2'
    option up '1'
    option reliability '1'
    option down '4'
    option size '56'
    option interval '5'
    option failure_interval '5'
    option recovery_interval '5'
    list track_ip '240C::6666'
    list track_ip '2400:3200::1'
    option track_method 'ping'
    option initial_state 'online'

config member 'wanb_m1_w1'
    option interface 'wanb'
    option metric '1'
    option weight '1'

config interface 'wanc'
    option enabled '1'
    option family 'ipv6'
    option count '2'
    option timeout '2'
    option up '1'
    option reliability '1'
    option down '4'
    option size '56'
    option interval '5'
    option failure_interval '5'
    option recovery_interval '5'
    list track_ip '240C::6666'
    list track_ip '2400:3200::1'
    option track_method 'ping'
    option initial_state 'online'

config member 'wanc_m1_w1'
    option interface 'wanc'
    option metric '1'
    option weight '1'

config interface 'wand'
    option enabled '1'
    option family 'ipv6'
    option count '2'
    option timeout '2'
    option up '1'
    option reliability '1'
    option down '4'
    option size '56'
    option interval '5'
    option failure_interval '5'
    option recovery_interval '5'
    list track_ip '240C::6666'
    list track_ip '2400:3200::1'
    option track_method 'ping'
    option initial_state 'online'

config member 'wand_m1_w1'
    option metric '1'
    option weight '1'
    option interface 'wand'

config interface 'wane'
    option enabled '1'
    option family 'ipv6'
    option count '2'
    option timeout '2'
    option up '1'
    option reliability '1'
    option down '4'
    option size '56'
    option interval '5'
    option failure_interval '5'
    option recovery_interval '5'
    list track_ip '240C::6666'
    list track_ip '2400:3200::1'
    option track_method 'ping'
    option initial_state 'online'

config member 'wane_m1_w1'
    option interface 'wane'
    option metric '1'
    option weight '1'

config interface 'wanf'
    option enabled '1'
    option family 'ipv6'
    option count '2'
    option timeout '2'
    option up '1'
    option reliability '1'
    option down '4'
    option size '56'
    option interval '5'
    option failure_interval '5'
    option recovery_interval '5'
    list track_ip '240C::6666'
    list track_ip '2400:3200::1'
    option track_method 'ping'
    option initial_state 'online'

config member 'wanf_m1_w1'
    option interface 'wanf'
    option metric '1'
    option weight '1'

config interface 'vwan1'
    option enabled '1'
    option count '2'
    option timeout '2'
    option interval '5'
    option down '4'
    option up '1'
    list track_ip 'www.baidu.com'
    list track_ip '114.114.114.114'
    list track_ip '119.29.29.29'
    option reliability '1'
    option initial_state 'online'
    option family 'ipv4'
    option track_method 'ping'
    option size '56'
    option failure_interval '5'
    option recovery_interval '5'
    option flush_conntrack 'never'

config member 'vwan1_m1_w1'
    option interface 'vwan1'
    option metric '1'
    option weight '1'

config interface 'vwan2'
    option enabled '1'
    option count '2'
    option timeout '2'
    option interval '5'
    option down '4'
    option up '1'
    list track_ip 'www.baidu.com'
    list track_ip '114.114.114.114'
    list track_ip '119.29.29.29'
    option reliability '1'
    option initial_state 'online'
    option family 'ipv4'
    option track_method 'ping'
    option size '56'
    option failure_interval '5'
    option recovery_interval '5'
    option flush_conntrack 'never'

config member 'vwan2_m1_w1'
    option interface 'vwan2'
    option metric '1'
    option weight '1'

config interface 'vwan3'
    option enabled '1'
    option count '2'
    option timeout '2'
    option interval '5'
    option down '4'
    option up '1'
    list track_ip 'www.baidu.com'
    list track_ip '114.114.114.114'
    list track_ip '119.29.29.29'
    option reliability '1'
    option initial_state 'online'
    option family 'ipv4'
    option track_method 'ping'
    option size '56'
    option failure_interval '5'
    option recovery_interval '5'
    option flush_conntrack 'never'

config member 'vwan3_m1_w1'
    option interface 'vwan3'
    option metric '1'
    option weight '1'

config interface 'vwan4'
    option enabled '1'
    option count '2'
    option timeout '2'
    option interval '5'
    option down '4'
    option up '1'
    list track_ip 'www.baidu.com'
    list track_ip '114.114.114.114'
    list track_ip '119.29.29.29'
    option reliability '1'
    option initial_state 'online'
    option family 'ipv4'
    option track_method 'ping'
    option size '56'
    option failure_interval '5'
    option recovery_interval '5'
    option flush_conntrack 'never'

config member 'vwan4_m1_w1'
    option interface 'vwan4'
    option metric '1'
    option weight '1'

config interface 'vwan5'
    option enabled '1'
    option count '2'
    option timeout '2'
    option interval '5'
    option down '4'
    option up '1'
    list track_ip 'www.baidu.com'
    list track_ip '114.114.114.114'
    list track_ip '119.29.29.29'
    option reliability '1'
    option initial_state 'online'
    option family 'ipv4'
    option track_method 'ping'
    option size '56'
    option failure_interval '5'
    option recovery_interval '5'
    option flush_conntrack 'never'

config member 'vwan5_m1_w1'
    option interface 'vwan5'
    option metric '1'
    option weight '1'

config interface 'vwan6'
    option enabled '1'
    option count '2'
    option timeout '2'
    option interval '5'
    option down '4'
    option up '1'
    list track_ip 'www.baidu.com'
    list track_ip '114.114.114.114'
    list track_ip '119.29.29.29'
    option reliability '1'
    option initial_state 'online'
    option family 'ipv4'
    option track_method 'ping'
    option size '56'
    option failure_interval '5'
    option recovery_interval '5'
    option flush_conntrack 'never'

config member 'vwan6_m1_w1'
    option interface 'vwan6'
    option metric '1'
    option weight '1'

最后检查是否实现IPV6负载均衡,在状态-MultiWAN Manager-状态中查看,如下图,因为目前只有3个账号拨号,按配置的1:1:1实现了IPV4+IPV6的负载均衡。

image-20211003155028828.png
  • 更新1

最近发现开启IPv6负载均衡后,QQ登陆很慢,经常还出现提示检查防火墙70001错误,经排查发现是因为QQ登陆端口为TCP 80、TCP443、UDP8000,由于默认的负载均衡-规则里只有TCP443端口开启了粘滞模式(https协议)、再三考虑后,将80端口(http)也添加入此规则中,即
互联网协议:ipv4和ipv6 源地址端口目标地址留空 目标端口:443,80 协议tcp 粘滞模式:是 分配的策略:balanced

这样QQ登陆速度就恢复了正常,(不过ipv4东北大学网络测速网站 (neu6.edu.cn)测速会降下来,不知道下载速度降没降,不过现在下载连接基本上都是https 443端口,但是不开443粘滞 网银等网页又没法登陆)

  • 更新2

上面更新1内容不再使用,目前直接把443、80粘滞这个规则删掉了也不影响网银登陆,QQ登陆速度也不影响,好像是因为443粘滞才导致的QQ登陆卡慢,不懂不懂,暂时这样用着

最重要的是现在的下载链接都是https,关掉443粘滞,下载速度能叠加,目前网银正常,qq慢就慢点吧多点几次登录,或者QQ登录界面设置登录,为了下载速度牺牲下

参考:(未解决)

  1. 越来越多的https网站,多拨MWAN3的规则应该怎么配? - OPENWRT专版 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)
  2. 实用插件介绍之八:MWAN3分流助手,支持多ISP多WAN,支持 WireGuard 出国分流 - OPENWRT专版 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)

四、功能折腾③——DDNS配置(阿里云DDNS)

在 服务--动态DNS里 最下面点击添加新服务,创建名称,要解析的IP,选择aliyun.com,配置如下:

image-20211003163100688

重点注意:高级设置里IP来源一定要选择网络,而不是接口,虽然接口第一次也能获取,但是在我这里会莫名的崩溃停止运行,所以选择网络来获取
ipv4解析选择vwan1~6网络
ipv6解析选择wana~b网络

例如:
image-20211003225919678

计时器设定里可以设置获取IP时间的间隔

接口获取的IP崩溃结果如下图:

image-20211003223641176

五、功能折腾④——端口转发+群晖NAS(ipv4+ipv6访问)

由于网络--防火墙里的端口转发只能设置ipv4,故使用socat来实现,首先在网络--socat打开即可新增要转发的规则。

Socat的优点就是:入站的ipv4+ipv6端口都可以转发到内网某一Ip下的端口,比如我的nas的导航页端口为80,则添加监听端口80 TCP,目标地址选NAS的内网iP(如192.168.2.188),目标端口为80,绑定到本地端口和打开防火墙均打勾即可。

注:

  1. 这里192.168.2.1的路由器管理界面端口也是80,所以首先修改路由器的管理页端口,在系统--Web管理处修改端口为非80且未被占用即可,我这里选择了88端口,即以后要进路由器管理则需输入 192.168.2.1:88
  2. NAS的内网需要绑定为固定IP,在网络--DHCP/DNS--服务器设置--静态地址分配 处,添加即可。

你可能感兴趣的:(openwrt路由器(红米AC2100)折腾全程——多拨、ipv6负载均衡、ipv6 nat6、ddns、端口转发)