Força que os servidores Linux tentem automaticamente obter um endereço IP se perdê-lo

7

Usamos concessões DHCP estáticas para nossos servidores Linux em nossa rede de pequenas empresas. Recentemente algo de ruim aconteceu com o servidor DHCP e todos os servidores Linux acabaram perdendo seus endereços IP, já que não conseguiam encontrar um servidor DHCP na rede.

Avanço rápido um dia depois, o servidor DHCP estava de volta e funcionando, mas os servidores não pareciam mais procurar o servidor DHCP, portanto, eles não tinham um endereço IP e não estavam tentando pegue um. Eu acabei tendo que manualmente e fisicamente ir a cada servidor e reiniciar a rede, ponto em que eles iriam obter imediatamente o seu endereço IP de volta.

Existe algo que eu possa fazer nos servidores para evitar esse problema no futuro? Eu tenho certeza que depois que o servidor DHCP foi desativado, os servidores talvez tentaram obter um endereço IP renovado por um tempo, mas eventualmente eles pararam de tentar.

Obviamente, uma solução é ter um servidor DHCP de backup, mas vamos fingir que isso não é uma opção. Existe alguma maneira de forçar os servidores a continuar tentando renovar seu IP indefinidamente?

Os servidores são uma mistura do CentOS e do Fedora.

    
por Jake Wilson 05.11.2010 / 18:00

4 respostas

13

Eles voltaram ao endereçamento da APIPA? 169.254.0.0/16? Você pode desativá-lo com a diretiva NOZEROCONF = Yes em / etc / sysconfig / rede.

Você também deve estender sua concessão de DHCP para ser duas vezes o maior intervalo de interrupção razoável do servidor DHCP. Os clientes geralmente esperam metade do período de locação antes de tentar renovar; se eles só fizerem o check-in uma vez a cada dois dias, você terá uma margem considerável para consertar o servidor ou levantar um novo.

Executamos o DHCP totalmente reservado na produção; não foi um problema de confiabilidade. Na verdade, afirmo que o endereçamento IP estático é uma das últimas operações manuais às quais as pessoas se apegam, e é em grande parte um anacronismo. Eu não fiz uma análise formal, mas em três anos tivemos um problema relacionado ao DHCP, e esse foi um erro de administração que disparou um script "release now". No histograma de causas "Oops", o DHCP está bem longe na cauda longa.

Eu sei que todo mundo gosta de escória no Windows, mas IME quando o APIPA está desabilitado e DHCP habilitado, as máquinas Windows são francamente tenazes em segurar qualquer que seja sua última atribuição de DHCP. Eu liguei máquinas depois de meses de naftalina, e o wireshark as mostrou pedindo o último endereço atribuído pelo DHCP.

    
por 05.11.2010 / 18:33
6

Eu uso endereços IP estáticos para servidores, DHCP somente para computadores pessoais.

Embora eu acredite que o DHCP faça algum esforço para evitar a alteração do endereço IP de um dispositivo, isso não é uma exceção - na expiração de uma concessão, o computador pode receber um endereço IP diferente pelo DHCP. Eu sempre achei que isso seria uma coisa ruim para deixar acontecer com um servidor no meio de um dia de trabalho.

    
por 05.11.2010 / 18:05
4

Você pode definir PERSISTENT_DHCLIENT=yes em / etc / sysconfig / network-scripts / ifcfg-ethX. Isso efetivamente remove o sinalizador -1 que é enviado ao dhclient por padrão nos sistemas de estilo RedHat. De man dhclient :

The -1 flag cause dhclient to try once to get a lease. If it fails, dhclient exits with exit code two.

No entanto, caso você tenha uma queda de energia e seus servidores voltem a ficar on-line antes dos seus switches, isso não funciona devido a link . Basicamente, esse bug diz que ifup primeiro verifica se um link está presente na interface antes de tentar executar o dhclient. Nenhum link - > sem dhclient.

Minha solução é adicionar isso ao crontab do root:

*/5 * * * * ifconfig eth0 | grep -q "inet addr:" || ifup eth0 2>&1 >/dev/null

Adicione também isto ao /etc/dhcp/dhclient.conf para uma rápida recuperação:

retry 10
timeout 10
    
por 17.07.2011 / 16:40
1

Os tempos de concessão são definidos pelo servidor, não pelo cliente. Você pode tentar aumentar a duração da concessão para qualquer escopo a que seus servidores estejam atribuídos, mas isso é apenas um band-aid. Você realmente precisa configurar um servidor DHCP redundante ou, preferencialmente, mover seus servidores para endereços atribuídos estaticamente.

    
por 05.11.2010 / 18:09