因为一个服务器做了2个bond 0(em1,em2) bond1(em3,em4) 但是默认路由只生成了bond1的默认网关。但是bond1是数据库的心跳线。不是来做数据库数据传输用得。所以导致数据库无法访问。在rc.local 手动添加默认路由,但是系统重启后不生效。所以在网上找了一些办法。最终解决。
一:使用route 命令添加
1、使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法:
添加到主机的路由
routeadd�host192.168.1.11deveth0
routeadd�host192.168.1.12gw192.168.1.1
添加到网络的路由
routeadd�net192.168.1.11netmask255.255.255.0deveth0
routeadd�net192.168.1.11netmask255.255.255.0gw192.168.1.1
routeadd�net192.168.1.0/24deveth1`
添加默认网关
routeadddefaultgw192.168.2.1
删除主机路由:
routedel�host192.168.1.11deveth0
删除网络路由:
routedel-net192.168.1.0netmask255.255.255.0
删除默认路由
routedeldefaultgw192.168.1.1
二:在linux下设置永久路由的方法:
1.在/etc/rc.local里添加
routeadd-net192.168.3.0/24deveth0
routeadd-net192.168.2.0/24gw192.168.2.254
2.在/etc/sysconfig/network里添加到末尾
GATEWAY=gw_ip未尝试过
3./etc/sysconfig/static-routes:写入路由信息,如果没有这个文件自己创建 (尝试过十分好用)!
anynet192.168.3.0/24gw192.168.3.254
anynet0.0.0.0/0gw172.17.2.254默认路由写法,这里的子网掩码为0
anynet10.250.228.128netmask255.255.255.192gw10.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
DestinationGatewayGenmaskFlags Metric RefUse Iface
172.16.10.00.0.0.0255.255.255.0U000 eth0
192.168.122.00.0.0.0255.255.255.0U000 virbr0
169.254.0.00.0.0.0255.255.0.0U100200 eth0
0.0.0.0172.16.10.20.0.0.0UG000 eth0