實驗拓撲
網絡拓撲及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的路由表這回正常了。
編輯:黃飛
?
評論