エイリアスの ifdown によってメイン インターフェイスが削除されるのはなぜですか?

エイリアスの ifdown によってメイン インターフェイスが削除されるのはなぜですか?

私のコンピュータにはインターフェース 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 アドレスを 1 つのインターフェイスに追加し、最初の IP アドレスを削除すると、両方が削除されます。

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

ただし、1 つのインターフェースに同じサブネットの 2 つの IP アドレスを設定するのは依然として誤った構成であることに留意してください。両方の IP アドレスをリッスンしますが、応答 IP アドレスが指定されていません。この構成は一時的にのみ使用してください。Linux カーネル 5.10 は、この状況で正しい IP アドレスを削除します。

関連情報