1、背景
我們都知道,任何新技術(shù)的誕生,都是有它一定的自然規(guī)律的。絕逼不是憑白無故的產(chǎn)生。所以,龍哥希望大家學(xué)習(xí)一個技術(shù)時,學(xué)會多關(guān)聯(lián)相關(guān)協(xié)議,聯(lián)想他們各自的特點,學(xué)會把知識串聯(lián)起來,這樣你就不會覺得學(xué)技術(shù)好難啊,就不會總是跟龍哥抱怨:總是記不住怎么辦呢?
會有鏈路狀態(tài)協(xié)議的OSPF產(chǎn)生,是因為前面距離矢量路由協(xié)議存在兩個非常嚴(yán)重的問題:
1、收斂速度緩慢,就是太磨嘰了;2、容易產(chǎn)生路由環(huán)路。
OSPF,全稱Open Shortest Path First,即開放最短路徑優(yōu)先,是由IETF的OSPF工作組在1989年10月開發(fā)的,發(fā)表的RFC為1131, OSPFv1從此誕生,該協(xié)議是基于著名的DijKstra算法。不過版本1一直都是在實驗室中使用,未推廣成功。版本2才開始被廣泛使用,在RFC2328說明。
注:IETF:國際互聯(lián)網(wǎng)工程任務(wù)組(The Internet Engineering Task Force,簡稱 IETF。1985年年底成立。
2、LSDB
LSDB,全稱是Link State DataBase,鏈路狀態(tài)數(shù)據(jù)庫。為啥會有它呢?還不是因為距離矢量路由協(xié)議RIP,是個“傳言”路由協(xié)議,在距離矢量路由協(xié)議中,鄰居說有啥路由,你就信啥,你心中自己都沒有一張地圖,就很容易經(jīng)常被騙,所以會導(dǎo)致環(huán)路。所以O(shè)SPF干脆就給區(qū)域內(nèi)每臺路由器都搞一張地圖,這樣就不會上當(dāng)受騙了,這個地圖就是LSDB,這樣就使得OSPF可以保證區(qū)域內(nèi)無環(huán),區(qū)域間無環(huán),通過一些規(guī)則來限制,這樣區(qū)域內(nèi)外都能保證無環(huán)。下面,簡單介紹一下:
簡單說明一些,區(qū)域內(nèi)路由器一旦配置了OSPF,每臺路由器就會開始泛洪LSA(包含IP地址、掩碼、開銷、網(wǎng)絡(luò)類型等信息),每臺都能收到LSA,會構(gòu)建一張數(shù)據(jù)庫,即LSDB。然后每臺路由器都會以自己為根節(jié)點,構(gòu)建一顆最短路徑樹,然后從這棵樹中計算路由,將最優(yōu)的放進路由表,用于指導(dǎo)業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)發(fā)。
可能上圖小白看著會覺得有點抽象,很難受。行吧,那龍哥動手搭個環(huán)境,聯(lián)系實際場景,可能就會更好理解了。
現(xiàn)在我登錄到每臺設(shè)備給大家演示一下如何查看LSDB(鏈路狀態(tài)數(shù)據(jù)庫):
從以上截圖來看,相信大家應(yīng)該發(fā)現(xiàn)一個現(xiàn)象了,那就是每臺路由器的LSDB是一樣的,說明區(qū)域內(nèi)每臺路由器的“地圖”都是長一個樣的。
然后我再每臺路由器都創(chuàng)建loopback 0,都宣告到OSPF,目的是驗證計算路由。不然上述環(huán)境,直連路由優(yōu)先OSPF路由,所以查看路由表是不會看到OSPF路由的。
創(chuàng)建后隨便登錄一臺路由器就可以了(因為每臺路由器LSB都是一樣的),去查看1類LSA(1類LSA每臺路由器都會產(chǎn)生的)
然后我們在R1查看路由表中的OSPF路由:
我們可以看到只有2條OSPF路由,10.10.10.10沒有在里面,是因為它不是最優(yōu)的,因為它是直連路由,直連路由(優(yōu)先級0)比OSPF(優(yōu)先級10)優(yōu)。
3、報文類型
不管你學(xué)什么協(xié)議,都繞不開學(xué)習(xí)報文。報文,就是協(xié)議之間互相交付的數(shù)據(jù)內(nèi)容。
OSPF在層次模型中,是基于IP層之上的,協(xié)議號是89。
上圖看完,我們是不是就可以定位出OSPF其實也是跟TCP、UDP同一傳輸層級別的協(xié)議了。
現(xiàn)在,是不是明白了,為啥OSPF報文需要LSAck了吧? 因為OSPF不是基于TCP,TCP有確認(rèn)機制,所以O(shè)SPF如果要確認(rèn)機制,就需要開發(fā)一個報文類型,用來做確認(rèn),即LSAck。
現(xiàn)在,我們來總結(jié)一下OSPF的報文類型有:
Hello報文:用于發(fā)現(xiàn)、建立、維護鄰居關(guān)系。
DBD報文:鏈路狀態(tài)數(shù)據(jù)庫的目錄,即摘要信息。
LSR報文:發(fā)現(xiàn)自己缺少哪些摘要信息的,就去請求缺少的LSA。
LSU報文:完整的LSA信息。
LSAck報文:確認(rèn)收到LSA。
本期主題龍哥于大家分享的是OSPF鄰居狀態(tài)機,所以重點介紹一下OSPF的Hello報文。
有些人遇到OSPF鄰居不能建立成功,總是不知所措;或者有些考試應(yīng)付考試,來問龍哥,影響OSPF鄰居建立因素好幾條,總是記不住怎么辦呀?其實,這個問題很簡單,就是你沒有把Hello報文格式內(nèi)容給了解透徹。
你細品Hello報文,再去看影響OSPF鄰居建立的因素,就清晰多了:(1)router id(2)area id(虛鏈路的area id可以不一致,什么意思)(3)認(rèn)證(4)hello/dead(5)區(qū)域類型(option位,e=1、n=0為普通/骨干區(qū)域,e=0、n=0為stub區(qū)域,e=0、n=1為nssa區(qū)域)(6)接口的地址掩碼(ma網(wǎng)絡(luò),LSA2的掩碼描述接口的掩碼,如果掩碼不一致會認(rèn)為有兩臺DR,p2p沒有問題)不在hello包(7)接口mtu(鄰接關(guān)系出問題)(8)ospf進程下靜默
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6808瀏覽量
88743 -
OSPF
+關(guān)注
關(guān)注
0文章
80瀏覽量
14864
發(fā)布評論請先 登錄
相關(guān)推薦
評論