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

10

Como posso alterar um endereço IP principal do host remoto sem ser desconectado de todo (sem estar em um estado "sem endereço IP").

O assunto é mal discutido na Internet (segundo minha pesquisa). O melhor recurso que encontrei é um pouco complicado.

EXEMPLO: alteração de 10.0.0.11/24 a 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 ambos os endereços IP e a conexão é perdida porque 10.0.0.11 é primária, e remove seus endereços secundários (aos quais 10.0.0.15 pertence) quando excluídos.

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

O que você acha?

    
por Totor 12.01.2013 / 23:06

1 resposta

11

Você precisa definir a opção promote_secondaries 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 eth0 para all para que funcione em todas as interfaces.

Esta opção está em desde o 2.6. 12 .

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

    
por 13.01.2013 / 04:54