制御を失うことなくリモートホストのIPアドレスを変更する(Linux)


10

まったく切断さずに(「IPアドレスなし」の状態にならずに)リモートホストのプライマリ IPアドレスを変更するにはどうすればよいですか。

問題はインターネット上ではあまり議論されていません(私の研究によると)。私が見つけた最高のリソースは少しトリッキーです。

例:10.0.0.11/24を10.0.0.15/24に変更する

1. ssh root@10.0.0.11
2. ip addr add 10.0.0.15/24 dev eth0 
3. logout

4. ssh root@10.0.0.15
5. ip addr del 10.0.0.11/24 dev eth0 

問題: 10.0.0.11がプライマリであるため、最後のコマンドで両方のIPアドレスが削除され、接続が失われ、削除するとセカンダリアドレス(10.0.0.15が属する)が削除されます。

10.0.0.11/ 2524の代わりに)を追加することで、「チート」できることを知っています。ただし、理論的にはこれを正しく行うことは可能だと思います。

どう思いますか?


/ 32マスクを使用する場合、それはチートではありません...
zb

/ 32はそれ自体とは通信できないため、機能しません...
Totor

わかりましたが、/ 25も機能しません。
zb

回答:


11

promote_secondariesインターフェイスまたはすべてのインターフェイスでオプションを設定する必要があります。

echo 1 > /proc/sys/net/ipv4/conf/eth0/promote_secondaries

または

sysctl net.ipv4.conf.eth0.promote_secondaries=1

すべてのインターフェイスで機能するように変更eth0allます。

このオプションは、2.6.12以降に含まれています。

これをダミーインターフェイスでテストしましたが、そこで機能しました。


本当に必要なもの、ありがとう!元のコミットを参照してください。
Totor

1
このオプションが利用可能であることに注意してください2.6.12以降ので、前に 2.6.16。
Totor 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.