双点双向重分发中的次优路径和环路问题

概述:

在这里插入图片描述
上面拓扑为双点双向重发布的示意图,如果不加控制,将会发生次优路由和环路等故障,产生故障的过程具体分析如下:

在拓扑中,R1将网段10.0.0.0/24引入到OSPF。R2/R3分别将该路由引入ISIS,正常情况下,R2/R3将路由引入ISIS会有先后,假设R3先于R2将该路由引入到IS-IS。那么R2就会同时从OSPF和IS-IS学到10.0.0.0/24的路由。于是R2会根据路由协议的优先级优选通过IS-IS学到的路由(OSPF的外部路由优先级为150,IS-IS的路由优先级为15)。于是,当R2访问10.0.0.0/24网段时,会使用R4-R3-R1这条次优路径。为了避免出现这种情况,可以在路由器R2上使用route-policy修改OSPF ASE路由的优先级,使得OSPF ASE的路由优先于从IS-IS学到的路由,使得R2选择正确的路由。

当R1连接网络10.0.0.0/24的接口断掉之后,虽然该条外部LSA会在OSPF区域内老化,但是由于R2通过IS-IS已经学习到了10.0.0.0/24网络,所以R2会将该网络引入到OSPF,进而使R1和R3会通过R2学习到了网络10.0.0.0/24。当R2访问访问网络10.0.0.0/24时,流量会沿R4-R3-R1-R2的路径发送,从而引发环路。为避免这种情况,我们可以通过给路由条目添加标记tag标签,然后对特定标签进行过滤的方法来避免环路的发生。

这只是一种环路的情况,如果在两个进程中双点双向重分发路由,就算引入的OSPF没有失效也可能产生环路。

次优路径实验:

在这里插入图片描述
完成基础配置,然后在R2和R3上做双向重分发,在R1上将L0重分发进入OSPF中,注意ISIS在level 2,区域中才能进行重分发,level 1中不能进行重分发。

在R2上查看对应的去往1.1.1.1的路由条目(直接走R1):
在这里插入图片描述
R4上进行查看路由表:会发送给R2。
在这里插入图片描述
R3查看路由表,会发送给R4,这里产生次优路径的问题。
在这里插入图片描述
R4 ping R1:可以ping通。
在这里插入图片描述
所以R3到达1.1.1.1的路径如下:
在这里插入图片描述
具体分析报文交互情况,为什么会产生这样的情况路由:

R2上:发送了1.1.1.1给R4。
在这里插入图片描述
在R3上:没有发送1.1.1.1给R4,被抑制了。
在这里插入图片描述
R1上:收到了R3发送的1.1.1.1/32。
在这里插入图片描述
R4上:从R2发送了,R3并没有发送给他。
在这里插入图片描述
总结:
因为有路由协议上的机制,当R2将路由条目先重分发进入IS-IS中以后R4和R3会收到了R2发送条目,R3会发现接收条目的AD值比自几的小(用自己的150进行比较),所以就不会发送自己的OSPF协议中R1的L0路由条目发送给R2和R4了,这样R2和R4就只有一条最优的路由去往R1。(如果是R3先重分发路由进入IS-IS,R2的OSPF重分发也会被抑制)

具体被抑制的原因:一种路由协议在引入其他路由协议时,只引入路由协议在路由表中存在的路由,不出现在路由表中的路由是不会被引入的,这种对路由表中路由进行控制的行为是矢量行为。

同时R3会将从ISIS区域收到的更好1.1.1.1的条目发送给R1,这样R1就会有两个1.1.1.1的路由条目了。

这种情况产生了次优路径,但是不会有环路。这种抑制机制保证了无环路的产生。
在这里插入图片描述
为了制造能够完全双向重分发的,不被路由机制抑制的环境,只有在两个进程的OSPF下进行。

双进程互双点双向重分发环路:

在这里插入图片描述
其他条件不变,仅仅是将ISIS更换成了OSPF进程2。现在查看R4上的路由条目:
在这里插入图片描述
去往1.1.1.1有两个下一跳,负载分担;在R2和R3上查看对应的条目:有负载分担分担的路由。
在这里插入图片描述
在这里插入图片描述
说明双点双向重分发了,并且为类型2的路由条目,cost值不会累加,这样就可能产生环路(R4->R2->R4;R4->R3-R4)

当然,如果R4发送给R2或者R3后,R3和R2负载到直接去往R1的路由,则没有环路。用R4 ping R1测试:
在这里插入图片描述
这里刚刚好走对了路由,所以是通的,再看看R1上的OSPF的LSDB:
在这里插入图片描述
有三条1.1.1.1的条目,其中一条是自己引入的,另外两条是R2和R3发送的。现在我们要解决的问题,让R2,R3去往1.1.1.1只有直接发送给R1的路由,不会发送回给R4,防止环路出现;并且在R1上只有一条1.1.1.1的条目,也就是自己产生的,没有从R2,R3发送回来的。

这时就使用路程策略加tag,保证重分发进入另外进程的路由不会被重新重分发回来。R2的路由策略名称进程1->进程2的记为12-2,R3的进程1->进程2记为12-3,进程2->进程1的记为21-2或者21-3。Tag就去掉中间的-符号。

在R2上:
配置路由策略:
route-policy 12-2 deny node 10 //进程1->进程2
if-match tag 213 //拒绝进程2->进程1,R3上发送的条目

route-policy 12-2 permit node 20
apply tag 122 //其他的打上122的tag

route-policy 21-2 deny node 10 //进程2->进程1
if-match tag 123 //拒绝进程1->进程2,R3上发送的条目

route-policy 21-2 permit node 20
apply tag 212 //其他的打上212的tag

ospf中运用重分发:
ospf 1
import-route ospf 2 route-policy 21-2
area 0.0.0.0
network 10.12.12.2 0.0.0.0

ospf 2
import-route ospf 1 route-policy 12-2
area 0.0.0.0
network 10.24.24.2 0.0.0.0

在R3上同理:
配置路由策略
route-policy 12-3 deny node 10 //进程1->进程2
if-match tag 212 //拒绝进程2->进程1,R2上发送的条目

route-policy 12-3 permit node 20
apply tag 123 //其他的打上123的tag

route-policy 21-3 deny node 10 //进程2->进程1
if-match tag 122 //拒绝进程1->进程2,R3上发送的条目

route-policy 21-3 permit node 20
apply tag 213 //其他的打上212的tag

ospf中重分发:
ospf 1
import-route ospf 2 route-policy 21-3
area 0.0.0.0
network 10.13.13.3 0.0.0.0

ospf 2
import-route ospf 1 route-policy 12-3
area 0.0.0.0
network 10.34.34.3 0.0.0.0

这样在R1上解决了1.1.1.1/32从R2和R3发送过来的情况:
在这里插入图片描述
但是在R2和R3上依然会有两个负载分担的路由条目,因为只是自己会接收,但是不会重分发:
在这里插入图片描述
所以我们将重分发进入进程2的条目cost修改大一点即可:

在R2上:
route-policy 12-2 permit node 20
apply cost 150
apply tag 122

在R3上:
route-policy 12-3 permit node 20
apply cost 150
apply tag 123
这样从R2和R3上再去观察:
在这里插入图片描述
只有一条最优路径了,这样就不可能产生环路。

好的,为了解决双点双向分发可能带来的次优路径问题,您可以在R3和R4上部署一些策略。下面是一些可能的策略: 1. 在R3和R4上分别使用路由映射器(route map)来控制双向分发。您可以使用路由映射器来过滤路由、更改metric、更改标签等。以下是一个示例路由映射器配置,它将过滤掉所有的RIP路由,只发布metric大于10的OSPF路由: 在R3上: ``` route-map OSPF-RIP permit 10 match protocol ospf 1 match metric 10 65535 ! router ospf 1 redistribute rip subnets route-map OSPF-RIP metric-type 1 ``` 在R4上: ``` route-map RIP-OSPF permit 10 match protocol rip ! router rip redistribute ospf 1 route-map RIP-OSPF metric transparent ``` 这将确保只有符合指定条件的路由才会被双向分发。 2. 在R3和R4上使用路由策略(policy-based routing)来控制路由路由策略可以根据源地址、目标地址、端口号等条件来匹配路由,并将其发送到特定的出接口或下一跳。以下是一个示例路由策略配置,它将所有来自10.0.0.0/24网段的流量发送到R3的Loopback0接口: 在R3上: ``` access-list 10 permit 10.0.0.0 0.0.0.255 ! route-map PBR permit 10 match ip address 10 set interface Loopback0 ! interface GigabitEthernet 0/0 ip policy route-map PBR ``` 这将确保来自10.0.0.0/24网段的流量不会通过双向分发路由,而是被发送到R3的Loopback0接口。 请注意,这只是一些示例策略,并且可能需要根据您的网络拓扑和需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值