Alterar endereço IP do host remoto sem perder o controle (Linux)

10

Como posso alterar um host remoto primário endereço IP sem ficar desconectado em tudo (sem estar em um estado "sem endereço IP").

O assunto é pouco discutido na Internet (de acordo com minha pesquisa). O melhor recurso que encontrei é um pouco complicado.

EXEMPLO: altere 10.0.0.11/24 para 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 

Problema: O último comando remove os dois endereços IP e a conexão é perdida porque 10.0.0.11 é primário e remove seus endereços secundários (aos quais 10.0.0.15 pertence) quando excluídos.

Eu sei que poderia "enganar", acrescentando 10.0.0.11/ 25 (em vez de 24 ). No entanto, acho que é teoricamente possível fazer isso corretamente.

O que você acha?

Totor
fonte
não é trapaça se você usar a máscara / 32 ... #
2213 zb '
mas não iria funcionar porque a / 32 não pode se comunicar com qualquer coisa, mas em si ...
Totor
ok, mas / 25 também não funcionará.
zb

Respostas:

11

Você precisa definir a promote_secondariesopção na interface ou em todas as interfaces:

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

ou

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

Altere eth0para allque ele funcione em todas as interfaces.

Esta opção está presente desde 2.6.12 .

Eu testei isso com uma interface fictícia e funcionou lá.

camh
fonte
Exatamente o que eu precisava, obrigado! Veja o commit original .
Totor
1
Observe que esta opção está disponível desde 2.6.12 , portanto, antes de 2.6.16.
Totor 27/08