前言:
很多同學對動態路由協議不能說不了解,但是懂的也只是一知半解,索性寫一篇從無到有,從基礎入手,帶你重新認識動態路由協議的產生以及優點,採用經典的RIP、OSPF協議來進行入門
動態路由協議
1.1 概述
動態路由協議:各臺路由器上運行相同的協議,這些協議會讓設備間進行溝通,通過學習的方式來獲取未知的路由條目信息,最終實現全網可達
動態路由協議的障礙:
1、安全
2、選路不佳—最嚴重爲出現環路
3、對硬件資源的佔用
動態路由協議的優點:
1、配置管理方便
2、針對拓撲變化自動重新收斂
3、實用於較大複雜的網絡環境
動態路由協議的追求:
1、佔用資源少
2、選擇路徑佳
3、收斂速度快–信息同一時間全網同步,將降低出環的概率;
1.2 分類
1.按照使用範圍(AS 自治系統)
IGP 內部網關路由協議(RIP、OSPF、EIGRP、ISIS)
EGP 外部網關路由協議(EGP V1-V2 BGP V1-V4 V4+)
什麼是自治系統?
自治系統:autonomous system。
在互聯網中,一個自治系統(AS)是一個有權自主地決定在本系統中應採用何種路由協議的小型單位.
這個網絡單位可以是一個簡單的網絡也可以是一個由一個或多個普通的網絡管理員來控制的網絡羣體
它是一個單獨的可管理的網絡單元(例如一所大學,一個企業或者一個公司個體)。
一個自治系統有時也被稱爲是一個路由選擇域(routing domain)。
一個自治系統將會分配一個全局的唯一的16位號碼,有時我們把這個號碼叫做自治系統號(ASN)。
AS自治系統----0-65535 其中1-64511公有 64512-65535私有
以下兩種是基於IGP的分類 基於更新時是否攜帶子網掩碼、基於算法的工作特點
2.按照是否攜帶網絡掩碼
有類別:通告路由時,攜帶主類掩碼,有ABC類之分
無類別:通告路由時,不攜帶主類掩碼,無ABC之分
3.按照算法特點進行分類
DV (Distance Vector) 距離矢量 鄰居間共享路由表 傳聞型協議 更新量小
LS (Link State) 鏈路狀態 鄰居間共享LSA(鏈路狀態通告)主要共享拓撲信息 更新大 爲了防環
1.3 RIP
1.3.1 概述
使用範圍:IGP
三個版本:RIPV1不攜帶掩碼無ABC之分、RIPV2攜帶掩碼有主類之分、RIPNG適用於IPV6
算法:基於貝爾曼·福特算法,典型的DV型路由協議,基於UDP的520端口進行封裝
防環機制:採用條數作爲度量,最大15跳,16跳不可達
組播更新地址:RIPV1 255.255.255.255 RIPV2 224.0.0.9
組播更新代替廣播更新的優勢?爲什麼要這樣做?
誤區:
減少網絡的負載;單播、組播、廣播都是一個包,同樣的數據量對於網絡帶寬的佔用是相同的,真正的區別在於目標的IP地址
答案:
減少了對不相關設備的開銷/開銷
詳解:
廣播->
路由器發送了一個廣播數據幀,來到交換機後,交換機進行洪範行爲,收到數據幀的設備,進行解封裝
1.將一層的比特流轉換程二層的數據幀,讀取目標MAC地址,全F
2.繼續解封裝(拆掉二層),來到三層,查看目標IP,255.255.255.255
3.繼續解封裝(拆掉三層),來到四層,查看目標端口爲UDP的520
此時對於沒有運行RIP協議的設備來說,直接丟棄
組播->
路由器發送了一個組播數據幀,來到交換機後,交換機進行洪範行爲
1.將一層的比特流轉換程二層的數據幀,讀取目標MAC地址,01005E開頭的組播
此時對於沒有運行RIPV2的設備,即沒有加入這個組播內的設備,將不會繼續進行解封裝到三層
路由的更新方式:週期+觸發
支持等開銷負載均衡 默認支持4條,最大6條
Cisco管理距離爲120(華爲中叫做優先級 爲100)
實驗演示中查看:
模擬環境:
GNS3(Cisco)
eNSP(Huawei)
拓撲相同
在RIP中宣告的自己的環回
Cisco:
Huawei:
1.3.2 更新機制
要理解RIP的更新機制,首先要明白都存在那些更新方式,分爲以下三種
同步更新
週期更新
異步更新
觸發更新
同步更新: 同一時刻,所有的路由器同時更新其他路由器傳遞來的路由
缺點:若多個路由器同時傳路由信息,會造成網絡資源佔用過大,造成卡頓
RIP爲什麼不能同步更新?
路由器每30s更新一次,若所有的路由器都在同一時刻進行路由的更新的話,就會造成網絡資源佔用過大
週期更新: 採用週期性的方式更新路由,例如RIP的30s週期性更新路由條目
RIP爲什麼會存在週期更新?
由於RIP中沒有像OSPF、EIGRP協議的hello、ack包這樣用於保活,確認的機制,所以需要一個能持續性的週期來保活與確認,說到底就是爲了保持鄰居間的關係與路由的確認機制
結論:
一個動態路由協議好不好,要看能不能擺脫週期更新,比如OSPF使用hello、ack,但是也存在週期更新(時間比較長,30min更新一次,設計者是個完美注意者);BGP就使用的是TCP,沒有hello包 叫做keepalive包,其作用是一致的
異步更新: 運行一個散列函數,每個路由器隨機在0-0.15中產生一個散列數,用這個散列數乘上30s(週期更新的時間)爲下一次更新的提前量,(如果產生的是0.1 乘上30爲3,即下一次更新爲27s後)使更新時間提前(0-0.15)X 30s,實際更新時間:25.5-30s
1.3.3 防環機制
1.水平分割
若某條路由條目從X接口進,則不能從X接口出
注意:
a.針對的是直線拓撲的防環
b.爲了避免重複更新,MA網絡下 {OSPF採用的是MA的DR/BDR選舉,只有DR才能傳遞與收發路由}
2.最大跳數 15跳 16跳不可達
目的:爲了控制協議的工作半徑
3.毒性逆轉水平分割
毒性:爲了告訴鄰居路由器X路由不可達,將這條路由的條數加大(>15),加毒
逆轉:由於沒有ACK包的確認,導致R1並不知道R2有沒有收到帶毒的路由,所以要打破水平分割
4.抑制計時器
Update 更新 | 每30s發送一次路由信息(rip協議的發送週期間隔) |
---|---|
Invalid 無效 | 當一條路由持續180s沒有再收到,將狀態置爲possibly down ,可能死亡狀態 |
Hold down 抑制 (凍結) | 當一條路由信息無效後180s沒收到,就會抑制從該網段發來的信息,實際作用時間只有60s 爲了防環 |
Flush 刷新 | 當一條路由持續240s沒再收到,就將其從路由表中刪除 |
Update 更新計時器 30s -->就是RIP協議的路由條目的發送週期間隔
Invaild 無效計數器 180s -->當一條路由條目180s沒有在收到,將狀態置爲possibly down,可能死亡狀態,說白了就是死亡了
Flush 刷新計時器 240s -->當一條路由持續240s沒再收到,就將其從路由表中刪除,說白了就是死透了,該直接埋了
Hold Down 抑制(凍結)計時器 -->當一條路由信息無效後180s沒收到,就會抑制從該網段發來的信息,實際作用時間只有60s 爲了防環
爲什麼存在抑制計時器?
案例分析: 若一條路由已經過了無效時間了,即已經死了,但是還沒有死透,此時若收到了此條路由,但是metric比較大,那麼該不該加表呢?理論上是應該加表的,但是由於RIP的特殊的更新方式(週期更新),可能導致下圖的情況,所有路由器都運行了RIP協議,若此時R1的環回出現了故障,180s後對於R1來說自己的環回處於死亡狀態,但是,此時R7或R8由於之前學習到R1的環回,所以將R1的環回傳遞給了R1,傳遞到R1的時候過了180s但是沒有到240s,R1此時肯定是不能加表的,因爲出現環路了(R1從R2學習自己的環回,R2是之前從R1學習的環回)。
所以爲了防環,出現了抑制計時器,抑制計時器實際上只工作60s,因爲180+60=240s,這個時間是刷新計時器,即將無效的路由條目刪除,死透了,直接埋了
1.3.4 彙總
自動彙總:針對所有距離矢量型協議,默認都執行自動彙總,將傳遞的路由彙總爲主類網絡
所有的距離矢量型協議默認都執行自動彙總,將傳遞的路由都會彙總成主類網絡
手工彙總:RIPV2支持手工彙總,僅僅支持VLSM(可變長子網掩碼) 不支持CIDR(無類別域間路由。也稱爲超網)
VLSM(可變長子網掩碼):彙總後掩碼<主類掩碼---192.168.0.0/17
CIDR(超網):彙總後掩碼>主類掩碼---172.16.0.0/17
1.3.5 Cisco、Huawei區別
Cisco和華爲在rip中的區別:
1、Cisco中鄰居間共享路由時,除使用水平分割機制外,同時不工作鄰居間直連網段路由;
華爲中鄰居間共享路由時,在水平分割的同時,傳遞鄰居間直連網段路由,但度量爲16;但華爲的這種16跳會在週期更新幾次後,停止;
2、華爲中毒性逆轉水平分割,不存在逆轉行爲;僅進行毒性行爲,多週期幾次;
實驗抓包演示:
Cisco中並不傳遞鄰居間的直連路由
當R1的環回出現故障後,Cisco設備上是存在毒性和逆轉的,如下抓包的演示
Huawei中的RIP協議傳遞鄰居的網段爲16跳,週期更新數次後,會不傳遞鄰居的直連路由
由於Huawei設備不能對環回接口進行shutdown,所以實驗拓撲變成下圖
當R1連接PC1的接口出現故障時,即毒性逆轉水平分割,但是並不執行逆轉,只是R1單方面的發送毒性路由,週期數次後,根據抑制計時器的存在,將故障路由清除即可,下面是抓包演示
此時,R1還在開心的分享自己的路由條目
當R1連接PC1的接口出現故障時,R1立即發送毒性路由
對於R2路由器並不會去進行逆轉的行爲,多次週期後,毒性路由就消失了(抑制計時器的存在)