Linux网卡重启,静态路由丢失的解决方案

实战

Posted by dbstack on March 9, 2020

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 -host 132.224.15.139 gw 132.224.31.21 
# route add -host 132.224.15.76/32 gw 132.224.31.21
# route add -host 132.224.15.76/32 gw 132.224.31.21
//添加默认网关
# route add default gw 192.168.2.1
//删除路由
# route del –host 192.168.1.11 dev eth0

后来把静态路由加入到rc.local中,但只是重启网卡,所有静态路由丢失

cat >>/etc/rc.load<<-"EOF"
route add -net 130.34.3.0/24 gw 132.224.31.21
route add -host 132.224.44.21/32 gw 132.224.31.21
route add -host 132.224.3.100/32 gw 132.224.31.21
route add -net 192.168.0.0/16 gw 192.168.2.254       
route add -net 132.224.48.0/24 gw 132.224.31.21
route add -host 132.224.44.26 gw 132.224.31.21
route add -host 132.224.15.139 gw 132.224.31.21 
route add -host 132.224.15.76/32 gw 132.224.31.21
route add -host 132.224.15.76/32 gw 132.224.31.21
EOF

解决方案:把静态路径写到/etc/sysconfig/static-routes中

cat /etc/sysconfig/static-routes
any net 130.34.3.0/24 gw 132.224.31.21                  
any host 132.224.44.21/32 gw 132.224.31.21              
any host 132.224.3.100/32 gw 132.224.31.21              
any net 192.168.0.0/16 gw 192.168.2.254                 
any net 132.224.48.0/24 gw 132.224.31.21                
any host 132.224.44.26 gw 132.224.31.21                 
any host 132.224.15.139 gw 132.224.31.21                
any host 132.225.150.28/32 gw 132.224.31.21                                
any host 132.224.15.76/32 gw 132.224.31.21  

为何这么写??
/etc/init.d/network 中
138         # Add non interface-specific static-routes.
139         if [ -f /etc/sysconfig/static-routes ]; then
140            grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
141               /sbin/route add -$args
142            done
143         fi


注意centos7中需要更改对应的 /sbin/route 为/usr/sbin/route
至此完美解决centos6重启网卡丢掉静态路径的问题