Linux で特定の IP をダウンさせるにはどうすればいいですか?

Linux で特定の IP をダウンさせるにはどうすればいいですか?

皆さん、アップ IP の集合から特定の IP をダウンさせようとしています。どうしたらいいでしょうか? たとえば、アップしている IP が次のとおりだとします (シーケンスは同じです): 1.2.3.4 1.2.3.5 1.2.3.6 これを「ifconfig etho:x 1.2.3.x up」で実行しました (x=4,5,6)。 今度は最初の IP、つまり 1.2.3.4 だけをダウンさせたいので、「ifconfig eth0:4 down」として試しています。 問題は、必要な IP がダウンするだけでなく、その下の IP もすべてダウンしてしまうことです。 Linux RedHat で作業しています。 よろしくお願いします...

答え1

ip addr del 1.2.3.4/24 dev eth0:4 これらはeth0:n実際にはインターフェースではなく、ラベル (またはエイリアス) と呼ばれます。同じインターフェースに複数のアドレスを割り当てることができるため、ラベルは IP の用途を区別するのに役立ちます。これは、ラベルを設定すると、他のすべてがそれに従う理由も説明しています。実際には eth0 と通信しているだけだからです。

答え2

ほとんどのオペレーティング システムでは、1 つのインターフェイスに複数の IP アドレスを割り当てることができます。これは、IP エイリアスまたは論理ネットワーク インターフェイスと呼ばれます。複数の IP アドレスを特定のラベル/エイリアスに関連付けることができます。エイリアスは、ユーザーの利便性のために用意されています。

以下のケースでは、ラベルはIP アドレスeth0:1に関連付けられています。また、ラベルはに関連付けられています。192.168.1.1 to 192.168.1.3eth0:2192.168.1.4 to 192.168.1.6

# ip addr add 192.168.1.1/24 dev eth0 label eth0:1
# ip addr add 192.168.1.2/24 dev eth0 label eth0:1
# ip addr add 192.168.1.3/24 dev eth0 label eth0:1
# ip addr add 192.168.1.4/24 dev eth0 label eth0:2
# ip addr add 192.168.1.5/24 dev eth0 label eth0:2
# ip addr add 192.168.1.6/24 dev eth0 label eth0:2

$ ip addr ls dev eth0 
    inet 192.168.1.1/24 scope global eth0:1
    inet 192.168.1.2/24 scope global secondary eth0:1
    inet 192.168.1.3/24 scope global secondary eth0:1
    inet 192.168.1.4/24 scope global secondary eth0:2
    inet 192.168.1.5/24 scope global secondary eth0:2
    inet 192.168.1.6/24 scope global secondary eth0:2

インターフェースに関連付けられた特定の IP アドレス、またはエイリアスに関連付けられた複数の IP アドレスを持ち込むことができます。

eth0:1以下のコマンドは、ラベルに関連付けられているすべての IP アドレスを一覧表示します。

$ ip addr ls label eth0:1
    inet 192.168.1.1/24 scope global eth0:1
    inet 192.168.1.2/24 scope global secondary eth0:1
    inet 192.168.1.3/24 scope global secondary eth0:1

特定の IP アドレスを削除できます。

$ sudo ip addr del 192.168.1.3/24 dev eth0 
$ sudo ip addr ls label eth0:1
    inet 192.168.1.1/24 scope global eth0:1
    inet 192.168.1.2/24 scope global secondary eth0:1

関連情報