一 网络拓扑
CE12800双机CSS堆叠作为三层网关,上连S9300,CE12800上连有两条运营商链路。
在CE12800上配置路由,默认路由指向运营商A。而运营商B通过300条明细路由将其服务器的访问流量引入此链路中。
S9300为运营商设备,与CE12800通过三层口互联,但不运行OSPF等IGP协议。
2 故障现象
路由配置完成后,发现CE12800下挂PC配置为运营商B的地址,通过运营商B的链路访问网页非常慢,很多网页只能打开一半,但是有些服务,例如QQ的访问是正常的。
3 定位思路
- 调测出现问题后,验证只配置默认路由的情况,外网访问是正常的,由此可以判定运营商A的链路的访问是好的。
- 配置运营商B的明细路由后,问题发生。将PC连接在S9300上验证,访问外网是正常的,说明上连设备是没有问题的;
- PC连接在CE12800上时,问题出现。此时将默认路由指向的出接口修改为运营商B的出接口,访问外网正常; 由此推测,当默认路由出接口为运营商A时,部分通过运营商B的网络的访问可能没有走明细路由到了运营商A的网络中,从而不通。 因此获取报文头进行验证。访问百度网站进行测试,报文头显示运营商B的DNS服务返回的百度地址确实不在运营商B的明细路由的配置范围内。
4 解决方案
对该问题的解决,考虑到运营商给客户分配的地址为固定的公网地址。
由此可以通过策略路由的方式将源地址为运营商B的固定公网地址的访问全部定向到运营商B的链路,默认路由为运营商A的地址,另外配置优先级更低的默认路由指向运营商B的地址,确保上联链路的互相备份。
具体配置方法如下:
#
代码语言:javascript复制acl number 3006
description LianTongDiZhi
rule 5 permit ip source XX.XX.XX.0 0.0.0.127
代码语言:javascript复制#
代码语言:javascript复制//客户分配的运营商B的公网地址
#
代码语言:javascript复制 traffic classifier liantong type or
if-match acl 3006
#
traffic behavior liantong
redirect nexthop XX.XX.XX.XX
代码语言:javascript复制//下一跳为运营商B的公网出口链路地址
#
traffic policy liantong
classifier liantong behavior liantong precedence 5
#
ip route-static 0.0.0.0 0.0.0.0 XX.XX.XX.XX
代码语言:javascript复制preference 80
代码语言:javascript复制// 运营商B的链路用作运营商A的备份
代码语言:javascript复制ip route-static 0.0.0.0 0.0.0.0 XX.XX.XX.XX
代码语言:javascript复制 // 运营商A的链路
出现网页访问的问题时,需要首先通过不同的接入点
验证确认故障点,之后可以通过
获取报文头等手段来分析报文的情况,
确认路由选路是否正确。
对于运营商网络的访问,对于目的地址会发生变化的情况,可以根据固定的源地址通过策略路由的方法来实现网络的选路,并考虑路由链路的备份。