您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何解決redhat6.5靜態路由添加問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
首先了解一下Route命令。它是用于操作基于內核的ip路由表,它的主要作用是創建一個靜態路由讓指定一個主機或者一個網絡通過一個網絡接口,如eth0。當使用"add"或者"del"參數時,路由表被修改,如果沒有參數,則顯示路由表當前的內容。
1、顯示當前路由
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.14.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 172.16.14.254 0.0.0.0 UG 0 0 0 eth0
2、route的一些基本操作
路由的添加
針對一個網段
#route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
針對一個主機
#route add -host 192.168.100.1 gw 10.224.0.251
Linux路由的刪除
# route del -net 192.168.10.0 netmask 255.255.255.0 dev eth0
設置默認Linux路由
# route add default gw 192.168.10.30
刪除默認路由
# route del (default) gw 192.168.10.30
說明:gw表示后面接的是一個IP地址,而不是dev。
注:
linux在加載網卡配置文件的時候是先加載eth0,再加載eht1的,這樣,如果eth2設置了gateway項,則會覆蓋掉eth0中的gateway設置,因此解決方法就是刪除eth2的gateway設置,文件位置在/etc/sysconfig/networking/devices目錄下,刪除eth2中的gateway設置。
二:在linux下設置永久路由的方法:
1.在/etc/rc.local里添加
方法:
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.2.254
2.在/etc/sysconfig/network里添加到末尾
方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev
3./etc/sysconfig/static-routes : (沒有static-routes的話就手動建立一個這樣的文件)
any net 192.168.3.0/24 gw 192.168.3.254
any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129
4.開啟 IP 轉發:
# echo "1" >/proc/sys/net/ipv4/ip_forward (臨時)
# vi /etc/sysctl.conf --> net.ipv4.ip_forward=1 (永久開啟)
這里并沒有錯誤的地方,只不過之前沒有接觸對這些參數沒什么想法,這次正好研究了下,大概了解了下沒個參數的意思。
首先從最簡單的是route add方法:
route add這個是添加路由的命令,這個沒什么好說的,然后是后面的-host和net參數,根據緊跟參數后面的信息可以發現host指的是添加一個主機到路由中,net是添加一個網段到路由中。在后面的參數是dev和gw,字面理解加上后面緊跟的值判斷,dev表示這個host或者這段net走的是那個網口,gw是gateway,自然是通過哪個網關了。對這里為何指定網口或者指定網關都行呢,我的認識是這樣的,網口上配置有網關的信息,指定的網口其實最終還是去讀取這個網口對應的網關信息,等效于指定gw參數。不過指定網口一般是由于有多個網絡環境的情況,如果網口沒有指定網關,會去讀取默認的網關,所以這里一般要求把網口的網關信息配置上去,在linux下很多時候網關信息并不是配置在網口的配置文件,比如:/etc/sysconfig/network-scripts/ifcfg-eth0 文件里面,而是在/etc/sysconfig/network這里面,所以在用dev參數的時候需要小心這點,盡可能通過指定gw的方式。
為什么會介紹到route add方法,因為后面會有用到。現在回到主題,關于static-routes的設置。網上一般的都是寫著:
any net 192.168.3.0/24 gw 192.168.3.254
設置的都是整個網段的,但如果是單個主機怎么設置呢?同時從廠家那邊給了一個腳本是:
eth0 x.x.x.x netmask 255.255.255.192 gw x.x.x.x
看上去也很對的樣子,但是執行發現netstat -an里面看不到添加的信息,完全不行。
然后我們在看下static-routes這個文件的作用,根據網上的說法,static-routes其實在被network這個腳本調用的,打開這個腳本:
/etc/rc.d/init.d/network
里面有寫到:
# Add non interface-specific static-routes.
if [ -f /etc/sysconfig/static-routes ]; then
grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
fi
network在執行的時候到static-routes里面尋找any開頭的行,然后執行
/sbin/route add -$args 相當于手動執行了route add腳本,那后面事情就簡單了,回到了手動執行的方式,根據前面的說明,正確的腳本就是:
any host 10.0.0.10 gw 192.168.1.1
network執行的時候把any去掉,獲取后面的參數:host 10.0.0.10 gw 192.168.1.1
然后執行route add -host 10.0.0.10 gw 192.168.1.1
注意這里host前面的-是network自帶的,不需要配置到static-routes文件中。
關于“如何解決redhat6.5靜態路由添加問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。