Protocolo de configuração de host dinâmico - Dynamic Host Configuration Protocol

O protocolo de configuração dinâmica de hosts ( DHCP ) é um protocolo de gerenciamento de rede usado em redes de protocolo de Internet (IP) para atribuir automaticamente endereços IP e outros parâmetros de comunicação a dispositivos conectados à rede usando uma arquitetura cliente-servidor .

A tecnologia elimina a necessidade de configurar individualmente os dispositivos de rede manualmente e consiste em dois componentes de rede, um servidor DHCP de rede instalado centralmente e instâncias de cliente da pilha de protocolo em cada computador ou dispositivo. Quando conectado à rede, e periodicamente depois disso, um cliente solicita um conjunto de parâmetros do servidor DHCP usando o protocolo DHCP.

O DHCP pode ser implementado em redes que variam em tamanho de redes residenciais a grandes redes de campus e redes ISP regionais. Muitos roteadores e gateways residenciais têm capacidade de servidor DHCP. A maioria dos roteadores de rede residencial recebe um endereço IP exclusivo na rede ISP. Em uma rede local, um servidor DHCP atribui um endereço IP local a cada dispositivo.

Os serviços DHCP existem para redes que executam o protocolo da Internet versão 4 (IPv4), bem como a versão 6 ( IPv6 ). A versão IPv6 do protocolo DHCP é comumente chamada de DHCPv6 .

História

O Reverse Address Resolution Protocol (RARP) foi definido no RFC 903 em 1984 para a configuração de dispositivos simples, como estações de trabalho sem disco , com um endereço IP adequado. Atuar na camada de enlace de dados dificultou a implementação em muitas plataformas de servidor. Exigia que um servidor estivesse presente em cada link de rede individual. O RARP foi substituído pelo protocolo Bootstrap ( BOOTP ) definido no RFC 951 em setembro de 1985. Isso introduziu o conceito de um agente de retransmissão, que permitia o encaminhamento de pacotes BOOTP pelas redes, permitindo que um servidor BOOTP central atendesse hosts em muitas sub-redes IP.

O DHCP é baseado no BOOTP, mas pode alocar dinamicamente endereços IP de um pool e recuperá-los quando não estiverem mais em uso. Ele também pode ser usado para fornecer uma ampla gama de parâmetros de configuração extras para clientes IP, incluindo parâmetros específicos da plataforma. O DHCP foi definido pela primeira vez na RFC 1531 em outubro de 1993, mas devido a erros no processo editorial foi quase imediatamente reeditado como RFC 1541.

Quatro anos depois, o tipo de mensagem DHCPINFORM e outras pequenas alterações foram adicionadas pelo RFC 2131; que desde 2014 continua sendo o padrão para redes IPv4.

O DHCPv6 foi inicialmente descrito pelo RFC 3315 em 2003, mas foi atualizado por muitos RFCs subsequentes. A RFC 3633 adicionou um mecanismo DHCPv6 para delegação de prefixo e a configuração automática de endereço sem estado foi adicionada pela RFC 3736.

Visão geral

O protocolo da Internet (IP) define como os dispositivos se comunicam dentro e através de redes locais na Internet. Um servidor DHCP pode gerenciar as configurações de IP para dispositivos em sua rede local, por exemplo, atribuindo endereços IP a esses dispositivos de forma automática e dinâmica.

O DHCP opera com base no modelo cliente-servidor . Quando um computador ou outro dispositivo se conecta a uma rede, o software cliente DHCP envia uma consulta de transmissão DHCP solicitando as informações necessárias. Qualquer servidor DHCP na rede pode atender à solicitação. O servidor DHCP gerencia um pool de endereços IP e informações sobre os parâmetros de configuração do cliente, como gateway padrão , nome de domínio , servidores de nomes e servidores de horário . Ao receber uma solicitação de DHCP, o servidor DHCP pode responder com informações específicas para cada cliente, conforme previamente configurado por um administrador, ou com um endereço específico e quaisquer outras informações válidas para toda a rede e pelo período de tempo para o qual a alocação ( aluguel ) é válido. Um cliente DHCP geralmente consulta essas informações imediatamente após a inicialização e, posteriormente, periodicamente, antes da expiração das informações. Quando um cliente DHCP atualiza uma atribuição, ele inicialmente solicita os mesmos valores de parâmetro, mas o servidor DHCP pode atribuir um novo endereço com base nas políticas de atribuição definidas pelos administradores.

Em grandes redes que consistem em vários links, um único servidor DHCP pode atender a toda a rede quando auxiliado por agentes de retransmissão DHCP localizados nos roteadores de interconexão. Esses agentes retransmitem mensagens entre clientes DHCP e servidores DHCP localizados em sub-redes diferentes.

Dependendo da implementação, o servidor DHCP pode ter três métodos de alocação de endereços IP:

Alocação dinâmica
Um administrador de rede reserva um intervalo de endereços IP para DHCP e cada cliente DHCP na LAN é configurado para solicitar um endereço IP do servidor DHCP durante a inicialização da rede. O processo de solicitação e concessão usa um conceito de aluguel com um período de tempo controlável, permitindo que o servidor DHCP recupere e então realoque os endereços IP que não são renovados.
Alocação automática
O servidor DHCP atribui permanentemente um endereço IP a um cliente solicitante de um intervalo definido por um administrador. Isso é como a alocação dinâmica, mas o servidor DHCP mantém uma tabela de atribuições de endereços IP anteriores, para que possa atribuir preferencialmente a um cliente o mesmo endereço IP que o cliente tinha anteriormente.
Alocação manual
Esse método também é chamado de alocação DHCP estática , alocação de endereço fixo , reserva e vinculação de endereço MAC / IP . Um administrador mapeia um identificador único (uma id de cliente ou endereço MAC ) para cada cliente para um endereço IP, que é oferecido ao cliente solicitante. Os servidores DHCP podem ser configurados para recorrer a outros métodos se isso falhar.

Os serviços DHCP são usados ​​para o protocolo da Internet versão 4 (IPv4) e IPv6 . Os detalhes do protocolo para IPv4 e IPv6 diferem o suficiente para que possam ser considerados protocolos separados. Para a operação IPv6, os dispositivos podem, alternativamente, usar a configuração automática de endereço sem estado . Os hosts IPv6 também podem usar o endereçamento local de link para realizar operações restritas ao link de rede local.

Operação

Uma ilustração de uma sessão DHCP típica sem renovação; cada mensagem pode ser uma transmissão ou unicast , dependendo dos recursos do cliente DHCP.

O DHCP emprega um modelo de serviço sem conexão , usando o User Datagram Protocol (UDP). É implementado com dois números de porta UDP para suas operações, que são os mesmos do protocolo de bootstrap ( BOOTP ). A porta UDP número 67 é a porta de destino de um servidor e a porta UDP número 68 é usada pelo cliente.

As operações DHCP se dividem em quatro fases: descoberta do servidor, oferta de aluguel de IP, solicitação de aluguel de IP e confirmação de aluguel de IP. Esses estágios são freqüentemente abreviados como DORA para descoberta, oferta, solicitação e confirmação.

A operação DHCP começa com os clientes transmitindo uma solicitação. Se o cliente e o servidor estiverem em sub-redes diferentes, um DHCP Helper ou DHCP Relay Agent pode ser usado. Os clientes que solicitam a renovação de um aluguel existente podem se comunicar diretamente via unicast UDP , desde que o cliente já tenha um endereço IP estabelecido naquele ponto. Além disso, há um sinalizador de BROADCAST (1 bit no campo de sinalizadores de 2 bytes, onde todos os outros bits são reservados e, portanto, definidos como 0) que o cliente pode usar para indicar de que forma (broadcast ou unicast) ele pode receber o DHCPOFFER: 0x8000 para transmissão, 0x0000 para unicast. Normalmente, o DHCPOFFER é enviado por meio de unicast. Para aqueles hosts que não podem aceitar pacotes unicast antes que os endereços IP sejam configurados, este sinalizador pode ser usado para contornar esse problema.

Descoberta

O cliente DHCP transmite uma mensagem DHCPDISCOVER na sub-rede da rede usando o endereço de destino 255.255.255.255 (transmissão limitada) ou o endereço de transmissão da sub-rede específica (transmissão direcionada). Um cliente DHCP também pode solicitar seu último endereço IP conhecido. Se o cliente permanecer conectado à mesma rede, o servidor poderá atender à solicitação. Caso contrário, depende se o servidor está configurado como autoritativo ou não. Um servidor autoritativo nega a solicitação, fazendo com que o cliente emita uma nova solicitação. Um servidor não autorizado simplesmente ignora a solicitação, levando a um tempo limite dependente da implementação para que o cliente expire a solicitação e solicite um novo endereço IP.

Por exemplo, se HTYPE for definido como 1, para especificar que o meio usado é Ethernet , HLEN é definido como 6 porque um endereço Ethernet (endereço MAC) tem 6 octetos de comprimento. O CHADDR é definido como o endereço MAC usado pelo cliente. Algumas opções também estão definidas.

Exemplo de mensagem DHCPDISCOVER

Ethernet: origem = MAC do remetente; destino = FF: FF: FF: FF: FF: FF

IP: fonte = 0.0.0.0; destino = 255.255.255.255
UDP : porta de origem = 68; porta de destino = 67

Octeto 0 Octeto 1 Octeto 2 Octeto 3
OP HTYPE HLEN HOPS
0x01 0x01 0x06 0x00
XID
0x3903F326
SEGUNDOS BANDEIRAS
0x0000 0x0000
CIADDR (endereço IP do cliente)
0x00000000
YIADDR (seu endereço IP)
0x00000000
SIADDR (endereço IP do servidor)
0x00000000
GIADDR (endereço IP do gateway)
0x00000000
CHADDR (endereço de hardware do cliente)
0x00053C04
0x8D590000
0x00000000
0x00000000
192 octetos de 0s ou espaço de estouro para opções adicionais; BOOTP legado.
Biscoito mágico
0x63825363
Opções de DHCP
0x350101 53: 1 (DHCP Discover)
0x3204c0a80164 50: 192.168.1.100 solicitado
0x370401030f06 55 (Lista de Solicitação de Parâmetro):
  • 1 (Solicitar máscara de sub-rede),
  • 3 (roteador),
  • 15 (nome de domínio),
  • 6 (Servidor de Nome de Domínio)
0xff 255 (Endmark)

Oferta

Quando um servidor DHCP recebe uma mensagem DHCPDISCOVER de um cliente, que é uma solicitação de aluguel de endereço IP, o servidor DHCP reserva um endereço IP para o cliente e faz uma oferta de aluguel enviando uma mensagem DHCPOFFER ao cliente. Essa mensagem contém a id do cliente do cliente (tradicionalmente um endereço MAC), o endereço IP que o servidor está oferecendo, a máscara de sub-rede, a duração da concessão e o endereço IP do servidor DHCP que está fazendo a oferta. O servidor DHCP também pode tomar conhecimento do endereço MAC de nível de hardware na camada de transporte subjacente: de acordo com as RFCs atuais, o endereço MAC da camada de transporte pode ser usado se nenhum ID de cliente for fornecido no pacote DHCP.

O servidor DHCP determina a configuração com base no endereço de hardware do cliente, conforme especificado no campo CHADDR (endereço de hardware do cliente). Aqui, o servidor, 192.168.1.1, especifica o endereço IP do cliente no campo YIADDR (seu endereço IP).

Exemplo de mensagem DHCPOFFER

Ethernet: origem = MAC do remetente; destino = endereço mac do cliente

IP: fonte = 192.168.1.1; destino = 192.168.1.100
UDP : porta de origem = 67; porta de destino = 68

Octeto 0 Octeto 1 Octeto 2 Octeto 3
OP HTYPE HLEN HOPS
0x02 0x01 0x06 0x00
XID
0x3903F326
SEGUNDOS BANDEIRAS
0x0000 0x0000
CIADDR (endereço IP do cliente)
0x00000000
YIADDR (seu endereço IP)
0xC0A80164 (192.168.1.100)
SIADDR (endereço IP do servidor)
0xC0A80101 (192.168.1.1)
GIADDR (endereço IP do gateway)
0x00000000
CHADDR (endereço de hardware do cliente)
0x00053C04
0x8D590000
0x00000000
0x00000000
192 octetos de 0s; BOOTP legado.
Biscoito mágico
0x63825363
Opções de DHCP
53: 2 (oferta DHCP)
1 (máscara de sub-rede): 255.255.255.0
3 (roteador): 192.168.1.1
51 (tempo de concessão do endereço IP): 86400s (1 dia)
54 (servidor DHCP): 192.168.1.1
6 (servidores DNS):
  • 9.7.10.15,
  • 9.7.10.16,
  • 9.7.10.18

Solicitar

Em resposta à oferta do DHCP, o cliente responde com uma mensagem DHCPREQUEST, transmitida ao servidor, solicitando o endereço oferecido. Um cliente pode receber ofertas DHCP de vários servidores, mas aceitará apenas uma oferta DHCP. O cliente produzirá um ARP gratuito para descobrir se há algum outro host presente na rede com o mesmo endereço IP. Se não houver resposta de outro host, significa que não há nenhum host com a mesma configuração de IP na rede e a mensagem é transmitida ao servidor mostrando a aceitação do endereço IP. O cliente deve enviar a opção de identificação do servidor na mensagem de solicitação indicando o servidor cuja oferta o cliente selecionou. Quando outros servidores DHCP recebem essa mensagem, eles retiram todas as ofertas que fizeram ao cliente e retornam o endereço IP oferecido ao pool de endereços disponíveis.

Exemplo de mensagem DHCPREQUEST

Ethernet: origem = MAC do remetente; destino = FF: FF: FF: FF: FF: FF

IP: fonte = 0.0.0.0; destino = 255.255.255.255;
UDP : porta de origem = 68; porta de destino = 67

Octeto 0 Octeto 1 Octeto 2 Octeto 3
OP HTYPE HLEN HOPS
0x01 0x01 0x06 0x00
XID
0x3903F326
SEGUNDOS BANDEIRAS
0x0000 0x0000
CIADDR (endereço IP do cliente)
0xC0A80164 (192.168.1.100)
YIADDR (seu endereço IP)
0x00000000
SIADDR (endereço IP do servidor)
0xC0A80101 (192.168.1.1)
GIADDR (endereço IP do gateway)
0x00000000
CHADDR (endereço de hardware do cliente)
0x00053C04
0x8D590000
0x00000000
0x00000000
192 octetos de 0s; BOOTP legado.
Biscoito mágico
0x63825363
Opções de DHCP
53: 3 (Solicitação DHCP)
50: 192.168.1.100 solicitado
54 (servidor DHCP): 192.168.1.1

Reconhecimento

Quando o servidor DHCP recebe a mensagem DHCPREQUEST do cliente, o processo de configuração entra em sua fase final. A fase de confirmação envolve o envio de um pacote DHCPACK ao cliente. Este pacote inclui a duração da concessão e quaisquer outras informações de configuração que o cliente possa ter solicitado. Neste ponto, o processo de configuração de IP está concluído.

O protocolo espera que o cliente DHCP configure sua interface de rede com os parâmetros negociados.

Depois que o cliente obtém um endereço IP, ele deve sondar o endereço recém-recebido (por exemplo, com o protocolo de resolução de endereço ARP ) para evitar conflitos de endereço causados ​​pela sobreposição de pools de endereços de servidores DHCP. Se esta detecção encontrar outro computador usando aquele endereço, o computador deve enviar DHCPDECLINE, broadcast, para o servidor.

Exemplo de mensagem DHCPACK

Ethernet: origem = MAC do remetente; destino = MAC do cliente

IP: fonte = 192.168.1.1; destino = 192.168.1.100
UDP : porta de origem = 67; porta de destino = 68

Octeto 0 Octeto 1 Octeto 2 Octeto 3
OP HTYPE HLEN HOPS
0x02 0x01 0x06 0x00
XID
0x3903F326
SEGUNDOS BANDEIRAS
0x0000 0x0000
CIADDR (endereço IP do cliente)
0x00000000
YIADDR (seu endereço IP)
0xC0A80164 (192.168.1.100)
SIADDR (endereço IP do servidor)
0xC0A80101 (192.168.1.1)
GIADDR (endereço IP do gateway comutado por relé)
0x00000000
CHADDR (endereço de hardware do cliente)
0x00053C04
0x8D590000
0x00000000
0x00000000
192 octetos de 0s. BOOTP legado
Biscoito mágico
0x63825363
Opções de DHCP
53: 5 (DHCP ACK)
1 (máscara de sub-rede): 255.255.255.0
3 (roteador): 192.168.1.1
51 (tempo de concessão do endereço IP): 86400s (1 dia)
54 (servidor DHCP): 192.168.1.1
6 (servidores DNS):
  • 9.7.10.15,
  • 9.7.10.16,
  • 9.7.10.18

Em formação

Um cliente DHCP pode solicitar mais informações do que o servidor enviado com o DHCPOFFER original. O cliente também pode solicitar dados repetidos para um determinado aplicativo. Por exemplo, os navegadores usam o DHCP Inform para obter as configurações do proxy da web via WPAD .

Liberando

O cliente envia uma solicitação ao servidor DHCP para liberar as informações do DHCP e o cliente desativa seu endereço IP. Como os dispositivos clientes geralmente não sabem quando os usuários podem desconectá-los da rede, o protocolo não obriga o envio de Liberação de DHCP .

Parâmetros de configuração do cliente

Um servidor DHCP pode fornecer parâmetros de configuração opcionais ao cliente. O RFC 2132 descreve as opções de DHCP disponíveis definidas pela Internet Assigned Numbers Authority (IANA) - DHCP e BOOTP PARAMETERS.

Um cliente DHCP pode selecionar, manipular e sobrescrever parâmetros fornecidos por um servidor DHCP. Em sistemas do tipo Unix, esse refinamento no nível do cliente normalmente ocorre de acordo com os valores no arquivo de configuração /etc/dhclient.conf .

Opções

As opções são sequências de octetos de comprimento variável. Isso é chamado de codificação de valor de comprimento de tipo . O primeiro octeto é o código de opção, o segundo octeto é o número de octetos seguintes e os octetos restantes são dependentes do código. Por exemplo, a opção de tipo de mensagem DHCP para uma oferta apareceria como 0x35, 0x01, 0x02, onde 0x35 é o código 53 para "tipo de mensagem DHCP", 0x01 significa um octeto seguinte e 0x02 é o valor de "oferta".

As tabelas a seguir listam as opções DHCP disponíveis, conforme listado no registro RFC 2132 e IANA.

Extensões do fornecedor RFC 1497 (BOOTP Vendor Information Extensions)
Código Nome Comprimento Notas
0 Almofada 0 octetos Pode ser usado para preencher outras opções de modo que fiquem alinhadas ao limite da palavra; não é seguido por byte de comprimento
1 Máscara de sub-rede 4 octetos Deve ser enviado antes da opção do roteador (opção 3) se ambos estiverem incluídos
2 Deslocamento de tempo 4 octetos
3 Roteador Múltiplos de 4 octetos Roteadores disponíveis, devem ser listados em ordem de preferência
4 Servidor de hora Múltiplos de 4 octetos Os servidores de horário disponíveis para sincronização devem ser listados em ordem de preferência
5 Nome do servidor Múltiplos de 4 octetos Servidores de nomes IEN 116 disponíveis , devem ser listados em ordem de preferência
6 Servidor de nome de domínio Múltiplos de 4 octetos Servidores DNS disponíveis , devem ser listados em ordem de preferência
7 Servidor de log Múltiplos de 4 octetos Os servidores de log disponíveis devem ser listados em ordem de preferência.
8 Servidor de cookies Múltiplos de 4 octetos Cookie , neste caso, significa "biscoito da sorte" ou "frase do dia", uma anedota expressiva ou humorística frequentemente enviada como parte de um processo de logon em grandes computadores; não tem nada a ver com cookies enviados por sites .
9 Servidor LPR Múltiplos de 4 octetos
10 Servidor de impressão Múltiplos de 4 octetos
11 Servidor de localização de recursos Múltiplos de 4 octetos
12 Nome de anfitrião Mínimo de 1 octeto
13 Tamanho do arquivo de inicialização 2 octetos Comprimento da imagem de inicialização em blocos de 4 KB
14 Arquivo de despejo de mérito Mínimo de 1 octeto Caminho onde os despejos de memória devem ser armazenados
15 Nome do domínio Mínimo de 1 octeto
16 Trocar servidor 4 octetos
17 Caminho de raiz Mínimo de 1 octeto
18 Caminho de extensões Mínimo de 1 octeto
255 Fim 0 octetos Usado para marcar o fim do campo de opção do fornecedor
Parâmetros da camada IP por host
Código Nome Comprimento Notas
19 Encaminhamento de IP habilitado / desabilitado 1 octeto
20 Ativar / desativar roteamento de fonte não local 1 octeto
21 Filtro de política Múltiplos de 8 octetos
22 Tamanho máximo de remontagem de datagrama 2 octetos
23 Tempo de vida de IP padrão 1 octeto
24 Tempo limite de envelhecimento da MTU do caminho 4 octetos
25 Tabela de planalto MTU de caminho Múltiplos de 2 octetos
Parâmetros da camada IP por interface
Código Nome Comprimento Notas
26 Interface MTU 2 octetos
27 Todas as sub-redes são locais 1 octeto
28 Endereço de transmissão 4 octetos
29 Realizar descoberta de máscara 1 octeto
30 Fornecedor de máscara 1 octeto
31 Realizar descoberta de roteador 1 octeto
32 Endereço de solicitação do roteador 4 octetos
33 Rota estática Múltiplos de 8 octetos Uma lista de pares destino / roteador
Parâmetros da camada de link por interface
Código Nome Comprimento Notas
34 Opção de encapsulamento de trailer 1 octeto
35 Tempo limite do cache ARP 4 octetos
36 Encapsulamento Ethernet 1 octeto
Parâmetros TCP
Código Nome Comprimento Notas
37 TTL padrão de TCP 1 octeto
38 Intervalo de manutenção de atividade TCP 4 octetos
39 Lixo de manutenção de atividade TCP 1 octeto
Parâmetros de aplicativo e serviço
Código Nome Comprimento Notas
40 Domínio do serviço de informação da rede Mínimo de 1 octeto
41 Servidores de informação de rede Múltiplos de 4 octetos
42 Servidores Network Time Protocol (NTP) Múltiplos de 4 octetos
43 Informações específicas do fornecedor Mínimo de 1 octeto
44 NetBIOS sobre servidor de nomes TCP / IP Múltiplos de 4 octetos
45 NetBIOS sobre servidor de distribuição de datagramas TCP / IP Múltiplos de 4 octetos
46 NetBIOS sobre tipo de nó TCP / IP 1 octeto
47 NetBIOS sobre escopo TCP / IP Mínimo de 1 octeto
48 Servidor de fontes do X Window System Múltiplos de 4 octetos
49 Gerenciador de exibição do X Window System Múltiplos de 4 octetos
64 Serviço de Informação de Rede + domínio Mínimo de 1 octeto
65 Serviço de Informação de Rede + servidores Múltiplos de 4 octetos
68 Agente doméstico de IP móvel Múltiplos de 4 octetos
69 Servidor de protocolo de transferência de correio simples (SMTP) Múltiplos de 4 octetos
70 Servidor Post Office Protocol (POP3) Múltiplos de 4 octetos
71 Servidor de protocolo de transferência de notícias de rede (NNTP) Múltiplos de 4 octetos
72 Servidor padrão da World Wide Web (WWW) Múltiplos de 4 octetos
73 Servidor de protocolo Finger padrão Múltiplos de 4 octetos
74 Servidor padrão de Internet Relay Chat (IRC) Múltiplos de 4 octetos
75 Servidor StreetTalk Múltiplos de 4 octetos
76 Servidor StreetTalk Directory Assistance (STDA) Múltiplos de 4 octetos
Extensões DHCP
Código Nome Comprimento Notas
50 Endereço IP solicitado 4 octetos
51 Tempo de locação do endereço IP 4 octetos
52 Sobrecarga de opções 1 octeto
53 Tipo de mensagem DHCP 1 octeto
54 Identificador de servidor 4 octetos
55 Lista de solicitação de parâmetro Mínimo de 1 octeto
56 Mensagem Mínimo de 1 octeto
57 Tamanho máximo da mensagem DHCP 2 octetos
58 Valor do tempo de renovação (T1) 4 octetos
59 Valor de tempo de religação (T2) 4 octetos
60 Identificador de classe de fornecedor Mínimo de 1 octeto
61 Identificador de cliente Mínimo de 2 octetos
66 Nome do servidor TFTP Mínimo de 1 octeto
67 Nome do arquivo de boot Mínimo de 1 octeto

Tipos de mensagens DHCP

Esta tabela lista os tipos de mensagem DHCP, documentados em RFC 2132, RFC 3203, RFC 4388, RFC 6926 e RFC 7724. Esses códigos são o valor na extensão DHCP 53, mostrado na tabela acima.


Tipos de mensagens DHCP
Código Nome Comprimento RFC
1 DHCPDISCOVER 1 octeto rfc2132
2 DHCPOFFER 1 octeto rfc2132
3 DHCPREQUEST 1 octeto rfc2132
4 DHCPDECLINE 1 octeto rfc2132
5 DHCPACK 1 octeto rfc2132
6 DHCPNAK 1 octeto rfc2132
7 DHCPRELEASE 1 octeto rfc2132
8 DHCPINFORM 1 octeto rfc2132
9 DHCPFORCERENEW 1 octeto rfc3203
10 DHCPLEASEQUERY 1 octeto rfc4388
11 DHCPLEASEUNASSIGNED 1 octeto rfc4388
12 DHCPLEASEUNKNOWN 1 octeto rfc4388
13 DHCPLEASEACTIVE 1 octeto rfc4388
14 DHCPBULKLEASEQUERY 1 octeto rfc6926
15 DHCPLEASEQUERYDONE 1 octeto rfc6926
16 DHCPACTIVELEASEQUERY 1 octeto rfc7724
17 DHCPLEASEQUERYSTATUS 1 octeto rfc7724
18 DHCPTLS 1 octeto rfc7724

Identificação do fornecedor do cliente

Existe uma opção para identificar o fornecedor e a funcionalidade de um cliente DHCP. A informação é uma sequência de caracteres ou octetos de comprimento variável que tem um significado especificado pelo fornecedor do cliente DHCP. Um método pelo qual um cliente DHCP pode se comunicar com o servidor que está usando um certo tipo de hardware ou firmware é definir um valor em suas solicitações DHCP, chamado de Identificador de Classe do Fornecedor (VCI) (Opção 60). Este método permite que um servidor DHCP diferencie entre os dois tipos de máquinas clientes e processe as solicitações dos dois tipos de modems de maneira apropriada. Alguns tipos de decodificadores também definem o VCI (opção 60) para informar ao servidor DHCP sobre o tipo de hardware e a funcionalidade do dispositivo. O valor para o qual essa opção é definida fornece ao servidor DHCP uma dica sobre qualquer informação extra necessária que este cliente precise em uma resposta DHCP.

Outras extensões

Opções de DHCP documentadas
Código Nome Comprimento RFC
82 Informações do agente de retransmissão Mínimo de 2 octetos RFC 3046
85 Servidores Novell Directory Service (NDS) Mínimo de 4 octetos, múltiplo de 4 octetos RFC 2241
86 Nome da árvore NDS Variável RFC 2241
87 Contexto NDS Variável RFC 2241
100 Fuso horário , estilo POSIX Variável RFC 4833
101 Fuso horário , estilo de banco de dados tz Variável RFC 4833
114 Portal cativo DHCP Variável RFC 8910
119 Pesquisa de domínio Variável RFC 3397
121 Rota estática sem classe Variável RFC 3442
209 Arquivo de configuração Variável RFC 5071
210 Prefixo do caminho Variável RFC 5071
211 Tempo de reinicialização Variável RFC 5071

Subopções de informações do agente de retransmissão

A opção de informações do agente de retransmissão (opção 82) especifica o contêiner para anexar subopções às solicitações DHCP transmitidas entre uma retransmissão DHCP e um servidor DHCP.

Subopções do agente de retransmissão
Código Nome Comprimento RFC
1 ID do circuito do agente Mínimo de 1 octeto RFC 3046
2 ID remoto do agente Mínimo de 1 octeto RFC 3046
4 Classe de dispositivo Data-Over-Cable Service Interface Especificações (DOCSIS) 4 octetos RFC 3256

Retransmissão

Em redes pequenas, onde apenas uma sub-rede IP está sendo gerenciada, os clientes DHCP se comunicam diretamente com os servidores DHCP. No entanto, os servidores DHCP também podem fornecer endereços IP para várias sub-redes. Nesse caso, um cliente DHCP que ainda não adquiriu um endereço IP não pode se comunicar diretamente com um servidor DHCP que não esteja na mesma sub-rede, pois a transmissão do cliente só pode ser recebida em sua própria sub-rede.

Para permitir que clientes DHCP em sub-redes não servidas diretamente por servidores DHCP se comuniquem com servidores DHCP, os agentes de retransmissão DHCP podem ser instalados nessas sub-redes. O cliente DHCP transmite no link local; o agente de retransmissão recebe a transmissão e a transmite para um ou mais servidores DHCP usando unicast . O agente de retransmissão armazena seu próprio endereço IP no campo GIADDR do pacote DHCP. O servidor DHCP usa o valor GIADDR para determinar a sub-rede na qual o agente de retransmissão recebeu a transmissão e aloca um endereço IP nessa sub-rede. Quando o servidor DHCP responde ao cliente, ele envia a resposta ao endereço GIADDR, novamente usando unicast. O agente de retransmissão então retransmite a resposta na rede local.

Nessa situação, a comunicação entre o agente de retransmissão e o servidor DHCP normalmente usa uma porta UDP de origem e de destino de 67.

Estados do cliente

Um diagrama de transição de estado de cliente DHCP simplificado com base na figura 5 do RFC 2131.

Conforme descrito em RFC 2131, um cliente DHCP pode receber essas mensagens de um servidor:

  • DHCPOFFER
  • DHCPACK
  • DHCPNAK

O cliente passa pelos estados DHCP dependendo de como o servidor responde às mensagens que o cliente envia.

Confiabilidade

O DHCP garante confiabilidade de várias maneiras: renovação periódica, religação e failover. Os clientes DHCP são concessões alocadas que duram algum tempo. Os clientes começam a tentar renovar seus aluguéis depois que a metade do intervalo de aluguel expira. Eles fazem isso enviando uma mensagem DHCPREQUEST unicast ao servidor DHCP que concedeu a concessão original. Se esse servidor estiver inativo ou inacessível, ele não responderá ao DHCPREQUEST . No entanto, nesse caso, o cliente repete o DHCPREQUEST de vez em quando, portanto, se o servidor DHCP voltar a funcionar ou se tornar acessível novamente, o cliente DHCP conseguirá contatá-lo e renovar a concessão.

Se o servidor DHCP ficar inacessível por um longo período de tempo, o cliente DHCP tentará religar, transmitindo seu DHCPREQUEST em vez de unicast. Por ser transmitido , a mensagem DHCPREQUEST alcançará todos os servidores DHCP disponíveis. Se algum outro servidor DHCP puder renovar a concessão, ele o fará neste momento.

Para que a religação funcione, quando o cliente contata com êxito um servidor DHCP de backup, esse servidor deve ter informações precisas sobre a ligação do cliente. Manter informações de ligação precisas entre dois servidores é um problema complicado; se ambos os servidores puderem atualizar o mesmo banco de dados de aluguel, deve haver um mecanismo para evitar conflitos entre as atualizações nos servidores independentes. Uma proposta para a implementação de servidores DHCP tolerantes a falhas foi enviada à Internet Engineering Task Force, mas nunca foi formalizada.

Se a religação falhar, o aluguel acabará por expirar. Quando o aluguel expira, o cliente deve parar de usar o endereço IP concedido a ele em seu aluguel. Nesse momento, ele reiniciará o processo DHCP desde o início, transmitindo uma DHCPDISCOVERmensagem. Como seu aluguel expirou, ele aceitará qualquer endereço IP oferecido a ele. Assim que tiver um novo endereço IP (presumivelmente de um servidor DHCP diferente), ele poderá usar a rede novamente. No entanto, como seu endereço IP foi alterado, todas as conexões em andamento serão interrompidas.

Redes IPv6

A metodologia básica do DHCP foi desenvolvida para redes baseadas no protocolo da Internet versão 4 (IPv4). Desde o desenvolvimento e implantação de redes IPv6 , DHCP também tem sido usado para atribuir parâmetros em tais redes, apesar dos recursos inerentes do IPv6 para autoconfiguração de endereços sem estado . A versão IPv6 do protocolo é designada como DHCPv6 .

Segurança

O DHCP básico não inclui nenhum mecanismo de autenticação. Por causa disso, ele é vulnerável a uma variedade de ataques. Esses ataques se enquadram em três categorias principais:

  • Servidores DHCP não autorizados que fornecem informações falsas aos clientes.
  • Clientes não autorizados com acesso aos recursos.
  • Ataques de exaustão de recursos de clientes DHCP mal-intencionados.

Porque o cliente não tem como validar a identidade de um servidor DHCP, os servidores DHCP não autorizados (comumente chamados de " DHCP desonestos ") podem ser operados em redes, fornecendo informações incorretas para os clientes DHCP. Isso pode servir como um ataque de negação de serviço, evitando que o cliente obtenha acesso à conectividade de rede, ou como um ataque man-in-the-middle . Como o servidor DHCP fornece ao cliente DHCP endereços IP de servidor, como o endereço IP de um ou mais servidores DNS, um invasor pode convencer um cliente DHCP a fazer suas pesquisas DNS por meio de seu próprio servidor DNS e, portanto, pode fornecer suas próprias respostas às consultas DNS do cliente. Isso, por sua vez, permite que o invasor redirecione o tráfego de rede através de si mesmo, permitindo-lhe espionar as conexões entre o cliente e os servidores de rede que contata ou simplesmente substituir esses servidores de rede pelos seus.

Como o servidor DHCP não tem mecanismo seguro para autenticar o cliente, os clientes podem obter acesso não autorizado a endereços IP apresentando credenciais, como identificadores de cliente, que pertencem a outros clientes DHCP. Isso também permite que os clientes DHCP esgotem o armazenamento de endereços IP do servidor DHCP - ao apresentar novas credenciais cada vez que solicitar um endereço, o cliente pode consumir todos os endereços IP disponíveis em um link de rede específico, evitando que outros clientes DHCP obtenham o serviço.

O DHCP fornece alguns mecanismos para atenuar esses problemas. A extensão do protocolo Relay Agent Information Option (RFC 3046, geralmente referida na indústria por seu número real como Opção 82 ) permite que as operadoras de rede anexem tags às mensagens DHCP conforme essas mensagens chegam na rede confiável da operadora de rede. Essa tag é então usada como um token de autorização para controlar o acesso do cliente aos recursos da rede. Como o cliente não tem acesso à rede upstream do agente de retransmissão, a falta de autenticação não impede que o operador do servidor DHCP confie no token de autorização.

Outra extensão, Autenticação para Mensagens DHCP ( RFC 3118 ), fornece um mecanismo para autenticar mensagens DHCP. Em 2002, o RFC 3118 não tinha sido amplamente adotado devido aos problemas de gerenciamento de chaves para um grande número de clientes DHCP. Um livro de 2007 sobre tecnologias DSL observou que:

várias vulnerabilidades de segurança foram identificadas contra as medidas de segurança propostas pelo RFC 3118. Esse fato, combinado com a introdução do 802.1x , tornou mais lenta a implantação e a taxa de execução do DHCP autenticado e nunca foi amplamente implantado.

Um livro de 2010 observa que:

[t] aqui houve muito poucas implementações de autenticação DHCP. Os desafios de gerenciamento de chaves e atrasos de processamento devido à computação de hash foram considerados um preço muito alto a pagar pelos benefícios percebidos.

As propostas arquitetônicas de 2008 envolvem a autenticação de solicitações DHCP usando 802.1x ou PANA (ambos transportam EAP ). Uma proposta da IETF foi feita para incluir o EAP no próprio DHCP, o chamado EAPoDHCP ; isso não parece ter progredido além do nível de rascunho da IETF, o último dos quais data de 2010.

Documentos de padrões IETF

  • RFC  2131 , protocolo de configuração dinâmica de host
  • RFC  2132 , opções de DHCP e extensões de fornecedores BOOTP
  • RFC  3046 , opção de informação do agente de retransmissão DHCP
  • RFC  3397 , opção de pesquisa de domínio do protocolo de configuração dinâmica de hosts (DHCP)
  • RFC  3942 , Opções de Reclassificação do Protocolo de Configuração de Host Dinâmico Versão Quatro (DHCPv4)
  • RFC  4242 , opção de tempo de atualização de informações para protocolo de configuração dinâmica de hosts para IPv6
  • RFC  4361 , identificadores de cliente específicos de nó para protocolo de configuração dinâmica de hosts, versão quatro (DHCPv4)
  • RFC  4436 , Detecção de conexão de rede em IPv4 (DNAv4)
  • RFC  3442 , Opção Classless Static Route para Dynamic Host Configuration Protocol (DHCP) versão 4
  • RFC  3203 , extensão de reconfiguração de DHCP
  • RFC  4388 , Leasequery do protocolo de configuração dinâmica de hosts (DHCP)
  • RFC  6926 , DHCPv4 Bulk Leasequery
  • RFC  7724 , Consulta de concessão DHCPv4 ativa

Veja também

Notas

Referências

links externos