Protocolo de configuração de host dinâmico - Dynamic Host Configuration Protocol
Suíte de protocolo de Internet |
---|
Camada de aplicação |
Camada de transporte |
Camada de Internet |
Camada de link |
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
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.
Ethernet: origem = MAC do remetente; destino = FF: FF: FF: FF: FF: FF |
|||
IP: fonte = 0.0.0.0; destino = 255.255.255.255 |
|||
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):
|
|||
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).
Ethernet: origem = MAC do remetente; destino = endereço mac do cliente |
||||
IP: fonte = 192.168.1.1; destino = 192.168.1.100 |
||||
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):
|
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.
Ethernet: origem = MAC do remetente; destino = FF: FF: FF: FF: FF: FF |
||||
IP: fonte = 0.0.0.0; destino = 255.255.255.255; |
||||
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.
Ethernet: origem = MAC do remetente; destino = MAC do cliente |
|||
IP: fonte = 192.168.1.1; destino = 192.168.1.100 |
|||
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):
|
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.
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 |
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 |
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 |
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 |
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 |
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 |
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.
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
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.
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
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 DHCPDISCOVER
mensagem. 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
- Boot Service Discovery Protocol (BSDP) - uma extensão DHCP usada pelo NetBoot da Apple
- Comparação de software de servidor DHCP
- Peg DHCP (RFC 2322)
- Preboot Execution Environment (PXE)
- Protocolo de resolução de endereço reverso (RARP)
- DHCP invasor
- Endereço auxiliar UDP - uma ferramenta para rotear solicitações DHCP através dos limites da sub-rede
- Zeroconf - Rede de Configuração Zero
Notas
Referências
links externos
- Mídia relacionada ao protocolo de configuração dinâmica de hosts (DHCP) no Wikimedia Commons