CentOS8 默认使用Network Manger管理网络。
使用 ip route add添加的路由是临时的。
举例:
[root@localhost ~]# ip route add 192.168.100.0/24 via 172.16.16.254
此时,访问192.168.100.0/24网段,下一跳指向172.16.16.254
临时添加路由的方法无需重启网卡,立即生效,但是如果对网卡进行了重启,临时路由会立即丢失,操作不当有可能造成断网。
配置开机立即生效的永久静态路由有以下方式:
1. 来自RHEL8 官方文档的方法
要配置静态路由,请使用以下语法的 nmcli
工具:
$ sudo nmcli connection modify connection_name ipv4.routes "ip[/prefix] [next_hop] [metric] [attribute=value] [attribute=value] ..."
该命令支持以下路由属性:
table=n
src=address
tos=n
onlink=true|false
window=n
cwnd=n
mtu=n
lock-window=true|false
lock-cwdn=true|false
lock-mtu=true|false
如果您使用 ipv4.routes
子命令,nmcli
会覆盖这个参数的所有当前设置。要添加额外路由,请使用 nmcli connection modify connection_name +ipv4.routes "…"
命令。同样,您可以使用 nmcli connection modify connection_name -ipv4.routes "…"
删除特定路由。
您可以使用 nmcli connection modify
命令在网络连接配置中添加静态路由。
本节中的步骤论述了如何将路由添加到使用 192.0.2.0/24
运行网关的 198.51.100.1
网络,这些网关可通过 example
连接访问。
先决条件
- 网络已配置
- 静态路由的网关必须在接口上直接访问。
- 如果用户在物理控制台中登录,用户权限就足够了。否则,命令需要
root
权限。
流程
-
将静态路由添加到
example
连接:$
sudo nmcli connection modify example +ipv4.routes "192.0.2.0/24 198.51.100.1"
要在一个步骤中设置多个路由,使用逗号分隔单个路由传递给该命令。例如,要将路由添加到
192.0.2.0/24
和203.0.113.0/24
网络(都通过198.51.100.1
网关路由),请输入:$
sudo nmcli connection modify example +ipv4.routes "192.0.2.0/24 198.51.100.1, 203.0.113.0/24 198.51.100.1"
-
(可选)验证路由是否已正确添加到配置中:
$
nmcli connection show example
... ipv4.routes: { ip = 192.0.2.1/24, nh = 198.51.100.1 } ... -
重启网络连接:
$
sudo nmcli connection up example
警告
重启连接会破坏那个接口的连接。
-
(可选)验证路由是否活跃:
$
ip route
... 192.0.2.0/24 via 198.51.100.1 dev example proto static metric 100
其它资源
- 有关
nmcli
的详情,请查看nmcli(1)
man page。
2、将添加静态路由的命令写入/etc/rc.local
ip route add 192.168.100.0/24 via 172.16.16.254
需要设置为默认路由就这么写:
ip route add 0.0.0.0/0 via 172.16.16.254
3、将静态路由的条目写入配置文件
在/etc/sysconfig/network-scripts/目录下创建route-connection配置文件,其中connection为对应的连接的名称。
[root@localhost ~]# cat /etc/sysconfig/network-scripts/route-ens192
192.168.101.0/24 via 172.16.16.254
需要设置为默认路由就这么写:
0.0.0.0/0 via 172.16.16.254
4、写入/etc/sysconfig/static-routes配置文件
[root@localhost ~]# cat /etc/sysconfig/static-routes
any net 192.168.101.0/24 via 172.16.16.254
或者
any host 123.456.123.123 via 172.16.16.254
需要设置为默认路由就这么写:
any net 0.0.0.0/0 via 172.16.16.254