因为一个服务器做了2个bond 0(em1,em2) bond1(em3,em4) 但是默认路由只生成了bond1的默认网关。但是bond1是数据库的心跳线。不是来做数据库数据传输用得。所以导致数据库无法访问。在rc.local 手动添加默认路由,但是系统重启后不生效。所以在网上找了一些办法。最终解决。

一:使用route 命令添加

 

1、使用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 dev 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 dev eth1`

 

添加默认网关
route add default gw 192.168.2.1
删除主机路由:
route del –host 192.168.1.11 dev eth0
删除网络路由:
 route del -net 192.168.1.0 netmask 255.255.255.0
删除默认路由
route del default gw 192.168.1.1

   

二:在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  未尝试过


3./etc/sysconfig/static-routes:写入路由信息,如果没有这个文件自己创建 (尝试过十分好用)!


any net 192.168.3.0/24 gw 192.168.3.254
any net 0.0.0.0/0 gw 172.17.2.254  默认路由写法,这里的子网掩码为0
any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129

 


如果在rc.local中添加路由会造成NFS无法自动挂载问题,所以使用static-routes的方法是最好的。无论重启系统和service network restart 都会生效。   

解决NFS问题的描述:


 按照linux启动的顺序,rc.local里面的内容是在linux所有服务都启动完毕,最后才被执行的,也就是说,这里面的内容是在NFS之后才被执行的,那也就是说在NFS启动的时候,服务器上的静态路由是没有被添加的,所以NFS挂载不能成功。

 

4、在/etc/sysconfig/network-script/route-interface下添加路由(每个接口一个文件,如果没有就创建一个,只能添加针对该接口的路由)

格式如下:
  network/prefix via gateway dev intf

例如给eth0添加一个默认网关:
  vim /etc/sysconfig/network-scripts/route-eth0

添加如下内容(可以省略dev eth0)
  0.0.0.0/0 via 172.16.10.2 dev eth0 



ps:注意这里的掩码是0而不是32,因为这里是网段而不是路由。保存退出后,service network restart。

使用route -n或netstat -r查看路由表。

[root@localhost ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.10.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         172.16.10.2     0.0.0.0         UG    0      0        0 eth0



默认路由已经被添加到路由表里面了,注意如果有两块网卡,需要设置默认路由才能访问internet。