為什麼ifdown of alias會刪除我的主介面?

為什麼ifdown of alias會刪除我的主介面?

我在我的電腦上定義了介面 eth0 和與其相關的別名 eth0: 1

# ifconfig
eth0      Link encap:Ethernet  HWaddr X:5D:X:3F:X:89  
          inet addr:X.X.0.156  Bcast:0.0.0.0  Mask:X.X.X.X
          inet6 addr: X::9a5d:X:fe3f:X/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:677 errors:0 dropped:0 overruns:0 frame:0
          TX packets:180 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:56767 (55.4 KiB)  TX bytes:16019 (15.6 KiB)
          Interrupt:175 

eth0:1    Link encap:Ethernet  HWaddr X:5D:X:3F:X:89   
          inet addr:X.X.0.181  Bcast:0.0.0.0  Mask:X.X.X.X
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:175 

但是當我只想使用下面的命令來停用別名時,它也會刪除 eth0。

/sbin/ifdown eth0:1

為什麼會發生這種情況?

另一方面,如果它嘗試使用命令禁用別名,它會起作用並自行刪除:

ifconfig eth0:1 down

但是當我再次恢復別名時,我的情況如下

# /sbin/ifup eth0:1
ifup: interface eth0:1 already configured
# /sbin/ifdown eth0:1
# /sbin/ifup eth0:1

# ifconfig 
eth0      Link encap:Ethernet  HWaddr X:5D:X:3F:X:89  
          inet6 addr: X::9a5d:X:fe3f:X/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1321 errors:0 dropped:0 overruns:0 frame:0
          TX packets:235 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:111766 (109.1 KiB)  TX bytes:20421 (19.9 KiB)
          Interrupt:175 

eth0:1    Link encap:Ethernet  HWaddr X:5D:X:3F:X:89   
          inet addr:X.X.0.181  Bcast:0.0.0.0  Mask:X.X.X.X
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:175 

Eth0 遺失其 IP 位址和設定。這可能會導致我無法單獨刪除和設定別名?

/etc/network/interfaces檔案定義了eth0和eth0:1

# cat /etc/network/interfaces
auto eth0
iface eth0 inet static
    address X.X.0.156
    netmask X.X.X.X
    gateway X.X.0.1

auto eth0:1
iface eth0:1 inet static
    address X.X.0.181
    netmask X.X.X.X

答案1

假設您的子網路遮罩相同:

根據您的觀察,至少 linux 核心 4.19 有一個錯誤。將同一子網路中的 2 個 IP 位址新增至一個介面並刪除第一個,將同時刪除這兩個位址:

    ifconfig eth0 1.1.1.1/24
    ifconfig eth0:2 1.1.1.2/24
    ifconfig eth0 0

但請記住,在一個介面上擁有相同子網路的 2 個 IP 位址仍然是一種錯誤配置。它將監聽兩個 IP 位址,但未指定應答 IP 位址。僅暫時使用此配置。 Linux 核心 5.10 在這種情況下刪除了正確的 IP 位址。

相關內容