Ändern Sie die IP-Adresse des Remote-Hosts, ohne die Kontrolle zu verlieren (Linux)

10

Wie kann ich einen Remote - Host ändern Primär getrennt , ohne sich die IP - Adresse überhaupt (ohne in „keine IP addr“ Zustand).

Die Angelegenheit wird im Internet schlecht diskutiert (nach meinen Recherchen). Die beste Ressource, die ich gefunden habe, ist etwas knifflig.

BEISPIEL: Ändern Sie 10.0.0.11/24 in 10.0.0.15/24

1. ssh [email protected]
2. ip addr add 10.0.0.15/24 dev eth0 
3. logout

4. ssh [email protected]
5. ip addr del 10.0.0.11/24 dev eth0 

Problem: Der letzte Befehl entfernt beide IP-Adressen und die Verbindung wird unterbrochen, da 10.0.0.11 primär ist, und entfernt seine sekundären Adressen (zu denen 10.0.0.15 gehört), wenn sie gelöscht werden.

Ich weiß , ich könnte „betrügen“ von 10.0.0.11/ Zugabe von 25 (statt 24 ). Ich denke jedoch, dass es theoretisch möglich ist, dies richtig zu machen.

Was denkst du?

Totor
quelle
Es ist kein Betrug, wenn Sie / 32 Maske verwenden ...
zb
aber es würde nicht funktionieren, weil a / 32 nur mit sich selbst kommunizieren kann ...
Totor
ok, aber / 25 wird auch nicht funktionieren als.
zb

Antworten:

11

Sie müssen die promote_secondariesOption auf der Schnittstelle oder auf allen Schnittstellen festlegen :

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

oder

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

Ändern Sie eth0, alldamit es auf allen Schnittstellen funktioniert.

Diese Option gibt es seit dem 2.6.12 .

Ich habe dies mit einer Dummy-Schnittstelle getestet und es hat dort funktioniert.

camh
quelle
Genau das, was ich brauchte, danke! Siehe das ursprüngliche Commit .
Totor
1
Bitte beachten Sie, dass diese Option seit dem 2.6.12 verfügbar ist , also vor dem 2.6.16.
Totor