实验拓扑
网络拓扑及IP编址如图所示;
设备的互联地址为192.168.xy.0/24。其中x、y为设备编号。例如R1-R3之间互联的链路网段为192.168.13.0/24,并且R1的接口地址为192.168.13.1,R3的接口地址为192.168.13.3,也就是说IP地址的最后一位的值为本设备的编号。
实验需求
R1、R2及R3运行OSPF;R2、R3、R4运行RIPv2;
R1创建一个Loopback0接口,配置IP地址1.1.1.1/32,并且将这个接口的直连路由重发布到OSPF;
在R2及R3上均执行双向的路由重发布,也就是将OSPF路由注入到RIP,将RIP路由注入到OSPF,本路由域内的网段需通过该路由协议的路由到达,不能出现次优路径。
实验步骤及配置
1.所有的路由器完成基本配置
R1的配置如下:
[R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0] ip address 192.168.12.1 24 [R1] interface GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1] ip address 192.168.13.1 24 [R1] interface loopback0 [R1-LoopBack0] ip address 1.1.1.1 32 [R1] ospf 1 router-id 1.1.1.1 [R1-ospf-1] import-route direct [R1-ospf-1] area 0 [R1-ospf-1-area-0.0.0.0] network 192.168.12.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0] network 192.168.13.0 0.0.0.255
R2的配置如下:
[R2] interface GigabitEthernet 0/0/0 [R2-GigabitEthernet0/0/0] ip address 192.168.12.2 24 [R2] interface GigabitEthernet 0/0/1 [R2-GigabitEthernet0/0/1] ip address 192.168.24.2 24 [R2] ospf 1 router-id 2.2.2.2 [R2-ospf-1] area 0 [R2-ospf-1-area-0.0.0.0] network 192.168.12.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0] quit [R2] rip [R2-rip-1] version 2 [R2-rip-1] undo summary [R2-rip-1] network 192.168.24.0
R3的配置如下:
[R3] interface GigabitEthernet 0/0/0 [R3-GigabitEthernet0/0/0] ip address 192.168.13.3 24 [R3] interface GigabitEthernet 0/0/1 [R3-GigabitEthernet0/0/1] ip address 192.168.34.3 24 [R3] ospf 1 router-id 3.3.3.3 [R3-ospf-1] area 0 [R3-ospf-1-area-0.0.0.0] network 192.168.13.0 0.0.0.255 [R3-ospf-1-area-0.0.0.0] quit [R3] rip [R3-rip-1] version 2 [R3-rip-1] undo summary [R3-rip-1] network 192.168.34.0
R4的配置如下:
[R4] interface GigabitEthernet 0/0/0 [R4-GigabitEthernet0/0/0] ip address 192.168.24.4 24 [R4] interface GigabitEthernet 0/0/1 [R4-GigabitEthernet0/0/1] ip address 192.168.34.4 24 [R4] rip [R4-rip-1] version 2 [R4-rip-1] undo summary [R4-rip-1] network 192.168.24.0 [R4-rip-1] network 192.168.34.0
2.在R2及R3上执行双向路由重发布
R2的配置如下:
[R2] ospf 1 [R2-ospf-1] import-route rip [R2] rip [R2-rip-1] import-route ospf 1
R3的配置如下:
[R3] ospf 1 [R3-ospf-1] import-route rip [R3] rip [R3-rip-1] import-route ospf 1
完成上述配置后,我们来看看各台设备的路由表:
display ip routing-table protocol ospf Destination/Mask Proto Pre Cost Flags NextHop Interface 192.168.24.0/24 O_ASE 150 1 D 192.168.12.2 GigabitEthernet0/0/0 O_ASE 150 1 D 192.168.13.3 GigabitEthernet0/0/1 192.168.34.0/24 O_ASE 150 1 D 192.168.12.2 GigabitEthernet0/0/0 O_ASE 150 1 D 192.168.13.3 GigabitEthernet0/0/1
在R1的路由表中,192.168.24.0/24及192.168.23.0/24这两条RIP域内的路由都是在R2及R3上等价负载分担,这是很合理的,因为R2和R3都执行了RIP到OSPF的路由重发布,而且注入进来的路由Cost是相等的(缺省都是1)。
display ip routing-table protocol rip Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.1/32 RIP 100 1 D 192.168.24.2 GigabitEthernet0/0/0 192.168.12.0/24 RIP 100 1 D 192.168.24.2 GigabitEthernet0/0/0 RIP 100 1 D 192.168.34.3 GigabitEthernet0/0/1 192.168.13.0/24 RIP 100 1 D 192.168.24.2 GigabitEthernet0/0/0 RIP 100 1 D 192.168.34.3 GigabitEthernet0/0/1
查看R4的路由表时我们发现一个奇怪的现象。对于OSPF域内的路由192.168.12.0/24及192.168.13.0/24,在R4上的确是出现了等价负载分担,这很好理解,但是1.1.1.1/32这条路由却没有出现该有的现象,这条路由下一跳指向R2,那么R3呢?我们到R3上再观察一下路由表:
display ip routing-table Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.1/32 RIP 100 2 D 192.168.34.4 GigabitEthernet0/0/1 192.168.12.0/24 OSPF 10 2 D 192.168.13.1 GigabitEthernet0/0/0 192.168.24.0/24 RIP 100 1 D 192.168.34.4 GigabitEthernet0/0/1
[ 此处省略部分输出 ]
R3的路由表中,1.1.1.1/32这条路由竟然是来源于RIP,这显然是有问题的,因为这条路由是OSPF域内的路由,R3去往这个目标网络,应该是走OSPF路由,下一跳是R1,然而此时R3的路由表中该条路由却是来源于RIP,下一跳为R4,这就出现了次优路径,R3访问1.1.1.1/32的路径为R4>R2>R1。
为什么会发生这样的现象?为什么只有1.1.1.1/32这条OSPF外部路由会发生这样的现象?
首先回忆一下,RIP路由协议的优先级是100,而OSPF则有两个优先级,内部路由优先级为10,外部路由则为150。好,接下来我们分析分析这个实验,首先看RIP路由注入OSPF的过程,R2和R3都能学习到RIP域内的路由并加载进路由表,这些路由的优先级为100。当RIP路由被R2注入OSPF后,这些路由也会通过OSPF被传递到R3上,反之亦然。以R3为例,192.168.24.0/24这条路由,一方面会从RIP学习到,另一方面又会从OSPF学到,此时它会比较OSPF和RIP这两个协议的优先级,由于这条路由是以5类LSA的形式在OSPF中泛洪,也就是外部路由,OSPF外部路由的优先级为150,而RIP的优先级为100,显然RIP路由的优先级值更小,也就是优先级更优。因此这条路由最终R3会优选RIP,这是正确的。所以在R2及R3上将RIP路由注入OSPF似乎没有问题。
再来分析分析从OSPF到RIP的注入过程。还是以R3作为参考点,首先分析一下OSPF域内的路由例如192.168.12.0/24,这条路由首先R3会从OSPF学习到并加载进路由表,OSPF的内部路由优先级为10。同时由于在R2上部署了OSPF到RIP的路由重发布,因此R3又会从RIP学习到这条路有,还是会比较两种路由的优先级:OSPF内部路由优先级为10,而RIP路由优先级为100,显然,OSPF路由被优选。因此OSPF域内路由不会发生次优路径的问题。但是再来看看域外路由:1.1.1.1/32,这条路由是R1以重发布的方式注入到OSPF域的,因此是域外路由,R3能够通过OSPF学习到该条路由并加载进路由表,OSPF域外路由的优先级为150。另一方面,R3又会从RIP学习到该条路由,优先级为100,这就出问题了,因为RIP路由的优先级要优于OSPF外部路由,因此最终关于这条路由,R3会优选RIP,次优路径也就出现了。
3.解决次优路径问题
双点双向路由重发布是一个经典的课题,这种类型的组网很容易出现路由环路或者次优路径的问题。解决的方法也是多种多样的,我们这里先演示一种:修改路由优先级。在R2及R3上,创建一个前缀列表1用于抓取1.1.1.1/32这条OSPF外部路由,然后在route-policy ase中调用该条ACL,并将匹配这条ACL的路由的优先级值设置为99(比RIP路由的优先级100更小),然后在OSPF的视图下使用preference命令调用这个route-policy。OSPF视图下的Preferencease这条命令用于修改外部路由(ase)的优先级。
R2的配置如下:
[R2] ip ip-prefix 1 permit 1.1.1.1 32 [R2] route-policy ase_policy permit node 10 [R2-route-policy] if-match ip-prefix 1 [R2-route-policy] apply preference 99 [R2] ospf 1 [R2-ospf-1] preference ase route-policy ase_policy
R3的配置如下:
[R3] ip ip-prefix 1 permit 1.1.1.1 32 [R3] route-policy ase_policy permit node 10 [R3-route-policy] if-match ip-prefix 1 [R3-route-policy] apply preference 99 [R3] ospf 1 [R3-ospf-1] preference ase route-policy ase_policy
完成上述配置后,再来看一看R2及R3的路由表:
[R2] display ip routing-table Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.1/32 O_ASE 99 1 D 192.168.12.1 GigabitEthernet0/0/0 192.168.13.0/24 OSPF 10 2 D 192.168.12.1 GigabitEthernet0/0/0 192.168.34.0/24 RIP 100 1 D 192.168.24.4 GigabitEthernet0/0/1 [R3]display ip routing-table Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.1/32 O_ASE 99 1 D 192.168.13.1 GigabitEthernet0/0/0 192.168.12.0/24 OSPF 10 2 D 192.168.13.1 GigabitEthernet0/0/0 192.168.24.0/24 RIP 100 1 D 192.168.34.4 GigabitEthernet0/0/1
R2及R3的路由表这回正常了。
编辑:黄飞
评论
查看更多