標籤:ospf
ospf rip eigrp
分類 IGP 無類 鏈路狀態 IGP 無類 距離向量 IGP 無類 混合
封裝 IP 89 udp520 IP 88
更新地址 224.0.0.5-6 224.0.0.9 224.0.0.10 也可以neighbor指單播
更新方式 定時(30分)完整 完整(30秒定時觸發 增量 觸發
老化(60分)觸發
AD 110 120 匯總5 外部170 內部90
度量 頻寬 跳數 5個K值(預設頻寬 延時)
##########################################################################################
◆LSA 分為7類
鏈路狀態協議傳遞的不是路由,而是LSA(鏈路狀態原因資訊)包括路徑和拓撲。
- 一個地區內的LSA是同步,一致的。
- LSA放到LSDB,同步後運行SPF演算法形成SPF樹,根據SPF樹產生路由表
◆鏈路狀態協議的結構
- 鄰居表 通過hello包形成和維護
鄰居資料庫
包含自己承認的鄰居名單
- 拓撲表
LSDB
包含所有路由器及其所串連的網路;對比eigrp只有鄰居通告的路由資訊
同一地區內LSDB內容同步
- 路由表
轉寄資料庫
達到目的的最佳路徑列表
◆鏈路狀態協議的結構:去適應大型網路,隔離大量的LSA泛洪
網路分層
- 鏈路狀態協議需要對網路分層
- 層次包括 2層:骨幹 地區 0。。 傳遞路由
非骨幹地區 。。 接入終端 路由匯總給骨幹。
◆地區特點:
- 減少路由條目 手動匯總
- 拓撲變化隻影響自己的地區
- LSA在自己地區泛洪
- 層次化設計
◆地區術語:
非骨幹地區必須和骨幹地區相連,防環;地區之間類似於距離向量的方法來選路,通過骨幹區 域知道非骨幹地區
ABR 區域界限路由器,即串連地區0和非骨幹地區的路由(串連非骨幹地區的路由器不能稱為 ABR)一個路由器同時屬於兩個地區,屬於不同地區的是介面。對比BGP一個路由器只能屬 於一個地區
ASBR 把外部路由重分布到ospf內的路由器 除了特殊地區 ofpf stub
OSPF 鄰居 :
hello更新時間10秒,死亡時間40秒 前提- 點到點網路和廣播
hello更新時間40秒,死亡時間120秒 前提- NBMA ;點到多點;點到多點非廣播
路由器交換hello資訊建立鄰居
hello包內容:hello & dead 時間必須一致
area ID 必須一致
認證密碼 必須一致
stub 區的flag 欄位 普通地區和stub不能稱為鄰居
介面MTU 必須一致 ,除非配置介面忽略MTU.ip ospf mtu ignor
MA網路中,介面掩碼必須一致。
框架轉送網路,隔離組播也會無法形成鄰居關係
ACL過濾資料包 導致無法建立鄰居
除此之外還包含 router ID唯一標識路由器;neighbor;
鄰接:鄰接關係同步LSA .。鄰居關係,不同步LSA
是否形成鄰接 由OSPF網路類型決定的
- 點到點廣域網路
鄰居之間形成完全鄰接狀態
- 區域網路鏈路
與DR BDR 形成完全鄰接狀態 MA網路
點到多點 點到多點非廣播 相鄰裝置形成鄰接關係
與其他路由器只形成鄰居關係,雙向狀態Drothers
- 路由更新和拓撲資訊只在形成鄰接關係的路由器之間傳遞
- 一旦形成鄰接,將同步LSA
- LSA將在一個地區內泛洪
◆OSPF演算法 SPF演算法
10~8 / 介面頻寬(路由入方向的介面) 單位 bps 例如100M鏈路的cost值就是1
◆LSA 序號
- 每個LSA 在LSDB中都有一個序號
- 序號編排方案是一個4位元組的數字,從0X80000001 到 0X7FFFFFFF
- 每隔30分 路由的LSA泛洪一次,保證資料庫同步,每次泛洪,序號 +1
- 最終,一個LSA會從 0X7FFFFFFF 迴圈回 0X80000001。若發生這種情況,這個LSA會被始發路由 器將老化時間設定為60分,並從LSDB中清除。
- 當路由器遇到兩個一樣的LSA,必須確定哪個最新,即序號高的最新。
◆LSA序號和存留時間
查看LSA序號 :show ip ospf database
◆鏈路狀態協議的結構:LSA
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/76/04/wKiom1ZIK8uQ4Sj0AAGiwR2-OsU331.jpg" title="QQ圖片20151115145752.jpg" alt="wKiom1ZIK8uQ4Sj0AAGiwR2-OsU331.jpg" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/76/02/wKioL1ZILGLQCuUrAADFJYUzumA670.png" title="QQ圖片20151115145906.png" alt="wKioL1ZILGLQCuUrAADFJYUzumA670.png" />
路由器收到一條LSA,如何判斷本地是否已經存在這條LSA?
通過LSA頭部資訊,包括3個資訊,完全一致才是同一條LSA
show ip ospf database
1,類型 1--7類: router--1類
2,通告路由器: ADV ROUTER
3,LSA名字: Link-ID
判斷一條LSA是否是最新的,出來用序號區別外,還可以用老化時間和校正和區分!!
############################################################################################################# OSPF 包類型 ####################
HELLO 建立和維持鄰居關係 網路類型決定10秒還是30秒
DBD LSA的頭部訊息 6個訊息 3個區分是否同一個LSA. ; 3區別是否是最新的LSA
LSA類型,通告路由器,link-ID; 序號存留時間 校正和
link-state request 也是LSA頭訊息
link-state update 完整LSA訊息
link-state ACK
其中只有LSU需要ACK確認
LSU 來確認 LSR
DBD 自己確認自己
OSPF 包頭格式
|
|
|
|
|
|
|
|
|
|
version
number |
type |
packet
length |
router
ID |
area ID |
check
sum |
authentication
type |
authentication |
date |
version v2--IPv4; v3--IPv6
type 1-5 5種包類型
routerID 標識路由器
area-ID 基於介面。。。。ISIS 地區基於路由器
校正和 確定包麼有被篡改
認證類型 0:不認證,預設 1:明文 2:MD5
authentication 根據類型 空 密碼 散列值
DATE 若是DBD:本地所有的LSA頭
LSR:想要的LSA頭
LSU:完整LSA
ACK:收到的LSA頭
hello包:包括內容
router ID
★ hello dead 時間
neighbor 收到的hello包含自己routerID
★ areaID
router priority
DR IP address
BDR IP address
★ authentication password
★ stub area flag
◆ OSPF路由器ID
- 每個運行ospf的路由器都有一個routerID
- 在LSDB中,通過routerID識別不同路由器
- 預設,routerID是路由器活動介面IP最高的
- 若配置loop back 則他將成為routerID,若有多個loop back 則選IP最高的
- 配置 進程下 router-ID x.x.x.x
- 建議用loop back 口做routerID
routerID 配置多少就是多少 沒配置 就是loop back IP 最大的 沒有loop back就選活動介面IP最大的
改變routerID 要重啟進程才會生效clear IP ospf process ;這個過程會重新收斂,會造成斷網。
routerID相同將不能形成鄰居關係。不相鄰路由器,或不同地區路由器routerID一樣可以建立鄰居但會影響路由傳遞。
◆DR BDR選舉
- 利用組播交換hello (優先順序欄位)
- 優先順序最高當選DR,次高為BDR
- 優先順序相同,用routeID比較
◆優先順序
- 介面下 命令 ip ospf priority number
- 不同介面可能被分配不同值
- 預設 1 。範圍 0 - 255
- 優先順序為 0 將永遠不參與DR BDR選舉
- 一個路由器不是DR 或BDR,就是DRother
- DR BDR 非搶佔,但可以設定為 0 主動棄權,同時BDR變為DR,不會出現更高優先順序的成為DR,剩 下的選舉BDR
- 選舉時間40秒
◆ DR/BDR選舉完成後,DRrother只和DR、BDR形成鄰接關係。
所有路由器組播hello包到地址224.0.0.5 以便他們能跟蹤其他鄰居的資訊,即DR將泛洪LSU到 224.0.0.5
Drother 只組播LSU到all drother地址224.0.0.6。只有DR BDR監聽這個地址
所有Drother泛洪 LSU 到224.0.0.6,這個地址只有DR BDR能接收,Drother將丟棄這個組播地址,然後DR 泛洪 LSU 到224.0.0.5,這個地址所有路由器都能收到 ,這樣DR BDR和所有drother的通訊。
當有鏈路斷了 泛洪老化時間為3600秒 序號+1的LSA
當DR當掉,BDR不存在情況下 ,Drother發的更新,其他路由器需要40秒dead時間才能知道,所以Drother需要40秒才能收斂
在有BDR的情況下,Drother的更新224.0.0.6也會被BDR收到,當BDR 4秒沒收到DR關於DRother的更新,BDR就會接替DR,泛洪224.0.0.5。所以其他路由器只需4秒就能收斂。
########################################################################################
◆ 過程
172.16.5.1 172.16.5.3
RA-----------down state---------RB
-----hello 224.0.0.5-->RB->init state
<----單播包含RA的資訊----- 觸發更新
two-way state---單播包含RB的資訊-》RB 也進入two-way state
two-way state 使用HELLO中的優先順序欄位後routerID選舉DR BDR 40秒時間,所以two-way會卡40 秒,如果不需要選DR BDR 就瞬間進入下一狀態。
exstart state
選舉master,master不一定是DR,因為DR使用優先順序選舉,master使用routerID
使用DBD報文中的routerID
RA/|\----------I will start exhange 攜帶自己routerID------------->RB
<--NO,I will start exchange 攜帶自己routerID(地址高於RA)--
Exchange state
<-------------here is a summary of my LSDB------------------
-------------here is a summary of my LSDB------------------>
Loading state相互請求自己所需
LSR ----------RA需要的路由------------->
<---------RA需要的路由-------------LSU
LSACK---------------------------------->
FULL state 然後運行SPF產生路由表
DBD報文,如何?自己確認自己?
DBD欄位包括3位
init是否是初始 more是否有後續報文 master是否是主
第一個DBD的flag欄位3位都為1 即flag=7,隨機產生一個序號。對端也是發送flag=7的DBD
比較routerID後 用對端序號發給對端 flag= 2.對端收到200的序號
對端發送序號位201 flag=3 ,直到主傳到最後一個報文時 flag = 1
確認完成!!!
待續!!!
CCNP學習筆記3-路由部分--OSPF