Arquitetura TCP/IP Parte V – Inicialização e auto-configuração (RARP, BOOTP e DHCP) Fabrízzio Alphonsus A. M. N. Soares Tópicos ● Atribuição de endereço IP ● RARP (Reverse ARP) ● BOOTP (BOOTstrap Protocol) ● DHCP (Dynamic Host Configuration Protocol) Tópicos ● Atribuição de endereço IP ● RARP (Reverse ARP) ● BOOTP (BOOTstrap Protocol) ● DHCP (Dynamic Host Configuration Protocol) Atribuição de endereço IP ● ● Estática – Endereço IP é armazenado em algum dispositivo de armazenamento persistente (ex.: disco) – Em geral, é exigido para alguns equipamentos (ex.: servidores, roteadores) Dinâmica – Endereço IP é obtido de um servidor – Útil para equipamentos simples (ex.: estações sem disco) ou o que permanecem ligados intermitentemente Reverse Address Resolution Protocol (RARP) ● Protocolo antigo – ● ● Exceto em uns poucos casos especiais, RARP foi amplamente substituído pelo DHCP Projeto para atender computadores sem disco Adaptado do protocolo ARP – Difunde (broadcast) requisição para servidor – Espera por resposta Funcionamento do RARP A S1 B S2 A difunde uma requisição em busca de um servidor A S1 B S2 Um ou mais servidores na rede respondem Identificação do cliente ● ● Equipamento cliente precisa se identificar RARP usa o endereço de hardware com um identificador único – Funciona adequadamente apenas em redes que possuem endereço de hardware permanentes BOOTstrap Protocol (BOOTP) ● Uma alternativa ao RARP ● Fornece mais que apenas um endereço IP – ● Obtém parâmetros de configuração de um servidor Usa UDP BOOTP ● ● ● As deficiências encontradas no RARP foram solucionadas com a criação do BOOTP (BOOTstrap Protocol). Por utilizar o UDP para trafegar suas mensagens, ele pode ser usado por uma aplicação de forma mais simples que o RARP. Ele também é mais eficiente que este protocolo por embutir em sua mensagem outras informações importantes para a inicialização. BOOTP ● ● ● ● Diferente da comunicação RARP, a comunicação BOOTP se processa na camada de rede. A estação cliente lança a sua solicitação na rede utilizando um endereço IP de difusão. Os servidores BOOTP serão os únicos a reconhecer e responder também por difusão. Esta forma de resposta é utilizada pelo fato do cliente não possuir ainda, o seu endereço IP para confirmar o recebimento. BOOTP ● ● O BOOTP delega ao cliente toda a responsabilidade por uma comunicação segura pois, os protocolos utilizados são passíveis de corrupção ou perda de dados. O BOOTP solicita ao UDP - User Datagram Protocol - que faça um checksum e ainda especifica que solicitações e respostas tenham seu campo DONT FRAGMENT ativo para comportar clientes de memória pequena. BOOTP ● ● O BOOTP permite várias respostas e processa sempre a primeira. Caso haja perda de datagrama, utiliza-se uma técnica de TIMEOUT para retransmissão. Uso da pilha antes da inicialização ● ● BOOTP é usado para obter parâmetros de configuração do IP, porém BOOTP usa IP e UDP para obter os parâmetros – ● Pilha precisa ser inicializada antes de ser inicializada? De fato, BOOTP executa como uma aplicação e precisa apenas de algumas facilidades básicas fornecidas por endereços especiais Uso da pilha antes da inicialização (cont.) ● Cliente BOOTP envia pacote com: – Endereço IP de destino com o valor de difusão limitada (255.255.255.255) ● – Endereço IP de origem com o valor “deste host nesta rede” (0.0.0.0) ● ● Endereço de hardware de destino também com valor de difusão Endereço de hardware de origem com o endereço físico da interface, o qual é conhecido Servidor BOOTP responde com: – Endereço IP de destino com o valor de difusão limitada (255.255.255.255), pois o cliente ainda não sabe seu endereço IP ● – Endereço de hardware de destino com o valor fornecido pelo cliente Endereços IP e de hardware de origem preenchidos da forma convencional Retransmissão BOOTP ● Uma vez que o UDP é usado, o cliente BOOTP foi preparado manipular retransmissões – É sorteado um valor aleatório para a temporização (timeout) – Caso não obtenha sucesso, são realizadas novas tentativas, sendo que a cada nova o intervalo de sorteio dobra ● O intervalo dobra até atingir um determinado valor, passando a ficar fixo, porém ainda com sorteio aleatório dentro do mesmo Formato da mensagem BOOTP Campos da mensagem BOOTP ● OP – especifica se é uma requisição (1) ou resposta (2) ● HTYPE – tipo de hardware (ex.: Ethernet = 1) ● ● ● ● HLEN – comprimento em bytes do endereço de hardware (ex.: Ethernet = 6) HOPS – número de roteadores que a mensagem atravessa. É configurada com 0 (zero) pelo cliente e incrementado caso algum servidor a repasse para outro TRANSACTION ID – usado para casar requisições com respostas SECONDS – quantidade de segundos desde que o cliente começou a inicializar Campos da mensagem BOOTP (cont.) ● ● ● ● CLIENT IP ADDRESS – endereço IP enviado pelo cliente (ex.: 0.0.0.0) YOUR IP ADDRESS – endereço IP fornecido pelo servidor ao cliente BOOT FILE NAME – descreve uma imagem de memória a ser fornecida a um cliente sem disco VENDOR-SPECIFIC AREA – contém informações opcionais a serem passadas do servidor para o cliente Campos da mensagem BOOTP (cont.) ● Itens de tamanho fixo do campo VENDOR-SPECIFIC AREA ● Itens de tamanho fixo do campo VENDOR-SPECIFIC AREA Atribuição dinâmica de endereços ● BOOTP assume um mapeamento um-para-um entre o equipamento (endereço de hardware) e o endereço IP – ● Inviabiliza reaproveitamento ou reatribuição automática de um endereço IP para equipamentos diferentes Mapeamento dinâmico de endereços é necessário (sobretudo, por ISPs) – Cliente obtém um endereço IP e usa temporariamente – Quando o cliente não precisa mais do endereço, o mesmo deve estar disponível para outro ● Otimiza o uso de um conjunto de endereços IP Extensão do BOOTP ● ● BOOTP é estendido para permitir atribuição dinâmica de endereços Novo protocolo é chamado DHCP (Dynamic Host Configuration Protocol) – Mantém BOOTP compatibilidade retroativa com Dynamic Host Configuration Protocol (DHCP) ● ● ● Pode atribuir endereços de três formas: – Manual (semelhante ao BOOTP) – Automática (endereço atribuído pelo servidor e o equipamento retém o mesmo endereço) – Dinâmica (endereço atribuído pelo servidor e o equipamento pode obter endereços diferentes em requisições posteriores) Administrador pode escolher o tipo atribuição para cada endereço Além do endereço IP permite que um host obtenha todos os parâmetros necessários para se comunicar sem intervenção manual – DHCP oferece auto-configuração Atribuição dinâmica de endereços ● Cliente recebe um arrendamento de endereço ● Servidor especifica o tempo de arrendamento ● ● No fim do arrendamento, cliente deve renová-lo ou parar de usar o endereço Ações são controladas por uma máquina de estados finitos – Basicamente, um cliente DHCP difunde (broadcast) uma mensagem para todos os servidores em uma rede local, coleta as ofertas, seleciona uma e negocia com o servidor Máquina de estados finitos do DCHP Formato da mensagem DHCP ● Campo FLAGS – de fato apenas 1 bit é usado para indicar se o servidor deve responder através de broadcast (1) ou unicast (0) Campo OPTIONS ● Mesmo formato do campo VENDOR SPECIFIC AREA do BOOTP – Mantém os mesmos itens definidos pelo BOOTP e acrescenta um novo código (53) para as mensagens DHCP