1. 程式人生 > >網路基本功(五):細說路由(下) 網路基本功(五):細說路由(下)

網路基本功(五):細說路由(下) 網路基本功(五):細說路由(下)

網路基本功(五):細說路由(下)

 

轉載請在文首保留原文出處:EMC中文支援論壇https://community.emc.com/go/chinese image001.gif

 

 

介紹

 

靜態路由是指由網路管理員手工配置的路由資訊。當網路的拓撲結構或鏈路的狀態發生變化時,網路管理員需要手工去修改路由表中相關的靜態路由資訊。動態路由是指路由器之間相互通訊,傳遞路由資訊,利用收到的路由資訊更新路由表的過程。是基於某種協議來實現的。本文詳細闡述這兩者的實現過程。

 

更多資訊

 

靜態路由:

 

靜態路由是指由網路管理員手動配置在路由器上的表項。對於特定的目標地址,以及在小型或穩定的網路環境,手動配置靜態路由可以非常成功地應用。通過使用靜態路由,網路管理員確定了通向一目標網路的路徑。

一個重要的概念是:路由的核心在於下一跳。下一跳是一個特定路由器的角度來看,距離目標地址更近一步的路由器。下圖顯示了一箇中型路由拓撲。從R1的角度來看,R2同時是到達192.168.3.0以及192.168.4.0的下一跳。

image002.jpg

初始狀態下,除了已經啟動的介面和給定的IP地址以外,什麼都沒有配置。路由器的路由表只會包含直連路由。每一個路由器只知道它介面相連的兩個網路。下表顯示了這一時刻的路由表。

image003.png

從上表可以看出,路由器不知道整個網路的情況。例如,Node A連線到Switch 1嘗試訪問Switch 4的Node B。經過主機路由表處理後,A將資料轉發至R1的預設閘道器(192.168.1.254),R1查詢自己的路由表並發現沒有目標網路的相關資訊。於是R1傳送ICMP destination unreachable訊息。

這個問題怎麼解決呢?像這樣的小型網路,網路管理員可以在路由器輸入路由命令,配置額外的轉發資訊:

ip route destination-network destination-network-mask next-hop-IP-address (forwarding router interface)

例如,以下命令告知R1怎樣到達192.168.3.0以及192.168.4.0:

ip route 192.168.3.0 255.255.255.0 192.168.2.254

ip route 192.168.4.0 255.255.255.0 192.168.2.254

R1上輸入命令之後,路由表更新如下所示:

image004.png

現在R1理解到達這些網路需要經過R2,但是R2接下來怎麼辦呢?由於192.168.3.0直接連線到R2,R2可以直接ARP主機。但對於192.168.4.0,R2需要管理員以下命令來協助:

ip route 192.168.4.0 255.255.255.0 192.168.3.254

路由表相應更新:

image005.png

目前只成功了一半,報文需要返回。檢視R3的路由表,發現路由器不知道怎麼找到192.168.1.0。Node A的報文到達之後,Node B嘗試回覆,但是會從R3收到ICMP destination unreachable的訊息。在Node A看來,好像傳輸從未收到回覆。要完成這一過程,需要在所有路由器上對於所有未知網路輸入ip route命令來更新路由表。

image006.png

R2真正的路由表以及在R2上輸入的ip route命令如下圖所示:

image007.jpg

 

 

動態路由:

 

路由協議允許路由器動態共享遠端網路的資訊以及自動將這資訊新增到自己的路由表中。動態路由協議的一大好處在於當拓撲變更時,路由器會交換路由資訊,從而能夠自動學習新增網路,並且在鏈路故障時,找到替換路徑。

路由協議完成這一功能的方式取決於它所使用的演算法以及此協議的操作特性。通常來說,動態路由協議的執行過程如下:

1.     路由器在埠傳送和接收路由訊息。

2.     路由器與其他使用相同路由協議的路由器共享路由資訊。

3.     路由器交換路由資訊來學習遠端網路。

4.     當路由器檢測到拓撲變化時,路由協議將這一變化通知其他路由器。

網路發現

例如,R1,R2,R3之間的拓撲:

image008.jpg

R1:傳送10.1.0.0以及10.2.0.0的更新;從R2接收10.3.0.0的資訊,跳數加1;在路由表中儲存10.3.0.0的資訊,metric設為1。

R2:傳送10.3.0.0以及10.2.0.0的更新;從R1接收10.1.0.0的資訊,跳數加1;在路由表中儲存10.1.0.0的資訊,metric設為1。從R3接收10.4.0.0的資訊,跳數加1;在路由表中儲存10.4.0.0的資訊,metric設為1。

R3:傳送10.3.0.0以及10.4.0.0的更新;從R2接收10.2.0.0的資訊,跳數加1;在路由表中儲存10.2.0.0的資訊,metric設為1。

交換路由資訊

路由器週期性的更新資訊。在最初的網路發現結束後,每個路由器通過傳送和接收以下更新來繼續收斂的過程:

image009.jpg

R1:傳送10.1.0.0,10.2.0.0以及10.3.0.0的更新;從R2接收10.4.0.0的資訊,跳數加1;在路由表中儲存10.4.0.0的資訊,metric設為2;從R2收到相同的10.3.0.0的更新,metric為1,不作更新。

R2:傳送10.1.0.0,10.2.0.0,10.3.0.0以及10.4.0.0的更新;從R1接收10.1.0.0的資訊,不作更新;從R3接收10.4.0.0的資訊,不作更新。

R3:傳送10.2.0.0,10.3.0.0以及10.4.0.0的更新;從R2接收10.1.0.0的資訊,跳數加1;在路由表中儲存10.1.0.0的資訊,metric設為2;從R2收到相同的10.2.0.0的更新,metric為1,不作更新。

距離向量路由協議切斷了鄰居路由之間的環路,也稱為水平分割。水平分割阻止資訊從同一埠接收之後再發送出去。例如,R2不會從Serial 0/0/0埠傳送網路10.1.0.0的資訊,因為R2從Serial 0/0/0學習了10.1.0.0。

網路中的路由器收斂了資訊之後,路由器可以使用路由表來決定到達目的地的最佳路徑。不同的路由協議有不同的計算最佳路徑的方法。

路由收斂

當所有路由器對於整個網路有準確的更新之後,達到路由收斂狀態,如下圖所示:

image010.jpg

收斂時間是路由器分享資訊,計算最佳路徑,更新路由表的時間。收斂同時是協作並且獨立的。路由器相互之間共享資訊但是必須各自獨立的計算自己路由拓撲改變所帶來的影響。  由於它們各自獨立地關於新的拓撲達成一致,於是說它們收斂於這種一致。