次のように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が削除され、その処理方法がわかりません。
誰でもそれを解決する方法を知っていますか?
ip addr show
出力を追加してください
次のように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が削除され、その処理方法がわかりません。
誰でもそれを解決する方法を知っていますか?
ip addr show
出力を追加してください
回答:
インターフェイスからプライマリ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。
これは、削除時に/ 24ネットワークマスクを使用するために発生します。入力したアドレスに適用されます。以下を試してください:
ip addr del 1.1.1.2/32 dev eth2
/ 32マスクは正確に1つのホストを定義します。
ip addr del 1.1.1.2 dev eth2
これをチェックするeth2はありませんが、eth0で正しく動作し、eth2が魔法である必要がある理由はわかりません。あなたが使用ip addr show dev eth2
しifconfig 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のアドレスも削除されます。他のアドレスを削除すると、そのアドレスのみが削除されます。
@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