You are on page 1of 7

DHCP: Dynamic Host Configuration Protocol

Edgard Jamhour

O objetivo desta unidade apresentar o funcionamento de dois importantes servios de rede: o DNS e o DHCP. O DNS (Domain Name System) o servio de nomes usado na Internet. Esse mecanismo, permite que servidores da Internet sejam localizados utilizando nomes (denominados FQDN Fully Qualified Domain Names) ao invs de endereos IP. O DHCP (Dynamic Host Configuration Protocol) o servio de atribuio automtica de endereos e outras configuraes essenciais para o funcionamento das redes IP. Os exemplos dessa unidade so baseados na implementao desses servios para o ambiente Linux, e devem ser usados como referncia na execuo das atividades prticas.

DHCP - Dynamic Host Configuration Protocol

BOOTP Subrede 2

SERVIDOR DHCP Subrede 2

CLIENTES DHCP

BOOTP
Edgard Jamhour

O DHCP (Dynamic Host Configuration Protocol) um padro industrial aberto, definido por vrios documentos do IETF: RFC 1533, 1534, 1541 e 1542. O DHCP permite a criao de um mecanismo centralizado para automatizar a administrao e a configurao de parmetros TCP/IP numa rede. O DHCP segue a arquitetura cliente-servidor. Os clientes de DHCP em sua inicializao solicitam parmetros de rede para o servidor de DHCP. O servidor atribui para cada cliente um endereo IP e a configurao de outros parmetros (como roteador padro, servidor DNS, servidor NetBIOS, etc). O protocolo utilizado pelo DHCP denominado BOOTP, e construdo sobre o protocolo UDP. Para solicitar a configurao de parmetros de rede, um cliente DHCP tenta localizar um servidor utilizando uma mensagem em broadcast. Qualquer servidor DHCP que seja alcanvel por uma mensagem broadcast poder atender ao cliente. Esta estratgia permite que o cliente seja configurado sem conhecer nenhum parmetro especfico de rede. Um nico servidor DHCP pode configurar vrias subredes, normalmente, uma subrede em cada uma de suas interfaces. Por ser um servio simples, e associado as interfaces de rede, o servio de DHCP comumente implementado por roteadores. Mesmo equipamentos de pequeno porte, como Access Point (AP) WiFi e roteadores ADSL tem capacidade de distribuir endereos via DHCP.

Configurao do DHCP
subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.2 192.168.0.100; default-lease-time 86400; option routers 192.168.0.1; option ip-forwarding off; option broadcast-address 192.168.0.255; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.0.101; option nntp-server 192.168.0.102; option netbios-name-servers 192.168.0.103; host laser-printer { hardware ethernet 08:00:2b:4c:59:23; fixed-address 192.168.0.222; } }

Edgard Jamhour

Um servidor DHCP permite configurar vrios parmetros de rede no cliente. De acordo com a padronizao do servio de DHCP pelo IETF, esses parmetros so denominados opes. O exemplo da figura ilustra uma parte do arquivo de configurao do servidor DHCP no Linux (arquivo dhcpd.conf). Cada sub-rede atendida pelo servidor DHCP ter uma estrutura similar ao indicado na figura. O exemplo define os seguintes parmetros: range: faixa de IPs que ser distribuda default-lease-time: tempo em segundos que o computador poder ficar com o endereo IP sem solicitar renovao. option routers: indica o gateway padro do rede. option ip-forwanding: define se o cliente ter ou no roteamento habilitado. option broadcast-address: define o endereo de broadcast para subrede. option subnet-mask: indica a mscara de subrede que ser utilizada pelo cliente. option domain-name-servers: indica a mscara de subrede que ser utilizada pelo cliente. option nntp-server: indica o servidor nntp (relgio) da rede. option netbios-name-servers: indica o servidor de nomes NetBIOS (WINS) da rede. A princpio, a distribuio de endereos IP para os clientes dinmica. possvel, contudo, fixar o endereo IP para um dado cliente baseado no seu endereo MAC. Isso feito atravs da diretiva host, conforme indicado no exemplo.

Processo de Atribuio: Novo IP


subrede

Dhcpdiscover Dhcpoffer 200.17.98.1


Cliente DHCP

192.168.0.0 255.255.255.0 72 horas 200.17.98.1 200.17.98.254

Dhcprequest 200.17.98.1 Dhcpack 200.17.98.1

Todas as mensagens so enviadas em broadcast

...
Dhcprelease 200.17.98.1
Servidor DHCP

Edgard Jamhour

O protocolo BOOTP define um conjunto de mensagens padronizadas trocadas entre o cliente e o servidor de DHCP. O processo de atribuio dos parmetros IP dividido em duas etapas: a obteno de um novo endereo IP e o processo de renovao de um IP j obtido. O processo de obteno de um novo IP s acontece quando o cliente DHCP no possui nenhum IP obtido anteriormente. Nesse caso, o conjunto de mensagens trocadas o seguinte: 1) O cliente envia a mensagem Dhcpdiscover em broadcast. O endereo IP de origem do pacote 0.0.0.0 pois o cliente ainda no tem um endereo IP. 2) Quando o servidor recebe o pacote, ele seleciona um endereo IP disponvel na sua lista e oferece ao cliente. O servidor responde ao cliente com a mensagem Dhcpoffer 3) Quando o cliente recebe a oferta ele pode: aceitar enviando a mensagem Dhcprequest (incluindo o IP) em broadcast recusar enviando a mensagem Dhcpdecline em broadcast 4) Quando o servidor recebe o Dhcprequest ele pode: confirmar para o cliente com a mensagem Dhcpack recusar, se o endereo foi usado por outro, com a mensagem Dhcpnack 5) O cliente pode liberar um endereo com a mensagem Dhcprelease. Um cliente DHCP aceita a primeira oferta que receber. Se houver mais de um servidor DHCP distribuindo endereos IP, no haver como selecionar apenas um deles. Se o cliente no receber a oferta do servidor ele repete o pedido Dhcpdiscover em intervalos de 2, 4, 8, 16 segundos. Se as 4 tentativas fracassarem, ele tenta novamente em intervalos de 5 minutos.

Processo de Atribuio: Renovao


subrede

Dhcprequest 200.17.98.1 Dhcpack 200.17.98.1


Cliente DHCP

192.168.0.0 255.255.255.0 72 horas 200.17.98.1 200.17.98.254

OU
Dhcpnack

Todas as mensagens so enviadas em broadcast

Dhcpdiscover
Servidor DHCP

Edgard Jamhour

O direito do cliente de usar o endereo IP recebido pelo servidor DHCP temporrio. Quando o prazo de validade do IP expira, o servidor pode atribu-lo a outra estao na rede. Para evitar que isso acontea, o cliente precisa renovar o seu direito de utilizar o endereo IP antes desse prazo. O cliente inicia o processo de renovao quando metade do seu perodo de emprstimo tiver sido atingido. Por exemplo, se o perodo de emprstimo for de 72 horas, o cliente ir tentar a renovao a partir de 36 horas. O cliente tambm tenta a renovao todas as vezes que reinicializado. A princpio um cliente DHCP pode manter o seu IP indefinidamente. Ele s ir perder o seu IP se ficar desligado por um longo perodo. Nesse caso, ele poder ter seu endereo IP atribudo para outro computador. Se desejar, o cliente pode liberar seu endereo IP antecipadamente com a mensagem Dhcprelease. O processo de renovao do endereo IP bastante simples. Primeiro ele envia uma mensagem em Dhcprequest com o endereo IP antigo ao invs do Dhcpdiscover. Se o pedido for negado, ento o cliente envia um Dhcpdiscover, e tenta conseguir um novo endereo seguindo o procedimento descrito anteriormente. O perodo de 72 horas o padro de leasing de muitas implementaes de DHCP. Todavia, recomenda-se um leasing bem mais curto para computadores que se ligam temporariamente na rede (notebooks via rede wireless, por exemplo).

Agente Relay DHCP/BOOTP


DhcpDiscover subrede 3

endereo pertence a subrede 3 eth0 Agente Relay 2 eth1

DhcpDiscover

DhcpDiscover subrede 2

eth0

eth1

Roteador com servidor DHCP configurado com trs subredes


Edgard Jamhour

Em redes no segmentadas, um nico servidor DHCP pode atender uma quantidade arbitrariamente grande de clientes. Contudo, como o DHCP funciona em broadcast, um cliente no consegue localizar um servidor DHCP que esteja do outro lado de um roteador. Considere o exemplo da figura. O roteador 1 exerce o papel de servidor DHCP. Quando ele recebe um DhcpDiscover em broadcast pela sua interface eth1, ele oferece aos clientes a configurao referente a subrede 1. Quando ele recebe um DhcpDiscove em broadcast pela sua interface eth0, ele oferece aos clientes a configurao referente a subrede 2. Contudo, no possvel para os clientes da subrede 3 localizar o servidor DHCP, pois suas mensagens em broadcast sero bloqueadas pelo roteador 2. Para permitir o funcionamento do DHCP em redes segmentas, foi definido um mecanismo complementar denominado agente relay (RFC1542). O agente relay um software que roda em um roteador ou computador (existe implementaes do agente relay para sistemas operacionais, como o Linux). O agente relay configurado para escutar mensagens BOOTP em broadcast e propag-las em unicast para um roteador DHCP especifico. No exemplo da figura, o roteador 2 possui o agente relay habilitado. Quando ele recebe uma mensagem DhcpDiscover em broadcast pela sua interface eth0, ele repassa a mensagem em unicast para a interface eth0 do roteador 1. A mensagem contm o endereo IP do agente relay (correspondente a um endereo da subrede 3). Dessa forma, o servidor DHCP sabe que deve selecionar uma configurao da subrede 3 e responder a essa mensagem tambm em unicast par ao roteador 2.

Concluso
DHCP - Dynamic Host Configuration Protocol

Edgard Jamhour

O DHCP um servio de configurao automtica de parmetros IP. Alm de atribuir endereos IP, o mecanismo permite configurar diversos parmetros como roteador default, servidor de DNS, servidor WINS, opes de roteamento, etc. Um problema com esse mecanismo a utilizao de mensagens em broadcast. Isso traz duas conseqncias. A primeira, que o funcionamento do DHCP em redes segmentadas (LANs distintas ou VLANs) pode ser trabalhosa, pois necessita do uso de mecanismos adicionais como o agente relay. A segunda, so aspectos de segurana, pois inicialmente, o cliente DHCP no tem como filtrar de quais servidores DHCP ele vai receber ofertas de IP, o que torna o uso desse servio potencialmente inseguro.