路由器的工作原理和路由表的形成-主機是如何連接到路由器的原理
我們知道在進行跨網段傳輸數據的時候會將數據交給我們的路由器。那么路由器收到這個數據之后是如何去轉發的呢?
路由器工作原理
路由器在收到一個數據包之后會查表轉發,這個表就叫做"路由表"。
路由表就像數據轉發的一張地圖一樣,比如你從北京到上海有很多路能走,而地圖的作用就是讓你知道如何去往目的的。路由器也是一樣,路由表就是讓路由器知道如何將數據轉發出去的。
那么路由表是怎么形成的呢?
本地直連網段
路由器上的每一個接口啟用之后都會在路由器上生成一個路由條目。
靜態路由
靜態路由是由我們管理員手工配置的
動態路由
動態路由是我們在路由器上運行動態路由協議,運行了相同動態路由協議的路由器可以建立鄰居,每個鄰居會將自己知道的所有路由條目發送給對方。
動態路由協議分為兩種:
距離矢量協議:每個路由器僅知道與它相連的鏈路信息,依靠傳聞選擇路徑,鄰居給我發什么我就會接受什么,鄰居怎么走,我怎么走。
如何理解呢?比如說你從上海去往北京,別人給了你一條路線,但是你不知道要走的這條路的詳細信息,會不會堵車,路況如何。
鏈路狀態路由協議:每個路由器都必須熟悉網絡中所有連接情況,以及每條鏈路的信息,收斂時間短。
如何理解呢?還是從上海去往北京,別人只給出了你每條路線的路況,但是沒告訴你怎么去往北京,需要自己來計算出一條最快的路線
常見的路由協議:OSPF,RIP,ISIS,靜態,BGP
針對不相同的協議,學到了相同的路由條目應該怎么辦?
路由器只會將最優的路由放入路由表中,這時候如果路由器針對不同的協議學到了相同的路由表應該怎么做呢?
每種路由協議都會有他們的優先級,如果使用不通協議學到了相同的網段,會比較路由協議的優先級——越小越優先。
針對相同協議學到了同一個路由條目,又如何比較呢?
每個路由條目都會比較COST值,也就是開銷值,開銷越小越優先
針對一個路由器中,有多個條目都包含了一個ip地址,那么應該選擇哪一個呢?
針對這種情況路由器使用最長掩碼匹配,也就是精確優先。
路由器查表順序:
最長掩碼匹配
管理距離
COST開銷值
我們來看一個路由器中路由表的樣子。
我們在華為設備里輸入dis ip ro查看本設備的路由表,路由表由很多路由條目形成,我們看一下里面的內容
Destination/Mask:代表著一個路由條目的前綴和它的掩碼
Proto:形成這個路由條目是由什么協議形成的
Pre:代表著這個路由協議的優先級(越小越優)在使用
Cost:去往一個目的地的開銷,用來計算最優路徑的(越小越優)
Flags:R是relay的首字母,說明是迭代路由,會根據路由下一跳的IP地址獲取出接口。
配置靜態路由時如果只指定下一跳IP地址,而不指定出接口,那么就是迭代路由,需要根據下一跳IP地址的路由獲取出接口。D是download的首字母,表示該路由下發到FIB表。
NextHop:下一跳的ip地址
Interface:發出數據包的接口
下一跳:路由器發送一個數據包這時候會查詢路由表,路由表中會選出一條最優的路由,路由器依據最優的路由將數據發給下一臺設備,這個下一臺設備就是下一跳。
路由迭代:就是說路由器查詢路由表的時候,會查到下一跳的ip地址,但是怎么去往這個下一跳的ip地址呢?這時候會再次進行查表,這個順序就叫做遞歸,一直查到從那個接口發出數據包才能發送出數據。
收斂:網絡變化之后到網絡上左右的設備都響應過來的過程時間叫做收斂。