3.3【OSPF】NP十二班次日-OSPF鄰居狀態機及鄰居創建2/1

OSPF鄰居狀態機及鄰居創建

 
【實驗驗證 】OSPF鄰居創建的影響因素
 
#show ip ospf neighbor
FULL(鄰居狀態機)/DR(接口狀態機)
一、hello時間和dead時間不一致
hello時間和dead時間只能在接口下改;
改hello時間,dead時間確定會變;而改dead時間,hello時間不會變, 但一樣影響鄰居的創建;
R1(config-if)#ip ospf hello-interal 5
 
合格的工程師-理解協議去分析它
排錯:
(1)ping看直連是否能通?
直連通,沒有鄰居關係,經過debug方式去查
(2)R1#debug ip ospf packet
        #terminal monitor
能夠收到hello報文的,沒有鄰居關係,極可能hello配置錯誤
(3)......
 
************************************************************************
二、認證類型和認證數據不一致(OSPF頭部)
認證的做用:檢查對端的一個有效性,若是把接口宣告進OSPF,對方可能僞冒和你創建鄰居關係,防止不受信任的設備和你創建鄰居關係,防止非法設備的接入,能夠用認證。
(1)接口認證 :
基於接口的,配了認證的接口在發送的OSPF報文中會攜帶認證;
(2)區域認證:
在區域裏面配了認證,全部屬於這個區域的接口在發送OSPF報文中都會攜帶認證;
注意:若是同時配置了接口認證和區域認證,接口認證優先於區域認證;
 
【實驗】OSPF認證配置 20:28
 
接口認證:
(1)明文認證:
先,判斷認證類型是不是一致的,在此基礎上在看認證密碼是否一致。
明文認證,不安全,能夠經過抓包獲取密碼學到路由條目;
//抓包分析
 
(2)密文認證:
Auth Data:(MD5值,128比特位)OSPF報文的哈希值,哈希值同樣兩端的密鑰同樣,MD5不可逆:數值一點不同,加密出來的就不同 。
 
Auth Crypto Sequence Number有何用?每個OSPF報文裏面的sequence number是不是一致的?
主要是爲了抗重放攻擊的:網購須要支付,須要輸入密碼,支付信息到銀行服務器,銀行把扣款成功的支付信息發給網站,這樣才顯示支付成功了。支付的報文經過 SSL加密的。
黑客:把支付報文截獲之後重放給服務器:銀行服務器會再次扣款,重放個10次8次帳戶就沒錢了。
 
避免重放攻擊:在每個報文裏面有獨立的序列號,服務器已經收到了一個序列號的報文,在下一次收到一樣序列號的報文,服務器是不作處理的,保護我的帳戶。
區域的認證配置:
(1)明文配置
區域下開啓認證功能;
區域開啓認證後,還須要在接口下配置一個密鑰;
(2)密文配置
 
在接口或者區域下面開啓了密文/明文認證,不配密碼也能開啓認證關係
思科裏面,區域下開認證功能,接口下也須要配置key才能夠,仍是須要在接口裏面配置key才能夠;華爲直接在區域下能夠配置認證功能;
即,區域下開認證功能,接口下配置密碼就好了。
區域裏面沒有authtication這個認證參數,直接配置MD5就能夠
57:24
 
authtication 證實,認證
 
區域的認證方式和接口的認證方式不同,區域的認證方式多了個key值,哈希值不同,兩端哈希值不同沒法創建鄰居關係
 
【實驗分析】:
R2上既有MD5/又有區域認證
*************************************************************
三、Router-id衝突
正常狀況下是自動選舉的,也 能夠手動配置;兩端設備Router-id衝突,直連的設備是沒法創建鄰居關係的。在校園網裏面,最好對router-id有個規劃。
【實驗配置】
進程下手工修改Router-id
*************************************************************
四、區域ID不一致
*************************************************************
五、網絡類型不一致
並不必定;
一端是廣播網 ,另外一端是NBMA,是否影響?
Hello報文裏面並無網絡類型參數,仍是因爲hello interval和dead interval不一致形成 的;
廣播網:     10s   40s
NBMA:          30s      120s
點到點:     10s    40s
點到多點: 30s   120s(非廣播的一種解決方案)
虛鏈路:(在創建鄰居之初時才發hello報文,後續是不發的)
 
【實驗配置】01:18
 
鄰居創建完成之後,而且創建一個鄰接的關係。網絡類型不一致, 若是一端是點到點,另外一種 是廣播網,仍然能夠創建 ,可是沒法正常選路,收不到路由;緣由是SPF算法有問題。
 
*********************************************************************
只配置認證沒有K值,哈希值如何計算?
正常狀況下,OSPF與K值作哈希獲得哈希值;思科裏面,若是開啓了認證沒有設置K值,會有一個默認K,經過默認K去作哈希。
 經過一個MD5的值好比:cisco,去和OSPF報文作哈希獲得一個哈希值。
K的ID做用?K-ID不參與哈希的計算,密鑰的索引號,經過索引找到密鑰與OSPF報文進行哈希
 
A上有10個K,B有2個K,實際上發的時候兩端都會發,會把全部的K所有發過去,用每個K去發送報文,只要有 一個匹配成功就好了
 
 
總結:配置MD5認證後,若是 接口下存在多個KEY,創建鄰居前會使用最後一次配置的KEY計算HASH,若是創建成功後告全部KEY值,配置的KEY-ID是不參與HASH計算的,只是一個索引值
 
******************************************************************************
六、掩碼不一致會影響鄰居創建嗎?
不必定
掩碼不一樣直連能夠通嗎?
確定能夠通的,大網包含小網,IP包頭裏面沒有掩碼長度,只有源目的IP
B回包,目的IP是12.1.1.1,能夠匹配本地的直連路由12.1.1.2/24,能夠通
廣播網和非廣播網,若是掩碼不一致,沒法創建鄰居關係,由於在這種網絡類型下創建鄰居關係是要通告二類LSA的,而在二類LSA中是要看掩碼字段的,是必需要看掩碼長度的
 
若是兩邊是點到點、點到多點和虛電路的網絡類型不須要檢查掩碼匹配,則能夠創建鄰居關係
 
**************************************************************************
七、接口地址不在同一網段?
串口中的地址借用,封裝爲PPP,不一樣網段能夠通,自動生成路由
PPP鏈接的創建:
LCP鏈路層的協商:
NCP協議層的協商:須要去+協商上層的應用協議,好比IPv4,協商的時候會發送一個IPCP的報文,在報文裏面就會攜帶本端接口的IP地址,能夠把地址通告給鄰居,鄰居收到之後會在本地生成到達對端的直連路由。
 
Hello報文能夠收到,思科裏面會去檢查源和目的是否在同 一網段,若是不是,會拒收hello報文的。
 
ip unnumbered loopback 0  無符號的地址借用
show ip  os neighbr
 
華爲的設備,不論是地址借用仍是地址,在點到點的網絡裏面都不會去檢測源的;思科的設備,接口下配IP都會檢測源,若是作地址借用,會檢測源,看源地址和本身地址是否在同一網段,若是不在同一網段,會拒收報文。
 
結論:若是在點到點網絡類型中,接口的IP地址使用地址借用的方式是不會執行源檢查,若是直接配置IP地址,一樣會執行源檢查
 
一端是INIT,另外一端沒狀態:
例如:R1-R2經過串口互連,R1上配置IP地址,R2上使用IP地址借用,R1和R2配置OSPF,結果:R1爲空,R2爲INIT(R1上收到報文被丟棄掉)
 
***************************************************************************
八、區域類型不一致
普通區域和特殊區域
E比特位   N/P比特位
E比特位:支持接收和傳遞外部路由,正常置1;
變成stub,比特位置0;
雙方收到報文會 檢測E比特位,若是 不同會拒收hello報文
 
Option選項中的Ebit表示能夠接收和傳遞外部路由(5類LSA),在特殊區域stub和totally stub中Ebit位須要設置爲0.
同時,N/P比特位也是屬於區域類型位(nssa和tollay nssa),若是在hello和DBD報文中N/P 置位,Ebit就須要設置0,這兩個比特位不能同時被設置。
************************************************************************
 九、ACL
經過ACL來過濾一個組播的報文,一端是INIT,另外一端是空的;
經過 ACL也會影響鄰居的創建:
***********************************************************************
十、PASSIVE接口(OSPF中的passive接口 不收發hello報文)
接口上面既不發也不收OSPF報文
 

只創建鄰居關係是不能交互LSA的,只有創建鄰接關係才能交互LSA
一、hello:發現創建和維護鄰居關係
二、DBD:數據庫描述報文:用於通告LSDB中全部的LSA的摘要信息(菜單:LSA就像菜)
三、LSR:鏈路狀態請求:用於請求具體的LSA信息
四、LSU:鏈路狀態更新:用於通告具體的LSA信息(上菜)
五、LSACK:鏈路狀態確認:用於確認接收到的LSA
 
在OSPF中有兩種 確認機制:
一、隱式確認:這個報文不是用於確認的確有確認的功能
hello(看router-id確認:有確認的機制)、DBD、LSU(用於確認LSR)
二、顯式確認:這個報文專門用於確認的(LSACK)
 
爲何ospf須要有一個確認的機制?
OSPF不是一個可靠的協議,用IP來傳的。TCP是一個可靠性協議,TCP中有ACK;OSPF只能根據自身的報文來保證可靠性;
 
 
 
 
 
 
 
 
 
 
 
 
 

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



相關文章
相關標籤/搜索