Eu encontrei uma solução, o iptables estava bloqueando a porta dhcp. Eu precisava adicionar essa regra que faria com que o UFW abrisse a porta DHCP, chamada bootps em / etc / services
sudo ufw allow bootps
Eu configurei um dhcpd no meu servidor Ubuntu com esta configuração: por favor note que o servidor ubuntu que executa o dhcpd tem um ip estático de 192.168.1.50
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.50;
option domain-name-servers 192.168.1.50;
option netbios-name-servers 192.168.1.50;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.150 192.168.1.200;
}
Agora, quando eu tento obter um ip do servidor dhcpd do meu computador cliente ubuntu, o servidor oferece um ip do pool de 192.168.1.150, mas o cliente não parece pegá-lo, em vez disso ele dispara novos pedidos até um tempo limite ocorre:
Listening on LPF/eth0/00:24:8c:1d:fb:40
Sending on LPF/eth0/00:24:8c:1d:fb:40
Sending on Socket/fallback
DHCPRELEASE on eth0 to 195.130.132.102 port 67
Internet Systems Consortium DHCP Client V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/00:24:8c:1d:fb:40
Sending on LPF/eth0/00:24:8c:1d:fb:40
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPOFFER of 192.168.1.150 from 192.168.1.50
DHCPREQUEST of 192.168.1.150 on eth0 to 255.255.255.255 port 67
DHCPREQUEST of 192.168.1.150 on eth0 to 255.255.255.255 port 67
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
DHCPOFFER of 192.168.1.150 from 192.168.1.50
DHCPREQUEST of 192.168.1.150 on eth0 to 255.255.255.255 port 67
DHCPREQUEST of 192.168.1.150 on eth0 to 255.255.255.255 port 67
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPOFFER of 192.168.1.150 from 192.168.1.50
DHCPREQUEST of 192.168.1.150 on eth0 to 255.255.255.255 port 67
DHCPREQUEST of 192.168.1.150 on eth0 to 255.255.255.255 port 67
...
informação tcpdump:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
19:04:18.431422 IP 94.227.60.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
19:05:10.316903 IP 94.224.188.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300
As informações do iptables são as mesmas para o servidor e para o cliente:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Alguma ideia?
Eu encontrei uma solução, o iptables estava bloqueando a porta dhcp. Eu precisava adicionar essa regra que faria com que o UFW abrisse a porta DHCP, chamada bootps em / etc / services
sudo ufw allow bootps
Seu servidor é 192.168.1.50, mas você também está especificando que esta será a rota padrão para todos os clientes que oferecem um IP. Você pode esclarecer que esta caixa de DHCP é definitivamente também um roteador padrão para essa sub-rede? Normalmente, é um roteador com um IP de algo como 192.168.1.1 (seu roteador de banda larga / ADSL, por exemplo).
Provavelmente não explica a rejeição repetida da oferta.
No cliente, supondo que você esteja usando um cabo, execute:
sudo tcpdump -ni eth0 porta 67
(Substitua eth0 por wlan0 ou similar se seu cliente estiver usando WIFI. Execute ifconfig em um terminal para ver uma lista de suas interfaces)
Você deve ver algo assim:
scaine@GroovyTosh:~$ sudo tcpdump -ni eth0 port 67
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
00:24:38.520770 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:1e:68:d9:1b:7b, length 300
00:24:38.521211 IP 192.168.1.50.67 > 192.168.1.150.68: BOOTP/DHCP, Reply, length 300
Estou executando o ufw no modo padrão no Ubuntu 10.10, usando um cabo ethernet. Meu servidor é o Ubuntu 9.10 executando o Webmin que eu usei para configurar meu servidor DHCP.
Poste a saída do seu comando tcpdump e poderei ajudar mais (ou outras pessoas).
Certifique-se de que não haja um firewall no servidor ou no cliente que esteja bloqueando as respostas do servidor. Tente desativar os dois firewalls e, se o dhcp funcionar, suas regras de firewall precisarão de ajustes.
Tags networking dhcp