Ontem fiz uma reinstalação rápida de um servidor (físico) no datacenter e, como estava com pouco tempo e sem acesso fácil ao nosso banco de dados, acabei de atribuir um IP que eu sabia que estava disponível e que me permitiria acessar mais tarde para atribuir o endereço correto e continue provisionando de um local mais quente.
Hoje eu entrei no servidor (em 172.16.130.10/22) e fiz o seguinte:
ip addr add 172.16.128.67/22 dev eth0
Em um terminal na minha estação de trabalho local, verifiquei se ele respondia ao ping no novo endereço e fazia o login através dele:
$ ping 172.16.128.67
PING 172.16.128.67 (172.16.128.67) 56(84) bytes of data.
64 bytes from 172.16.128.67: icmp_req=2 ttl=62 time=3.61 ms
64 bytes from 172.16.128.67: icmp_req=3 ttl=62 time=4.87 ms
^C
$ ssh 172.16.128.67
Até aí tudo bem, eu estava conectado através do novo endereço IP e o antigo não era mais necessário. Fui em frente e removi:
ip addr del 172.16.130.10/22 dev eth0
Mas assim que eu atingi Enterminha sessão SSH congelou e não consegui mais me conectar. Eu tive que solicitar um operador no local para reiniciar o servidor para mim.
Onde é que eu me enganei? Por que remover esse endereço mataria minha conexão?
fonte
Respostas:
No linux, os endereços IP têm uma noção de endereços 'primário' e 'secundário'. O principal geralmente é o primeiro endereço que você adiciona ao sistema. A remoção do endereço primário também tem a operação implícita de liberar a lista inteira de endereços secundários.
Você pode evitar esse comportamento definindo o sysctl
net.ipv4.conf.all.promote_secondaries
como 1 da seguinte maneira:Isso altera o comportamento de forma que, quando um IP primário é removido, ele não libera os endereços restantes e, em vez disso, promove um novo endereço IP como principal.
fonte
An IP address becomes secondary if another address within the same prefix (network) already exists. The first address within the prefix is primary and is the tag address for the group of all the secondary addresses. When the primary address is deleted all of the secondaries are purged too.