LinuxでIPコマンドを使用してIPを削除する


12

次のように2つのIPを追加すると、

ip addr add 1.1.1.1/24 dev eth2
ip addr add 1.1.1.2/24 dev eth2

そして、私はこのようなものを削除しようとします:

ip addr del 1.1.1.2/24 dev eth2

両方のIPが削除され、その処理方法がわかりません。

誰でもそれを解決する方法を知っていますか?


あなたの要求は明確ではありません。ここで期待される出力は何かわかりますか?
グル

両方ではなく1つのIPを削除するためだけにipと言う必要があります
Hamed JML

ip addr show出力を追加してください
Gevial

回答:


10

インターフェイスからプライマリIPアドレスを削除すると、デフォルトで、同じサブネット上の他のすべてのアドレスが削除されます。

これは、13-Mar-13に回答を提供したユーザーlainによって報告されたREHLバグ1136733への返信です...

同じサブネットに複数のアドレスを追加するため、2番目以降のアドレスはセカンダリになります。これは「ip addr show」出力で確認できます。これらのアドレスの横にあるキーワード「secondary」に注意してください。

デフォルトでは、プライマリアドレスを削除すると、カーネルはそれぞれのセカンダリもすべて削除します。

セカンダリの1つをプライマリ削除時に新しいプライマリに昇格させる場合は、net.ipv4.conf.eth9.promote_secondaries sysctlを設定します。


sudo systemctl net.ipv4.conf.eth0.promote_secondaries不明な操作net.ipv4.conf.eth0.promote_secondaries。
Laryx Decidua 2018年

@LaryxDecidua systemctlsysctl
yahol

7

これは、削除時に/ 24ネットワークマスクを使用するために発生します。入力したアドレスに適用されます。以下を試してください:

ip addr del 1.1.1.2/32 dev eth2

/ 32マスクは正確に1つのホストを定義します。


/ 32ではなく/ 24のネットマスクをシステムに指定したため、これは機能しません。
Hamed JML 2013年

ネットマスクなしで試してみてください:ip addr del 1.1.1.2 dev eth2
Gevial

もう一度、両方のIPを削除します!!
Hamed JML 2013年

奇妙な。私のテストでは、ネットマスクなしのCentOSボックスの削除は成功しました。/ 24で削除しても、影響を受けるアドレスは1つだけです。どのディストリビューションを使用していますか?
Gevial

1
私はUbuntu 12.04を使用しています
Hamed JML 2013年

2

これをチェックするeth2はありませんが、eth0で正しく動作し、eth2が魔法である必要がある理由はわかりません。あなたが使用ip addr show dev eth2ifconfig eth2ていると思いますが、ipによって追加された追加のアドレスは表示されないようです。

私が気づいたことの1つは、アドレスを作成/削除する順序が重要であることです。同じネットワーク内で追加された2番目以降のアドレスは、プライマリアドレスが削除されると削除されます。考慮してください...

    inet 1.1.1.1/24 scope global eth0
    inet 1.1.2.3/24 scope global eth0
    inet 1.1.1.2/24 scope global secondary eth0
    inet 1.1.1.3/24 scope global secondary eth0

1.1.1.1を削除すると、1.2と1.3のアドレスも削除されます。他のアドレスを削除すると、そのアドレスのみが削除されます。


それで、他の人を削除せずに最初のアドレスを削除するにはどうすればよいですか?
Hamed JML 2013年

0

私は以下を試します:

ip addr del 1.1.1.2 dev eth2


0

@bvs答えは問題の正しい方向を示し、それを私のために解決しました。ここでは、正確なコマンドの詳細を示します。多くの場合、デフォルトのインターフェースはですがeth0、次のコマンドでそれを採用していますeth2。元の質問ではこれを置き換える必要があります。

一時的な解決策(再起動するまで)の使用

sudo sysctl -w net.ipv4.conf.eth0.promote_secondaries=1

再起動後も持続する永続的なソリューションの場合、次の内容のファイル/etc/sysctl.d/ip-promote.conf(またはで終わる他のファイル名.conf)を作成します。

# The following makes that a second IP on the eth0 interface
# is promoted as primary IP instead of being removed.
net.ipv4.conf.eth0.promote_secondaries=1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.