我需要使以下两行持久化,以便它们在服务器重启时可用,现在我已经证明路由和规则按预期工作AlmaLinux 8
(AlmaLinux 基本与 CentOS 相同)
ip route add default via x.x.x.x dev eno5 src x.x.x.x table 1
ip rule add from x.x.x.x table 1
我所看到的一切都表明我应该能够在其中创建一个文件/etc/sysconfig/network-scripts/route-eno5
并添加行,default via x.x.x.x dev eno5 src x.x.x.x table 1
但是当我保存并重新启动时,这些规则不适用。/etc/sysconfig/network-scripts/route-eno5
from x.x.x.x table 1
这在 AlmaLinux 8 上不受支持并且以不同的方式完成,还是我做错了什么?
答案1
RHEL 8 及更高版本(以及所有派生发行版,如 CentOS 和 AlmaLinux)不再使用旧/etc/sysconfig/network-scripts
目录。正确的解决方案是修改 NetworkManager 配置。
NetworkManager 可以添加静态路由和策略路由规则。这里有一些相关文档这里。
在默认的 CentOS 8(stream)安装中,我的 NetworkManager 配置如下所示:
[root@localhost ~]# nmcli c show
NAME UUID TYPE DEVICE
System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0
如果我想添加一条策略路由eth0
,我会这样做:
nmcli c mod 'System eth0' \
ipv4.addresses 10.0.0.10/24 \
ipv4.routes '0.0.0.0/0 10.0.0.1 table=1' \
ipv4.route-rules 'priority 100 from 10.0.0.0/24 table 1'
在这个例子中,我添加了一个静态 IP 地址,它不同于使用 DHCP 动态分配的 IP 地址;根据您的本地配置情况,在您的情况下这可能不是必需的。
重启后界面:
nmcli c down 'System eth0'; nmcli c up 'System eth0'
我现在有:
[root@localhost ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:c1:f0:62 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.10/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet 192.168.122.164/24 brd 192.168.122.255 scope global dynamic noprefixroute eth0
valid_lft 3505sec preferred_lft 3505sec
inet6 fe80::5054:ff:fec1:f062/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]# ip rule show
0: from all lookup local
100: from 10.0.0.0/24 lookup 1
32766: from all lookup main
32767: from all lookup default
[root@localhost ~]# ip route show table 1
default via 10.0.0.1 dev eth0 proto static metric 100
10.0.0.1 dev eth0 proto static scope link metric 100
答案2
您可以使用“NetworkManager 文本用户界面”(nmtui 工具)
# yum install NetworkManager-tui
# nmtui
去编辑连接,选择连接...添加路线路由部分。