從零開(kāi)始了解動(dòng)態(tài)路由協(xié)議,網(wǎng)絡(luò)路由不再迷路!
動(dòng)態(tài)路由協(xié)議的分類(lèi)
按照工作區(qū)分類(lèi):
- 「IGP(Interior Gateway Protocols,內(nèi)部網(wǎng)關(guān)協(xié)議) : RIP OSPF IS-IS」
- 「EGP(Exterior Gateway Protocols,外部網(wǎng)關(guān)協(xié)議):BGP」
按工作機(jī)制及算法分類(lèi):
- 「距離矢量路由協(xié)議:RIP」
- 「鏈路狀態(tài)路由協(xié)議: OSPF IS-IS」
- BGP使用一種基于距離矢量算法修改后的算法,該算法被稱(chēng)為路徑矢量(Path Vector)算法。因此在某些場(chǎng)合下,BGP也被稱(chēng)為路徑矢量路由協(xié)議。
- IGP(內(nèi)部網(wǎng)關(guān)協(xié)議)在同一個(gè)自治系統(tǒng)內(nèi)交換路由信息,IGP的主要目的是發(fā)現(xiàn)和計(jì)算自治域內(nèi)的路由信息。
- EGP( 外部網(wǎng)關(guān)協(xié)議 ) 主要用于AS( 自治系統(tǒng))之間的互聯(lián)。
距離矢量路由協(xié)議
運(yùn)行距離矢量路由協(xié)議的路由器「周期性地泛」洪自己的路由表。通過(guò)路由的交互,每臺(tái)路由器都從相鄰的路由器學(xué)習(xí)到路由,并且加載進(jìn)自己的路由表中,然后再通告給其他相鄰路由器。對(duì)于網(wǎng)絡(luò)中的所有路由器而言,路由器并不清楚網(wǎng)絡(luò)的拓?fù)?,只是?jiǎn)單的知道要去往某個(gè)目的網(wǎng)段方向在哪里,開(kāi)銷(xiāo)有多大。
鏈路狀態(tài)路由協(xié)議
LSA泛洪
- 鏈路狀態(tài)路由協(xié)議通告的的是「鏈路狀態(tài)」而不是路由信息
- 運(yùn)行鏈路狀態(tài)路由協(xié)議的路由器之間首先會(huì)建立鄰居關(guān)系,然后彼此之間開(kāi)始交互LSA( LinkState Advertisement,鏈路狀態(tài)通告)。
- 鏈路狀態(tài)通告,可以簡(jiǎn)單的理解為每臺(tái)路由器都產(chǎn)生一個(gè)描述自己直連接口狀態(tài)(包括接口的開(kāi)銷(xiāo)、與鄰居路由器之間的關(guān)系等 )的通告。
LSDB維護(hù)
每臺(tái)路由器都會(huì)產(chǎn)生LSA,路由器將接收到的LSA放入自己的LSDB( Link State DataBase,鏈路狀態(tài)數(shù)據(jù)庫(kù))。路由器通過(guò)對(duì)LSDB中所存儲(chǔ)的LSA進(jìn)行解析,進(jìn)而了解全網(wǎng)拓?fù)洹?
SPF計(jì)算
每臺(tái)路由器基于LSDB,使用SPF (Shortest Path First,最短路徑優(yōu)先)算法進(jìn)行計(jì)算。每臺(tái)路由器都計(jì)算出棵以自己為根的、無(wú)環(huán)的、擁有最短路徑的“樹(shù)”。有了這棵“樹(shù)”路由器就已經(jīng)知道了到達(dá)所有網(wǎng)段的優(yōu)選路徑
SPF是OSPF路由協(xié)議的一個(gè)核心算法,用來(lái)在一個(gè)復(fù)雜的網(wǎng)絡(luò)中做出路由優(yōu)選的決策。
路由表生成
路由器將計(jì)算出來(lái)的優(yōu)選路徑,加載進(jìn)自己的路由表 ( Routing Table )
鏈路狀態(tài)路由協(xié)議總結(jié)
鏈路狀態(tài)路由協(xié)議有四個(gè)步驟:
- 第一步是建立相鄰路由器之間的鄰居關(guān)系
- 第二步是鄰居之間交互鏈路狀態(tài)信息和同步LSDB
- 第三步是進(jìn)行優(yōu)選路徑計(jì)算
- 第四步是根據(jù)最短路徑樹(shù)生成路由表項(xiàng)加載到路由表