实验需求
- 两个协议间进行多点双向重发布
- R7的环回没有宣告,而是后期重发布进入
- 解决环路,所有路径选择最优,且存在备份
实验拓扑
实验分析
- 以R2R3为分界,左边为RIP(含R2环回),右边为OSPF(含R3环回),进行多点双向重发布。
- 路由回馈:在多点双向重发布中,第一台ASBR将优先级大的协议路由共享到优先级小的路由协议后,将被其他ASBR优选优先级小的协议;导致第一台ASBR重发布后,刷新了其他ASBR的路由表;之后其他ASBR也进行双向重发布,这些路由将回馈到优先级大的协议,使的最终的选路严重不佳;在思科的EIGRP协议中,华为的OSPF协议中,均将重发布进入的路由条目优先级定义为150,避免回馈问题出现;
但在此拓扑中仍存在路由回馈,R3环回宣告在OSPF中,掩码为32位,重发布时发布为24位,所以在R1/2/4上均有两条到R3环回的路由。 - 成环原因:R7环回重发布进入OSPF后优先级为150,由R2/3重发布进RIP,再由另一ASBR重发布回到OSPF,该条路由优先级也为150,但由于度量值被重置,cost值更低,路由器将选择此路由,形成环路。
- 由于重发布会重置度量,在多点重发布中必然会存在选路不佳的问题,可通过路由策略干预选路。
- 在距离矢量协议中,存在接口水平分割;故多点双向重发布中,一旦出现路径故障,可能导致ASBR路由表被刷新,后故障解除时,由于水平分割的阻挡导致路由不被重置,而依然选路不佳;
配置内容
省略ip及路由配置过程
- 解决环回路由回馈
将环回接口工作方式更改为broadcast即可int lo0 ospf network-type broadcast
- 解决环路
由上面分析可知,环路是由于ASBR将R7环回重发布到OSPF产生,故在两个ASBR的RIP-to-OSPF方向拦截该条路由即可#创建前缀列表抓取流量 ip ip-prefix R7lo0 permit 7.7.7.0 24 #创建名为R2O的路由策略,大动作为拒绝,序号为10 route-policy R2O deny node 10 #匹配上面的前缀列表 if-match ip-prefix R7lo0 #大动作为拒绝,无需定义小动作,直接退出 q #末尾添加空表允许所有 route-policy R2O permit node 20 q #目的是拒绝该条路由从RIP重发布到OSPF,应进入OSPF进程 ospf 1 import-route rip 1 route-policy R2O
- 解决选路不佳
选路不佳是由于度量值重置导致,故适当增加不佳路由的度量值即可,又保留了该条路由作为备份,在最优路径出现故障时,再采用该条路由保证通信。
R3环回宣告在ospf中,经由R2重发布到RIP后会对RIP中的路由器选路造成干扰,故在R2的OSPF-to-RIP方向将R3环回的度量值上调。
另一种特殊情况是距离矢量协议中存在接口水平分割导致的选路不佳。ip ip-prefix R3lo0 permit 3.3.3.0 24 route-policy O2R permit node 10 if-match ip-prefix R3lo0 apply cost 2 q route-policy O2R permit node 20 q rip 1 import-route ospf 1 route-policy O2R
例如R1和R2之间,若R2先把从R3学到的R1环回发给R1,虽然R1不会采用此条路由,但因接口水平分割,不会再将R1环回的正确路由发给R2,导致R2选路不佳。
解决方法:在ASBR的O2R方向拦截其他ASBR从RIP学到的路由。ip ip-prefix R1lo0 permit 1.1.1.0 24 route-policy O2R deny node 10 if-match ip-prefix R1lo0 q route-policy O2R permit node 20 q rip 1 import-route ospsf 1 route-policy O2R q
以上操作为举例,类似的地方都需要做路由策略,以及骨干网段也要考虑进去
- 配置命令汇总
- R2
ip ip-prefix R7lo0 permit 7.7.7.0 24 ip ip-prefix R3lo0 permit 3.3.3.0 24 ip ip-prefix R1lo0 permit 1.1.1.0 24 ip ip-prefix 13 permit 13.1.1.0 24 ip ip-prefix 34 permit 34.1.1.0 24 route-policy R2O deny node 10 if-match ip-prefix R7lo0 q route-policy R2O permit node 20 if-match ip-prefix R3lo0 apply cost 2 q route-policy R2O permit node 30 if-match ip-prefix 13 apply cost 2 q route-policy R2O permit node 40 q route-policy O2R permit node 10 if-match ip-prefix R3lo0 apply cost 2 q route-policy O2R deny node 20 if-match ip-prefix R1lo0 q route-policy O2R deny node 30 if-match ip-prefix 13 q route-policy O2R permit node 40 if-match ip-prefix 34 apply cost 2 q route-policy O2R permit node 50 q ospf 1 import-route rip 1 route-policy R2O q rip 1 import-route ospf 1 route-policy O2R q
- R3
ip ip-prefix R7lo0 permit 7.7.7.0 24 ip ip-prefix R2lo0 permit 2.2.2.0 24 ip ip-prefix R1lo0 permit 1.1.1.0 24 ip ip-prefix 12 permit 12.1.1.0 24 ip ip-prefix 24 permit 24.1.1.0 24 route-policy R2O deny node 10 if-match ip-prefix R7lo0 q route-policy R2O permit node 20 if-match ip-prefix R2lo0 apply cost 2 q route-policy R2O permit node 30 if-match ip-prefix 12 apply cost 2 q route-policy R2O permit node 40 q route-policy O2R permit node 10 if-match ip-prefix R2lo0 apply cost 2 q route-policy O2R deny node 20 if-match ip-prefix R1lo0 q route-policy O2R deny node 30 if-match ip-prefix 12 q route-policy O2R permit node 40 if-match ip-prefix 24 apply cost 2 q route-policy O2R permit node 50 q ospf 1 import-route rip 1 route-policy R2O q rip 1 import-route ospf 1 route-policy O2R q
结果验证
R1
R2
R3
R4
R5
R5没问题的话,R6/7都不用看了