網絡故障(network failure)是指由于硬件的問題、軟件的漏洞、病毒的侵入等引起網絡無法提供正常服務或降低服務質量的狀態。 在日常操作和維護操作中,您經常會遇到路由表操作. 讓我們整理一下Linux操作和維護中的路由操作: --------------------------------------------------- ------------------------------- 首先談談有關路由的一些基本知識: 1)路由概念 路由: 通過互聯網將數據包從源主機轉發到目標主機的過程 路由器: 一種能夠將數據包轉發到正確的目的地并在轉發過程中選擇最佳路徑的設備 路由表: 路由器中維護的路由條目,路由器根據路由表進行路徑選擇 直接連接路由: 在路由器上配置接口的IP地址并且接口狀態為up時,直接連接路由條目會出現在路由表中 靜態路由: 它是由管理員手動配置的,并且是單向的. 默認路由: 當路由器在路由表中找不到目標網絡的路由條目時,路由器會將請求轉發到默認路由接口. 2)靜態路由和默認路由的功能 靜態路由功能: 手動設置路由表; 除非網絡管理員進行干預,否則靜態路由不會更改; 路由表的形成不需要網絡資源; 適用環境: 通常用于網絡規模較小,拓撲固定的網絡中. 默認路由功能: 在所有路由類型中,默認路由的優先級最低 適用環境: 通常用于只有一個出口的終端網絡或作為其他路由的補充 浮動靜態路由: 當路由表中存在同一目標網絡的路由條目時,請求將根據路由條目的優先級轉發到相應的端口; 鏈路冗余的作用; 3)路由器轉發數據包時的封裝過程 源IP和目標IP不變. 傳輸網絡的每個網段時,源MAC和目標MAC都會更改并重新封裝,這是每個網段的源地址和目標地址. 4)要完成數據包的路由,路由器必須至少了解以下內容: a)目的地址 b)連接到路由器,在哪里可以獲取遠程網絡的信息 c)到所有遠程網絡的可能路由 d)通往每個遠程網絡的最佳路由 e)如何維護和驗證路由信息 f)路由和交換的比較 路由在網絡層起作用 a)根據“路由表”轉發數據 b)路由選擇 c)路由和轉發 交換在數據鏈路層進行 d)根據“ MAC地址表”轉發數據 e)硬件轉發 --------------------------------------------------- ------------------------------- 繼續討論Linux操作和維護中有關路由的一些操作 1)使用route -n命令查看Linux內核路由表 [root@dev ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.17 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 10.1.32.14 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 10.1.32.12 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 10.4.8.2 192.168.9.254 255.255.255.255 UGH 0 0 0 eth0 10.4.9.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0 192.168.9.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0 10.2.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tun0 10.0.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tun0 10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tun0 192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 tun0 0.0.0.0 192.168.9.254 0.0.0.0 UG 0 0 0 eth0 2)三種路由指令 a)主機路由 主機路由是指向路由表中單個IP地址或主機名的路由記錄. 主機路由的標志字段為H. 例如,在以下示例中,本地主機通過IP地址為192.168.1.1的路由器到達IP地址為10.0.0.10的主機. Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ------ --- --- ----- 10.0.0.10 192.168.1.1 255.255.255.255 UH 0 0 0 eth0 b)網絡路由 網絡路由是指主機可以訪問的網絡. 網絡路由的標志字段為N. 例如,在下面的示例中,本地主機將發送到網絡192.19.12的數據包轉發到IP地址為192.168.1.1的路由器. Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ----- --- --- ----- 192.19.12 192.168.1.1 255.255.255.0 UN 0 0 0 eth0 c)默認路由 當主機在路由表中找不到目標主機的IP地址或網絡路由時,數據包將發送到默認路由(默認網關). 默認路由的“標志”字段為G. 例如,在下面的示例中,默認路由是IP地址為192.168.1.1的路由器. Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ------ --- --- ----- default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 3)配置路由的命令 您可以使用route命令來設置和查看路由表. 設置內核路由表的命令格式為: route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 參數說明: 添加添加路由規則 del刪除路由規則 -net目標地址是一個網絡 -host目標地址是主機 目標目標網絡或主機 netmask目標地址的網絡掩碼 gw通過其路由數據包的網關 開發人員指定用于路由的網絡接口 4)路由命令用法示例 添加到主機的路由 # route add -host 192.168.1.2 dev eth0:0 # route add -host 10.20.30.148 gw 10.20.30.40 添加到網絡的路由 # route add -net 10.20.30.40 netmask 255.255.255.248 eth0 # route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 # route add -net 192.168.1.0/24 eth1 添加默認路由 # route add default gw 192.168.1.1 刪除路由 # route del -host 192.168.1.2 dev eth0:0 # route del -host 10.20.30.148 gw 10.20.30.40 # route del -net 10.20.30.40 netmask 255.255.255.248 eth0 # route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 # route del -net 192.168.1.0/24 eth1 # route del default gw 192.168.1.1 //route del default 刪除所有的默認路由 添加一條默認路由 # route add default gw 10.0.0.1 //默認只在內存中生效 開機自啟動可以追加到/etc/rc.local文件里 # echo "route add default gw 10.0.0.1" >>/etc/rc.local 添加一條靜態路由 # route add -net 192.168.2.0/24 gw 192.168.2.254 要永久生效的話要這樣做: # echo "any net 192.168.2.0/24 gw 192.168.2.254" >>/etc/sysconfig/static-routes 添加到一臺主機的靜態路由 # route add -host 192.168.2.2 gw 192.168.2.254 要永久生效的話要這樣做: # echo "any host 192.168.2.2 gw 192.168.2.254 " >>/etc/sysconfig/static-routes 注:Linux 默認沒有這個文件 ,得手動創建一個 5)設置數據包轉發 Linux中的默認內核配置已包含路由功能,但是在系統啟動時默認情況下未啟用此功能; 啟用Linux的路由功能可以通過調整內核的網絡參數來實現,方法如下: 臨時開啟路由功能: # echo 1 > /proc/sys/net/ipv4/ip_forward 或者 # sysctl -w net.ipv4.ip_forward=1 永久開啟路由功能 # vim /etc/sysctl.conf net.ipv4.ip_forward = 1 # sysctl -p 6)靜態路由配置 將靜態路由添加到路由表的語法如下: ip route [destination_network] [mask] [next-hop_address] administrative_distance] 參數分析: ip route是用于創建靜態路由的命令. 目標網絡需要在路由表中通告到該網段. 掩碼此網絡上使用的子網掩碼. 下一跳地址下一跳路由器的地址. administrative_distance默認情況下,靜態路由的管理距離為1. 在此命令的末尾添加管理權限以修改此默認值. 例如 ip route 172.16.1.0 255.255.255.0 172.16.2.1 除了使用route -n命令查看路由表之外,您還可以使用ip route [root@dev ~]# ip route 192.168.1.17 dev ppp0 proto kernel scope link src 192.168.1.190 10.1.32.14 dev tun0 scope link 10.1.32.12 dev tun0 scope link 10.4.8.2 via 192.168.9.254 dev eth0 src 192.168.9.200 mtu 1500 advmss 1460 10.4.9.0/24 dev tun0 scope link 192.168.9.0/24 dev eth0 proto kernel scope link src 192.168.9.200 metric 1 10.2.0.0/16 dev tun0 scope link 10.0.0.0/16 dev tun0 scope link 10.1.0.0/16 dev tun0 scope link 192.168.0.0/16 dev tun0 scope link default via 192.168.9.254 dev eth0 ----------------------------------------示例1 ----- --------------------------------------- 如上圖所示,PC0機器和PC1機器之間有兩個路由器. 為了使兩臺機器通信,路由設置如下: 1)Route0路由器設置: ip add 192.168.1.1 255.255.255.0 ip add 192.168.2.1 255.255.255.0 ip route 192.168.3.0 255.255.255.0 192.168.2.2 2)Route1路由器設置: ip add 192.168.2.2 255.255.255.0 ip add 192.168.3.1 255.255.255.0 ip route 192.168.1.0 255.255.255.0 192.168.2.1 ----------------------------------------示例2 ----- --------------------------------------- 如上圖所示,使用主機A 192.168.1.2可以ping通主機E 192.168.4.2,并且兩臺機器可以通信. 操作思路: 1)在主機B上將默認路由的下一跳設置為192.168.2.2,并啟用路由和轉發功能; 2)在主機C上設置2條靜態路由,到192.168.1.0/24網段的下一跳是192.168.2.1,到192.168.4.0/24網段的下一跳是192.168.3.2,打開路由和轉發功能; 3)在主機D上將默認路由的下一跳設置為192.168.3.1,并啟用路由轉發功能. 操作記錄:
當今,越來越多的業務應用運行于網絡架構之上,保障網絡的持續、高效、安全的運行,成為網絡管理者面臨的巨大挑戰。 |
溫馨提示:喜歡本站的話,請收藏一下本站!