深度剖析OSPF協議(6類鏈路通告和4類區域設置)

前述

OSPF的鏈路狀態通知是OSPF理論知識的精髓、難點。瞭解鏈路狀態通知的工作狀態,有助於我們更好的維護網絡。本文的講解需要讀者對OSPF有大致瞭解,會簡單的配置,理解OSPF的“area”概念。在講解實驗之前,我們先弄清楚幾個概念。

邊界路由器分類

  • 區域邊界路由器(ABR):位於兩個區域(area)之間的路由器。
  • 自治系統邊界路由器(ASBR):位於OSPF和其它路由區域之間的路由器。

鏈路狀態通知的分類

  • LSA1:區域內所有路由器都會發送“消息”,用於構建同區域(area)的網絡拓撲圖。
  • LSA2:區域內指定路由器發送的“消息”,這裡注意,在廣播網絡的區域,由指定路由器(DR)發送的,在某些點對點網絡中,不需要選舉指定路由器(DR),就沒有該“消息”。
  • LSA3:區域間,由區域邊界路由器(ABR)發送的,用於不同區域間“消息”的轉發,使域內路由器能學習到域外的網絡信息。
  • LSA4:自治系統邊界路由器( ASBR)發送的,用於向OSPF區域宣告自己的存在
  • LSA5:自治系統邊界路由器(ASBR)發送的,用於向OSPF區域宣告“外部網絡”,即非OSPF區域的網絡信息。
  • LSA7:和LSA5類似,也是由ASBR發送的,也是宣告非OSPF區域的網絡信息,是非絕對末梢區域(nssa)特有的鏈路通告,這個後面講解。

OSPF的四個特殊區域

  • 末梢區域:該區域屏蔽LSA5,會向區域中引入一條默認路由。
  • 完全末梢區域:該區域屏蔽LSA4、LSA3、LSA5,它比前者更加嚴格,連域間路由信息也會被屏蔽。

注意:以上兩個區域不允許主幹區域(area 0)、不允許虛鏈路存在、且無自治系統邊界路由器(ASBR)。

  • 非絕對末梢區域:該區域類似於末梢區域,它也會屏蔽LSA5,但該區域允許自治系統邊界路由器(ASBR)的存在,它將LSA5轉變為LSA7,向區域內發送。
  • 完全非絕對末梢區域:該區域類似於完全末梢區域,它不僅會屏蔽LSA5,還會屏蔽LSA3和LSA4,同時也會將LSA5轉變為LSA7,向區域內發送。

實驗過程

實驗講解環境:Cisco Packet Tracer 7.2

深度剖析OSPF協議(6類鏈路通告和4類區域設置)

網絡拓撲圖

以上網絡拓撲圖中,基礎的OSPF已經配置完畢,下面我們先來研究一下LSA,這裡以R3舉例,在R3上打入show ip ospf database,如下圖所示:

深度剖析OSPF協議(6類鏈路通告和4類區域設置)

圖2 show ip ospf database

該圖中,我們可以清楚的看到,LSA1有3條記錄,表示在area1區域中有3臺路由器,R1、R3和R4。其中R4是指定路由器(DR),所以LSA2由路由器4發送。LSA3中,包含了area0中的兩個互連網段10.0.0.0/30和10.0.0.4/30,以及三個局域網段172.(23-25).0.0/16,也包含了area2中的廣播網段192.168.1.0/24和三個局域網段172.(17-19).0.0/16,所以,LSA3是域間路由信息。而域外的LSA5中包含了RIP網段的一個互連網段10.0.0.8/30和三個局域網段172.(20-22).0.0/16。所以,LSA5是域外路由信息。

實驗操作講解

深度剖析OSPF協議(6類鏈路通告和4類區域設置)

圖3 R3路由表

圖3中,正常配置OSPF後,R3的路由表,我們發現即使在模擬環境下,R3的路由表也略顯“臃腫”,這樣會降低路由器的工作效率,OSPF中“區域”的配置,最終目的就是使路由表能夠“瘦身”,從而提高路由器的工作效率,最終提高我們追求的網速。

深度剖析OSPF協議(6類鏈路通告和4類區域設置)

圖4 area1區域

觀察area1區域,發現該區域出口點只有一個R1,也就是說域外路由不需要逐條學習,只需要用一條默認路由替代就可以了,這裡引出“末梢區域”的概念,該區域禁止LSA5通告,相當於禁止該區域學習域外路由,而用一條默認路由替代。操作方法是分別在R3、R4、R1上輸入Router(config-router)#

area 1 stub 就可以了。

深度剖析OSPF協議(6類鏈路通告和4類區域設置)

圖5 R3路由表

圖5中我們可以看到,外部路由都沒有了,剩下的是域間路由以及一條默認路由,我們成功為路由表“瘦身”。實驗中我們發現,域間路由好像也是多餘的,我們還可以進一步將該區域改為“完全末梢區域”,完全末梢區域不僅禁止LSA5通告,也禁止LSA4和LSA3通告,該指令只需要在區域邊界路由器(ABR)上輸入R1(config-router)#area 1 stub no-summary

就可以了。

深度剖析OSPF協議(6類鏈路通告和4類區域設置)

圖6 R3路由表

圖6中,我們仍以R3路由表距離,查看路由表,發現域間路由也沒有了!R3路由表“瘦身”成功!

深度剖析OSPF協議(6類鏈路通告和4類區域設置)

圖7 向末梢區域引入兩條新路由

圖7中,由於網絡改造,我們需要把外部兩個網絡172.(30-31).0.0/16引入到area1,注意,area1是末梢區域,是禁止LSA5通告的,R3變成了自治系統邊界路由器(ASBR),末梢區域是不允許ASBR存在的!實際過程中,會出現如下圖的錯誤提示。

深度剖析OSPF協議(6類鏈路通告和4類區域設置)

圖8 末梢區域禁止引入外部路由

那麼這個時候我們怎麼辦?我們引出“非絕對末梢區域”概念,將LSA5轉變為LSA7,進行通告就沒問題了,而且還保留了末梢區域的基本特性。只需要在area1區域的每臺路由器上輸入Router(config-router)#

area 1 nssa就可以了。

深度剖析OSPF協議(6類鏈路通告和4類區域設置)

圖9 R4路由表

我們觀察R4路由表,發現兩條“E2”類型的外部路由被成功引入,但保留了末梢區域的特性,禁止LSA5引入,所以我們看不到來自RIP區域的外部路由條目。但我們發現域間路由又出現了,我們不希望LSA3的通告,希望還是像原來一樣,用一條默認路由替代這些域間路由信息,這個時候引出最後一個區域概念:“完全非絕對末梢區域 ”,該區域屏蔽LSA3、LSA4、LSA5,用默認路由代替,但允許LSA7。只需要在區域邊界路由器(ABR)上輸入R1(config-router)#

area 1 nssa no-summary就可以了。輸入好後,我們再觀察R4路由表,如下圖所示:

深度剖析OSPF協議(6類鏈路通告和4類區域設置)

圖10 R4路由表

最終,我們實現了最終效果,既用一條默認路由屏蔽了LSA5、LSA4、LSA3通告的域外和域間路由信息,也實現了LSA7可以通告給該區域,另外新加入的域外路由條目成功寫入路由表!

總結

OSPF配置相對容易,但是真正理解OSPF協議的工作原理,還是有點難度的,通過模擬實驗的方式,向大家闡述了鏈路狀態通知(LSA)、末梢區域(stub)、非絕對末梢區域(nssa)等概念,希望對大家深入學習OSPF路由協議帶來些許幫助。


分享到:


相關文章: