O DHCP usa broadcast para funcionar. O cliente envia um DHCPDISCOVER para 255.255.255.255, sem saber o endereço do servidor.
Roteadores não encaminham broadcasts. Daí quando o servidor DHCP está em outra subnet, o cliente nunca encontra o servidor. Sem relay, sem IP.
O ip helper-address resolve isso.
Como o DHCP relay funciona
Quando um cliente envia um DHCPDISCOVER, o roteador na borda da subnet captura esse broadcast. Em vez de descartá-lo, converte em unicast e envia para o endereço IP do servidor DHCP configurado no ip helper-address.
O roteador preenche o campo giaddr (gateway IP address) do pacote DHCP com o endereço da sua interface de entrada. O servidor usa esse campo para saber qual subnet o cliente está e qual pool de IPs deve usar para responder.
Como configurar
O ip helper-address é configurado na interface voltada para os clientes DHCP, não para o servidor.
Cenário simples: uma subnet com relay
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip address 192.168.10.1 255.255.255.0
Router(config-if)# ip helper-address 10.0.0.100
Clientes na rede 192.168.10.0/24 agora têm seus DHCPDISCOVER encaminhados para o servidor em 10.0.0.100.
Cenário com múltiplas VLANs e SVIs
Em switches de camada 3 com inter-VLAN routing, o ip helper-address vai em cada SVI:
Switch(config)# interface vlan 10
Switch(config-if)# ip address 192.168.10.1 255.255.255.0
Switch(config-if)# ip helper-address 10.0.0.100
Switch(config)# interface vlan 20
Switch(config-if)# ip address 192.168.20.1 255.255.255.0
Switch(config-if)# ip helper-address 10.0.0.100
O mesmo servidor DHCP atende as duas VLANs. O campo giaddr diz ao servidor qual pool usar para cada request.
O que o ip helper-address encaminha
Por padrão, o ip helper-address encaminha não só DHCP mas vários outros protocolos que usam broadcast UDP:
- DHCP/BOOTP (portas 67 e 68)
- TFTP (porta 69)
- DNS (porta 53)
- TACACS (porta 49)
- NetBIOS Name Service (porta 137)
- NetBIOS Datagram Service (porta 138)
Para restringir apenas ao DHCP, desabilite os outros:
Router(config)# no ip forward-protocol udp 69
Router(config)# no ip forward-protocol udp 53
Verificação
Router# show ip interface GigabitEthernet0/0
GigabitEthernet0/0 is up, line protocol is up
Internet address is 192.168.10.1/24
Helper address is 10.0.0.100
Se não aparecer Helper address, o relay não está configurado nessa interface.
Para confirmar que o relay está encaminhando:
Router# debug ip dhcp server packet
Você vai ver os DHCPDISCOVER chegando e sendo encaminhados ao servidor.
O problema mais comum
Configurar o ip helper-address na interface errada.
O relay precisa estar na interface que recebe o broadcast do cliente, ou seja, na interface da subnet do cliente. Não na interface voltada para o servidor DHCP.
Daí o erro típico: o administrador configura o helper na interface que conecta ao servidor e os clientes continuam sem IP. O broadcast do cliente chega na interface da subnet local, sem helper, e é descartado.
O que a prova CCNA cobra
DHCP relay está no domínio IP Services. Os pontos mais frequentes:
Por que o DHCP não funciona entre subnets sem relay. O que o ip helper-address faz. Em qual interface o comando é configurado. O que é o campo giaddr e para que o servidor usa. O endereço que o cliente envia o DHCPDISCOVER (255.255.255.255).
FAQ
Posso ter mais de um ip helper-address na mesma interface? Sim. O roteador encaminha o DHCPDISCOVER para todos os servidores configurados. Útil para redundância:
Router(config-if)# ip helper-address 10.0.0.100
Router(config-if)# ip helper-address 10.0.0.101
O servidor DHCP precisa de rota de volta para o cliente?
Sim. O servidor responde ao endereço giaddr. Se não tiver rota para a subnet do cliente, a resposta não chega. Verifique a tabela de roteamento do servidor.
O ip helper-address funciona em switches de camada 2? Não. Switches de camada 2 não roteiam IP. O helper-address precisa de uma interface com endereço IP, ou seja, roteador ou SVI em switch de camada 3.
▌ DHCP relay é tema de IP Services do CCNA. O diagnóstico gratuito do PacketPass mostra onde estão suas lacunas por domínio. Resultado na hora, sem cadastro.
Informações baseadas no blueprint CCNA 200-301 atual e documentação oficial da Cisco sobre DHCP relay.