根据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命令进行添加。