Na komputerze z linuxem mam następujące ustawienia 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
Tabela routingu to:
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
A następnie usuwam adres IP w interfejsie br0
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
Jak widać domyślny element routingu nadal istnieje. Myślę, że jądro powinno usuwać domyślne elementy routingu, gdy adres IP w interfejsie jest usuwany. Najbardziej prawdopodobną przyczyną jest to, że stosuję „routing polityki” na komputerze z linuxem. Nadal istnieje IP w interfejsie br0: 169, więc jądro nie usuwa domyślnego elementu routingu na br0?
Czy to prawda, a jeśli tak, to dlaczego?
2
To nie jest właściwy sposób na usunięcie adresu. Powinieneś wydać: ip link set dev br0 down & amp; ip addr flush dev br0 , zgodnie z którym tabela routingu będzie pusta.
MariusMatutiae