10.4 route:显示或管理路由表
生活随笔
收集整理的這篇文章主要介紹了
10.4 route:显示或管理路由表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
route命令
可以顯示或管理Linux系統的路由表,route命令設置的路由主要是靜態路由。路由的概念
計算機與計算機之間的數據傳輸必須得經由網絡,而網絡可以通過直接連接兩臺計算機的方式或者是以一個或一個以上的節點來構成。 數據傳輸首先會通過源主機傳送到一個網絡節點,然后這個網絡節點會根據“約定”將數據傳送到另一個網絡節點,另一個網絡節點再將數據傳輸到下一個節點,依此類推,最終把數據傳輸到目標主機。 這就是數據傳送的一個完整過程,而每個網絡節點就是一個路由,“約定”就是路由規則,數據傳輸就是根據路由規則依次傳輸下去的。路由的分類
路由分為靜態路由和動態路由。 Linux上配置的路由都屬于靜態路由。靜態路由規則是系統管理員使用route命令加入的,也就是通過手動輸入的方式來加入的路由規則。 動態路由就是無需手動輸入路由的規則,其路由規則是本機與不同的機器彼此經過路由程序(Routing daemon)相互交換路由規則而來的。route命令的參數選項及說明
-n? ??直接使用IP地址,不進行DNS解析主機名 -ee ? 顯示更詳細的路由信息 add? ??添加路由信息 del? ??刪除路由信息 target? ??指定目標網絡或主機??梢杂肐P地址或主機/網絡名 -net? ??到一個網絡的路由,后面接的是一個網絡號地址 -host? ??到一個主機的路由,后面接的是一個主機地址 netmask NM? ??為添加的路由指定網絡掩碼 gw Gw ? ? ? ? 為發往目標網絡/主機的任何分組指定網關 dev If ? ?? ??指定由哪個網絡設備出去,后面接網絡設備名,如eth0等查看當前系統路由表信息
[root@bzhl ~]# route #<=默認情況下,route命令會將IP地址進行DNS解析生成主機名。 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 100 0 0 eth0 213.232.105.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 [root@bzhl ~]# route -n Kernel IP routing table #<=使用-n選項不進行DNS解析,這樣會加快顯示速度。 Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 213.232.105.1 0.0.0.0 UG 100 0 0 eth0 213.232.105.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 命令結果說明具體如下。 Destination:表示網絡號,也就是network的意思。 Gateway:連出網關地址,也就是說該網絡是通過該IP連接出去的,如果顯示0.0.0.0,則表示該路由是直接由本機傳送出的。如果有IP顯示,則表示本條路由必須經過該IP的轉接才能連接出去。 Genmask:表示子網掩碼地址,也就是netmask。Destination和Genmask將組合成一個完整的網絡。 Flags:路由標記信息,通常會有下面幾種不同的標記。 U(route is up):表示此路由當前為啟動狀態。 H(target is a host):目標路由是一個主機(IP)而非網絡。 R(reinstate route for dynamic routing):使用動態路由時,恢復路由信息標識。 G(use gateway):表示需要通過外部的主機(gateway)來轉接傳遞數據。 M(modified from routing daemon or redirect):表示路由已經被修改了。 D(dynamically installed by daemon or redirect):已經由服務設定為動態路由。 !(reject route):這個路由將不會被接受(用來抵擋不安全的網絡)。 Metric:需要經過幾個網絡節點(hops)才能到達路由的目標網絡地址。 Ref:參考到此路由規則的數目。 Use;有幾個轉送數據包參考到了此路由規則。 Iface:路由對應的網絡設備接。 命令輸出結果的第一行(10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 etho)表示主機所在的網段為10.0.0.0,若數據傳送目標是在同一網段,則可直接通過eth0轉發數據包。 命令輸出結果的第三行(0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0)是系統的默認網關信息,表示去任何地方(0.0.0.0)都發給10.0.0.2,因為是默認網關,所以放在了最后一條。路由也是有順序的,如果不符合任何一條規則就交給默認網關來處理。刪除和添加默認網關
默認網關就是數據包不匹配任何設定的路由規則最后流經的地址關口!網關按字面意思就是網絡的關口,相當于我們家里房子的門一樣,如果外出就要經過房門,數據包也是一樣。下面來看一下刪除和添加默認網關的方法:方法1
[root@cs6 ~]# route del default <-刪除網關方法1。 [root@cs6 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 #<==第3行的網關已經刪除。[root@cs6 ~]# ping g.cn connect: 網絡不可達[root@cs6 ~]# route add default gw 10.0.0.2 #<=添加網關方法主:需要指明網關地址10.0.0,2或其他正確的地址。 [root@cs6 ~]# ping g.cn PING g.cn (203.208.40.87) 56(84) bytes of data. 64 bytes from 203.208.40.87: icmp_seq=1 ttl=128 time=44.9 ms 64 bytes from 203.208.40.87: icmp_seq=2 ttl=128 time=42.6 ms ^C --- g.cn ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1706ms rtt min/avg/max/mdev = 42.613/43.784/44.956/1.190 ms[root@cs6 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0方法2
[root@cs6 ~]# route del default gw 10.0.0.2 [root@cs6 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 [root@cs6 ~]# route add default gw 10.0.0.2 dev eth0 #<=添加網關方法2,使用dev指明網絡設備,連用于有多塊網絡設備的主機。 [root@cs6 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0#特別強調:實際上 route add default gw 10.0.0.2 就相當于route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.0.0.2配置網絡路由(去往某一網絡或網段的路由)
一般多網段之間互相通信,會希望建立一條優先路由,而不是通過默認網關,這時就可以配置網絡路由。還是拿房子作比喻,你現在不是要出門,而是要去臥室或衛生間,去臥室就要經過臥室的門,去衛生間就要經過衛生間的門,這里的臥室和衛生間的門就可以認為是去往某一網段的路由,而不是默認路由(即房子的大門)。? ?? 在實際工作中也會有類似的需求,即兩個不同的內部網絡之間互相訪問,而不是出網訪問。 有兩個網段10.0.0.0/24和192.168.1.0/24,現在想要實現10網段的機器訪問192網段的機器,其中有一臺機器有兩塊網卡,eth0 的IP地址為192.168.1.254,eth1 的IP地址為10.0.0.254。那么配置網絡路由會有以下幾種方法。 方法1 route add -net 192.168.1.0/24 gw 10.0.0.254 方法2 route add -net 192.168.1.0 netmask 255.255.255.0 dev eth1 #<=指定設備而不是地址。 route add -net 192.168.1.0/24 dev eth1 在想要訪問192網段的每臺10網段的機器上執行上面的命令,那么就只是執行該命令的主機能夠訪問192網段;但若在10網段的網關10.0.0.2上執行上面的命令,則10網段的機器都能訪問192網段。刪除網絡路由
route del -net 192.168.1.0/24 dev eth1 以上配置在重啟網絡時都會失效,如果希望永久生效,則有如下幾種方法。 方法1: vi /etc/sysconfig/network-scripts/route-eth1 ? ?#<=默認不存在此文件 加入如下內容: 192.168.1.0/24 via 10.0.0.254 寫到配置里,重啟網絡服務和重啟系統都會生效! 方法2: vi /etc/sysconfig/static-routes ? ?#<=默認不存在此文件 加入如下內容: any net 192.168.1.0/24 gw 10.0.0.254 方法3: vi /etc/rc.local? 加入如下內容: route add -net 192.168.1.0/24 gw 10.0.0.254 提示:方法1推薦在生產環境下使用,方法3寫到/etc/rc.local里只在開機時加載,在手工重啟網絡后會失效,但是重啟系統后會生效! [root@cs6 ~]# route add -net 192.168.205.0/24 dev eth0 [root@cs6 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.205.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0如果是配置默認路由網關,則可以寫在網卡配置里,代碼如下: [root@cs6 ~]# grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-eth0 GATEWAY=10.0.0.2配置和刪除主機路由(就是去往某個主機地址的路由)
route add -host 192.169.2.18 dev eth2 route add -host 202.81.11.9 dev lo 例如:keepalived或heartbeat高可用服務器對之間使用單獨的網卡接心跳線通信時,就會用到以上的主機路由。刪除主機路由的方法如下: route del -host 192.168.2.13 dev eth2 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的10.4 route:显示或管理路由表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9.4-6 kill killall
- 下一篇: 9.2-3 pstree pgrep