为什么删除接口上的ip后不能删除默认路由项?

为什么删除接口上的ip后不能删除默认路由项?

在 Linux 机器上,我有以下 IP 设置:

ruckus$ ifconfig -a

br0       Link encap:Ethernet  HWaddr F0:3E:90:07:8E:E0

      inet addr:172.18.140.3  Bcast:172.18.140.255  Mask:255.255.255.0
      inet6 addr: fe80::169:254:17:11/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:5719 errors:0 dropped:0 overruns:0 frame:0
      TX packets:5175 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:1277606 (1.2 MiB)  TX bytes:619615 (605.0 KiB)

br0:169   Link encap:Ethernet  HWaddr F0:3E:90:07:8E:E0 

      inet addr:169.254.17.11  Bcast:169.254.17.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

路由表如下:

ruckus$ route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use 
Iface

0.0.0.0         172.18.140.254  0.0.0.0         UG    0      0        0 br0
169.254.17.0    0.0.0.0         255.255.255.0   U     0      0        0 br0

然后我删除接口 br0 上的 IP

ruckus$ ifconfig br0 0.0.0.0

ruckus$ route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use 
Iface

0.0.0.0         172.18.140.254  0.0.0.0         UG    0      0        0 br0
169.254.17.0    0.0.0.0         255.255.255.0   U     0      0        0 br0

可以看到默认路由项仍然存在。我认为删除接口上的 IP 时内核应该会删除默认路由项。我认为最可能的原因是我正在 Linux 机器上应用“策略路由”。接口 br0:169 上仍然有一个 IP,所以内核不会删除 br0 上的默认路由项?

这是真的吗?如果是,为什么?

相关内容