1, 问题拓扑:
2, 环境描述:
R1,R2,R3作为OSPF的NSSA区域,建立OSPF邻居.
R2作为NSSA区域的ABR, 将外部路由4.4.4.0 重分发到OSPF NSSA area 1里面去。让内部R1和R3都可以学习到到外部4.4.4.0的路由通过OSPF.
路由器2的配置为:
router ospf 1
log-adjacency-changes
area 1 nssa no-summary
redistribute connected metric-type 1 subnets
network 192.168.1.0 0.0.0.255 area 1
network 192.168.100.0 0.0.0.255 area 1
3, 问题描述:
R3路由器,在R3上面show ip route 会发现,到达4.4.4.0网段有两个下一跳:192.168.1.1和192.168.2.2,竟然变成负载均衡了. 而客户不想要负载均衡的方式.
下面是在R3上面show 的到4.4.4.0的路由。
而客户也不能理解为什么R3上面到4.4.4.0为什么会变成负载均衡, 客户理解应该是:
R3: 到4.4.4.0 , 只有一条路由,下一跳是192.168.1.1.
4,问题原因以及原理:
问题出在R2配置上面. 首先,在R2这个ABR上面。
具体原理如下:
对于R3来说,NSSA区域计算Metric的特性如下:
5, 要实现非负载均衡的解决方案是将ABR R2上面的loopback接口network进OSPF区域.
即可解决这个问题.最后实现的效果就是R3到4.4.4.0这个外部路由的路由条目只有一条,并且是最优秀路由,原理如下:
R2上面配置修改:
router ospf 1
log-adjacency-changes
area 1 nssa no-summary
redistribute connected metric-type 1 subnets
network 2.2.2.2 0.0.0.0 area 1
network 192.168.1.0 0.0.0.255 area 1
network 192.168.100.0 0.0.0.255 area 1
!
最后在R3上面,show ip route 4.4.4.0可以发现,只有一条路由到4.4.4.0,并且是最优路由,
另外一条因为metric大,根本就不会装到路由表中去:
图中可以看到,R3上面show ip route 4.4.4.0的metric是22.
实际上就是下面图中20+2的结果:
那么看看另外一条路径的metric到底是多少?
这里可以看到是23.
20+(R3到R1的metric=1)+(R1到R2的metric=1)+(R2 loopback本身还有一跳1)=23.
最终达到了不进行负载均衡的目的.