Protocolo DHCP Redes de Computadores Módulo 8 – OP3 Motivação • Obtenção dos parâmetros de configuração IP de forma dinâmica • Simplificação da tarefa de gestão do endereçamento e configuração • Consistência de configuração entre máquinas. • Reutilização de endereços IP DHCP 2 Cenários Mobilidade! DHCP 3 Parâmetros essenciais ao funcionamento do TCP/IP • Endereço IP • Máscara de rede • Endereço dos routers por omissão • Endereços IP dos servidores DNS DHCP 4 História • 1985 - BOOTP publicado a primeira vez como RFC 951 • 1988 - BOOTP vendor extensions definidas no RFC 1048 • 1993 - DHCP primeira publicação como RFC 1531 (standard proposto) • 1997 - DHCP revisto: i t - RFC2131 - Dynamic Host Configuration Protocol - RFC2132 - DHCP Options and BOOTP Vendor Extensions • 2000 - Definidos os procedimentos formais para as opções alocadas (RFC 2939) • Actualmente - Grande número de opções continuam por definir DHCP 5 Origens do protocolo • Extensão do protocolo Bootstrap Protocol (BOOTP) - Usa UDP (User Datagram Protocol) como transporte (o servidor usa o porto 67 e o cliente o 68) • Inter-operável com clientes de BOOTP - As opções DHCP têm o mesmo formato que as BOOTP vendor options • Diferenças mais notáveis: - Define mecanismos para que os endereços sejam dispensados durante um tempo finito - Contempla o fornecimento de outros parâmetros necessários para o funcionamento do TCP/IP DHCP 6 DHCP na pilha de protocolos da família TCP/IP APP Ping g DHCP TRA NET DNS HTTP UDP FTP SMTP TCP ICMP IP IGMP D-L 802.11 802.3 PPP PHY RF 10/100/ 1000BaseX POTS DHCP 7 Procedimentos para gestão de parâmetros • Obtenção de configuração: Servidor desconhecido • Obtenção de configuração: Servidor conhecido • Obtenção de configuração: Renovação do "aluger“ • Renovação de aluguer: Servidor não responde • Obtenção de informações por aplicações • Dispensa de recursos • Servidor muda parâmetros • Obtenção de configuração via Relay Agent DHCP 8 Obtenção de configuração: Servidor desconhecido DHCP1 DHCP2 Cliente DHCP DISCOVER (B) OFFER (1) OFFER (2) REQUEST (B) ACK DHCP 9 Obtenção de configuração: Servidor desconhecido INIT Recebe: DHCPACK Faz: Não aceita condições Envia: DHCPDECLINE Envia: DHCPDISCOVER (B) Recebe: DHCPNAK Faz: Esquece oferta SELECTING Recebe: DHCPOFFER Faz: Recolhe ofertas Faz: Selecciona oferta Envia: DHCPREQUEST (B) REQUESTING BOUND Recebe: DHCPACK Faz: Guarda parâmetros e acerta os tempos de «aluguer». DHCP 10 Obtenção de configuração: Servidor conhecido DHCP1 Cliente DHCP DHCP2 REQUEST ACK DHCP 11 Obtenção de configuração: Servidor conhecido INIT/REBOOT Envia: DHCPREQUEST REBOOTING Recebe: DHCPNAK Faz: Restart INIT Recebe: DHCPACK Faz: Guarda parâmetros e acerta os tempos de «aluguer». Envia: DHCPDISCOVER (B) BOUND DHCP 12 Obtenção de configuração: Renovação do “aluguer” DHCP1 Cliente DHCP DHCP2 REQUEST ACK DHCP 13 Obtenção de configuração: Renovação do “aluguer” INIT Envia: DHCPDISCOVER (B) Recebe: DHCPNAK Faz: Pára comunicações T1 Expira (Renew Timeout) Envia: DHCPREQUEST (p/ servidor) BOUND RENEWING Recebe: DHCPACK Faz: Guarda parâmetros e acerta os tempos de «aluguer». DHCP 14 Renovação de aluguer: Servidor não responde DHCP1 Cliente DHCP DHCP2 REQUEST REQUEST REQUEST (B) ACK ou NAK DHCP 15 Renovação de aluguer: Servidor não responde INIT Recebe: DHCPNACK ou termina o tempo de «aluguer» Faz: Pára comunicações Envia: DHCPDISCOVER (B) T2 Expira (Rebind Timeout) Envia: DHCPREQUEST (B) T1 Expira (Renew Timeout) Envia: DHCPREQUEST (p/ servidor) BOUND RENEWING REBINDING Recebe: DHCPACK Faz: Guarda parâmetros e acerta os tempos de «aluguer». DHCP 16 Dispensa dos recursos DHCP1 Cliente DHCP DHCP2 RELEASE DHCP 17 Dispensa dos recursos INIT BOUND Cliente deixa de precisar da configuração (shutdown) Envia: DHCPRELEASE Faz: Pára comunicações DHCP 18 Obtenção de informações por aplicações DHCP1 Cliente DHCP DHCP2 INFORM ACK DHCP 19 Servidor muda parâmetros: Avisar clientes • RFC3203 acrescenta esta possibilidade • Ainda não implementado p nos servidores e clientes em uso corrente • Servidor envia DHCPFORCERENEW a cada cliente • Clientes processam o pedido passando do estado BOUND para RENEWING DHCP 20 Máquina de Estados Estados de cada «Interface» que use DHCP (RFC2131) INIT/REBOOT Cliente deixa de precisar da configuração (shutdown) Envia: DHCPRELEASE Faz: Pára comunicações Envia: DHCPREQUEST REBOOTING Recebe: DHCPNAK Faz: Restart Recebe: DHCPNAK Faz: Esquece oferta INIT Recebe: DHCPACK Faz: Não aceita condições Envia: DHCPDECLINE Envia: DHCPDISCOVER (B) SELECTING Recebe: DHCPOFFER Faz: Recolhe ofertas Faz: Selecciona oferta Envia: DHCPREQUEST (B) Recebe: DHCPNACK ou termina o tempo de «aluguer» F Faz: Pá comunicações Pára i õ REQUESTING Recebe: DHCPACK Faz: Guarda parâmetros e acerta os tempos de «aluguer». Recebe: DHCPACK Faz: Guarda parâmetros e acerta os tempos de «aluguer». Recebe: DHCPACK, DHCPOFFER ou DHCPNAK Faz: Ignora BOUND T1 Expira Timeout)) p (Renew ( Envia: DHCPREQUEST (p/ servidor) Recebe: DHCPNAK Faz: Pára comunicações RENEWING T2 Expira (Rebind Timeout) Envia: DHCPREQUEST (B) REBINDING Recebe: DHCPACK Faz: Guarda parâmetros e acerta os tempos de «aluguer». DHCP 21 Redes e servidores • Cliente descobre os servidores usando broadcast • Em situações normais os routers não propagam broadcasts • Alternativas: - Um servidor por rede (domínio de broadcast) ? Um intermediário por rede DHCP 22 O Relay Agent • Re-encapsula os pedidos em broadcast do cliente em mensagens dirigidas ao(s) servidor(es) • Como sabe o servidor que configuração fornecer ao cliente ? - O Relay Agent altera as mensagens em que é intermediário - A interface de entrada do pedido no Relay Agent está na rede do cliente! li t ! t diá i ttambém bé nas respostas t ao cliente li t •S Serve dde iintermediário DHCP 23 Obtenção de configuração via Relay Agent Router com Relay Agent Router Cliente DHCP DHCP1 DHCP2 DISCOVER (B) DISCOVER OFFER (1) OFFER (2) REQUEST (B) REQUEST ACK DHCP 24 Mensagem DHCP MAC h d header IP header UDP header DHCP DHCP ::: 25 O cabeçalho DHCP - Campos • Opcode: 8 bit - 1 - BOOTREQUEST, Boot request – 2 - BOOTREPLY, Boot reply • Hardware type: 8 bit - Os mais comuns: • • • • • 1 - Ethernet 14 - SMDS 15 - Frame Relayy 18 - Fibre Channel 24 - IEEE1394 (RFC2855) – Ver: Lista completa dos atribuídos pela IANA • • • • Hardware address length: 8 bit - Dimensão em bytes dos endereços físicos/MAC. Hop count: 8 bit - Usado pelos relay agents para limitar a propagação das mensagens. Transaction ID: 32 bit - Número aleatório escolhido pelo cliente e usado para associar os pedidos às respostas. Number of seconds: 16 bit - Tempo p decorrido desde qque o cliente iniciou o pprocesso de aquisição ou renovação de endereço. Flags. 16 bit (RFC 1542) - Só definido o bit de maior peso, quando activo, o cliente pretende que a resposta do servidor ao pedido seja enviada em broadcast. DHCP 26 Cabeçalho DHCP - Campos • • • • Client IP address: 32 bit - Endereço actual do cliente (0.0.0.0 inicialmente) Your IP address: 32 bit - Endereço oferecido ao cliente. Server IP address: 32 bit - Endereço do servidor (para comunicações directas) Gateway IP address: 32 bit - Endereço primário da interface do relay agent por onde entrou o pedido do cliente. • Client hardware address: 16 byte y - Endereço ç fisico/MAC do cliente. • Server host name: 64 byte - Nome do servidor de arranque do S.O. (também usado para overload de opções) • Boot filename: 128 byte - Nome completo (com caminho) do ficheiro de arranque do S.O. (também usado para overload de opções) •BOOTP/DHCP options: Dimensão variàvel - Os 4 primeiros bytes têm o valor «mágico» de 0x63825363 (o mesmo que havia sido definido para o BOOTP). O resto deste campo consiste numa lista de parâmetros «etiquetados» chamados de opções segundo o típico formato TLV (type, length, value). Todas as vendor extensions definidas para o BOOTP são também válidas com opções DHCP. DHCP 27 Opções DHCP mais relevantes Code Dimensão Descrição 4 Subnet Mask. 1 4 4+ R t Router. 3 4+ Domain Name Server. 6 1+ Host Name. 12 1+ Domain Name. 15 4+ NetBIOS over TCP/IP name server. 44 1 NetBIOS over TCP/IP Node Type. 46 4 Requested IP Address. 50 4 IP address lease time. 51 1 Option overload. 52 1 DHCP message type. 53 4 Server identifier. 54 1+ Parameter request q list. 55 1+ Message. 56 2 Maximum DHCP message size. 57 4 Renew time value. 58 4 Rebinding time value. 59 0 End. 255 • Detalhes em: RFC 1533, RFC 2132 RFC 1533, RFC 2132 RFC 1533, RFC 2132 RFC 1533, RFC 2132 RFC 1533, RFC 2132 RFC 1533, RFC 2132, RFC 3203 RFC 1533, RFC 2132 RFC 1533,, RFC 2132 RFC 1533, RFC 2132 RFC 1533, RFC 2132 RFC 1533, RFC 2132 RFC 1533, RFC 2132 Valor 1 2 3 4 5 6 7 8 9 Tipo DHCPDISCOVER DHCPOFFER DHCPREQUEST DHCPDECLINE DHCPACK DHCPNAK DHCPRELEASE DHCPINFORM DHCPFORCERENEW Definida em: RFC2132 RFC2132 RFC2132 RFC2132 RFC2132 RFC2132 RFC2132 RFC2132 RFC3203 Valores definidos para a opção 53 (DHCP Message Type) Lista completa pode ser obtida na IANA (Internet Assigned Numbers Authority) DHCP 28 Exemplo prático Internet Port LA DHCP Server DHCP 29 DHCP 30 Exemplo prático Nível de rede (IP) Nível de ligação (ADSL) DHCP 31 O DHCP pode atribuir endereço IP para um equipamento de rede de três formas: ◦ C Configuração fi ã manual; l ◦ Configuração automática; g ç dinâmica. ◦ Configuração Neste caso, é possível um endereço IP í l atribuir b d a uma determinada máquina na rede. Para isso, é necessária a associação de um endereço existente na base de dados do servidor DHCP ao endereço MAC do adaptador de rede da máquina máquina, configurado desta forma. Esse endereço ç “agarrado" g ao equipamento q p não poderá ser utilizado por outro, a não ser que estes utilizem a mesma placa de rede. Nesta forma, o servidor DHCP é configurado para atribuir um endereço IP a um equipamento por tempo indeterminado. Quando este liga pela primeira vez à rede rede, é atribuído um endereço permanente. A diferença ç existente entre esta e a p primeira configuração é que nesta não é necessária uma especificação do equipamento que utilizará tili ád determinado t i d endereço. d É atribuído t ib íd de forma automática. Neste tipo de configuração, configuração é que reside a característica principal do DHCP. Desta forma o endereço IP é atribuído temporariamente a um equipamento e periodicamente, periodicamente é necessária a actualização dessa atribuição. Com essa configuração, é possível ser utilizado por diferentes equipamentos, em momentos diferentes, o mesmo endereço IP. Basta, para isso, que o primeiro a receber o endereço, deixe de utilizá-lo. Quando o outro equipamento q p solicitar ao servidor DHCP um endereço IP poderá ser fornecido ao mesmo o endereço deixado pelo primeiro. O servidor DHCP deve ser configurado pelo administrador da rede para disponibilizar aos seus clientes, endereços IP numa das três formas de atribuição atribuição. Nas configurações configurações, é estabelecido o prazo de atribuição de um endereço. Esse prazo pode variar de horas a dias ou simplesmente ser ilimitado. Um cliente DHCP é um equipamento que está configurado para solicitar a um servidor DHCP um endereço IP. Alguns equipamentos na rede devem possuir endereços IP fixos fixos, já configurados na própria máquina, em função dos serviços que eles disponibilizam na rede. Essas máquinas não são consideradas como clientes DHCP. Um cliente DHCP pode passar por seis estados de aquisição : ◦ ◦ ◦ ◦ ◦ ◦ INICIALIZA SELECCIONA SOLICITA LIMITE RENOVA VINCULA NOVAMENTE Quando um cliente inicializa pela primeira vez, este difunde uma mensagem para todos os servidores DHCP da rede local a fim de adquirir as configurações de inicialização na rede. O cliente envia um pacote denominado DHCPDISCOVER para a rede, após o envio deste pacote o cliente passa ao estado SELECCIONA. Neste estado, o cliente permanece a aguardar a resposta dos servidores DHCP que receberam o DHCPDISCOVER. Aqueles servidores que estiverem configurados para responder, enviam ao cliente uma mensagem DHCPOFFER. Nesta mensagem, estão embutidas as informações necessárias para a configuração do cliente jjuntamente com um endereço ç IP q que o servidor lhe oferece como empréstimo. Após a recepção de todas as mensagens enviadas pelos servidores, o cliente irá optar por uma e entrará em negociação i ã d de aluguer l com o servidor. id P Para iniciar a negociação, o cliente envia a mensagem DHCPREQUEST. Neste momento, passa ao estado SOLICITA. SOLICITA O cliente aguarda uma resposta de confirmação do servidor DHCP em que entrou em negociação. Essa confirmação é remetida através da mensagem DHCPACK DHCPACK. Com a recepção da confirmação, o cliente passa a ter um endereço ç IP e utiliza-o,, bem como todas as outras informações de configuração que foram enviadas pelo servidor e passa ao estado t d LIMITE LIMITE. É o estado durante a d em que permanece o cliente li d utilização do endereço IP até que atinja o período de renovação ou decida não utilizar mais o endereço alugado. Para este último caso, onde o cliente não espera o término do prazo de aluguer, g , ele envia uma mensagem g DHCPRELEASE para o servidor, a fim de provocar a libertação do endereço IP reservado. Desta forma, o cliente não pode enviar mais pacotes IP utilizando o endereço que possuía e passa para o estado INICIALIZA. q ç do p Ao receber um DHCPACK,, o cliente adquire a informação período de aluguer do endereço. De posse dessa informação, este inicia três temporizadores. Estes são utilizados para controlar os períodos de renovação, vincular novamente e do fim do aluguer. O servidor pode especificar o valor de cada temporizador. Não havendo essa especificação o cliente utiliza os valores padrões padrões, que são de 50%, 50% 85% e 100%, respectivamente. Quando o temporizador ultrapassa o valor da renovação, o cliente tentará renovar o aluguer. Para isso, faz uso novamente do DHCREQUEST ao servidor. Assim passa para o estado RENOVA e aguarda a resposta. N mensagem, segue embutido Na b id o endereço d IP actuall d do cliente li e uma solicitação de extensão de aluguer do mesmo. O servidor poderá responder autorizando a renovação do aluguer que necessariamente não possuirá o período anteriormente destinado, ou poderá responder de forma negativa. g No primeiro p caso,, o servidor envia um DHCPACK ao cliente. A recepção dessa mensagem faz com que o cliente retorne ao estado limite. No segundo caso, o servidor envia um DHCPNACK, que faz com que o cliente interrompa o uso do endereço IP e passe para o estado INICIALIZA. Ao entrar no estado RENOVA, um cliente fica a aguardar resposta do servidor. Caso essa resposta não chegue (é possível que o servidor tenha sido desligado, ou tenha sido desligado da rede), o cliente permanece nesse estado e comunicando que seja j ultrapassado p o limite do segundo g normalmente até q temporizador. Nesse ponto, o cliente passa do estado RENOVA para o estado VINCULA NOVAMENTE. A partir daí, o cliente pressupõe que o servidor que lhe alugou o endereço IP não estará mais disponível e tenta obter a renovação com qualquer outro t servidor id DHCP da d sua rede d llocall através t é d da dif difusão ã d de DHCPREQUEST. Caso receba um DHCPACK de algum servidor habilitado para tal, o cliente retornará para o estado LIMITE. Recebendo um DHCPNACK, ele passará para o estado INICIALIZA. N No caso d do cliente li t não ã receber b qualquer l resposta, t este t permanecerá a utilizar o endereço IP inicialmente alugado até que seja atingido o valor limite do terceiro temporizador, o que fará com que este passe para o estado INICIALIZA.