OSPF(管理距離110)協(xié)議不傳遞路由條目辐宾,它傳遞的是鏈路狀態(tài)信息俄精,并根據(jù)該信息來計(jì)算路由询筏。OSPF的流量使用IP協(xié)議號89,增量更新路由信息竖慧,默認(rèn)1800秒刷新路由嫌套。
Router-ID
Router-ID在網(wǎng)絡(luò)中絕對不可以有重名,否則路由器收到的鏈路狀態(tài)圾旨,就無法確定發(fā)起者的身份踱讨,也就無法通過鏈路狀態(tài)信息確定網(wǎng)絡(luò)位置。
產(chǎn)生方式:
1砍的、手工指定
2痹筛、活動loopback接口中IP最大者
3、沒有活動的Loopback接口廓鞠,則選擇活動物理接口IP地址最大的帚稠。
Router-ID只在OSPF啟動時計(jì)算,或者重置OSPF進(jìn)程后計(jì)算
鄰居(Neighbor)
形成OSPF鄰居床佳,4個必備條件:
1.Area-id(區(qū)域號碼)即路由器之間必須配置在相同的OSPF區(qū)域翁锡,否則無法形成鄰居
2.Hello and Dead Interval(Hello時間與Dead時間)即路由器之間的Hello時間和Dead時間必須一致,否則無法形成鄰居夕土。
3.Authentication(認(rèn)證)路由器之間必須配置相同的認(rèn)證密碼,如果密碼不同瘟判,則無法形成鄰居怨绣。
4.Stub Area Flag(末節(jié)標(biāo)簽)路由器之間的末節(jié)標(biāo)簽必須一致,即處在相同的末節(jié)區(qū)域內(nèi)拷获,否則無法形成鄰居篮撑。
鄰接(Adjacency)
兩臺OSPF路由器能夠形成鄰居,但并不一定能相互交換LSA匆瓜,只要能交換LSA赢笨,關(guān)系則稱為鄰接(Adjacency)未蝌。鄰居之間只交換Hello包,而鄰接(Adjacency)之間不僅交換Hello包茧妒,還要交換LSA萧吠。
實(shí)驗(yàn)拓?fù)淙缦拢?/p>
在R1上配置好OSPF后可以看到R1向224.0.05發(fā)OSPF的hello包。
[R1-ospf-1-area-0.0.0.0]dis this
#
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 12.1.1.1 0.0.0.0
頭部信息:主要包括版本桐筏,區(qū)域ID,認(rèn)證
HELLO包內(nèi)容纸型,主要包括掩碼,hello interval(默認(rèn)10),option(支持的能力)梅忌,priority, dead interval
把R2與R1間的OSPF配置上
[R2-ospf-1-area-0.0.0.0]dis this
#
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 12.1.1.2 0.0.0.0
兩個路由器的關(guān)系從INIT--2WAY-Extart-exchange-loarding-full,六個過程
Apr 7 2018 21:34:52-08:00 R2 %%01OSPF/4/NBR_CHANGE_E(l)[12]:Neighbor changes event: neighbor status changed. (ProcessId=1, NeighborAddress=12.1.1.1, NeighborEvent=HelloReceived, NeighborPreviousState=Down, NeighborCurrentState=Init)
Apr 7 2018 21:34:52-08:00 R2 %%01OSPF/4/NBR_CHANGE_E(l)[13]:Neighbor changes event: neighbor status changed. (ProcessId=1, NeighborAddress=12.1.1.1, NeighborEvent=2WayReceived, NeighborPreviousState=Init, NeighborCurrentState=2Way)
Apr 7 2018 21:35:23-08:00 R2 %%01OSPF/4/NBR_CHANGE_E(l)[14]:Neighbor changes event: neighbor status changed. (ProcessId=1, NeighborAddress=12.1.1.1, NeighborEvent=AdjOk?, NeighborPreviousState=2Way, NeighborCurrentState=ExStart)
Apr 7 2018 21:35:29-08:00 R2 %%01OSPF/4/NBR_CHANGE_E(l)[15]:Neighbor changes event: neighbor status changed. (ProcessId=1, NeighborAddress=12.1.1.1, NeighborEvent=NegotiationDone, NeighborPreviousState=ExStart, NeighborCurrentState=Exchange)
Apr 7 2018 21:35:29-08:00 R2 %%01OSPF/4/NBR_CHANGE_E(l)[16]:Neighbor changes event: neighbor status changed. (ProcessId=1, NeighborAddress=12.1.1.1, NeighborEvent=ExchangeDone, NeighborPreviousState=Exchange, NeighborCurrentState=Loading)
Apr 7 2018 21:35:29-08:00 R2 %%01OSPF/4/NBR_CHANGE_E(l)[17]:Neighbor changes event: neighbor status changed. (ProcessId=1, NeighborAddress=12.1.1.1, NeighborEvent=LoadingDone, NeighborPreviousState=Loading, NeighborCurrentState=Full)
鄰居關(guān)系的建立
1狰腌、Down:這是鄰居的初始狀態(tài),表示沒有從鄰居收到任何信息牧氮。
2琼腔、Init:在此狀態(tài)下,路由器已經(jīng)從鄰居收到了Hello報(bào)文踱葛,但是自己的router-id不在所收到的Hello報(bào)文的鄰居列表中丹莲,表示尚未與鄰居建立雙向通信關(guān)系。在此狀態(tài)下的鄰居要被包含在自己所發(fā)送的Hello報(bào)文的鄰居列表中剖毯。
3圾笨、2-Way:在此狀態(tài)下,兩臺路由器已確認(rèn)可以雙向通信逊谋,鄰居關(guān)系已經(jīng)建立擂达;但是還沒有建立鄰接關(guān)系。這是建立鄰接關(guān)系以前的最高級狀態(tài)胶滋。如果網(wǎng)絡(luò)為廣播網(wǎng)絡(luò)或者NBMA網(wǎng)絡(luò)則選舉DR/BDR板鬓。
鄰接關(guān)系的建立
鄰居狀態(tài)機(jī)變?yōu)镋xStart以后,R1向R2發(fā)送第一個DD報(bào)文究恤,在這個報(bào)文中俭令,DD序列號被設(shè)置為552A(假設(shè)),Initial比特為1表示這是第一個DD報(bào)文部宿,More比特為1表示后續(xù)還有DD報(bào)文要發(fā)送抄腔,Master比特為1表示R1宣告自己為主路由器。
?鄰居狀態(tài)機(jī)變?yōu)镋xStart以后理张,R2向R1發(fā)送第一個DD報(bào)文赫蛇,在這個報(bào)文中,DD序列號被設(shè)置為5528(假設(shè))雾叭。由于R2的Router ID比R1的大悟耘,所以R2應(yīng)當(dāng)為主路由器,Router ID的比較結(jié)束后织狐,R1會產(chǎn)生一個NegotiationDone的事件暂幼,所以R1將狀態(tài)機(jī)從ExStart改變?yōu)镋xchange筏勒。
?鄰居狀態(tài)機(jī)變?yōu)镋xchange以后,R1發(fā)送一個新的DD報(bào)文旺嬉,在這個新的報(bào)文中包含LSDB的摘要信息管行,序列號設(shè)置為R2在第二步里使用的序列號,More比特為0表示不需要另外的DD報(bào)文描述LSDB鹰服,Master比特為0表示R1宣告自己為從路由器病瞳。收到這樣一個報(bào)文以后,R2會產(chǎn)生一個NegotiationDone的事件悲酷,因此R2將鄰居狀態(tài)改變?yōu)镋xchange套菜。
?鄰居狀態(tài)變?yōu)镋xchange以后,R2發(fā)送一個新的DD報(bào)文设易,該報(bào)文中包含LSDB的描述信息逗柴,DD序列號設(shè)為5529(上次使用的序列號加1)。
?即使R1不需要新的DD報(bào)文描述自己的LSDB顿肺,但是做為從路由器戏溺,R1需要對主路由器R2發(fā)送的每一個DD報(bào)文進(jìn)行確認(rèn)。所以屠尊,R1向R2發(fā)送一個新的DD報(bào)文旷祸,序列號為5529,該報(bào)文內(nèi)容為空讼昆。
?鄰居狀態(tài)變?yōu)長oading之后托享,R1開始向R2發(fā)送LS request報(bào)文,請求那些在Exchange狀態(tài)下通過DD報(bào)文發(fā)現(xiàn)的浸赫,而且在本地LSDB中沒有的鏈路狀態(tài)信息闰围。
?R2收到LS Request報(bào)文之后,向R1發(fā)送LS Update報(bào)文既峡,在
LS Update報(bào)文中羡榴,包含了那些被請求的鏈路狀態(tài)的詳細(xì)信息。R1收到LS Update報(bào)文之后运敢,將鄰居狀態(tài)從Loading改變成Full校仑。
?R1向R2發(fā)送LS Ack報(bào)文,確認(rèn)R2發(fā)送的LSA已被R1正確接收传惠。LS Ack用來確保信息傳輸?shù)目煽啃浴?/p>