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 [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 

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?

Totor
la source
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.

camh
la source
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