3.4【OSPF】NP十二班第三天-OSPF鄰居創建條件實驗&鄰接創建2

OSPF鄰居創建條件&鄰接創建

 
一個接口能夠配多個地址,一個主地址,一個從地址
R1(config-if)#ip add 192.168.0.1 255.255.255.0 secondary
 
OSPF鄰接關係的創建:兩端是點到點的網絡類型確定是能夠創建鄰接關係的,在廣播網和非廣播網中只和DR和BDR創建鄰接關係,而DRother之間只能創建鄰居關係,其餘的網絡類型中所有創建鄰接關係
 
鄰居:交互Hello報文創建鄰居關係但不交互LSA
鄰接:只有在創建鄰接的設備上纔會交互LSA,LSA-鏈路信息,經過交互LSA構建LSDB,有了LSDB,執行SPF算法,計算到達目的端的最短路徑
 
2-way ---> exstart:開始創建鄰接關係:
若是能夠創建鄰接關係,鄰居狀態機會從2WAY過渡到exstart,過渡到exstart狀態後 ,雙方開始發送 DBD報文,通告LSA的摘要信息
 
鄰居狀態變換:
 
Down->Attempt:在NBMA網絡環境中才有,NBMA環境中,經過手動的方式配置 目標IP地址,單播方式創建鄰居,會存在一個Attempt狀態
 
鄰居狀態變換(鄰接關係)
 *****************************************************************
ExStart和Exchange
 
兩端變爲ExStart後,雙方開始發送DBD報文,雙方發送的第一個 DBD報文裏面不包含LSA,第一個DBD報文的主要做用是用來選舉主從關係。
 
一、爲何DBD報文須要選舉主從?(隱示確認的報文)
選舉主從的主要目的是爲了保證DBD報文交互過程當中的可靠性
二、主/從怎麼選?
主從經過router-id選舉,大的成爲主,小的成爲從
DBD報文在主從選舉涉及到幾個bit位:(I M MS)
一、 I=init,若是I比特位設置爲1;,說明是第一個DBD報文
二、M=More,若是M比特位設置爲1,說明後面還有更多的 DBD報文,若是爲0,表示是最後一個DBD
三、MS=Master/slave,若是設置爲1,表示爲主;若是爲0,表示爲從
 
MTU不會影響鄰居的創建但會影響鄰接的創建
 
DBD報文中 同 時會 攜帶你接口MTU值,經過這種 方式檢測兩端的MTU是否一致,若是 收到的DBD報文中多攜帶的MTU值大於接收接口的MTU值, DBD報文會被丟棄掉;小的話能夠正常接收
 
如何經過DD報文保證它的可靠性?
經過序列號seq來保證它的可靠性。
  ExStart:開始選舉主從,主從尚未選舉出來
  Exchange:主從已經選舉出來,開始發送攜帶LSA信息的DD報文
 
 變爲Exchange狀態,
後續,從會引用主,用主的序列號做爲本身的序列號開始發送DD報文;這樣主就已經知道從已經收到他的DD報文;
後續,主會把序列號seq+1發給從,這樣,從就知道主已經收到了他的DD報文;若是序列號不變,從就會將這個報文重傳,重傳時間5秒鐘。
 
從什麼狀況下從exstart變爲exchange?主在什麼狀況下變爲exchange?
從一旦肯定主是誰,就會從exstart變爲exchange;主在收到從的回覆後,變爲exchange
 
如何看沒有更多的LSA信息?
看M比特位,若是此時從的 M=0,表示從這邊後續已經沒有的DD報文,DD報文交互完,沒有更多的LSA信息 ;
若此時主還有,從沒有了,從 還會 按主序列號來回,但M比特位一直爲0;
若是主沒有更多序列號,從還有 ,主還會一直生成序列號讓從去傳。
繼續傳, 直到兩端都沒有之後纔算傳完,傳完之後會從Exchange過分到Loading狀態;
 
DBD報文交互的時候還會檢測一個MTU值,有沒有可能兩端的狀態都是處於exstart狀態?一端是exstart,一端是exchange?
 1.主MTU大於從MTU
M>S,從是否會接收主發送的DD報文?從不接收,它會認爲本身是主,它的狀態不會從exstart過分到exchange;反過來,主是能夠接收從的,但收不到從發過來的「確認」;兩端過渡到exstart狀態;
2.主MTU小於從MTU
M<S,從能夠接收主發送的DD報文,從已經確認了主,從會過渡到exchange;主不接收從發過來的確認報文,主仍是Exstart狀態。
 
兩端如何變爲Loading狀態?
一、兩端的MTU值設爲同樣的
二、忽略MTU值
接口下 配置忽略MTU檢查
ip ospf mtu-ignore
 
 
【實驗驗證】36:40
 

Loading
若是接收到的DD報文中M比特位=0,維護鄰居的狀態從exchange過渡到loading。在Loading狀態下開始發送LSR和 LSU
一、鏈路狀態請求列表:將須要請求的LSA放到列表中,並經過LSR請求。( 收到LSA摘要信息後須要和本身的LSDB作對比,若是本身的LSDB中不存在該LSA,就須要將LSA放入到請求列表中作請求處理。若是存在須要執行LSA比較流程。)
二、鏈路狀態重傳列表:若是發送了LSR,可是沒有收到LSU,就須要將這部分LSA放到重傳列表中從新請求。從新發送LSR,默認的重傳時間是5秒鐘。
show ip os inter fast 0/0
重傳時間是5秒鐘
 
若是這兩張列表中其中有一個列表不爲空,就須要處於loading狀態。只有在兩張列表都爲空的狀況下,纔會從loading過渡到FULL的狀態。
 
【實驗驗證】模擬處於loading狀態
 =================================================================
 
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 message-digest-key 1 md5 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
 
注:配置MD5認證後,若是接口下存在多個KEY,創建鄰居前會使用最後一次配置的KEY計算HASH,若是創建成功後經過全部KEY值。配置的KEY-ID是不參與HASH計算的,只是一個索引值。
 
三、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
 
六、掩碼不一致 ? \\只有在廣播、非廣播網絡型中才會檢查掩碼,緣由是由於這兩種網絡類型中都須要生成2類LSA,而2類LSA中須要掩碼長度,而在點到點、點到多點和虛鏈路的網絡類型中不須要檢查掩碼匹配。
七、接口地址不在同一網段 ? \\若是在點到點網絡類型中,接口的IP地址使用地址借用的方式是不會執行源檢查的,若是接口直接配置IP地址,一樣會存在源檢查。
 
例:R1----R2經過串口互聯,R1上配置IP地址,R2上使用IP地址借用,R1和R2配置OSPF,結果以下:
 
R1#show ip os neighbor
 
R2#show ip os neighbor
 
Neighbor ID    Pri  State          Dead Time  Address        Interface
12.1.1.1          0  INIT/  -        00:00:32    2.2.2.1        Serial1/0
 
八、區域類型不一致 \\option選項中的Ebit表示能夠接收和傳遞外部路由(5類LSA),在stub和totllay stub中Ebit位須要設置爲0.同時N/Pbit位也是屬於區域類型位(nssa和tollay nssa)。 若是在hello和DBD報文中N/P位置爲,Ebit位就須要設置0,這兩個bit位不能同時被設置。
九、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
                    (鄰居狀態機/接口狀態機)
 
 
OSPF的報文類型:
一、hello:發現創建和維護鄰居關係
二、DBD(數據庫描述報文):用於通告LSDB中全部的LSA的摘要信息(LSA的頭部信息)
三、LSR(鏈路狀態請求):用於請求具體的LSA信息
四、LSU(鏈路狀態更新):用於通告具體的LSA信息
五、LSACK(鏈路狀態確認):用於確認接收到的LSA
 
在OSPF中有兩種確認機制:一、隱式確認(hello、DBD、LSU)  二、顯示確認(LSACK)
 
OSPF鄰接關係的創建:在廣播網和非廣播網中只和DR和BDR創建鄰接關係,而DRother之間只創建鄰居關係。其它的網絡類型中所有創建鄰接關係。
 
若是能夠創建鄰接關係,鄰居狀態機會從2WAY過渡到exstart,過渡到exstart狀態後,雙方開始發送DBD報文。雙方發送的第一個DBD報文中不會攜帶LSA摘要信息,第一個DBD報文的主要做用是選舉主/從關係。
 
一、爲何DBD報文須要選舉主從?
  選舉主從的主要目的是爲了保證DBD報文交互過程當中的可靠性。
二、主/從怎麼選?
  主從經過router-id選舉,大的成爲主,小的成爲從。
 
DBD報文在主從選舉涉及到幾個bit位: (I M MS)
一、I=init, 若是I比特位設置爲1,說明是第一個DBD報文
二、M=More, 若是M比特位設置爲1,說明後面還有更多的DBD報文,若是爲0,表示是最後一個DBD
三、MS=Master/slave,若是設置爲1,表示爲主,若是爲0,表示爲從
 
DBD報文中同時會攜帶接口MTU值,經過這種方式檢查兩段的MTU值是否一致。若是收到的DBD報文中攜帶的MTU值大於接收接口的MTU,那麼DBD報文會被丟棄。
 
interface FastEthernet0/0
ip address 12.1.1.2 255.255.255.0
ip mtu 1300
ip ospf mtu-ignore  \\接口下配置忽略MTU檢查
duplex half
end
 
若是接收到的DD報文中M比特位=0,維護鄰居的狀態從exchange過渡到loading。在loading狀態下開始發送LSR和LSU。
 
在loading狀態下有兩張列表:
一、鏈路狀態請求列表:將須要請求的LSA放到列表中,並經過LSR請求。(收到LSA摘要信息後須要和本身的LSDB作對比,若是本身的LSDB中不存在該LSA,就須要將LSA放入到請求列表中作請求處理。若是存在須要執行LSA比較流程。)
二、鏈路狀態重傳列表:若是發送了LSR,可是沒有收到LSU,就須要將這部分LSA放到重傳列表中從新請求。從新發送LSR,默認的重傳時間是5秒鐘。
 
若是這兩張列表中其中有一個列表不爲空,就須要處於loading狀態。只有在兩張列表都爲空的狀況下,纔會從loading過渡到FULL的狀態。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">算法





附件列表

相關文章
相關標籤/搜索