Linuxで特定のIPを取得する方法は?

Linuxで特定のIPを取得する方法は?

こんにちは、利用可能なIPセットから特定のIPを削除しようとしています。どうすればいいですか?たとえば、次のようなIP(同じ順序)があるとします。 1.2.3.4 1.2.3.5 1.2.3.6 x = 4,5,6の場合は、「ifconfig etho:x 1.2.3.x up」を使用してこれを行います。さて、最初の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

ほとんどのオペレーティングシステムでは、IPエイリアスまたは論理ネットワークインターフェイスと呼ばれる単一のインターフェイスに複数のIPアドレスを割り当てることができます。複数のIPアドレスを特定のラベル/エイリアスに関連付けることができます。エイリアスは私たち自身の便宜のためです。

次の例では、ラベルはeth0:1IPアドレスに関連付けられています。192.168.1.1 to 192.168.1.3そしてeth0:2ラベルはに関連付けられています192.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アドレスをエイリアスに接続したりできます。

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

$ 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

関連情報