拓扑如下:
wan1、wan2使用平均分配负载分担。各接口开了探测地址,探测地址为网关(上联接口)
问题复现:
双线路正常时:使用用R1下的lan接口内的IP,如10.43.213.210主机ping上联正常。上联交换机10.43.3.2 ping 10.43.213.210正常
使用路由跟踪得到如下:
[Core]tracert 10.43.213.210
traceroute to 10.43.213.210 (10.43.213.210), 30 hops at most, 52 bytes each packet, press CTRL+C to break
1 192.168.130.222 (192.168.130.222) 3.104 ms 2.949 ms 2.722 ms
2 10.43.213.210 (10.43.213.210) 3.100 ms * 3.425 ms
说明线路走的是wan1
手动下线vlan1065 (即与下联对接的wan1),模拟接口不掉,线路接线(即物理接口是UP的,但线路已经接了)
这时,路由ER3200G3
查看iptables -t mangle -L如下图:
相关路由表也删除了原来走192.168.130.222的路由,如图:
但因为没有默认路由,虽然iptables删除了路由,PREROUTING链使用mwan3_hook自定义链进行引用,mwan3_ifaces_in/out链用于入/出接口流量标记。mwan3_policy_average链用于平均分流标记。但原来走的数据还是走原接口。
只能停止wan1(down)后,才可以使用路由正常。
建议可以通过track-interface机制检测wan1和wan2的连接状态。当wan1或wan2断线时,及时更新路由表和iptables规则将流量切换到另外一条线路。
例如:
启用wan1接口跟踪:
track-interface wan1 //给wan1接口配置跟踪
wan1断开时将触发以下事件:
pre-down: wan1断开前事件,用于删除默认路由:
pre-down ip route del default down: wan1断开事件,不执行任何动作
post-down: wan1断开后事件,用于添加wan2作为默认路由:
post-down ip route add default via $wan2_gateway dev $wan2_DEV
wan1连接时将触发以下事件:
pre-up: wan1连接前事件,删除wan2的默认路由
pre-up ip route del default up: wan1连接事件,不执行任何动作
post-up: wan1连接后事件,恢复平均路由作为默认路由
post-up ip route add default scope global nexthop via $wan1_gateway dev $wan1_DEV weight 1 nexthop via $wan2_gateway dev $wan2_DEV weight 1events会依次执行pre-,,post-*三个阶段的配置,用于在接口状态变化时触发路由更新,实现无缝切换。
可以为两个wan接口都配置track-interface,然后在各自的事件驱动配置中,添加删除默认路由和更新iptables规则的语句,以实时响应网络变化,完成负载均衡和高可用切换。
设备信息:cpu:1% 内存:47% 在线人数:2人
产品型号:ER3200G3 软件版本:Release 0126
接口信息:
root@路由器:~# uci show network
network.loopback=interface
network.loopback.ifname='lo' network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.globals.ula_prefix='fd93:41a8:e678::/48'
network.wan1=interface network.wan1.ifname='wan1'
network.wan1.macaddr='30:5F:77:85:85:7E'
network.wan1.force_link='0'
network.wan1.proto='static'
network.wan1.ipaddr='192.168.130.222'
network.wan1.netmask='255.255.255.252'
network.wan1.gateway='192.168.130.221'
network.wan1.dns='192.168.130.221'
network.wan1.mtu='1500'
network.wan1.auto='0'
network.wan2_lan4=interface
network.wan2_lan4.ifname='wan2-lan4'
network.wan2_lan4.macaddr='30:5F:77:85:85:7F'
network.wan2_lan4.force_link='0'
network.wan2_lan4.proto='static'
network.wan2_lan4.ipaddr='192.168.133.222'
network.wan2_lan4.netmask='255.255.255.252'
network.wan2_lan4.gateway='192.168.133.221'
network.wan2_lan4.dns='192.168.133.221'
network.wan2_lan4.mtu='1500'
network.Vlan1=interface
network.Vlan1.type='bridge'
network.Vlan1.ifname='wan3-lan3.1' 'wan4-lan2.1' 'lan1.1'
network.Vlan1.force_link='0'
network.Vlan1.proto='static'
network.Vlan1.ipaddr='10.43.213.193'
network.Vlan1.netmask='255.255.255.192'
network.Vlan1.mtu='1500
(1)
回楼上的:
目前官方最新的的就是R0126(即我的版本的软件版本:Release 0126)
引用 :
https://www.h3c.com/cn/Service/Document_Software/Software_Download/Router/Catalog/ER_G3/ER3200G3/
https://www.h3c.com/cn/d_202209/1679498_30005_0.htm
回楼下的:
如果在本地模拟,建议在B处断开。(A\B\C都为普通交换机,用于模拟物理端口不断,线路断)
先从三层交换上看一下,用路由跟踪一下,看线路走的是那一个 wan。比如如果走的是wan1,这时从B处断开(关机B处交换机)。这时在三层处ping 10.43.213.210可以看到数据的走向是SW(三层)=>wan2 => lan1 => PC(10.43.213.210)=>lan1=>wan1 数据不响应丢弃
(0)
暂无评论
本地模拟的你的场景,未复现问题。双wan出口负载,内网终端长ping某个外网地址 ,出口为wan1, 此时模拟探测失败,但是wan1接口还是up,内网终端会大概丢两个包的情况完成链路切换,走到wan2接口。
(0)
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论