CentOS6 Linux系統添加永久靜態路由的方法
阿新 • • 發佈:2018-07-26
ipv4 什麽 pan sysconf 靜態路由 mil system 又是 內容
一、使用route命令添加route 命令
設置和查看路由表都可以用 route 命令,設置內核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
其中:
- add : 添加一條路由規則
- del : 刪除一條路由規則
- -net : 目的地址是一個網絡
- -host : 目的地址是一個主機
- target : 目的網絡或主機
- netmask : 目的地址的網絡掩碼
- gw : 路由數據包通過的網關
-
route 命令的輸出項說明 輸出項 說明
Destination 目標網段或者主機 Gateway 網關地址,”*” 表示目標是本主機所屬的網絡,不需要路由 Genmask 網絡掩碼 Flags 標記。一些可能的標記如下: U — 路由是活動的 H — 目標是一個主機 G — 路由指向網關 R — 恢復動態路由產生的表項 D — 由路由的後臺程序動態地安裝 M — 由路由的後臺程序修改 ! — 拒絕路由 Metric 路由距離,到達指定網絡所需的中轉數(linux 內核中沒有使用) Ref 路由項引用次數(linux 內核中沒有使用) Use 此路由項被路由軟件查找的次數 Iface 該路由表項對應的輸出接口 - dev : 為路由指定的網絡接口
-
使用route 命令添加的路由,機器重啟或者網卡重啟後路由就失效了,方法:
A、添加到主機的路由
# route add –host 192.168.1.10 dev eth0
# route add –host 192.168.1.10 gw 192.168.1.1
B、添加到網絡的路由
# route add –net 192.168.1.0 netmask 255.255.255.0 eth0
# route add –net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
# route add –net 192.168.1.0/24 eth1
C、添加默認網關
# route add default gw 192.168.1.1
D、刪除路由
# route del –host 192.168.1.10 dev eth0
二、添加永久路由
A、# vi /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
B、# vi /etc/sysconfig/network (添加到末尾)
語句:GATEWAY=gw-ip 或者 GATEWAY=gw-dev
C、# vi /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
D、開啟 IP 轉發:
# echo "1" >/proc/sys/net/ipv4/ip_forward (臨時)
# vi /etc/sysctl.conf --> net.ipv4.ip_forward=1 (永久開啟)
如果在rc.local中添加路由會造成NFS無法自動掛載問題,所以使用static-routes的方法是最好的。無論重啟系統和service network restart 都會生效。
按照linux啟動的順序,rc.local裏面的內容是在linux所有服務都啟動完畢,最後才被執行的,也就是說,這裏面的內容是在netfs之後才被執行的,那也就是說在netfs啟動的時候,服務器上的靜態路由是沒有被添加的,所以netfs掛載不能成功。static-routes文件又是什麽呢,這個是network腳本執行時調用的一個文件,這個文件的放在/etc/sysconfig目錄下,在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
從這段腳本可以看到,這個就是添加靜態路由的方法,static-routes的寫法是:
any net 192.168.1.0/16 gw 網關ip
這樣的話,在啟動network腳本的時候路由就自動添加上了,又因為network是在netfs前面啟動的,自然在掛載nfs的時候就正常了。這樣看來,如果需要添加靜態路由,使用static-routes文件要比使用rc.local好,而且當改變了網絡配置,需要重啟network腳本的時候,相應的靜態路由是可以自動添加上的,但這時如果使用rc.local的話,在重啟network服務的時候,原本添加好的靜態路由就消失了。
本篇文章來源於 Linux公社網站(www.linuxidc.com) 原文鏈接:http://www.linuxidc.com/Linux/2012-05/61253.htm
CentOS6 Linux系統添加永久靜態路由的方法