Estou executando um servidor CentOS 6.2 como meu gateway e firewall, além de fornecer alguns serviços internos. Esta é uma configuração que eu tenho há anos usando vários hardwares e distribuições (baseados em redhat). Recentemente eu corri através de um problema de conectividade com a Internet e acredito que é devido a uma falha com o meu ISP (Roadrunner, Nova Iorque) ou uma falha com a minha configuração (padrão) para o dhclient.
Não estou usando o NetworkManager neste servidor, pois a configuração da rede é estática e o servidor é executado 24/7 como um gateway. Eu tenho minha configuração de interface de script de rede sysconfig como abaixo:
que configurou a interface na inicialização e para usar o DHCP, através do utilitário dhclient. Eu tenho um script de firewall iptables válido que tenho trabalhado continuamente há anos para fornecer funcionalidade de roteamento / NAT, mas isso é irrelevante para o meu problema.
Durante a última semana ou duas (pelo menos, já vi essas entradas de log por um tempo agora), vejo que uma vez que a concessão de DHCP oferecida pelo meu provedor chega ao ponto médio, provocando uma renovação, o dhclient entra em um loop onde a cada 15 segundos ele emite um DHCPREQUEST unicast para a entrada do Servidor DHCP especificada no arquivo /var/lib/dhclient/dhclient-eth1.leases (veja abaixo). Isso continua por horas até que a conectividade de rede seja interrompida ou, eventualmente, tente uma descoberta de transmissão e receba uma nova concessão corretamente.
O loop de solicitação do dhclient é sempre unicast, sempre usando o endereço do servidor DHCP especificado na concessão que está tentando renovar e sempre usa o mesmo valor de xid para cada uma dessas solicitações. Eu estou querendo saber, existe uma maneira de forçar dhclient sempre emitir um broadcast DHCPDISCOVER em vez do pacote REQUEST unicast para renovação? Existe um problema de configuração possível ou isso é apenas o serviço DHCP escamoso da Time Warner? Eu usei o TWC como meu ISP nos últimos 5 anos e nunca tive esse problema ao usar o Linux como um gateway.
Aqui está o meu script de configuração da interface:
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
NAME=Internet
HWADDR=00:D0:B7:**:**:**
MTU=1500
BOOTPROTO=dhcp
PEERDNS=no
IPV6INIT=no
ONBOOT=yes
Aqui está um exemplo de arquivo dhclient-eth1.leases (atual, mas iniciará o loop em ~ 6-8 horas)
lease {
interface "eth1";
fixed-address 74.***.***.***;
option subnet-mask 255.255.240.0;
option routers 74.***.***.***;
option dhcp-lease-time 43200;
option dhcp-message-type 5;
option domain-name-servers 209.18.47.61,209.18.47.62;
option dhcp-server-identifier 10.111.64.1;
option interface-mtu 576;
option broadcast-address 255.255.255.255;
option domain-name "rochester.rr.com";
renew 3 2012/01/18 21:51:02;
rebind 4 2012/01/19 02:57:58;
expire 4 2012/01/19 04:27:58;
}
e um excerto de / var / log / messages em relação a esse problema (iniciado às 12h30 e que continua até as 11h30 da manhã de hoje:
... Lista longa de DHCPREQUEST quase idêntico ao abaixo
Jan 17 16:50:59 server dhclient[1384]: DHCPREQUEST on eth1 to 10.111.64.1 port 67 (xid=0x54a5b374)
Jan 17 16:51:13 server dhclient[1384]: DHCPREQUEST on eth1 to 10.111.64.1 port 67 (xid=0x54a5b374)
Jan 17 16:51:21 server dhclient[1384]: DHCPREQUEST on eth1 to 10.111.64.1 port 67 (xid=0x54a5b374)
Jan 17 16:51:31 server dhclient[1384]: DHCPREQUEST on eth1 to 255.255.255.255 port 67 (xid=0x54a5b374)
Jan 17 16:51:31 server dhclient[1384]: DHCPACK from 10.111.64.1 (xid=0x54a5b374)
Jan 17 16:51:31 server dhclient[1384]: bound to 74.69.54.153 -- renewal in 17309 seconds.
Parece que aqui, finalmente, conseguimos um DHCPACK depois de uma longa lista de tentativas
Na noite passada, por volta das 19h30, bem depois da entrada de log acima, às 16:51, e reiniciei o servidor por outros motivos, o que causa a linha REQUEST abaixo.
Jan 17 20:11:51 server dhclient[3872]: DHCPREQUEST on eth1 to 255.255.255.255 port 67 (xid=0x4a4507ce)
Jan 17 20:11:51 server dhclient[3872]: DHCPACK from 10.111.64.1 (xid=0x4a4507ce)
Jan 17 20:11:51 server dhclient[3872]: bound to 74.69.54.153 -- renewal in 17073 seconds.
Jan 18 00:56:24 server dhclient[3917]: DHCPREQUEST on eth1 to 10.111.64.1 port 67 (xid=0x4a4507ce)
Jan 18 00:56:32 server dhclient[3917]: DHCPREQUEST on eth1 to 10.111.64.1 port 67 (xid=0x4a4507ce)
Jan 18 00:56:46 server dhclient[3917]: DHCPREQUEST on eth1 to 10.111.64.1 port 67 (xid=0x4a4507ce)
Jan 18 00:57:04 server dhclient[3917]: DHCPREQUEST on eth1 to 10.111.64.1 port 67 (xid=0x4a4507ce)
Jan 18 00:57:24 server dhclient[3917]: DHCPREQUEST on eth1 to 10.111.64.1 port 67 (xid=0x4a4507ce)
.... omissão de várias horas e muitas linhas do acima, a cada ~ 15 segundos
É aqui que eu trouxe manualmente a interface para baixo e para cima.
Jan 18 11:27:29 server dhclient[3917]: DHCPREQUEST on eth1 to 10.111.64.1 port 67 (xid=0x4a4507ce)
Jan 18 11:27:45 server dhclient[3917]: DHCPREQUEST on eth1 to 10.111.64.1 port 67 (xid=0x4a4507ce)
Jan 18 11:27:52 server dhclient[3917]: DHCPREQUEST on eth1 to 10.111.64.1 port 67 (xid=0x4a4507ce)
Jan 18 11:27:58 server dhclient[16174]: DHCPREQUEST on eth1 to 255.255.255.255 port 67 (xid=0x63741216)
Jan 18 11:27:58 server dhclient[16174]: DHCPACK from 10.111.64.1 (xid=0x63741216)
Jan 18 11:27:58 server dhclient[16174]: bound to 74.69.54.153 -- renewal in 19384 seconds.
Sempre tive alguns problemas de MTU em relação à fragmentação com meu firewall, mas essa não parece ser a causa raiz aqui, e seria uma questão separada, se houver alguma.