OSPF鄰居狀態機及鄰居創建
控制層面:RIB表
轉發層面:FIB表
Hello報文的做用:發現創建和維護鄰居關係
\\Hello報文裏的字段
option選項在哪些報文中存在?
一、Hello 二、DBD 三、LSA
OPtion選項:
DN比特位
DN比特位(宕比特位)置位如何防環
運營商和客戶路由重分發形成環路
把OSPF重分發進BGP極可能形成環路
經過DN位解決,若是DN位置位了,這條路由本地是不能作選路的,同時也不會重分發進其餘的協議
DC位
按虛電路:須要的時候才創建虛電路
NP位
兩個比特位:N-NSSA(Hello報文置位,特殊區域類型) P-7->5(LSA置位,LSA的轉換)
E比特位
E置位,接收和轉發外部LSA,能夠接收外部路由,Stub區域不能接收和轉發外部路由
*************************************************************************
OSPF支持5種網絡類型?
一、RFC(IETF)定義的(RFC-協議的開發標準):
點到點、點到多點、廣播、非廣播、虛電路廣播
二、思科私有:cisco的私有網絡類型主要
是對NBMA作的擴展:點到點、廣播、點到多點非廣播
如何經過Hello報文創建鄰居關係?
1.進程下宣告network
(1)前綴12.1.1.0 通配符
12.1.1.0 0.0.0.255 //這種方式去通告有可能把其餘接口也宣告進去
0表示匹配,1表示忽略
精確宣告:12.1.1.0 0.0.0.0 或 直接在接口下去宣告
(2)12.1.1.0 0.0.0.3 把掩碼爲30的都宣告進OSPF(00000011)
2.接口下宣告
當把接口宣告進OSPF,只要被宣告的 接口才會按期發送hello報文,經過組播方式發送,目標地址:224.0.0.5 (ALLSPFRouters),全部開啓了SPF算法的路由器,只能傳1跳;
在配OSPF之後,會 自動生成一個RouterID,惟一 標識一臺設備
OSPF中如何選舉Router-id?
能夠手工指定也能夠自動選舉,手工指定優先於自動選舉。
Router-id自動選舉步驟
一、優先設備上羅輯接口IP地址大的
二、若是沒有羅輯接口的狀況下,優選
活動的物理接口IP地址大的
三、在一臺設備上配置多個OSPFj進程,應該配置不一樣router-id,思科優化,華爲是不一樣的進程用相同router-id,華爲會出現衝突
在一臺設備上配多個OSPF進程,進程之間能夠作路由互通嗎?
不能夠,多個進程之間是獨立的,若是想要互通,也要作重分發
************************************************************************
OSPF鄰接創建
首先要創建鄰居關係,而後選擇性地創建鄰接關係
在不一樣的網絡類型下面,hello報文發送的間隔是不同的
同一個接口能夠宣告進不一樣的OSPF進程?
不行:同一個接口只能宣告進一個OSPF進程
同一個接口能夠宣告進同一個OSPF的不一樣區域?
不行
因此,一個接口只能宣告進一個OSPF進程的一個區域
MA(廣播網)
接口宣告進OSPF,會自動判斷這個接口屬於哪一種網絡類型。
OSPF是如何識別這個接口是屬於哪一個網絡類型的?
根據接口的二層封裝:
若是接口的封裝是ARPA:以太網-broadcast類型
若是接口是串口,而且封裝是HDLC/點到點:點到點的網絡類型
若是是幀中繼的封裝:NBNA(NON_BROADCAST)非廣播
經過串口,都是點到點(看接口的二層封裝)
MA網絡的鄰居創建過程
MA網絡就是Multiaccess多路訪問網絡,在同一網段裏面,路由器和交換機相連,OSPF中須要選出DR和BDR,來減少LSA氾濫
3次握手創建可靠的鄰居關係:
1.兩邊互發hello報文
2.驗證經過,2在active neighbor裏面包含對端的router-id
3.後續1發給2,也會包含2的router-id
創建可靠的鄰居關係的 3種狀態:在hello報文裏包含對端的router-id
1.Down:Down狀態接口開始發送hello報文,1發hello報文給2,2須要將hello報文中 的參數和2本地參數作比對,匹配成功,本地開始接收報文,2會將down狀態改成Init狀態;同理,1也會從down變爲Init
2.Init:須要讓鄰居知道你已經收到他的hello報文了,後續2回覆hello報文,報文中會包含R1的router-id,1看到2回覆的報文中包含有本身的router ID,1會將Init狀態變爲2way狀態;說明一、2創建了單向鏈接
3.2WAY狀態:1變爲2WAY狀態,會給2回,報文中也會包含2的router-id,說明一、2已經創建了雙向鏈接
在R2上經過show ip ospf neighbor看R1的狀態
2WAY是創建鄰居的標誌;說明已經創建了鄰居關係,但還不是鄰接關係
************************************************************************
OSPF的8種鄰居狀態機:(本設備維護鄰居的當前狀態)
一、DOWN 八、 Attempt(NBMA) 二、Init
三、2WAY 四、Exstart
五、Exchange
六、loading 七、FULL
#show ip ospf neighbor
==============================================
OSPF次日課堂筆記
option選項在哪裏報文中存在? (DN\DC\NP\E)
一、hello 二、DBD 三、LSA
OSPF支持的網絡類型:
一、RFC(IETF)定義的:點到點、點到多點、廣播、非廣播、虛鏈路
二、Cisco私有:cisco的私有網絡類型主要是對NBMA作的擴展:點到點、廣播、點到多點非廣播
Router-id的主要做用是惟一標識一臺設備。
OSPF中如何選舉Router-id,能夠手工指定也能夠自動選舉,手工指定優先於自動選舉。
Router-id自動選舉步驟
一、優先設備上邏輯接口IP地址大的
二、若是沒有邏輯接口的狀況下,優選活動的物理接口IP地址大的。
Cisco中同一臺設備上配置多個OSPF進程,每一個進程須要使用獨立的Router-id,不能公用(若是同一設備多進程使用同一個Router-id會對5類LSA的通告形成影響)。
注:一個接口只能宣告進一個OSPF進程的一個區域。
R1#show ip os inter fast 0/0 \\查看宣告進OSPF的接口信息
FastEthernet0/0 is up, line protocol is up
Internet Address 12.1.1.1/24, Area 0
Process ID 1, Router ID 12.1.1.1, Network Type BROADCAST, Cost: 1
Enabled by interface config, including secondary ip addresses
Transmit Delay is 1 sec, State WAITING, Priority 1
No designated router on this network
No backup designated router on this network
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
oob-resync timeout 40
Hello due in 00:00:05
Wait time before Designated router selection 00:00:35
Supports Link-local Signaling (LLS)
Index 1/1, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 0, maximum is 0
Last flood scan time is 0 msec, maximum is 0 msec
Neighbor Count is 0, Adjacent neighbor count is 0
Suppress hello for 0 neighbor(s)
R1#
OSPF的鄰居狀態機:(本設備維護鄰居的當前狀態)
一、DOWN 二、Attempt(NBMA) 三、Init 四、2WAY 五、Exstart 六、Exchange 七、loading 八、FULL
一、DOWN:初始狀況下維護鄰居的狀態爲DOWN,在DOWN狀態下開始發送HELLO報文,廣播網絡類型中hello報文是每隔10S發送一次,而Dead interval是hello interval的4倍,也就是40S,用於維護鄰居關係,若是在dead interval時間範圍內都沒有收到鄰居發送的hello報文,就說明鄰居故障須要斷開鄰居關係。
二、Attempt(NBMA)
三、Init:收到鄰居發送的hello報文而且檢測經過,本地維護鄰居的狀態從DOWN變爲Init,若是處於Init狀態,說明已經和鄰居創建了單向鏈接。
四、2WAY:在鄰居發送的hello報文中包含本身的router-id,說明對方已經收到並確認了本端發送的hello報文,鄰居狀態須要從Init變爲2WAY。若是處於2WAY狀態,說明和鄰居創建了雙向鏈接。2WAY狀態標識鄰居創建完成。
有哪些因素會影響OSPF的鄰居創建?
一、hello和dead時間不一致 (修改hello時間dead時間會自動改變,修改dead時間hello時間不變)
二、認證類型和認證數據不一致 (認證類型=0表示不認證,爲1表示明文認證,爲2表示密文認證)
(1):配置接口認證後,從該接口發送的OSPF報文中會攜帶認證
(2):配置區域認證後,全部屬於該區域的接口在發送OSPF報文中都會攜帶認證
注:若是同時配置了接口認證和區域認證,那麼接口認證優先於區域認證
接口認證配置
(1)明文配置
interface FastEthernet0/0
ip address 12.1.1.1 255.255.255.0
ip ospf authentication
ip ospf authentication-key cisco \\在接口下配置明文認證
ip ospf 1 area 0
duplex half
(2)密文認證 (MD5認證中的序列號做用是抗重放攻擊,一樣的序列號報文只執行一次)
interface FastEthernet0/0
ip address 12.1.1.1 255.255.255.0
ip ospf authentication message-digest \\接口下開啓MD5認證
ip ospf authentication-key cisco
ip ospf 1 area 0
duplex half
end
區域認證配置
(1)明文配置
router ospf 1
log-adjacency-changes
area 0 authentication\\首先須要在區域下開啓認證功能
•R1(config)#interface serial 0
ip ospf authentication-key cisco \\區域開啓認證後還須要在接口下配置認證密碼
(2)密文配置
router ospf 1
log-adjacency-changes
area 0 authentication message-digest \\首先須要在區域下開啓認證功能
•R1(config)#interface serial 0
•R1(config-if)#ip ospf message-digest-key 1 md5 CISCO
三、Router-id衝突
R1(config)#router ospf 1
R1(config-router)#router-id ? \\進程下手工修改router-id(建議使用手工指定)
A.B.C.D OSPF router-id in IP address format
Reload or use "clear ip ospf process" command, for this to take effect
R1(config-router)#
四、區域ID不一致
五、網絡類型不一致 ? (hello和dead不一致) \\若是一邊是廣播網,另外一邊是點到點,能夠正常創建鄰居關係,可是沒法正常選路。
網絡類型 hello interval dead interval
廣播 10S 40S
非廣播 30S 120S
點到點 10S 40S
點到多點 30S 120S
虛鏈路 cisco 無 cisco 無
R2(config-if)#ip ospf network ? \\修改接口網絡類型
broadcast Specify OSPF broadcast multi-access network
non-broadcast Specify OSPF NBMA network
point-to-multipoint Specify OSPF point-to-multipoint network
point-to-point Specify OSPF point-to-point network
六、掩碼不一致 ?
七、接口地址不在同一網段 ?
八、區域類型不一致
九、ACL
十、PASSIVE接口(OSPF中的passive接口不收發hello報文)
R2#show ip os neighbor \\查看鄰居狀態
Neighbor ID Pri State Dead Time Address Interface
12.1.1.1 1 FULL/DR 00:00:38 12.1.1.1 FastEthernet0/0
(鄰居狀態機/接口狀態機)
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">算法
附件列表