在 RHEL 8 / Rocky 8 上使用 nmcli 使 IP 路由和路由规则永久生效

在 RHEL 8 / Rocky 8 上使用 nmcli 使 IP 路由和路由规则永久生效

我有一个网络接口,我想为其配置路由。

# ip address show br_10G_V888
6: br_10G_V888: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 78:ac:44:09:9d:82 brd ff:ff:ff:ff:ff:ff
    inet 172.21.1.48/24 brd 172.21.1.255 scope global noprefixroute br_10G_V888
       valid_lft forever preferred_lft forever

我可以使用以下方式设置规则ip

# ip route add default via 172.21.1.1 dev br_10G_V888 table dmz
# ip rule add from 172.21.1.0/24 lookup dmz
# ip route show table dmz
default via 172.21.1.1 dev br_10G_V888
# ip rule
0:      from all lookup local
32765:  from 172.21.1.0/24 lookup dmz
32766:  from all lookup main
32767:  from all lookup default

我想使用 使这些更改持久化nmcli。但是,我无法重新创建配置。

# nmcli connection modify br_10G_V888 \
  ipv4.routes '0.0.0.0/0 172.21.1.1 table=1' \
  ipv4.routing-rules 'priority 32765 from 172.21.1.0/24 table 1'
# nmcli connection up br_10G_V888
# ip route show table dmz
default via 172.21.1.1 dev br_10G_V888 proto static
172.21.1.1 dev br_10G_V888 proto static scope link
# ip rule
0:      from all lookup local
32765:  from 172.21.1.0/24 lookup dmz
32766:  from all lookup main
32767:  from all lookup default

任何反馈都将不胜感激。谢谢!

答案1

我对网络还很陌生,所以请耐心等待!我在第一行看到了诸如 proto static 之类的额外术语...

您会看到proto static,因为您已经创建了静态路由。内核隐式创建的路由会被标记proto kernel(例如,如果您创建了一个地址为 的接口192.168.1.100/24,内核将192.168.1.0/24通过该接口创建一条隐式到网络的路由)。您将看到proto dhcp通过 dhcp 设置的路由、proto zebra通过 Zebra 路由守护程序设置的路由等(这些实际上都存储为数字,名称/数字映射位于/etc/iproute2/rt_protos)。

...以及带有 172.21.1.1 dev br_10G_V888 proto static scope link 的新行。

如果你在路由表中添加了默认路由(如你通过设置ipv4.routes '0.0.0.0/0 172.21.1.1 table=1'),则需要一条到该172.21.1.1地址的路由。通常情况下,您的默认路由将与您的一个接口共享一个网络,因此您将拥有一个适当的隐式内核路由(请参阅上一节)。

在这种情况下,您已将默认路由添加到空路由表中。该附加静态路由由nmcli确保指定的网关可访问。

相关内容