两台盒子lb做堆叠串接组网,对内一个reth口,对外出口五条链路,其中1设备上3条移动链路,2设备上三条联通链路。
内网dns流量到其中一个设备后,完成dns透明代理后负载发出,可能从出口的五条链路的任意一条发到互联网。
内网dns请求报文到达其中一个设备后,从另一个设备转发出去的这部分流量全部异常。
debug异常的dns流量,针对内网侧和外网侧的数据包写acl,然后debug抓包。
由于现网还存在dns健康检查报文,icmp健康检查报文,debug里面的报文会很多。
需要找到对应业务报文,这里只用找内网口reth口收到的报文,确定其pkid。
debug流程如下:
1. 设备从内网口reth口发到slot2上,即报文抵达到了设备2上。

2. 报文经过dns透明代理流程替换目的,再经过源nat转换源,从pppoe拨号口发出。

3. 查看pppoe口配置,发现该口实际绑定的物理口为设备1的口,也就是说内网dns请求报文是从2设备上来,1设备发出。
4. 继续查看后续报文debug,看到回包从pppoe口回来,也就是回包首先到了设备1上面。
5. 正常该回包报文会做源nat还原和dns透明代理还原等相关动作,但是发现实际该报文又从pppoe口发出了。
6. 由上所述,找到问题直接原因为跨框的dns流量回包异常,没有返回给客户。
问题根因为irf堆叠的限制,物理口不支持跨板做NAT。
解决方案为:将可能涉及到跨板的出口由物理口修改为逻辑口。
例如上面的pppoe拨号口本来绑定的物理口1/0/1,可以修改为增加聚合口,将1/0/1口加入到聚合口,再将pppoe口绑定到聚合口上。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作