Dynamic Host Configuration Protocol

O DHCP, Dynamic Host Configuration Protocol (protocolo de configuração dinâmica de host), é um protocolo de serviço TCP/IP que oferece configuração dinâmica de terminais, com concessão de endereços IP de host, máscara de sub-rede, default gateway (gateway padrão), número IP de um ou mais servidores DNS, sufixos de pesquisa do DNS e número IP de um ou mais servidores WINS. Este protocolo é o sucessor do BOOTP que, embora mais simples, tornou-se limitado para as exigências atuais. O DHCP surgiu como um padrão em outubro de 1993. O RFC 2131 (1997) contém as especificações mais atuais. O último standard para a especificação do DHCP sobre IPv6 (DHCPv6) foi publicado como RFC 3315 (2003).
O DHCP usa um modelo cliente-servidor.
Resumidamente, o DHCP opera da seguinte forma:
Servidor DHCP: É um servidor onde foi instalado e configurado o serviço DHCP. Em Microsoft Windows, após a instalação de um servidor DHCP ele precisa ser autorizado no Active Directory, antes que possa efetivamente atender pedidos de clientes. O procedimento de autorização no Active Directory é uma medida de segurança, para evitar que servidores DHCP sejam introduzidos na rede sem o conhecimento do administrador da rede. Além do Windows Server, o serviço de DHCP também pode ser instalado nas distribuições Linux, como o serviço DHCP3 Server, pacote já presente na maioria das distribuições servidoras de Linux. O servidor DHCP não está disponível para Windows 2000 Professional, Windows XP Professional ou Windows Vista.
Cliente DHCP: É qualquer dispositivo de rede capaz de obter as configurações do TCP/IP a partir de um servidor DHCP. Por exemplo, uma estação de trabalho com o Microsoft Windows 10, uma estação com qualquer distribuição Linux, uma impressora com placa de rede habilitada ao DHCP, etc.
Escopo: Um escopo é o intervalo consecutivo completo dos endereços IP possíveis para uma rede (por exemplo, a faixa de 10.10.10.100 a 10.10.10.150, na rede 10.10.10.0/255.255.255.0). Em geral, os escopos definem uma única sub-rede física, na rede na qual serão oferecidos serviços DHCP. Os escopos também fornecem o método principal para que o servidor gerencie a distribuição e atribuição de endereços IP e outros parâmetros de configuração para clientes na rede, tais como o default gateway, servidor DNS e assim por diante.
Superescopo: Um superescopo é um agrupamento administrativo de escopos que pode ser usado para oferecer suporte a várias sub-redes IP lógicas na mesma sub-rede física. Os superescopos contêm somente uma lista de escopos associados ou escopos filhos que podem ser ativados em conjunto. Os superescopos não são usados para configurar outros detalhes sobre o uso de escopo. Para configurar a maioria das propriedades usadas em um superescopo, é necessário configurar propriedades de cada escopo associado, individualmente. Por exemplo, se todos os computadores devem receber o mesmo número IP de default gateway, este número tem que ser configurado em cada escopo, individualmente. Não tem como fazer esta configuração no superescopo e todos os escopos (que compõem o superescopo), herdarem estas configurações.
Intervalo de exclusão: Um intervalo de exclusão é uma sequência limitada de endereços IP dentro de um escopo, excluído dos endereços que são fornecidos pelo DHCP. Os intervalos de exclusão asseguram que quaisquer endereços nesses intervalos não são oferecidos pelo servidor para clientes DHCP na sua rede. Por exemplo, dentro da faixa 10.10.10.100 a 10.10.10.150, na rede 10.10.10.0/255.255.255.0 de um determinado escopo, pode-se criar uma faixa de exclusão de 10.10.10.120 a 10.10.10.130. Os endereços da faixa de exclusão não serão utilizados pelo servidor DHCP para configurar os clientes DHCP.
Pool de endereços: Após definir um escopo DHCP e aplicar intervalos de exclusão, os endereços remanescentes formam o pool de endereços disponíveis dentro do escopo. Endereços em pool são qualificados para atribuição dinâmica pelo servidor para clientes DHCP na sua rede. No nosso exemplo, onde temos o escopo com a faixa 10.10.10.100 a 10.10.10.150, com uma faixa de exclusão de 10.10.10.120 a 10.10.10.130, o nosso pool de endereços é formado pelos endereços de 10.10.10.100 a 10.10.10.119, mais os endereços de 10.10.10.131 a 10.10.10.150.
Concessão: Uma concessão é um período de tempo especificado por um servidor DHCP durante o qual um computador cliente pode usar um endereço IP que ele recebeu do servidor DHCP (diz-se atribuído pelo servidor DHCP). Uma concessão está ativa quando ela está sendo utilizada pelo cliente. Geralmente, o cliente precisa renovar sua atribuição de concessão de endereço com o servidor antes que ela expire. Uma concessão torna-se inativa quando ela expira ou é excluída no servidor. A duração de uma concessão determina quando ela expirará e com que frequência o cliente precisa renová-la no servidor.
Reserva: Usa-se uma reserva para criar uma concessão de endereço permanente pelo servidor DHCP. As reservas asseguram que um dispositivo de hardware especificado na sub-rede sempre pode usar o mesmo endereço IP. A reserva é criada associada ao endereço de hardware da placa de rede, conhecido como endereço MAC (ou MAC address). No servidor DHCP cria-se uma reserva, associando um endereço IP com um endereço MAC. Quando o computador (com o endereço MAC para o qual existe uma reserva) é inicializado, ele entre em contato com o servidor DHCP. O servidor DHCP verifica que existe uma reserva para aquele MAC address e configura o computador com o endereço IP associado ao MAC address. Caso haja algum problema na placa de rede do computador e a placa tenha que ser substituída, mudará o MAC address e a reserva anterior terá que ser excluída e uma nova reserva terá que ser criada, utilizando, agora, o novo MAC address.
Tipos de opção: Tipos de opção são outros parâmetros de configuração do cliente que um servidor DHCP pode atribuir aos clientes. Por exemplo, algumas opções usadas com frequência incluem endereços IP para gateways padrão (roteadores), servidores WINS (Windows Internet Name System) e servidores DNS (Domain Name System). Geralmente, esses tipos de opção são ativados e configurados para cada escopo. O console de Administração do serviço DHCP também permite configurar tipos de opção padrão que são usados por todos os escopos adicionados e configurados no servidor. A maioria das opções é predefinida através da RFC 2132, mas pode-se usar o console DHCP para definir e adicionar tipos de opção personalizados, se necessário.
O DHCP, dependendo da implementação, pode oferecer três tipos de alocação de endereços IP:
Algumas implementações do software servidor de DHCP permitem ainda a atualização dinâmica dos servidores de DNS para que cada cliente disponha também de um DNS. Este mecanismo utiliza o protocolo de atualização do DNS especificado no RFC 2136.
O DHCP (Dynamic Host Configuration Protocol) utiliza o modelo cliente-servidor, no qual o cliente solicita o endereço e obtém a concessão de um IP, envolvendo quatro passos, que seguem a seguinte ordem (conforme figura ao lado):
O cliente transmite mensagens na sub-rede física para descobrir os servidores DHCP disponíveis. Os administradores de rede podem configurar um roteador local para encaminhar pacotes DHCP a um servidor DHCP de uma sub-rede diferente. Este cliente cria um pacote UDP (User Datagram Protocol), com o destino de difusão 255.255.255.255 ou o endereço de broadcast de sub-rede específica. Um cliente DHCP também pode solicitar o seu último endereço IP conhecido (no exemplo abaixo, 192.168.1.100). Se o cliente permanece conectado a uma rede IP para o qual este é válido, o servidor pode satisfazer o pedido. Caso contrário, ele depende se o servidor está configurado no modo autoritário ou não. Um servidor no modo autoritário negará o pedido, fazendo o cliente pedir um novo endereço IP imediatamente. Um servidor no modo não autoritário simplesmente ignora o pedido, levando a um limite de tempo, dependente da implementação, para o cliente desistir do pedido e pedir um novo endereço IP.
Quando um servidor DHCP recebe um pedido de concessão de IP de um cliente, ele reserva um endereço IP para o cliente (essa reserva é opcional, segundo a RFC 2131 - 3.1.2) e estende uma oferta de concessão IP através do envio de uma mensagem DHCPOFFER para o cliente. Esta mensagem contém o endereço MAC do cliente, o endereço IP que o servidor está oferecendo, a máscara de sub-rede, a duração da concessão, bem como o endereço IP do servidor de DHCP que faz a oferta. O servidor determina a configuração com base no endereço de hardware do cliente como especificado no campo CHADDR (endereço de hardware do cliente). Aqui o servidor, 192.168.1.1, especifica o endereço IP no campo YIADDR (seu endereço IP).
Em resposta aos pedidos de oferta do servidor, o cliente responde com um DHCPREQUEST, ainda em broadcast (para ser visível por todos os DHCP servers), solicitando o endereço oferecido. Um cliente pode receber ofertas de vários servidores DHCP, mas vai aceitar apenas uma oferta DHCP. Com base no campo ID da transação no pedido, os servidores são informados da oferta que o cliente aceitou. Quando outros servidores DHCP receberem esta mensagem, eles retiram quaisquer ofertas que eles poderiam ter feito para o cliente e retornam o endereço oferecido ao pool de endereços disponíveis. Em alguns casos, DHCPMESSAGE é transmitido em broadcast, em vez de ser unicast para um servidor DHCP particular, porque o cliente DHCP ainda não recebeu um endereço IP. Além disso, esta mensagem de uma forma pode deixar todos os outros servidores DHCP saberem que outro servidor fornecerá o endereço IP sem perder qualquer um dos servidores com uma série de mensagens unicast. A mensagem DHCPREQUEST também é utilizada pelo cliente DHCP para renovar o período de concessão do endereço de rede de tempo em tempo (dependente do período de concessão configurado no servidor DHCP e de implementação do cliente).
Quando o servidor DHCP recebe a mensagem DHCPREQUEST do cliente, o processo de configuração entra em sua fase final. A fase de reconhecimento envolve o envio de um pacote DHCPACK para o cliente. Este pacote inclui a duração da concessão e quaisquer outras informações de configuração que o cliente pode ter solicitado. Neste ponto, o processo de configuração de IP é concluído. O protocolo prevê que o cliente DHCP configurará sua interface de rede com os parâmetros negociados.
Um cliente DHCP pode solicitar mais informações do que o servidor enviou com o DHCPOFFER original. O cliente também pode solicitar dados repetidos para uma determinada aplicação. Por exemplo, os navegadores usam DHCPINFORM para obter as configurações de proxy web via WPAD. Estas consultas com o servidor DHCP não servem para atualizar o tempo de concessão do IP em seu banco de dados (para isso é enviada a mensagem DHCPREQUEST).
O cliente envia uma solicitação (DHCPRELEASE) ao servidor DHCP para liberar a configuração de rede e o cliente DHCP desativa seu endereço IP. Como os dispositivos de lado do cliente geralmente não sabem quando os usuários podem desligá-los da rede, o protocolo não obriga o envio de DHCPRELEASE.
Um servidor DHCP pode fornecer parâmetros de configuração opcionais para o cliente. RFC 2132 descreve as opções disponíveis DHCP definidas pelo Internet Assigned Numbers Authority (IANA) - DHCP e PARÂMETROS BOOTP. Um cliente DHCP pode selecionar, manipular e substituir os parâmetros fornecidos por um servidor DHCP.
Existe uma opção para identificar o fornecedor e funcionalidade de um cliente DHCP. A informação é uma sequência de comprimento variável de caracteres ou octetos que tem um significado especificado pelo fornecedor do cliente DHCP. Um método que um cliente DHCP pode utilizar para se comunicar com o servidor que está usando um certo tipo de hardware ou de firmware é definir um valor em seus pedidos de DHCP chamado de classe de fornecedor Identifier (VCI) (Opção 60). Este método permite a um servidor DHCP para diferenciar entre os dois tipos de máquinas de cliente e processar os pedidos provenientes dos dois tipos de modems de forma adequada. Alguns tipos de set-top boxes também definir a VCI (Opção 60) para informar o servidor DHCP sobre o tipo de hardware e funcionalidade do dispositivo. O valor que essa opção é definida para dar ao servidor DHCP uma dica sobre as informações necessárias extra que este cliente precisa de uma resposta do DHCP.
Em redes pequenas, onde apenas uma sub-rede IP está a ser gerido, os clientes DHCP se comunicar diretamente com os servidores DHCP. No entanto, os servidores DHCP também pode fornecer endereços IP para várias sub-redes. Neste caso, um cliente DHCP que ainda não adquiriu um endereço IP não podem se comunicar diretamente com o servidor DHCP usando o roteamento IP, porque não tem um endereço de IP, nem ele sabe o endereço IP de um roteador. A fim de permitir que os clientes DHCP em sub-redes não diretamente servidos por servidores DHCP para se comunicar com servidores DHCP, os agentes de retransmissão DHCP pode ser instalado nesses sub-redes. As transmissões do cliente DHCP no link local, o agente de retransmissão recebe a transmissão e 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 GIADDR para determinar a sub-rede na qual o agente de retransmissão recebeu a transmissão, e atribui um endereço IP na sub-rede. Quando as respostas do servidor DHCP para o cliente, ele envia a resposta para o endereço GIADDR, novamente usando unicast. O agente de retransmissão então retransmite a resposta na rede local.
O protocolo DHCP fornece confiabilidade de várias maneiras: renovação periódica, religação e failover. Clientes DHCP são atribuídos locações que duram por algum período de tempo. Os clientes começam a tentar renovar suas concessões uma vez metade do intervalo o arrendamento expirou. Eles fazem isso através do envio de uma mensagem DHCPREQUEST unicast para o servidor DHCP que concedeu o contrato original. Se esse servidor for inativo ou inacessível, ele vai deixar de responder ao DHCPREQUEST. No entanto, o DHCPREQUEST será repetido pelo cliente ao longo do tempo, [especificar], para quando o servidor DHCP volta-se ou torna-se acessível novamente, o cliente DHCP vai conseguir entrar em contato com ela, e renovar o seu contrato. Se o servidor DHCP está inacessível por um período prolongado de tempo, [especificar] o cliente DHCP tentará religar, transmitindo sua DHCPREQUEST vez de unicasting-lo. Porque ele é transmitido, a mensagem vai chegar DHCPREQUEST todos os servidores DHCP disponíveis. Se algum outro servidor DHCP é capaz de renovar a concessão, ele vai fazê-lo neste momento.
A fim de religação para o trabalho, quando o cliente contatar com êxito um servidor DHCP de backup, o servidor deve ter informações precisas sobre a ligação do cliente. Manter informações vinculativas precisa entre dois servidores é um problema complicado, se os dois servidores são capazes de atualizar o banco de dados mesma locação, deve haver um mecanismo para evitar conflitos entre as atualizações nos servidores independentes. Um padrão para implementação de servidores tolerantes a falhas DHCP foi desenvolvido na Internet Engineering Task Force.
Se religação falhar, o arrendamento acabará por expirar. Quando a concessão expira, o cliente deve parar de usar o endereço IP concedido a ele em seu contrato. Na época, ele irá reiniciar o processo de DHCP desde o início, transmitindo uma mensagem DHCPDISCOVER. Desde o seu contrato de arrendamento expirou, ele vai aceitar qualquer endereço IP que lhe é oferecido. Uma vez que tem um novo endereço IP, provavelmente a partir de um servidor DHCP diferente, vai mais uma vez ser capaz de usar a rede. No entanto, como seu endereço IP mudou, as conexões em curso será quebrado.
A base de protocolo DHCP não inclui nenhum mecanismo de autenticação. Por isso, é vulnerável a uma variedade de ataques. Estes ataques se dividem em três categorias principais:
Porque o cliente não tem como validar a identidade de um servidor DHCP, servidores DHCP não autorizados podem ser operados em redes, prestação de informações incorretas aos clientes DHCP. Isso pode servir tanto como um ataque de negação de serviço, impedindo o cliente de ter acesso à conectividade de rede. Porque o servidor DHCP fornece o cliente DHCP com endereços IP do servidor, como o endereço IP de um ou mais servidores DNS, um atacante pode convencer um cliente DHCP para fazer pesquisas através de seu DNS seu próprio servidor DNS, e pode, portanto, fornecer suas próprias respostas a consultas DNS do cliente. Por sua vez, permite que o atacante para redirecionar o tráfego de rede através de si, permitindo-lhe escutar as conexões entre os servidores de rede do cliente e ele entra em contato, ou simplesmente para substituir os servidores de rede com o seu próprio. Porque o servidor DHCP não tem nenhum mecanismo seguro para autenticar o cliente, os clientes podem obter acesso não autorizado aos endereços IP de apresentação de credenciais, tais como identificadores do cliente, que pertencem a outros clientes DHCP. Isso também permite que os clientes DHCP para esgotar o DHCP armazenamento de servidor de endereços IP, apresentando novas credenciais cada vez que ele pede um endereço, o cliente pode consumir todos os endereços IP disponíveis em um link de rede particular, impedindo outros clientes DHCP da obtenção de serviços. DHCP fornece alguns mecanismos para mitigar esses problemas.
O Relé de Agente de Informações extensão protocolo Option (RFC 3046) permite que os operadores de rede para conectar marcas a mensagens DHCP uma vez que estas mensagens chegam na rede de confiança do operador de rede. Esta tag é então usado como um token de autorização para controlar o acesso do cliente aos recursos da rede. Porque o cliente não tem acesso à rede a montante do agente de retransmissão, a falta de autenticação não impede que o operador do servidor DHCP de confiar no token de autorização.
Outro ramal, autenticação para DHCP mensagens (RFC 3118), fornece um mecanismo para autenticação de mensagens DHCP. Infelizmente RFC 3118 não viu a adoção generalizada por causa dos problemas de gerenciamento de chaves para um grande número de clientes DHCP.
APIPA é a abreviatura de Automatic Private IP Addressing. Esta é uma nova funcionalidade que foi introduzida no Microsoft Windows 98, está presente no Windows 2000, Windows XP, Windows Vista, Windows 7, Longhorn Server e no Windows Server 2003. Imagine um cliente com o protocolo TCP/IP instalado e configurado para obter as configurações do protocolo TCP/IP a partir de um servidor DHCP. O cliente é inicializado, porém não consegue se comunicar com um servidor DHCP. Nesta situação, o Windows, usa o recurso APIPA, e automaticamente atribui um endereço IP da rede 169.254.0.0/255.255.0.0. Este é um dos endereços especiais, reservados para uso em redes internas, ou seja, este não seria um endereço de rede, válido na Internet. A seguir descrevo mais detalhes sobre a funcionalidade APIPA.
ATENÇÃO: O número de rede usado pelo recurso APIPA é o seguinte: 169.254.0.0/255.255.0.0
Nota: O recurso APIPA é especialmente útil para o caso de uma pequena rede, com 4 ou 5 computadores, onde não existe um servidor disponível. Neste caso pode-se configurar todos os computadores para usarem o DHCP. Ao inicializar, os clientes não conseguirão localizar um servidor DHCP (já que não existe nenhum servidor DHCP nesta rede do nosso exemplo). Neste caso o recurso APIPA atribuirá endereços da rede 169.254.0.0/255.255.0.0 para todos os computadores da rede. O resultado final é que todos ficam configurados com endereços IP da mesma rede e poderão se comunicar, compartilhando recursos entre si. É uma boa solução para uma rede doméstica ou de pequeno escritório.