簡略講解OpenWrt的路由配置(單播路由/靜態路由、策略路由、IGMP組播路由)


一、分類

  • 智能路由器上最重要的功能是 IP 路由。IP 報文根據路由表進行路由決策,路由表中的路由項又有各種不同的分類。

按目的地址類型不同可划分

  • 單播路由。
  • 組播路由。
  • 單播路由表中保存了各種路由協議發現的路由並形成一張路由表,根據路由表項的來源來划分,通常分為以下3類:
    • 接口路由。也稱為直連路由,當設置接口 IP 地址和掩碼時會自動增加的路由, 是報文通往該接口 IP 地址所在網絡的路由。
    • 靜態路由。網絡管理員手工配置的路由。當網絡結構比較簡單時,只需配置靜態 路由就可以工作,適用於拓撲結構簡單並且穩定的小型網絡。靜態路由不能自動適應網絡 拓撲結構的變化,當網絡發生故障或者拓撲發生變化后,必須再次由網絡管理員手工修 改配置。
    • 動態路由。動態路由協議發現並設置路由,常見的動態路由協議有 RIP、OSPF 和 IS-IS 等。路由表會根據鏈路狀態或網絡拓撲結構變化進行動態生成和刪除。常見的動 態路由軟件有 Zebra 和 Quagga 等。在智能路由器領域一般只有唯一的互聯網出口,因此 不會用到動態路由。

 

根據路由目的地址的不同

  • 策略路由。也稱為源地址路由,根據 IP 報文源地址、端口、報文長度、優先級 等內容靈活地進行路由選擇。
  • 普通的目的地址路由。僅根據報文目的地址來選擇出接口或者下一跳地址。

 

按路由決策的方式不同

  • 策略路由。也稱為源地址路由,根據 IP 報文源地址、端口、報文長度、優先級 等內容靈活地進行路由選擇。
  • 普通的目的地址路由。僅根據報文目的地址來選擇出接口或者下一跳地址。

 

根據目的地與該路由器是否直接相連

  • 直接路由。目的地所在網絡與路由器直接相連。
  • 間接路由。目的地所在網絡與路由器非直接相連。

 

 

缺省路由

  • 還有一個概念是缺省路由,也稱默認路由,是指在路由器中沒有找到精確匹配路由表 項后所使用的路由。
    如果報文的目的地址在路由表中沒有找到匹配的路由,而且還沒有默認路由,那么該報文將被丟棄並向報文的源地址發送一個網絡地址不可達的ICMP差錯報文
    智能路由器的默認路由通常是通過DHCP或PPPoE自動獲取下一跳地址后,動態生成並寫入到路由表中的。

 

二、單播路由

  • 報文的目標地址為 A、B、C 類地址的路由表項為單播路由。
  • 目標 IP 地址是告訴報文 目的主機地址在哪里,而路由是告訴報文如何到達目的地址。
  • 網絡上的每個路由器獨立進行 決策,將報文轉發到離目的地址更近的路由器上,就這樣一步一步地路由到目標主機上。

 

三、單播路由分類

單播路由表中保存了各種路由協議發現的路由並形成一張路由表,根據路由表項的來源來划分,通常分為以下3類:

  • 接口路由。也稱為直連路由,當設置接口 IP 地址和掩碼時會自動增加的路由, 是報文通往該接口 IP 地址所在網絡的路由。

  • 靜態路由。網絡管理員手工配置的路由。當網絡結構比較簡單時,只需配置靜態 路由就可以工作,適用於拓撲結構簡單並且穩定的小型網絡。靜態路由不能自動適應網絡 拓撲結構的變化,當網絡發生故障或者拓撲發生變化后,必須再次由網絡管理員手工修 改配置。

  • 動態路由。動態路由協議發現並設置路由,常見的動態路由協議有 RIP、OSPF 和 IS-IS 等。路由表會根據鏈路狀態或網絡拓撲結構變化進行動態生成和刪除。常見的動 態路由軟件有 Zebra 和 Quagga 等。在智能路由器領域一般只有唯一的互聯網出口,因此 不會用到動態路由。

 

四、route命令

  • route 命令是用於管理 和維護操作系統內核的路由表,主要用於設置到特定主機或網絡的靜態路由。可以增加、 刪除及查看路由表等。

 

五、查看路由表

  • 每當增加一個接口 IP 時將自動創建一個直連的接口路由。對於通過 DHCP獲得的 IP 地址,除了設置直連路由外還可能會設置網關的默認路由。

路由表格式

  • 當前openwrt的IP為192.168.43.123。

 

  • “route –n”命令來列出路由表項:-n 選項表示列出數字地址形式,而不是主機名或者域名。

  • 第一行:是一個默認路由,這表明如果沒有精確匹配路由,就會將IP報文發送到IP地 址192.168.43.1上。UG 表示一個啟用的網關地址。br-lan表示出接口地址。
  • 第二行:是一個接口路由,為局域網接口的路由項,表示局域網為192.168.43.0網段。 br-lan表示通過該網卡和局域網網絡相連接。
  • 第三行:是一個接口路由,表示目的地址是主機地址。這在接口配置IP和掩碼時會默認自動設置上。如果不設置掩碼則默認A類地址為8位掩碼,B類地址為16位掩碼,C類地址為24位掩碼。

 

 

路由表的字段含義

 

 

  • 對於給定的路由表項的路由標識(Flahs)通常有以下幾種:

    • U:路由表項可以使用。

    • H:路由表項的目標地址是主機地址,即掩碼為 32 位。

    • G:路由表項下一跳為網關。

    • R:動態路由算法生成的。

    • D:該路由通過重定向或者守護進程動態安裝的。

    • M:該路由被路由守護進程或重定向報文修改。

    • A:該路由被 addrconf 安裝。

    • C:緩存(cache entry)。

    • !:拒絕路由(reject route)。匹配這一條報文將丟棄。

 

六、路由的設置

  • 使用ip命令和route命令均可對路由表進行管理,默認路由通過以下兩個命令均進行設置:
  • 這兩個命令行為完全相同,只是ip命令使用 Netlink 接口設置到內核中,route 命令通 過傳統的 ioctl 接口設置到內核中。Linux 內核已經不建議使用 ioctl 接口。
ip route add default via <gw ip> dev eth0
 
route add default gw <gw ip> dev eth0
  • 查看路由信息。

 

 

  • ip route get命令

    •  針對目的IP,如何來選擇路由表項?路由表中的信息包含了IP層的決策。采用最長匹配算法來匹配,如果有多個匹配則會隨機選擇一個作為路由,可以使用下面命令來查看匹配的路由。

  

 

   

 

 

 

 

七、路由功能的划分

  • 為了系統的穩定性,操作系統將路由功能划分為兩部分:
    • 管理平面:也稱為控制平面。是指用於路由學習,生成路由表的部分。Linux 用 戶空間的程序就屬於管理平面。
    • 轉發平面:也稱數據平面(Data Plane)。轉發平面是指系統中進行數據報文的接 收、查找路由表、根據路由表進行決策等的部分。轉發平面在 Linux 內核中。
    • 轉發平面:也稱數據平面(Data Plane)。轉發平面是指系統中進行數據報文的接 收、查找路由表、根據路由表進行決策等的部分。轉發平面在 Linux 內核中。
  • 路由器可以實現轉發面和管理平面的相互獨立。為了做到控制平面和轉發平面的分離,Linux 內核構建了一張轉發表,專門用於指導數據報文的轉發。用戶空間的應用層軟件形成控制平面的路由表,可能會有多種可選的路由規則,但路由軟件系統會計算出一條最佳的路徑然后寫入內核中。兩者之間通過接口(Netlink)來實現相互操作。在小型智能路由器上網絡比較單一,路由表項不用動態生成,只有固定的路由表。因此一般不會使用quagga路由軟件生成的控制平面的路由表,只有靜態路由。在小型智能路由器上可以認為 兩者完全相同。數據平面保存的路由表,也稱為路由轉發表(Forwarding Information Base, FIB),用來指導IP報文的轉發,轉發算法如下:
    • 組織和存儲選出的路由表項。
    • 按照 LPM(最長掩碼匹配)算法提供路由檢索接口。
  • 報文的轉發過程為:首先網卡接口上接收報文,並查看報文的目的地址:然后根據目 的地址來查詢轉發表;最后按查詢到的路徑把分組報文轉發出去。

 

八、增加靜態路由的一個注意事項

  • 在增加靜態路由時需注意:在 Windows 下增加靜態路由,必須設置有下一跳地址;在 Linux 下增加靜態路由時,可以僅設置出接口而不設置下一跳地址。
  • 如果增加靜態路由時僅設置出接口而不設置下一跳地址,在一些沒有開啟ARP代理的設備上將會遇到不能連通網絡的問題。因為使用出接口地址時,Linux 會認為目標地址 網絡是直連可達的網絡,將直接發出 ARP 請求來查詢目標 IP 地址的 MAC 地址,如果路 由器沒有啟動 ARP 代理,就不會發出 ARP 響應消息,這時 Linux 就會因為找不到目標MAC地址而轉發失敗。
  • 如果直接指定網關地址,那ARP請求就直接請求網關地址的MAC地址,然后進行報文轉發。

 

九、靜態路由配置

  • 使用命令行對路由表進行設置時,在重啟之后配置均需重新設置。OpenWrt 的靜態路由配置在配置文件/etc/config/network的route配置節中,在啟動過程中 netifd 模塊會讀取 該配置文件並進行設置。
  • 可選的配置選項見下表:

  

演示案例

  • 例如局域網還有一個192.168.9.0/24網絡,那么我們將增加下面所示的配置,就 可以通過網關地址 92.168.6.10到達 192.168.9.0/24網絡。

   

  • 進行重啟后,使用route -n 命令來查看,路由表增加了以下內容:

  

 

 

十、策略路由

  • 待續

十一、IGMP組播路由

  • 待續

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM