剛做完網絡層動態路由選擇的實驗,寫下此篇記錄實驗過程,鞏固學習成果。
參考書目:《計算機網絡》北京理工大學出版社-劉陽老師編
路由選擇可分為兩種策略:
- 靜態路由選擇策略
- 動態路由選擇策略
? ? ? ? 靜態路由即管理員手動配置路由信息,在網絡拓撲結構發生變化時,需要網絡管理員或者用戶手動修改路由信息。此種路由策略簡單、開銷小,對于機器負擔小,適用于小型、結構較為固定的網絡。
? ? ? ? 動態路由也叫做自適應路由選擇,該種策略的路由信息由路由器內部某些算法根據網絡狀況計算得到,當網絡拓撲結構發生改變時,算法會自動更新路由信息,而無需人為調整。由于需要頻繁運行算法并監測網絡狀況,該種策略對機器開銷較大。
? ? ? ? 本文將會簡單介紹動態路由選擇策略中的兩種內部網關協議:RIP(路由信息協議,Routing Infor Protocol)、OSPF(開放最短通路優先協議,Open Shortest Path First)。
一、路由信息協議 RIP
(一)RIP工作內容
? ? ? ? RIP通過距離向量算法來動態選擇路由,其評價路由好壞的標準為距離的大小:路由器將與它直接連接的設備的距離定義為 1,非直連網絡的距離則是路徑上路由器的數量加 1,距離值越小,則認為路由越優。
????????RIP協議規定一條路徑中最大距離不超過 15,當距離為 16 時,說明該網絡不可達。
? ? ? ? RIP僅與相鄰路由器交換路由信息,交換內容為本路由器路由表中的所有內容。RIP規定相鄰路由器之間每隔 30 秒就應當進行一次數據分享,當收到來自鄰居的路由表時,路由器將會采用距離向量算法更新自己的路由表
(二)距離向量算法
1. 算法描述
? ? ? ? 在接收到鄰居路由器R傳來的路由表信息后,針對其中的每一條路由,算法按如下步驟處理:
- 將路由下一條地址改為路由器 R
- 將跳數(距離)加 1
- 若路由表中不存在該路由,則直接添加到路由表中
若存在該路由,且下一條地址相同,則用該路由替換舊路由信息
若該路由跳數小于已存在的,則替換舊路由
? ? ? ? 當 3 分鐘內沒有收到相鄰路由器的路由表信息時,將該路由器標記為不可達(16 跳)
2. 缺陷
? ? ? ? 采用距離向量算法會產生“慢收斂”現象,當某個網絡出現故障時(如下圖所示),與其相鄰的路由器 R1 將把該網絡標記為不可達(距離設為16),假若 R2 路由更新提前于 R1,R2中傳來的通往故障網絡的路由將會取代 R1 中原本被標記為不可達的路由(算法第3步第3條),在經過很長時間,路由跳數才慢慢抵達 16 跳。
3. 改進辦法
? ? ? ? ①傳遞路由時,不將該路由從接受此信息的端口送出。②當得知路由不可達的 60 s內,不再接收關于該網絡可達的信息。同時立刻向鄰居廣播此信息。
(三)在ENSP中調試RIP
在ENSP中新建如下拓撲
為路由器各個端口配置IP地址
【R1】
system
sysname R1
interface g0/0/0
ip address 12.0.0.1 30
quit
interface LoopBack 0
ip address 1.1.1.1 32
quit【R2】
system
sysname R2
interface g0/0/0
ip address 12.0.0.2 30
quit
interface g0/0/1
ip address 23.0.0.2 30
quit
interface LoopBack 0
ip address 2.2.2.2 32
quit【R3】
system
sysname R3
interface LoopBack 0
ip address 3.3.3.3 32
quit
interface g0/0/0
ip address 23.0.0.1 30
quit
IP地址配置完成后,進行連通性測試:
ping 12.0.0.2
ping 23.0.0.1
?
可以發現,直連網絡可以成功ping通,而非直連網絡無法ping通
接下來為三個路由器配置RIP協議
【R1】
interface g0/0/0
rip version 2
quit
rip
version 2
network 1.0.0.0 // 配置直連地址
network 12.0.0.0
undo summary // 取消路由聚合
quit【R2】
inter g0/0/0
rip version 2
quit
inter g0/0/1
rip version 2
quit
rip
version 2
net 2.0.0.0
net 12.0.0.0
net 23.0.0.0
undo summary
quit【R3】
inter g0/0/0
rip version 2
quit
rip
version 2
net 3.0.0.0
net 23.0.0.0
undo summary
quit
?配置完成后,測試網絡連通性
Ping 23.0.0.1
?
????????通過連通性測試發現,在沒有手動配置路由表的情況下,兩個網絡之間可以相互通訊,說明路由器通過運行RIP協議,相鄰路由器之間共享路由表的方式獲得了包含了所有網絡的路由表。
查看R1路由表
display ip routing-table
從中也可以發現由RIP產生的路由信息。
二、開放最短通路優先 OSPF
(一)OSPF工作內容
? ? ? ??OSPF的路由選擇算法是基于Dijkstra提出的最短路徑算法,該算法通過多個度量值評價路由的好壞:距離、延時、帶寬等。僅在鏈路狀態發生改變時,OSPF協議向本自治系統中所有路由發送信息(泛洪法),發送的是與本路由器相鄰的所有路由器的鏈路狀態(注意與RIP不同,OSPF不會直接發送自己的所有信息,而是只發送一個概覽)。除此之外,OSPF也會定期交換信息(周期較長)。
? ? ? ? OSPF協議根據路由器之間信息,會總結出一個包含了網絡拓撲圖的鏈路狀態數據庫。
(二)OSPF區域
? ? ? ? 為適應大規模網絡路由,將自治系統進一步劃分為更小的區域,每個區域有一個32位的標識符(點分十進制表示)。區域分為兩級:一個主干區域和多個其他區域,主干區域標識符固定為0.0.0.0,每個區域至少有一個路由器連接到主干區域。
(三)在NESP中調試OSPF
在ensp中建立如下拓撲:
為各個接口分配并配置IP地址,并劃分為三個區域:黃色—area1、藍色(主干區域)—area0、青色—area2
AR1:
ospf 1 r 1.1.1.1
area 1
network 10.1.12.0 0.0.0.255 // 注意這里子網掩碼要使用反碼AR2:
un in en
ospf 1 r 2.2.2.2
area 1
network 10.1.12.0 0.0.0.255
area 0
network 10.1.23.0 0.0.0.255AR3:
un in en
ospf 1 r 3.3.3.3
area 0
network 10.1.23.0 0.0.0.255
area 2
network 10.1.34.0 0.0.0.255AR4:
un in en
ospf 1 r 4.4.4.4
a 2
n 10.1.34.0 0.0.0.255
?測試網絡連通性
(忘記截圖了,略過)
使用OSPF相關命令,可以幫助我們查看OSPF是怎樣工作的
display ospf peer //查看OSPF鄰居的信息
display ospf interface //查看OSPF接口的信息
display ip routing-table protocol ospf //查看路由器上的OSPF路由表
display ospf lsdb //查看鏈路狀態數據庫
用上面的命令查看一下路由器R2
ospf接口信息:
鄰居信息:
?接口狀態數據庫:
路由表