| DHCP –
  Dynamic Host Configuration Protocol | |||||||||||||||
| Objetivo No
  ambiente TCP/IP, cada host deve ter um conjunto de parâmetros configurados
  para poder comunicar-se. Estes incluem endereço IP, máscara, default gateway,
  servidor de DNS e outros. Alguns desses parâmetros são mandatórios e outros são
  opcionais. Esta configuração
  pode ser manual (máquina por máquina) ou automática, utilizando o DHCP (RFC 2131). O DHCP
  possui três serviços: o cliente DHCP, o servidor DHCP e o DHCP relay. | 
 | ||||||||||||||
| Essencialmente,
  quando uma máquina inicializa, o DHCP cliente envia pela rede uma solicitação
  de endereço IP (e outros parâmetros) e informando o endereço físico da
  máquina (MAC Address). Um DHCP server responde a esta solicitação, enviando a
  configuração solicitada. | |||||||||||||||
| O DHCP é
  uma evolução dos protocolos RARP e BOOTP: RARP – Reverse Address Resolution Protocol (RFC 903): tem
  abrangência apenas local, não suporta roteamento e não pode transportar outros
  parâmetros que não o endereço IP. Normalmente utilizado para estações
  diskless, terminais etc. BOOTP – Booststrap Protocol (RFC 951): é o
  protocolo no qual o DHCP é baseado. O BOOTP é roteável e permite a
  configuração de vários parâmetros. A principal diferença é que o BOOTP não
  permite a alocação dinâmica de parâmetros, conforme explicada adiante. O DHCP
  foi projetado para ser interoperável com o BOOTP. | |||||||||||||||
| Modos de
  Operação O DHCP
  pode operar de três maneiras: Manual: neste modo, o administrador deverá listar todos os MAC address dos
  clientes que serão atendidos pelo DHCP server, e designar a cada um deles um
  endereço IP. Solicitações de outros clients não serão atendidas. É uma
  configuração importante para hosts que devem ter endereços fixos, como
  roteadores, servidores, etc, e também como procedimento de segurança, já que,
  deste modo, uma máquina não prevista não poderá conectar-se à rede por este
  meio. Automática: o administrador configura uma faixa de endereços IP, que serão
  fornecidos à medida que forem solicitados pelos clientes. Uma vez fornecidos,
  estes endereços ficam permanentemente designados ao cliente, a menos que o
  administrador realize uma intervenção manual. Dinâmica: nesta configuração, que é a mais usada, uma faixa de endereços é
  configurada, e dela um endereço será emprestado ao solicitante por um período,
  chamado lease-period. À medida que não forem mais necessários, eles endereços
  tornam-se novamente disponíveis a outros clientes automaticamente,
  facilitando o trabalho administrativo. O pool de endereços deverá
  corresponder apenas à quantidade de máquinas que operarem simultaneamente, e
  não a todas as máquinas existentes. É uma solução importante para provedores
  de acesso, por exemplo. | |||||||||||||||
| Terminologia DHCP
  server: host que provê os endereços aos clientes através
  da porta UDP 67 DHCP
  client: host que solicita endereços, usado a porta UDP 68 DHCP
  relay: roteador ou host que propaga as solicitações de um
  client a um server que está em outra rede e vice-versa Binding: conjunto de parâmetros de configuração enviado do server ao client | |||||||||||||||
| Funcionamento No
  início da operação do DHCP, quatro pacotes são trocados, conforme ilustrado
  abaixo: | |||||||||||||||
| DHCPDISCOVER: broadcast enviado pelo cliente à porta 68 indicando que necessita de
  endereço IP e outros parâmetro. Neste ele informa seu MAC Address. Nesse
  ponto, o cliente está no status Init (ver abaixo) DHCPOFFER: unicast remetido ao MAC Address do cliente pelo servidor, onde os
  parâmetros solicitados são oferecidos. Quando o cliente recebe um ou mais
  DHCPOFFERs, ele passa ao status Selecting.  DHCPREQUEST: broadcast (para que outros eventuais DCHP servers também recebem a
  informação) do cliente aceitando os parâmetros. Ao enviar esta solicitação, o
  cliente para a estar em Requesting. DHCPACK: unicast com a informação completa para o cliente. A partir deste,
  inicia-se a contagem do período de empréstimo, e o cliente está em Bound.
   | 
 | ||||||||||||||
| Renovação
  do endereço IP O
  período de empréstimo (lease period) é informado com os demais parâmetros solicitados.
  Além do valor do período, dois outros valores são enviados, cujos valores
  default são: | |||||||||||||||
| T1 = 0,5 x lease-period T2 = 0,875 x lease-period Quando
  T1 expira, o cliente envia um DHCPREQUEST unicast para o servidor,
  solicitando prorrogação do prazo. Neste ponto, seu status é Renewing.  Caso
  seja autorizado (depende da configuração do server), o servidor enviará um
  DHCP Acknowledgement, reiniciando a contagem do período de empréstimo, e
  retornando a Bound.  Caso o
  cliente não receba um DHCPACK até T2, ele enviará um DHCPREQUEST broadcast,
  que poderá ser respondido por qualquer servidor DHCP, e alterará seu status
  para Rebinding. Caso ele
  não receba nenhuma nova configuração até o final do lease-period, ou receba um
  DHCPNACK informado que a solicitação foi rejeitada, ele cessará as
  comunicações e retornará ao estado inicial, Init. | 
 Representação simplificada. Para detalhes, ver RFC 2131. | ||||||||||||||
| Mensagens
  DHCP 
 | |||||||||||||||
| DHCP
  Relay Como o
  pacote DHCPDISCOVER é um broadcast, ele não passaria normalmente pelo roteador,
  o que obrigaria cada rede ter seu próprio DHCP server.  Para
  evitar essa necessidade o roteador pode ser configurado com um DHCP Relay,
  o que signfica informá-lo para onde dele deve enviar os broadcasts recebidos
  pela porta 67. Na
  figura ao lado, o roteador enviará para 10.0.0.253 todos os DHCPDISCOVERs
  recebidos das redes 10.1.0.0/16 e 10.2.0.0/16. Ao
  fazê-lo, ele informará por qual das placas ele recebeu a solicitação
  original. Com base nesta informação, o DHCP Server, que atende a vários escopos,
  saber de qual deles enviará um endereço. | 
 | ||||||||||||||