我有一个网络接口,我想为其配置路由。
# 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
确保指定的网关可访问。