Linux中增加軟路由的兩種方法
第一種:
route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.254 dev eth0
/* 增加一條網路172.16.6.0/24 經過172.16.2.254 eth0 */
/* -net增加網路 -host增加主機 netmask 子網路遮罩 gw 網關 dev 裝置,裝置,這裡是你的網卡名*/
route del gw 172.16.2.254 /* 刪除預設閘道172.16.2.254 */
route del -net 172.16.86.0/24 /* 刪除預設網路172.16.86.0 */
route /* 顯示當前路由表 */
常用的是這種方式,但有時你在刪除或一條軟路由時會不起作用,會有什麼提示:
SIOCADDRT: 無法接觸網路
所以這時用如下的這種方法就可以了
第二種:
實現的功能和上面的一樣
ip route add 172.16.6.0/24 via 172.16.2.254 dev eth0
ip route del gw 172.16.2.254
ip route del 172.16.6.0/24 dev eth0
ip route
刪除的方法:
添加路由:
route add -net 10.0.0.0 netmask 255.0.0.0 dev eth0
刪除路由:
route del -net 10.0.0.0 netmask 255.0.0.0 dev eth0
添加預設路由:
route add default gw 10.0.0.1
刪除預設路由:
route del default gw 10.0.0.1
或者
route del default
---------------------------------------------------------------------------------------
linux下添加路由的方法:
一:使用 route 命令添加
使用route 命令添加的路由,機器重啟或者網卡重啟後路由就失效了,方法:
//添加到主機的路由
# route add –host 192.168.168.110 dev eth0
# route add –host 192.168.168.119 gw 192.168.168.1
//添加到網路的路由
# route add –net IP netmask MASK eth0
# route add –net IP netmask MASK gw IP
# route add –net IP/24 eth1
//添加預設閘道
# route add default gw IP
//刪除路由
# route del –host 192.168.168.110 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
4.開啟 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.0.0/16 gw 網關ip
這樣的話,在啟動network指令碼的時候路由就自動添加上了,又因為network是在netfs前面啟動的,自然在掛載nfs的時候就正常了。
這樣看來,如果需要添加靜態路由,使用static-routes檔案要比使用rc.local好,而且當改變了網路設定,需要重啟network指令碼的時候,相應的靜態路由是可以自動添加上的,但這時如果使用rc.local的話,在重啟network服務的時候,原本添加好的靜態路由就消失了。