linux臨時及永久路由

爲了添加永久路由,請一定要使用第三種方法!!切記

一:使用 route 命令添加

使用route 命令添加的路由,機器重啓或者網卡重啓後路由就失效了,方法:

//添加到主機的路由

# route add -host 192.168.1.11 dev eth0

# route add -host 192.168.1.12 gw 192.168.1.1

//添加到網絡的路由

# route add -net 192.168.1.11  netmask 255.255.255.0 eth0

# route add -net 192.168.1.11  netmask 255.255.255.0 gw 192.168.1.1

# route add -net 192.168.1.0/24 eth1

//添加默認網關

# route add default gw 192.168.2.1

//刪除路由

# route del -host 192.168.1.11 dev eth0

二:在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

因爲/etc/init.d/network中有明確的關於添加路由的腳本。下面會略微詳細的解釋下。

# 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腳本中的位置是:

 

  1. Add non interface-specific static-routes. 
  2. if [ -f /etc/sysconfig/static-routes ]; then 
  3.    grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do 
  4.       /sbin/route add -$args 
  5.    done 
  6. fi 

 

從這段腳本可以看到,這個就是添加靜態路由的方法,static-routes的寫法是

any net 192.168.0.0/16 gw 網關ip

這樣的話,在啓動network腳本的時候路由就自動添加上了,又因爲network是在netfs前面啓動的,自然在掛載nfs的時候就正常了。

這樣看來,如果需要添加靜態路由,使用static-routes文件要比使用rc.local好,而且當改變了網絡配置,需要重啓network腳本的時候,相應的靜態路由是可以自動添加上的,但這時如果使用rc.local的話,在重啓network服務的時候,原本添加好的靜態路由就消失了。

摘自yangdaliang http://blog.csdn.net/yangdaliang/article/details/5657000

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章