根据Linux系统特性总体上来说添加永久静态路由的方法有很多,此次我们至单独记录几个高效并且方便管理的方法
1、修改/etc/sysconfig/static-routes配置文件
vim /etc/sysconfig/static-routes
any net 192.168.10/24 gw 192.168.1.254
any net 10.10.10.10 netmask 255.255.255.252 gw 10.10.10.1
以上是分别针对于网段与主机添加路由的方式,定义此配置文件修改的路由在网卡重启后会自动添加,无需担心操作系统或者网卡重启。
默认在/etc/sysconifg目录中是没有这个文件的,需要我们手工创建,对这个文件的调用在network服务的启动脚本中。
vim /etc/init.d/network
139 # Add non interface-specific static-routes.
140 if [ -f /etc/sysconfig/static-routes ]; then
141 if [ -x /sbin/route ]; then
142 grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
143 /sbin/route add -$args
144 done
145 else
146 net_log $"Legacy static-route support not available: /sbin/route not found"
147 fi
148 fi
149
从启动脚本中可知,该文件调用了route命令,使用该命令语法
注意:Centos8中默认不用network管理网络,使用NetworkManager管理
2、修改/etc/sysconfig/network-scripts/route-NAME(根据网卡名称命名的路由配置文件)
默认没有这个文件,则手工创建,注意文件名route-NAME,其中route-是固定值,NAME为网卡的名称,eg:route-eth0
vim /etc/sysconfig/network-scripts/route-eth0
该文件支持两种语法格式,但不可混用
1) 每一行一个路由条目:
TARGET via GW TARGETà是目标网段,via是关键字,GW为下一跳
eg: 1.0.1.0/24 via 10.10.10.1
1.1.1.1/32 via 192.168.1.1
2) 每三行一个路由条目:
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
#表示数字,相同数字的关键字表示一个路由条目,eg:
ADDRESS0=10.1.1.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.0.1
使用此种配置方法也可以做到当网卡或者系统重启后路由自动刷新,但是根据配置上来讲还是建议使用第一种方法,因为当云主机上有多块网卡时可以在一个配置文件中写入所有配置,无需单独指定网卡名称。
3.不推荐
如果是要添加永久的静态路由除了以上两种方法以外都不建议使用:例如添加路由配置到rc.local配置文件中(不方便后期维护),如果临时添加网络测试的话可以使用route命令进行添加。