zl程序教程

您现在的位置是:首页 >  工具

当前栏目

华为数通笔记-双点双向引入

笔记华为 引入 双向 数通
2023-09-11 14:15:51 时间

 如图所示,R1(E0/0/0),R2(Loopback0、G0/0/0、E0/0/0、E0/0/1),R3(E0/0/0)与R5(E0/0/1)之间运行OSPF协议,进程号为1,区域为0,同时将 R1的Loopback0的路由通过import引入的方式发布到OSPF域中。而R3(Loopback0、E0/0/1),R4(Loopback0、E0/0/0、E0/0/1)与R5(Loopback0、 E0/0/0)运行ISIS路由协议,部署在区域49.0001内。现需要使全网互联互通(OSPF域与ISIS域),即R3作为ASBR设备配置双向路由引入达到全网路由可达。

次优路径

1.先在R3进行双点双向引入时,查看R5的路由表。

可以发现R5访问1.1.1.1时,的下一跳为R4,而不是最优路径的下一跳R2,这就产生了次优路径。那么产生这个现象的原因是什么? 

分析如下:

当R3未进行双点双向引入时,R3的路由表中存在的1.1.1.1的路由是R1发过来的ospf外部路由,优先级为150。

 当R3将ospf路由引入到isis中,刚刚那条1.1.1.1的ospf外部路由,被引入到isis中,就会以isis的外部路由--优先级为15,发给R5。此时R5会收到两条关于1.1.1.1路由,一条为R2发过来的,优先级为150的ospf外部路由,一条为优先级为15的isis外部路由。优先级越小,路由越优选,故在R5的路由表中只会存在一条最优的路由,即1.1.1.1的isis外部路由,此时次优路径产生。

那如果我们此时在R5也进行双点双向引入,R3访问1.1.1.1也会产生次优路径吗?在引入后,我们查看一下路由表:

可以发现,R3访问1.1.1.1的下一跳为R2,路径是最优的。那为什么不像R5一样会出现次优路径呢?分析如下: 

这里其实是和引入的先后有关系的,当R3先将ospf引入到isis中,那么R5的路由表中只会存在一条关于1.1.1.1的最优的isis外部路由。此时根据路由协议引入的一个机制:一种路由协议在引入其他路由协议时,只引入这个其他路由协议在路由表中存在的路由,不出现在路由表中的路由是不会被引入的。R5想要把ospf协议引入到ospf中,但是关于1.1.1.1的ospf外部路由不存在路由表中,所以这条ospf外部路由不会被引入到isis中,也就不会成为优先级为15的isis外部路由并发给R3,R3自然就只会收到来自R2的关于1.1.1.1的路由。

解决次优路径的问题,需要在R5修改OSPF外部路由条目的preference值 ,使 OSPF_ASE路由(R1的Loopback0)的preference值小于ISIS路由的preference值 (比如OSPF_ASE路由preference值改成10)就可以解决。

 ip-prefix lop permit 1.1.1.1 32
route-policy lop permit node 10
 if-match ip-prefix lop
 apply preference 10
ospf 1
 preference ase route-policy lop 150
# preference ase route-policy lop 150 #将1.1.1.1的优先级修改为10,其他外部路由优先级仍为150

临时环路

为了保证路由 的高可靠性,将R5也配置双向路由引入,此时将R1的Loopback0接口的IP地址删除,请分析可能会出现的问题。

未删除R1的loopback地址时,R2的路由表存在两条1.1.1.1的路由,一条时R1引入的,一条时R5引入的isis外部路由,由于ospf在引入外部路由的时候默认类型为type2且默认 cost为1,不考虑自治系统内的开销,故开销都为1。若想ISIS 协议引入 OSPF 后能继承 cost,在 OSPF 进程下执行如下命令: ospf 1 default cost inherit-metric

当将R1的Loopback接口的IP地址删除,此时R2访问R1的Loopback接口,R2没 有选择R1作为下一跳,而是错误地将R5作为下一跳,选择从R5-R3-R2前往R1的 Loopback0,导致临时环路。当LSA age为1800s时,关于1.1.1.1的LSA老化。

分析如下:

当删除R1的loop back0路由1.1.1.1,此时R2访问1.1.1.1的下一跳只有R5,R5到达1.1.1.1的下一跳为R4,R4到达1.1.1.1的下一跳为R3,R3到达1.1.1.1的下一跳为R2,故产生了R5-R3-R2的临时环路。

 为避免环路问题,可以通过在R3与R5使用tag来实现路由相互引入时的限制 ,从而 保证路由协议间相互引入的时候只引入对方路由域的路由。

R3:

route-policy o2i deny node 10
if-match tag 200
route-policy o2i permit node 20
apply tag 100
route-policy i2o deny node 10
if-match tag 400
route-policy i2o permit node 20
apply tag 300
isis 1
import-route ospf 1 route-policy o2i
ospf 1
import-route isis 1 route-policy i2o

R5:

route-policy i2o deny node 10
if-match tag 100
route-policy i2o permit node 20
apply tag 200
route-policy o2i deny node 10
if-match tag 300
route-policy o2i permit node 20
apply tag 400
isis 1
import-route ospf 1 route-policy o2i
ospf 1
import-route isis 1 route-policy i2o

在R3上刷新ospf进程,此时R2:

删除R1的loopback0地址,不会产生环路。