基本命令:

route

测试环境:

eth0:1.1.1.2  ;链接外网

netmask:255.255.255.251

gateway:1.1.1.1

 

eth1:192.168.0.22

netmask:255.255.255.0

#gateway:192.168.0.1(这个网关不能添加在网卡配置文件中)

这是两块网卡,然后要求是这样的。

1.外网网络通过eth0 就是1.1.1.1这个网关走,而且这个设备必须要连外网。

2.内部网络通过192.168.0.1这个网关走(这个网关貌似是个nat网关),其他内部网络都需要能够访问192.168.0.22这个地址。这个地址不能访问外网。

3.需要访问的网段有 192.168.0.0、192.168.21.0、192.168.13.0这些。

最初解决思路:

route add default gw 1.1.1.1  #设置默认网关地址

route add -net 192.168.21.0/24 gw 192.168.0.1   #添加192.168.21.0这个网段

route add -net 192.168.0.0/24 gw 192.168.0.1   #添加192.168.0.0这个网段

这个设置需要重启生效,而用命令的话只是暂时使用,不能永久保存(即使这样写上也不好用的,需要重启)。

那就需要修改文件

vi /etc/rc.d/rc.local在最后一行添加如下内容:

route add default gw 1.1.1.1  #添加默认网关 1.1.1.1
route add -net 192.168.21.0/24 gw 192.168.0.1 eth0 #21.0网段走192.168.1.1网关走 eth0为要走的网卡。

route add -net 192.168.0.0/24 gw 192.168.0.1 eth1 #0.0网段走192.168.0.1网关、通过eth0这个网卡走。

添加以后 reboot  重启 就可以成功访问外网,局域网也可以访问了!

 

但是。。。。

 

后来发现时不时的服务器还是无法访问某个网段,自己技术不精,只能非常艰难的通过各种方式去查找原因。后来发现,是因为其中一块网卡故障,造成网卡重启了。因为有4快网卡,所以当时想法很简单,那就重新换一块。

 

之后又风平浪静了一段时间,但是(这两个字太可怕了。。。),某一天一个网段又访问不到了,查看message日志,果真,网卡服务又自动重启了。看来这种临时解决方案是不行的,需要保证在网卡重启以后要添加的路由信息能够自动添加上,rc.local里面的脚本写入只会在服务器重启的时候有效,看来还得找其他的路由表写入切入点。

 

一番搜索,发现需要在”/etc/sysconfig/static-routes“里头写入要添加的路由信息即可,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

any net 192.168.3.0/24 gw 192.168.3.254 dev em2

 

any net 192.168.0.0/16 gw 192.168.0.1   #添加192.168.0.0-192.168.254.0这个网段

network执行的时候把any去掉,获取后面的参数:net 192.168.0.0/16 gw 192.168.0.1

 

然后执行route add -net 192.168.0.0/16 gw 192.168.0.1

 

注意这里host前面的-是network自带的,不需要配置到static-routes文件中。

———————————————end———————————-

 

 

 

 

 

 

BOOTPROTO=static   静态IP
BOOTPROTO=dhcp   动态IP
BOOTPROTO=none   无(不指定)
通常情况下是dhcp或者static,通过指定方式的办法来获得地址,如果没有指定的话可能会出现问

 

 

 

route add 41.1.0.0 mask 255.255.0.0 41.1.0.1 if 2

添加一条 41.1的路由,从接口2走 途径41.1.0.1路由

route add 41.1.0.0 mask 255.255.0.0 169.254.3.176 metric 220

添加一条 41.1的路由, 途径169.254.3.176路由 点是220