Modifier l'adresse IP de l'hôte distant sans perdre le contrôle (Linux)


10

Comment puis-je changer une adresse IP principale d' hôte distant sans être déconnecté du tout (sans être dans un état "no IP addr").

La question est peu discutée sur Internet (selon mes recherches). La meilleure ressource que j'ai trouvée est un peu délicate.

EXEMPLE: remplacer 10.0.0.11/24 par 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 

Problème: la dernière commande supprime les deux adresses IP et la connexion est perdue car 10.0.0.11 est principale et elle supprime ses adresses secondaires (auxquelles appartient 10.0.0.15) lorsqu'elle est supprimée.

Je sais que je pourrais "tricher" en ajoutant 10.0.0.11/ 25 (au lieu de 24 ). Cependant, je pense qu'il est théoriquement possible de le faire correctement.

Qu'est-ce que tu penses?


ce n'est pas une triche si vous utilisez le masque / 32 ...
zb

mais cela ne fonctionnerait pas car un / 32 ne peut pas communiquer avec autre chose que lui-même ...
Totor

ok, mais / 25 ne fonctionnera pas non plus.
zb

Réponses:


11

Vous devez définir l' promote_secondariesoption sur l'interface ou sur toutes les interfaces:

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

ou

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

Changez eth0pour allle faire fonctionner sur toutes les interfaces.

Cette option existe depuis le 2.6.12 .

J'ai testé cela avec une interface factice et cela a fonctionné là-bas.


Exactement ce dont j'avais besoin, merci! Voir le commit d'origine .
Totor

1
Veuillez noter que cette option est disponible depuis le 2.6.12 , donc avant le 2.6.16.
Totor
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.