1. 程式人生 > >CentOS6 Linux系統新增永久靜態路由的方法

CentOS6 Linux系統新增永久靜態路由的方法

使用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服務的時候,原本新增好的靜態路由就消失了。