网友提了一个问题,说在他目前管理的网络环境中,分支单位和中心单位互访时在中心单位的两台路由器之间有来回路径不一致的情况。在他的整个网络环境中,使用的路由协议比较单一,只有OSPF一种(但有没有静态路由的情况就不得而知了)。
我看了一下他给出的网络架构,是一个非对称的:
说一下这个网络结构:
1、中心单位下挂若干分支单位,对每个分支单位各租用两条电信专线和联通专线。中心机构设置一台DC01-WAN-DX(用于电信专线连接汇聚)和一台DC01-WAN-LT(用于联通专线连接汇聚),与分支单位的两台AR作交叉互联。
2、每个分支单位都有两台WAN-AR,AR1通过电信专线连接DC01-WAN-DX,AR2通过联通专线连接DC01-WAN-LT。
3、中心单位内部是非对称的网络架构,两组堆叠的核心交换机DC01-COR-CS01、DC01-COR-CS02都连接在DC01-WAN-DX下,而DC01-WAN-LT下面并没有下联核心交换机。
4、中心单位与分支单位的WAN-AR之间都是OSPF Area 0,而分支单位内部的网络是不是Area 0不确定,这里就姑且按照标准的设计来处理吧——每个分支单位使用不同的OSPF区域。
至于这个网络为何会出现来回路径不一致的情况呢?
主要的问题还是在这些专线(图中黄色线缆)上面调整Cost调得太乱了。有的分了主备,有的有想做成负载均衡,所以不管在中心单位一侧但是分支单位一侧,OSPF的Cost都调过了,而且到现在已经是没法做仔细统计的状态了。
既然Cost被调乱了,那有没有导致来回路径不一致的场景呢?
这肯定是有的。
从中心单位的网络结构来看,这个网络是不对称的。只有DC01-WAN-DX下面挂有两组COR-CS,而DC01-WAN-LT下是没有挂COR-CS的。这导致的结果是,从分支单位访问中心单位的流量,DC01-WAN-DX成了必经之路。
如果你在一个分支单位的AR上,把连接DC01-WAN-DX的链路Cost值给加大了,则必然有来回路径不一致的情况。
为什么呢?以分支单位1为例,看下面的分析(把图简化一下):
假设DC01-WAN-DX和DC01-WAN-LT在给分支机构发送路由时,发送的Cost值的数值为$Cost,而此时F1-WAN-AR1和F1-WAN-AR2上又修改了连接DC01-WAN-DX的接口的Cost为(ospf cost 1000),所以:
当F1-WAN-AR1/2在收到DC01-WAN-DX的路由时
Cost(DX)=$Cost+1000
当F1-WAN-AR1/2在收到DC01-WAN-LT的路由时
Cost(LT)=$Cost
很显然,不管$Cost取任何数值,都有Cost(DX) > Cost(LT)
如果是中心单位到分支单位的数据流呢?
前面说过了,中心单位的核心都连接在DC01-WAN-DX下,所以中心单位和分支单位的互访流量必须经过DC01-WAN-DX。
如果是DC01-WAN-DX,则你让它从DC01-WAN-LT上学习到的分支单位的路由,Cost小于直接从F1-WAN-AR1/2学习到的,这问题不就解决了吗?
所以,要想达到来回路径一致,必须满足以下几个条件:
1、中心单位的DC01-WAN-DX上,连接各个分支站点的接口,都要把Cost加大,并保持与DC01-WAN-LT互联接口的Cost为默认值;
2、中心单位的DC01-WAN-LT上,连接各个分支站点的接口,保持默认Cost值;
这俩条件保证DC01-WAN-DX学习分支单位的路由从DC01-WAN-LT上学习到的OSPF路由Cost值更小,路由更优;
3、分支单位的WAN-AR1/2上,连接中心单位DC01-WAN-DX的接口Cost加大,保证WAN-AR1/2从DC01-WAN-LT方向学来的路由Cost更小,路由更优。
只是,你忽略了一个问题:
如果你没权限去调整分支单位WAN-AR1/2的配置呢?
而此时分支单位WAN-AR1/2的接口上没有调整任何Cost值……
则此时,流量就会在DX和LT之间执行等价负载均衡,必有一半流量出现来回路径不一致。
如果DC01-WAN-DX和DC01-WAN-LT都是路由器,则这种流量的来回路径对网络的通信没啥影响。
但是根据网友的描述,DC01-WAN-DX是用防火墙来暂替的路由器,那来回路径不一致就肯定会导致网络不通了。
这里要简单说一下OSPF的参考带宽。
OSPF的参考带宽是用于计算OSPF Cost的参数,OSPF的Cost=参考带宽/接口带宽,将结果取整进一,就得到了OSPF的Cost值。
OSPF的参考带宽默认值是100M,这意味着,如果接口带宽大于100M,则用默认参考带宽Cost在计算以后,Cost恒等于1。
如果你想让某台设备上,计算并通告出来的OSPF Cost值变大,只能是考虑修改这台设备上OSPF计算的参考带宽。
华为/H3C设备修改OSPF参考带宽的命令是:
所以,要解决掉来回路径不一致,并不需要在分支单位的AR上调整配置,就可以选择在DC01-WAN-LT上把参考带宽调大,让它计算出来的OSPF Cost值远远大于DC01-WAN-DX的,这样,DC01-WAN-LT就成了一台标准的“备用机”了。
只要DC01-WAN-DX上的链路不断,流量就不会走到DC01-WAN-LT上去了。
另外,这名网友的一个诉求:让流量在DX专线和LT专线上实现负载均衡,这个是真心实现不了,因为WAN-LT路由器下面没有连接核心设备,流量只能往DX那边去转发,DX往核心转发又只能走单一路径。所以这个是真没办法弄了……
咱可以用一个实验来验证:
按照图示配置上IP地址,全网启动OSPF(你可以划分区域也可以就用Area 0),然后把DX-WAN-LT上把OSPF参考带宽加大,查看来回路径的效果。
实验拓扑使用EVE-NG搭建的,版本为2.0.3-110,需要的镜像是h3cvsr2k-7.1.064和普通的Cisco IOL镜像,当然,你们也可以用HCL,全H3C的镜像来模拟这个实验,只是接口编号需要重新规划了。