區域內:依靠SPF算法防環,依靠LSA1和LSA2,經過SPF算法計算去往每一個網段的最優路徑;算法
區域間:全部區域都必須與骨幹區域鏈接,區域間路由需經由骨幹區域中轉;ide
區域間水平分割原則,參考https://blog.51cto.com/xxy12345/2559508oop
區域外:LSA5的訪問依賴LSA4spa
Area 0被Area1分割,AR3與AR6創建vlink,AR1的loopback ip爲1.1.1.1,AR7爲7.7.7.7,其餘類推。翻譯
AR7的loopbackip經過network發佈,AR1的loopbackip同理設計
area 0.0.0.0router
network 7.7.7.7 0.0.0.0blog
AR3與AR6作了Vlink,這樣雙邊的Area0就鏈接起來了。AR1能夠學到AR7的路由,AR7也能夠學到AR1的路由。接口
AR1的1.1.1.1訪問AR7的7.7.7.7ip
1. 由於AR3是ABR,所以AR1訪問7.7.7.7的下一跳爲AR3,(由於7.7.7.7是Area0的LSA,所以不走AR2)
2. AR3與AR6作了Vlink,但數據走向並不必定走Vlink,AR3是ABR,它有Area0(R1和R7所在的Area0)和傳輸區域Area1的所有LSA,因此計算路徑時會都考慮Area0和Area1裏的LSA,R5通告的LSA(7.7.7.7)cost是1,R6通告的cost是10,所以接受R5的,去R5走R4最近。
3. R4選擇區域間路由選擇COST最小下一跳R5
4. R5根據Area0的LSA1選擇直連R7的下一跳。
5. 所以,AR1(1.1.1.1)訪問AR7(7.7.7.7)的路徑AR1--AR3--AR4--AR5--AR7.
AR7(7.7.7.7)訪問AR1(1.1.1.1)
1. 由於AR6是ABR,經過Vlink學到1.1.1.1/32的Area0的LSA1,所以R7去往1.1.1.1走AR6(注:AR5訪問1.1.1.1也走R7,再走AR6)
2. AR6根據傳輸區域Area1裏的cost分析,走cost最小的AR5
3. AR5是ABR,可是沒有vlink,AR1(1.1.1.1/32)是骨幹區域Area0的路由,訪問走骨幹區域Area0,所以下一跳給AR7,造成環路。
4. AR7-->AR1的路徑AR7--AR6--AR5--AR7,造成環路。
1. Vlink設計不當會造成環路。
2. ABR會忽略從非骨幹區域收到的LSA3/4,他只會放入Database中而不會被加入SPF算法。在vlink狀況下,使用Area0中的置V的路由器做爲訪問其餘非直連區域的出口,但若是ABR是Vlink的端點,則能夠根據Area1中的LSA3計算到骨幹區域的路由,即Area0以置V的路由器做爲出口,而置V路由器自己能夠按照非骨幹區域的LSA3計算到骨幹區域的路由。
3. Vlink表明控制平面,數據平面不必定通過Vlink,數據平面和控制平面是分開的。
設備AR1的loop0地址爲1.1.1.1,其餘設備類推。
設備AR1的loop0地址經過network發佈
設備AR1的loop1地址爲100.100.100.100,經過import direct發佈,模擬NSSA引入外部路由。
Area1 爲NSSA區域。
1. 在NSSA區域中,AR2和AR3都爲ABR,同時也是ASBR,R3的router id大,所以由R3進行LSA7/5翻譯。
2. AR2收到Area1的LSA7(100.100.100.100),收到Area0的LSA5(100.100.100.100),根據LSA5(FA=1.1.1.1,cost-type=2,cost=1,advrtr=3.3.3.3)和LSA7(FA=1.1.1.1,cost-type=2,cost=1,advrtr=1.1.1.1)的比較,根據選路規則,外部成本一致(cost=1)的狀況下比對內部成本,LSA5的內部成本是AR2去往FA通過Area0的路徑成本,LSA7的內部成本是AR2去往FA通過Area1的路徑成本。從圖中能夠看出,LSA7優於LSA5。所以路由的下一跳爲10.10.12.1(AR1的接口IP)。
3. 同理AR4收到LSA5 LSA5(FA=1.1.1.1,cost-type=2,cost=1,advrtr=3.3.3.3),AR4上FA地址的下一跳是AR2(LSA3學到),所以AR4訪問100.100.100.100的路徑爲AR4-->AR2-->AR1.
若是有要求Area0訪問外部路由只能通過AR3,出了經過修改Cost外,還能夠經過在AR3上進行7/5時抑制FA地址。nssa suppress-forwarding-address,該命令將7/5後的FA地址設置爲0.0.0.0.
1. 那麼如今在R2上LSA對好比下:
LSA5(FA=0.0.0.0,cost-type=2,cost=1,advrtr=3.3.3.3)
LSA7(FA=1.1.1.1,cost-type=2,cost=1,advrtr=1.1.1.1)
根據選路規則,外部成本一致(cost=1)的狀況下比對內部成本,LSA5的FA爲0.0.0.0,所以內部成本是AR2去往advrtr=3.3.3.3的成本,cost=1,LSA7的內部成本是AR2去往FA通過Area1的路徑成本cost=10,所以選擇LSA5路由,使用Area0轉發,所以下一跳爲AR4。
2. AR4去往100.100.100.100的下一跳爲AR3(LSA5學到),AR3的下一跳爲AR2(LSA7),AR2的下一跳又爲AR4,造成環路。
1. OSPF 區域內是無環的,
2. 區域間如果LSA3路由,能夠經過區域結構和水平分割來避免環路(固然也要考慮vlink環路狀況)
3.如果LSA5/7路由,則經過FA路由來避免環路,但FA地址可能會在傳遞過程當中被修改,丟失原始路徑信息,則可能致使環路。