我有一个网络接口,我想为其配置路由。
# 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
任何反馈将不胜感激。谢谢你!
你看是
proto static
因为你创建了一条静态路由。内核隐式创建的路由被标记proto kernel
(例如,如果您创建一个带有地址的接口192.168.1.100/24
,内核将192.168.1.0/24
通过该接口创建一个到网络的隐式路由)。您会看到proto dhcp
通过 dhcp 设置的路由,proto zebra
通过 Zebra 路由守护程序设置的路由等(这些实际上都存储为数字,名称/数字映射在 中/etc/iproute2/rt_protos
)。如果将默认路由添加到路由表(如通过设置),则需要到该地址
ipv4.routes '0.0.0.0/0 172.21.1.1 table=1'
的路由。172.21.1.1
在通常情况下,您的默认路由将与您的一个接口共享一个网络,因此您将拥有一个适当的隐式内核路由(请参阅上一节)。在这种情况下,您已将默认路由添加到空路由表中。添加该附加静态路由以
nmcli
确保可以访问指定的网关。