NewsGeneration: um serviço oferecido pela RNP desde 1997


ISSN 1518-5974
Boletim bimestral sobre tecnologia de redes
produzido e publicado pela  RNP – Rede Nacional de Ensino e Pesquisa
12 de novembro de 1999 | volume 3, número 6

volta à página inicial de NewsGeneration

Nesta edição:

NewsGeneration:



Introdução ao DHCP

Angela Maria Duran Bugallo <>
Márcio Almeida Barros <>
Waldeck Ribeiro Torres <>

Rede Nacional de Ensino e Pesquisa (RNP)

Introdução
O RARP
O BOOTP
DHCP: A evolução
Usando o DHCP
Instalando e configurando o DHCP no Windows NT
Conclusão
Referências bibliográficas
Sites relacionados

Numa rede de Arquitetura TCP/IP, todo computador tem que possuir um endereço IP distinto. O DHCP - Dynamic Host Configuration Protocol - é o protocolo que provê um meio para alocar estes endereços dinamicamente.

Embora este artigo também apresente uma introdução ao protocolo DHCP, o que já foi feito neste boletim através do artigo DHCP: Por que Usar? , aqui são apresentados alguns conceitos de forma mais aprofundada, bem como é ensinado como instalar e configurar o DHCP em Máquinas Windows NT.

^

Introdução

Inicialmente, a necessidade de automatizar a requisição e distribuição do endereço IP deu-se em função da existência de estações sem disco (diskless). Esta demanda provocou o uso do protocolo de camada de enlace RARP.

Com o aumento do número de máquinas nas redes e também a crescente necessidade de maiores informações de configuração para comunicação em uma rede, o RARP mostrou-se ineficiente, o que levou a criação do protocolo BOOTP.

O advento da computação móvel trouxe uma grande limitação ao BOOTP. Foi criado, então, o DHCP, uma versão estendida do BOOTP, que permite a atribuição dinâmica de endereços IP.

O DHCP foi designado para resolver esse problema enquanto simplifica a administração da rede TCP/IP. DHCP vem do Inglês Dynamic Host Configuration Protocol que significa Protocolo de Configuração de Host Dinâmico.

O DHCP é especificado pela IETF - Internet Engineering Task Force por meio dos RFCs (Requests For Comments) 1533, 1534, 1541 e 1542.

^

O RARP

Para se entender claramente o funcionamento do DHCP, é necessário conhecer o funcionamento do BOOTP, que, por sua vez, exige conhecimento prévio em relação ao funcionamento e problemas do RARP (Reverse Address Resolution Protocol).

Para um sistema computacional enviar e receber datagramas é preciso que este possua um endereço de rede IP de 32 bits que o identifique. Em condições normais (uma estação completa), o endereço IP fica armazenado na memória da máquina, carregado após o boot. Quando a máquina não possui um disco para inicialização do sistema (estação diskless) para carregar o seu endereço IP, a imagem de memória daquela estação fica armazenada no servidor. Como é possível a máquina cliente obter o seu endereço IP para envio da imagem de memória pelo servidor?

Cada máquina com uma placa de rede possui uma identificação única e que praticamente não se repete. Esta identificação é uma seqüência de bits, gravado no chip da placa, que é utilizada como endereço físico na rede (MAC address). A estação diskless utiliza um protocolo que permite a obtenção do endereço IP fazendo uso do endereço físico da placa. Este protocolo é o RARP.

O RARP é uma adaptação do protocolo ARP [RFC826] e apresenta o seguinte formato de mensagem:

A exemplo do ARP, a mensagem RARP trafega na rede encapsulada na porção de dados de um quadro. A identificação do quadro é feita com o preenchimento de valores diferentes no campo operação.

A comunicação RARP é feita a partir da difusão da solicitação de uma estação na rede local para aquisição de um endereço IP. A estação solicitante remete, na sua mensagem, o seu endereço MAC no campo target HA. Somente os servidores RARP irão processá-la.

Os servidores respondem às solicitações preenchendo o campo tipo de protocolo, mudando o campo operação de solicitação para resposta e enviando a mensagem diretamente a máquina solicitante. Ela recebe as respostas de todos os servidores RARP, mesmo tendo aceito a primeira. A partir deste momento a máquina só utilizará o RARP novamente se for feita uma reinicialização do sistema.

Com isso, ficam aparentes algumas desvantagens deste protocolo:


Figura 1: Pacote RARP

^

O 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.

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.

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.

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.

^

DHCP: A evolução

Criado para substituir o BOOTP na tarefa de automatizar o fornecimento de endereços IP em uma rede, o DHCP é um serviço que permite facilidades para redes que utilizam a computação móvel (wireless network, computadores portáteis) ou que possuem uma faixa de endereços IP limitada.

Dois fatores contribuíram para que esse novo protocolo de configuração fosse criado. O BOOTP resolveu parte do problema de subutilização do quadro quando do envio de um endereço IP. Com o DHCP, em uma única mensagem são enviadas para o equipamento todas as informações de inicialização necessárias. Outro fator importantíssimo e que pode ser considerado como o principal é a locação rápida e dinâmica de um endereço IP para um equipamento conectado à rede.

ATRIBUIÇÃO DE ENDEREÇO

O DHCP pode atribuir endereço para um equipamento de rede de três formas:

Configuração Manual

Neste caso, é possível atrelar um endereço IP a uma determinada máquina na rede. Para isso, é necessária a associação de um endereço existente no banco do servidor DHCP ao endereço MAC do adaptador de rede da máquina. Configurado desta forma, o DHCP irá trabalhar de maneira semelhante ao BOOTP. Esse endereço "amarrado" ao equipamento não poderá ser utilizado por outro, a não ser que eles utilizem a mesma placa de rede.

Configuração Automática

Nesta forma, o servidor DHCP é configurado para atribuir um endereço IP a um equipamento por tempo indeterminado. Quando este conecta-se pela primeira vez na rede, lhe é atribuído um endereço permanente. A diferença existente entre esta e a primeira configuração é que nesta não é necessária uma especificação do equipamento que utilizará determinado endereço. Ele é atribuído de forma automática.

Configuração Dinâmica

Neste tipo de configuração, é que reside a característica principal do DHCP, que o diferencia do BOOTP. Desta forma o endereço IP é locado temporariamente a um equipamento e periodicamente, é necessária a atualização dessa locaçã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 locar o endereço, deixe de utilizá-lo. Quando o outro equipamento solicitar ao servidor DHCP um endereço IP poderá ser fornecido ao mesmo o endereço deixado pelo primeiro.

O SERVIDOR DHCP

O servidor DHCP deve ser configurado pelo administrador da rede para disponibilizar aos seus clientes, endereços IP em uma das três formas de fornecimento descritas acima. Para tanto, ele alimenta um banco com os endereços da sua sub-rede que serão fornecidos de forma automática. É importante deixar claro que, em uma rede, o administrador deverá deixar fixo em algumas máquinas os seus endereços IP.

Nas configurações, será estabelecido o prazo de locação de um endereço. Esse prazo pode variar de horas a dias ou simplesmente ser ilimitado. Essa decisão irá depender da rede em que o DHCP está servindo e das necessidades de um determinado equipamento.

O CLIENTE DHCP

Um cliente DHCP é um equipamento que está configurado para solicitar a um servidor DHCP um endereço IP.

Como já foi dito anteriormente, alguns equipamentos na rede devem possuir endereços IP 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:

O que define em que estado se encontra o cliente é a mensagem que ele envia para um dos servidores DHCP da sua rede.

Inicializa

Quando um cliente inicializa pela primeira vez, ele difunde uma mensagem para todos os servidores DHCP da rede local a fim de adquirir as configurações de inicialização na rede. Para tanto ele manda uma mensagem DHCPDISCOVER.

O DHCPDISCOVER é enviado em um datagrama UDP da mesma forma que no BOOTP. Após o envio dessa mensagem, o cliente passa para o estado SELECIONA.

Seleciona

Neste estado, o cliente permanece aguardando 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 juntamente com um endereço IP que o servidor lhe oferece como empréstimo. Após o recebimento de todas as mensagens enviadas pelos servidores, o cliente irá optar por uma e entrará em negociação de locação com o servidor ofertante. Para iniciar a negociação, o cliente envia a mensagem DHCPREQUEST. Neste momento, ele entra no estado SOLICITA.

Solicita

Aqui, o cliente aguarda uma resposta de confirmação do servidor DHCP que ele entrou em negociação. Essa confirmação é remetida através da mensagem DHCPACK. Com o recebimento 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 entra no estado LIMITE.

Limite

Este é o estado em que permanece o cliente durante a utilização do endereço IP até que atinja o período de renovação ou ele decida não mais utilizar o endereço locado. Para este último caso, onde o cliente não espera o término do prazo da locação, ele envia uma mensagem DHCPRELEASE para o servidor, a fim de provocar a liberação do endereço IP locado. Desta forma, o cliente não mais poderá enviar datagramas IP utilizando-se do endereço que possuía e passa para o estado INICIALIZA.

Renova

Ao receber um DHCPACK, o cliente adquire a informação do período de locação do endereço. De posse dessa informação, ele inicializa três temporizadores. Eles são utilizados para controlar os períodos de renovação, revinculação e do fim da locação. O servidor pode especificar o valor de cada temporizador. Não havendo essa especificação o cliente utiliza os valores padrões, que são de 50%, 85% e 100%, respectivamente.

Quando o temporizador ultrapassa o valor da renovação, o cliente tentará renovar a locação. Para isso, ele faz uso novamente do DHCREQUEST ao servidor. Assim, ele passa para o estado RENOVA e aguarda a resposta. Na mensagem, segue embutido o endereço IP atual do cliente e uma solicitação de extensão da locação do mesmo. O servidor poderá responder autorizando a renovação da locação que necessariamente não possuirá o período anteriormente destinado, ou poderá responder de forma negativa. No primeiro caso, o servidor envia um DHCPACK ao cliente. O recebimento 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.

Vincula Novamente

Ao entrar no estado RENOVA, um cliente fica aguardando a resposta do servidor. Caso essa resposta não chegue (é possível que o servidor tenha sido desligado, ou tenha sido desconectado da rede), o cliente permanece nesse estado e comunicando-se normalmente até que seja ultrapassado o limite do segundo 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 locou o endereço IP não estará mais disponível e tenta obter a renovação com qualquer outro servidor DHCP da sua rede local através da difusão de DHCPREQUEST. Caso receba um DHCPACK de algum servidor habilitado para tal, o cliente retornará para o estado LIMITE. Em recebendo um DHCPNACK, ele passará para o estado INICIALIZA.

No caso do cliente não receber qualquer resposta, ele permanecerá utilizando o endereço IP inicialmente locado até que seja atingido o valor limite do terceiro temporizador, o que fará com que ele passe para o estado INICIALIZA.

FORMATO DA MENSAGEM DHCP

O servidor DHCP poderá responder tanto às solicitações BOOTP, quanto DHCP, pois ambas possuem o mesmo formato.

A figura a seguir mostra o formato da mensagem DHCP.

 

OP

HTYPE

HLEN

HOPS

ID DE TRANSAÇÕES

SEGUNDOS

FLAGS

ENDEREÇO IP DO CLIENTE

SEU ENDEREÇO IP

ENDEREÇO IP DO SERVIDOR

ENDEREÇO IP DO ROTEADOR

ENDEREÇO DE HARDWARE DO CLIENTE (16 OCTETOS)

NOME DO HOST DO SERVIDOR (64 OCTETOS)

NOME DO ARQUIVO DE PARTIDA (128 OCTETOS)

OPÇÕES (VARIÁVEL)

Os campos da mensagem DHCP:

 

CAMPO

INFORMAÇÕES

OP

Numa mensagem DHCP, uma solicitação e uma resposta possuem os mesmos campos. O que as diferenciam é o conteúdo deste campo. A informação um indica uma solicitação, a informação dois indica uma resposta

HTYPE

Informa o padrão de rede utilizado pelo adaptador de rede

HLEN

Informa o tamanho do endereço MAC do adaptador de rede

HOPS

Quantidade de roteadores pelos quais a mensagem deverá passar

ID DE TRANSAÇÕES

Número de identificação da mensagem

SEGUNDOS

Quantidade de tempo em segundos desde que o cliente fez a inicialização

FLAGS

Utilizado para "setar" opções especiais de resposta às solicitações

ENDEREÇO IP DO CLIENTE

Em uma solicitação o cliente informa o seu endereço IP (possível quando o cliente conhece o seu endereço)

SEU ENDEREÇO IP

Utilizado pelo servidor para enviar informação do endereço IP disponível para o cliente que solicitou.

ENDEREÇO IP DO SERVIDOR

Preenchido pelo cliente quando ele quer obter uma informação de um servidor específico.

ENDEREÇO IP DO ROTEADOR

Preenchido pelo servidor para informar ao cliente o endereço IP do roteador da rede local

END. DE HARDWARE DO CLIENTE

Informação do endereço MAC do cliente

NOME DO HOST DO SERVIDOR

Quando esses campos não são utilizados para enviar as informações pertinentes a cada um (nome do servidor e informação do sistema operacional que será inicializado no cliente) o DHCP utiliza-o remetendo informações adicionais transformando-os em campo de OPÇÕES, otimizando assim a utilização da mensagem.

NOME DO ARQUIVO DE PARTIDA

Nome do arquivo que contém a imagem de memória da(s) estação (ões) correspondente(s)

OPÇÕES

Esse campo é utilizado para informar que tipo de resposta ou solicitação DHCP (DHCPDISCOVER, DHCPOFFER etc.) está sendo enviada para o cliente ou para o servidor.

^

Usando o DHCP

Um servidor DHCP faz com que o endereçamento a máquinas seja um processo mais dinâmico do que estático. Normalmente, um novo usuário da rede solicita ao gerenciador um endereço IP válido. O gerenciador executa uma entrada nas tabelas HOSTS ou no banco de dados DNS. Esse usuário pode precisar desse endereço apenas esporadicamente ou até temporariamente. Contudo, enquanto o endereço é atribuído a uma máquina, ninguém mais pode usá-lo.

Outro problema surge quando os usuários se tornam móveis e levam suas máquinas com eles. Se alguém move o seu computador pessoal de uma rede do prédio para outra, o endereço antigo poderá não funcionar na nova rede local. Solicitar ao gerenciador de rede local um endereço para usar apenas temporariamente não faz sentido.

Com o DHCP, os endereços IPs são atribuídos automaticamente conforme a necessidade e depois liberados quando não são mais necessários. O processo é bem simples. Um servidor DHCP possui um grupo de endereços válidos que pode atribuir aos clientes. Quando o sistema de um cliente inicia, ele envia uma mensagem na rede solicitando um endereço.

Cada servidor DHCP (podem existir vários) responde com um endereço IP e informações de configuração. O cliente recolhe as ofertas e seleciona um endereço válido, enviando de volta a confirmação para o servidor. Todos os servidores DHCP recebem a confirmação do cliente. O servidor DHCP cujo endereço foi selecionado pelo cliente, envia de volta uma mensagem de reconhecimento, enquanto os demais servidores DHCP cancelam as ofertas anteriores de seus grupos. Após o recebimento da mensagem de reconhecimento do servidor DHCP, o cliente pode participar da rede TCP/IP.

O servidor DHCP, essencialmente, reserva o endereço para o cliente. Esta pode ter um tempo determinado de modo que as reservas sem uso sejam retornadas de forma automática ao grupo de endereços. Se a reserva expirar, mas a máquina ainda estiver usando o endereço, o servidor DHCP poderá renová-la, a fim de que o cliente possa continuar com o mesmo endereço.

^

Instalando e configurando o DHCP no Windows NT

Para instalar um servidor DHCP em uma máquina Windows NT, é necessário ir à caixa de diálogo TCP/IP Installation Options. Se precisar, deve-se dar dois "cliques" sobre o ícone Network no Control Panel. Em seguida, deve-se escolher o botão Add Software e selecionar a opção TCP/IP and Related Components na lista de softwares.

O item DHCP Server Service da lista deve ser escolhido, dando um "clique" sobre OK em seguida. O Windows NT começará a copiar os arquivos necessários para seu disco rígido. Isso é tudo para a instalação.

Para configurar o DHCP Server Service, deve-se usar o utilitário DHCP Administrator. Esse utilitário instala-se automaticamente quando os serviços do DHCP também o são. Deve-se dar dois "cliques" sobre o ícone DHCP Administrator no grupo Network Administration.

A primeira coisa que se deve fazer é criar um escopo administrativo do DHCP. Um escopo é equivalente a uma sub-rede em uma rede. Destaque a entrada Local Machine sob a lista DHCP Servers. Em seguida, deve-se selecionar o Scope Create no menu, quando a caixa de diálogo Create Scope aparecerá.

Nessa caixa de diálogo, estabelece-se o grupo de endereços que o DHCP disponibiliza dinamicamente para os clientes do DHCP. Digitam-se os endereços inicial e final para definir a faixa. Caso se queira excluir alguns endereços do grupo, pode-se digitar uma faixa a ser excluída ou um endereço. Para inserir uma faixa de endereços a ser excluída, digitam-se valores nos campos Start Address e End Address. Para excluir um único endereço, este deve ser informado no campo Start Address. As faixas e endereços excluídos devem incluir outros servidores DHCP, clientes que não são do DHCP, estações de trabalho sem disco ou clientes RAS.

Ao inserir faixas ou endereços excluídos, deve-se dar um "clique" sobre o botão Add para acrescentá-los à lista da direita. Se um erro for cometido ou se muda-se de idéia sobre um endereço excluído, este deve ser destacado e um clique sobre o botão Remove faz-se necessário.

A próxima parte da caixa de diálogo Create Scope, intitulada Lease Duration, determina o tempo durante o qual os clientes do DHCP podem manter seus endereços.

Deve-se ter em mente que uma das razões principais para instalar um servidor DHCP é a atribuição e liberação dos endereços dinamicamente.

Se for necessário que o servidor DHCP atribua endereços quando forem solicitados, mas nunca os libere, deve-se dar um "clique' sobre o botão Unlimited Lease Duration. É mais provável que se queira definir a duração para alguns dias ou horas. Se especificar uma duração de três dias (o valor padrão), o servidor DHCP verificará se o cliente ainda está usando aquele endereço quando a reserva expirar. Se o cliente ainda estiver usando o endereço, a reserva poderá ser renovada.

Se existir escassez de endereços válidos na rede e as máquinas ficarem fora do ar com freqüência, três dias poderá ser muito tempo para uma reserva. Neste caso, pode-se querer especificar poucas horas. O único problema é o aumento de tráfego da negociação de endereços entre os servidores e clientes do DHCP. Se existirem endereços suficientes para a rede, mas ainda quiser endereços livres e sem uso depois de pouco tempo, poderia ser apropriado atribuir uma reserva de duração mais longa (como 30 dias).

A única coisa que é necessário inserir na caixa de diálogo Create Scope é um nome de escopo e um comentário opcional. O nome pode ter até 128 caracteres e pode ser qualquer nome que se queira dar à sub-rede. Pode-se usar letras, números e hífens. Qualquer outra informação que se queira incluir sobre o escopo poderá ser inserida no campo Comment.

Quando acabar de inserir todos os valores na caixa de diálogo, deve-se dar um "clique" sobre o OK. O Windows NT informará que o escopo foi criado, mas que o mesmo ainda não está ativo. Para ativá-lo, deve-se dar um "clique" sobre o Yes. Querendo alterar as propriedades do escopo, basta destacar o escopo no lado esquerdo do utilitário DHCP Manager e selecionar Scope, Properties.

Também a partir do menu Scope, pode-se selecionar Active Leases para ver quais computadores estão usando o servidor DHCP. A caixa de diálogo Active Leases aparecerá. Querendo, pode-se destacar um cliente e dar um "clique" sobre o botão Properties. Será então, exibido o endereço IP, quando a reserva vai expirar, o nome do cliente e o Identificador do Cliente que é normalmente o endereço MAC do adaptador da rede nessa máquina.

A opção Add Reservations pode ser escolhida para fazer aparecer a caixa de diálogo Add Reserved Clients. Essa opção permite que se reserve um endereço específico para um cliente preestabelecido. Pode-se, portanto, especificar qualquer endereço IP que não esteja sendo usado do grupo de endereços. No campo Unique Identifier, deve-se digitar o endereço MAC do adaptador da rede no computador do cliente. A seguir, o nome do computador do cliente deve ser preenchido como uma ajuda, a fim de se lembrar para qual cliente o endereço foi reservado. É preciso digitar o nome exato do computador para o cliente. Qualquer outra informação que queira digitar sobre o cliente poderá ser colocada no campo Client Comment.

O utilitário DHCP Manager permite que se alterem os parâmetros de configuração que o servidor atribui aos clientes. As opções fornecem valores padrões baseados nos parâmetros padrões definidos pelo Internet Networking Group no RFC 1542. Pode-se alterar esses parâmetros para influenciar cada cliente ao qual o servidor DHCP presta serviços ou clientes de um determinado escopo.

Caso se queira alterar os valores padrão, pode-se fazer isso do mesmo modo. Essas opções de interligação na rede TCP/IP são avançadas e, a não ser que saiba o que está fazendo, corre-se o risco de piorar o desempenho ou fazer com que ele fique inutilizável.

^

Conclusão

O DHCP - Dynamic Host Configuration Protocol - é um padrão industrial aberto que é projetado para reduzir a complexidade da administração da rede TCP/IP. Ele especifica métodos para configuração simplificada e dinâmica dos computadores, reduzindo, dessa forma, a carga de adicioná-los, movê-los e/ou removê-los destas redes.

Conhecendo-se os recursos DHCP, pode-se utilizá-lo como um aliado na administração de uma rede.

^

Referências bibliográficas

Douglas E. Comer - Interligação em Redes com TCP/IP vol. 1 - Princípios, protocolos e arquitetura - tradução ARX Publicações, 3a. ed. Ed. Campus - 1995

Microsoft Windows NT Server resource Kit: for Windows NT Server version

4.0/Microsoft Corporation: tradução Altair Dias Caldas. São Paulo: Makron Books, 1997

^

Sites relacionados

  www.kentrox.com/support/tn/pacesetter/dhcp.htm

www.stratagis.com/rfc/RFC15xx/RFC1534.txt

www.ns.oregon.edu/get_conneted/dhcp.html

www.angelfire.com/nh/fbdias

^

NewsGeneration, um serviço oferecido pela RNP – Rede Nacional de Ensino e Pesquisa
Copyright © RNP, 1997 – 2004