Administração de Redes GNU/Linux/DHCP: Configuração Automática de Hospedeiros

Origem: Wikilivros, livros abertos por um mundo aberto.
< Administração de Redes GNU/Linux
Saltar para a navegação Saltar para a pesquisa

Este capítulo trata o protocolo, o servidor e o cliente DHCP, que basicamente permitem que endereços IP's sejam atribuídos dinamicamente para estações de trabalho de uma rede.

<img src="%ATTACHURLPATH%/pag_135a.jpg" alt="pag_135a.jpg" width="452" height="144" />

Obs.: O conteúdo deste capítulo está sendo migrado de: http://wiki.marceloakira.com/bin/view/GrupoLinux/ArtigoServidorDHCP

Protocolo DHCP[editar | editar código-fonte]

DHCP é um acrônimo para Protocolo de Configuração Dinâmica de Computador [Dinamic Host Configuration Protocol]. É um protocolo cliente/servidor, que possibilita computadores clientes recebam configurações TCP/IP dinamicamente. Esta funcionalidade tem muito importância em grandes redes, pois o controle das configurações TCP/IP são feitas de forma centralizada, tornando esta configuração praticamente transparente para o administrador.

O cliente quando iniciado, envia um pedido de configuração (request) em broadcast e espera a resposta de um servidor. O pedido de configuração deve obrigatoriamente conter solicitação de um endereço IP e máscara de sub-rede, podendo também solicitar roteador padrão, nome de domínio de pesquisa, servidor DNS, etc. E a resposta do servidor são as informações específicas propriamente ditas. O servidor escuta a porta 67 e transmite na porta 68.

Uma vez que o cliente, antes da inicialização, não possui endereço IP, como ele pode comunicar com o servidor? Na verdade, toda comunicação inicial entre o cliente e o servidor independe do protocolo IP, utilizando protocolo a nível de enlace para que um cliente e o servidor negocie os parâmetros de configuração necessários. Esta negociação é realizada por mensagens transmitidas por difusão [broadcast] na sub-rede, sendo limitada a estações fisicamente conectadas na mesma rede. Uma vez estabelecido esta negociação inicial, a comunicação pode ser baseada no protocolo IP. Para saber mais sobre este processo de negociação, consulte a RFC2131 disponibilizada no endereço http://ftp.rfc-editor.org/in-notes/rfc2131.txt.

%T% o protocolo de enlace que o DHCP utiliza é baseado no BOOTP - acrônimo de BOOTstrap Protocol - que é um protocolo que permite que estações sem disco rígido inicializem-se pela rede, carregando e inicializando o sistema operacional pela própria rede, além de obter vários parâmetros essenciais para o funcionamento da estação na rede, como seu próprio endereço IP, através de um servidor BOOTP na rede. Por isso, o protocolo DHCP é considerado como uma extensão do BOOTP, por ser apenas um subconjunto do complexo protocolo BOOTP.

<img src="%ATTACHURLPATH%/pag_136a.jpg" alt="pag_136a.jpg" width="495" height="350" />
Fig. 1 - Ilustração cliente/servidor DHCP.

O DHCP também é um protocolo essencial para provedores Internet, uma vez que permite que clientes obtenham dinamicamente seus parâmetros quando se conectam no provedor, via linha discada, por exemplo. Assim, toda vez que um cliente estabelece uma conexão com o servidor, geralmente um novo endereço IP é obtido. Se o DHCP não for utilizado, todo cliente deveria ser configurado estaticamente, cada um com um número IP exclusivo, o que seria inviável na prática. Para um provedor com 1000 clientes, por exemplo, deveria se ter disponível 1000 endereços IP's, o que seria impraticável levando se em conta a escassez dos endereços IP. Além disto, seria totalmente inviável a administração destes números IP's, com a entrada e saída de novos clientes.

Não existem muitas implementações de DHCP para Linux licenciados sob a GPL, talvez seja devido ao grande sucesso do DHCP do ISC (ISC DHCP)- Internet Software Consortium - http://www.isc.org - que é a implementação mais popular, disponível em quase todas as distribuições de Linux. Além deste software além de ser considerado muito bom, é totalmente disponibilizado sob a GPL. Outra boa alternativa de DHCP é o DHCP conjugado com BOOTP criado pela Universidade de Carnegie Mellon (CMU BOOTP/DHCP) mantido pela Universidade de Princeton, disponível no endereço: http://www.net.princeton.edu/software/dhcpd/. Neste documento iremos enfocar no ISC DHCP. Toda vez que citarmos DHCP estaremos referindo ao ISC DHCP.

%T% existem várias outras implementações do DHCP comerciais, geralmente implementadas por empresas donas de sistemas operacionais, como: Microsoft, Novell, Cisco, IBM, HP e Sun.

Instalando o DHCP[editar | editar código-fonte]

O DHCP está disponível através de pacotes RPM - arquivos binários que podem ser instalados através da ferramenta RPM - porém também é possível obter o código fonte do programa, compilar e instalar.

Instalando o DHCP através de arquivos binários

Os pacotes RPMs disponibilizados pela Conectiva Linux são: dhcpcd (cliente) e dhcp (servidor). Estes pacotes podem ser encontrados no endereço ftp://ftp.conectiva.com.br através de ftp anônimo, ou em um dos próprios CDs de instalação desta distribuição. Para instalar, execute:

#rpm -ivh dhcp*
dhcp         ###########################################################
dhcpcd       ###########################################################

O primeiro pacote é referente ao DHCP daemon servidor, baseado no ISC DHCP. Além de instalar o binário do daemon DHCP (dhcpd), também instala a documentação oficial e as páginas de manual. O segundo pacote é referente a um daemon cliente DHCP de autoria de Sergei Vizniuk.

%T% o pacote original via código-fonte do ISC DHCP fornece um cliente DHCP denominado dhclient, porém este não é disponibilizado no pacote RPM do Linux Conectiva. Isto é devido às limitações do cliente dhclient, que além de não ser implementado como daemon, também não tem as várias funcionalidades que o dhcpcd - DHCP Client Daemon, de Sergei Vizniuk - possui.

Instalando o DHCP através do código fonte[editar | editar código-fonte]

O protocolo DHCP geralmente é implementado através de um daemon cliente (dhclient ou dhcpcd) e um daemon servidor (dhcpd).

%PASSO% O código-fonte está disponível no endereço www.isc.org ou via FTP anônimo em ftp://ftp.isc.org/isc/dhcp. Esta implementação engloba o servidor dhcpd, assim como o cliente dhclient. Faça download do arquivo que contém os fontes, descompacte-o utilizando o comando tar, em seguida compile-o e instale-o. Vejamos:

#cp dhcp-2.0pl5.tar.gz /usr/local/src
#cd /usr/local/src
#tar xvfz dhcp-2.0pl5.tar.gz    
#cd dhcp-2.0pl5
#./configure
#make
#make install

Basicamente este comando instala o daemon DHCP, em /usr/sbin/dhcpd; o cliente DHCP, em /usr/sbin/dhclient, porém este não é muito utilizado na prática; e as páginas de manual do comando. Veja também disponibilizado uma amostra de arquivo de instalação, disponível em server/dhcpd.conf.

Um cliente bastante utilizado é o dhcpcd, de autoria de Sergei Vizniuk. Seu código fonte é disponível em ftp://ftp.phystech.com/pub. Para maiores informações sobre a utilização deste cliente, acesse o endereço: http://www.scrounge.org/linux/dhcpcd.html.

A vantagem de compilar diretamente o código fonte é que esta maneira é genérica para qualquer distribuição, ou seja, a forma apresentada acima, desde que se tenha pré-instalado as bibliotecas padrões do linux, o compilador gcc e o utilitário de execução de scripts de compilação make, pode ser usada em todas distribuições. Para maiores informações, veja o README que acompanha o pacote para maiores detalhes.


%DEBIAN% %PASSO% Podemos instalar o dhcp pela ferramenta apt.Existem dois pacotes entre os quais devemos escolher para instalar o nosso servidor: dhcpd e dhcp3-server

lab152:~# apt-get install dhcp
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
dhcp
0 upgraded, 1 newly installed, 0 to remove and 384 not upgraded.
Need to get 110kB of archives.
After unpacking 311kB of additional disk space will be used.

lab152:~# apt-get install dhcp3-server
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
dhcp3-common
The following packages will be REMOVED:
dhcp
The following NEW packages will be installed:
dhcp3-common dhcp3-server
0 upgraded, 2 newly installed, 1 to remove and 384 not upgraded.
Need to get 684kB of archives.
After unpacking 1127kB of additional disk space will be used.
Do you want to continue? [Y/n]

Após instalar o dhcp3-server, automaticamente sera perguntado em qual interface (ethx) o servidor devera escutar para servir o dhcp.

Configurando o Servidor DHCP[editar | editar código-fonte]

O arquivo de configuração padrão do DHCP chama-se dhcpd.conf e se localiza no diretório /etc. Este arquivo pode ser criado inicialmente vazio e editado com qualquer editor de texto, como o vi ou mcedit. Dependendo de seu uso, este arquivo pode conter uma lista bastante extensa de instruções.

Diretivas allow e deny: As diretivas allow e deny controlam o modo como o dhcpd lida com solicitações de clientes. Cada instrução começa com ambos os controles allow ou deny seguidos por uma palavra-chave que descreve o pedido que está sendo aceito ou negado. Segue abaixo as palavras-chave possíveis: unknown-clients: Configurações requeridas por clientes para os quais o servidor não possui uma definição host específica, podem ser aceitas ou negadas. Por padrão, clientes desconhecidos são aceitos (allow unknown-clients). bootp: O Servidor pode ser direcionado para lidar com pedidos de configuração de clientes bootp - boot remoto - ou pode ignorá-los. Por padrão os clientes bootp são aceitos (allow bootp), dessa forma, todos os clientes, bootp e DHCP, podem ser controlados por um único servidor. booting: A instrução deny booting é utilizada dentro de uma definição host para dizer ao servidor que ele não deve lidar com pedidos de configuração de um cliente específico. O padrão é feito para lidar com pedidos de configuração, o que significa que não é necessário utilizar a instrução allow booting.

Existem várias outras opções que podem ser passados para o dhcpd como veremos abaixo através de um exemplo do arquivo /etc/dhcpd.conf.

Arquivo /etc/dhcpd.conf[editar | editar código-fonte]

%PASSO% Este é o arquivo de configuração do daemon dhcpd, quando inicializamos o serviço dhcpd, o mesmo lê este arquivo e estabelece as devidas configurações. O arquivo que se segue nos mostra a configuração de como transmitir dinamicamente endereços IP para o cliente DHCP em uma sub-rede.

#Define valores globais para todo o sistema
max-lease-time 604800;
default-lease-time 86400;
option domain-name "sistemasabertos.com.br";
option domain-name-servers 10.1.0.2, 10.1.0.101;                     
#Define faixa de endereços dinâmicos para a sub-rede
subnet 10.1.0.0 netmask 255.255.0.0 {
option routers 10.1.0.101;
option broadcast-address 10.1.255.255;
range 10.1.0.10 10.1.0.110;
}

#Define os host dos clientes que devem obter endereços IP estáticos
group {
use-host-decl-names true;
host lab100 {
hardware ethernet 00:80:c7:aa:a8:04;
fixed-address 10.1.0.2;
}
host lab110 {
Hardware ethernet 00:00:c0:a1:5e:10;
fixed-address 10.1.0.101;
}
}

Principais opções:

max-lease-time: Determina qual é o tempo máximo que um certo endereço pode ser alugado (lease) por um cliente, em segundos. Neste exemplo, o parâmetro é uma semana. default-lease-time: Define o tempo que um certo endereço IP será alugado caso o cliente não envie o tempo de aluguel desejado. No exemplo acima, o default é estabelecido para um dia (86400 segundos). No cliente pode-se especificar qual o tempo de aluguel requerido em sua configuração. Se for especificado o servidor utilizará até max-lease-time, se não o servidor utilizará o tempo de default-lease-time. option subnet-mask: Define a máscara da sub-rede, neste caso a máscara é 255.255.0.0 option domain-name: Determina o domínio padrão, no nosso exemplo o domínio é sistemasabertos.com.br. O domínio padrão é acrescentado ao nome quando não se especifica um domínio para um host. Por exemplo, caso você executasse o comando ping www, seria equivalente a executar ping www.sistemasabertos.com.br, apesar de não ter sido especificado um domínio. option domain-name-servers: Define os servidores DNS - Domain Name Service. option routers: Estabelece os roteadores padrões. subnet e netmask: Determina a sub-rede e a sua máscara de sub-rede respectivamente. option broadcast-address: Define o endereço de broadcast. range: Define a faixa de IP que podem serem atribuídas dinamicamente para os hosts desta sub-rede. hardware: Neste parâmetro você deve especificar o endereço MAC. Esta opção suporta ethernet e token-ring. É através deste endereço MAC que o serviço localizará a máquina na rede. fixed-address: É usado para atribuir o endereço IP estático para host. use-host-decl-name: Este parâmetro faz com que o cliente receba o nome de host como indicado logo após a diretiva host. Valores: true ou false;

  • Exemplo:
     
use-host-decl-names true;
host lab100 {
hardware ethernet 00:80.c7:aa:a8:04;
...
}
  • Neste caso o host cujo endereço MAC for 00:80.c7:aa:a8:04 receberá o nome lab100.

group: Define um grupo de hosts para se aplicar opções específicas. No caso acima todos os hosts delimitados pelo group teriam a opção use-host-decl-name true. host: As definições host, group e subnet podem conter todas as outras opções e as opções que não estiver delimitadas por estas são chamadas de opções globais. O servidor trabalha do específico para o geral, ou seja, quando vai configurar os clientes, o servidor procura por opções dentro de um agrupamento host, depois em group, em subnet e finalmente nas opções globais. Prevalecendo do host para as globais. Define um host para se configurar opções específicas.

%DEBIAN% %PASSO% No Debian, se instalarmos o dhcp3-server, o arquivo a ser configurado sera o /etc/dhcp3/dhcpd.conf

%PASSO% Depois de feita a configuração deste arquivo o próximo passo é inicializar o daemon dhcpd. Veja o comando abaixo:

No Conectiva

#/etc/rc.d/init.d/dhcpd start

No Slackware

# echo dhcpd >> /etc/rc.d/rc.local
# /etc/rc.d/rc.local                     

%DEBIAN% %PASSO% No Debian, se instalarmos o dhcp3-server:

#/etc/init.d/dhcp3-server start

Configurando o Cliente Linux DHCP[editar | editar código-fonte]

%PASSO% Por padrão o cliente obtém as configurações provenientes do arquivo de configuração do servidor, mas quando o cliente dhclient é inicializado, ele lê, se existir, o arquivo /etc/dhclient.conf tornando o processo mais flexível. Um exemplo deste arquivo seria:

# vi /etc/dhclient.conf
interface eth0                # interface a ser configurada 
send dhcp-lease-time 3600;    # tempo de aluguel do IP
request subnet-mask, broadcast-address, routers, domain-name, domain-name-servers,host-name;
# são as perguntas efetuadas ao servidor: 
# mascara de sub-rede, endereço de           
# broadcast, roteadores padrões, domínio de procura,
# servidores DNS, nome de host respectivamente
require subnet-mask, domain-name-servers;  # são informações essenciais, 
# ou seja, se o servidor não
# retornar valores para 
# subnet-mask e #domain-name-
# servers, o processo 
# falhará.

No Conectiva[editar | editar código-fonte]

%PASSO% Para configurar o linux para receber endereço IP dinamicamente, basta lembrar do arquivo de configuração da interface ethernet a qual você quer que receba um endereço IP dinamicamente. Este arquivo está no diretório /etc/sysconfig/network-scripts e seu nome é ifcfg-eth0. Neste exemplo a interface que iremos atribuir endereço IP dinamicamente será a interface eth0. Segue abaixo os exemplos:

#cd /etc/sysconfig/network-scripts
#vi ifcfg-eth0

DEVICE="eth0"
IPADDR="10.1.0.101"
NETMASK="255.255.0.0"
ONBOOT="yes"
BOOTPROTO="none"

%PASSO% A linha que deve ser configurada é a que contém o parâmetro:

BOOTPROTO="none"

%PASSO% Neste caso você deve alterar esta linha para:

BOOTPROTO="dhcp"

%PASSO% Em seguida reinicie o serviço network:

#/etc/rc.d/init.d/network restart

%T% No Slackware

#cd /etc/rc.d
#vi rc.inet1

%PASSO% Localize as linhas:

DHCP="no"
if [ "$DHCP" = "yes" ]; then # use DHCP to set everything up:
echo "Attempting to configure eth0 by contacting a DHCP server..."
/sbin/dhcpcd

Mude para: %PASSO%

DHCP="yes"
if [ "$DHCP" = "yes" ]; then # use DHCP to set everything up:
echo "Attempting to configure eth0 by contacting a DHCP server..."
/sbin/dhclient

%PASSO% Execute:

#/etc/rc.d/rc.inet1

%DEBIAN% %PASSO% No Debian:

Ir no arquivo de configuraçao das interfaces de rede (/etc/network/interfaces) e informar para obter o endereço ip pelo dhcp

#vi /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 10.2.0.152
netmask 255.255.0.0
network 10.2.0.0
broadcast 10.2.255.255
gateway 10.2.0.20
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 10.2.0.2
dns-search sa.com.br

%PASSO% A linha que deve ser configurada é a que contém o parâmetro:

iface eth0 inet static

%PASSO% Neste caso você deve alterar esta linha para:

iface eth0 inet dhcp

%PASSO% Em seguida reinicie o serviço network:

#/etc/init.d/networking restart



No Windows®[editar | editar código-fonte]

%PASSO% Para configurar uma estação Windows® para receber suas configurações TCP/IP de um servidor DHCP basta seguir os passos abaixo:

%PASSO% Na Barra de Tarefas, clique no botão Iniciar -> Configurações -> Painel de Controle

%PASSO% Clique em Rede

%PASSO% Selecione TCP/IP e clique em Propriedades;

%PASSO% Selecione a aba Endereço IP e marque a opção Obter um endereço IP automaticamente. Para finalizar clique no botão OK e reinicie o computador. Para checar as configurações, use o utilitário winipcfg (Iniciar -> Executar -> Digite: winipcfg -> OK).

O diretório /var/state/dhcp[editar | editar código-fonte]

Neste diretório são armazenadas informações sobre alugueis de IPs tanto do daemon cliente (dhclient.leases, dhcpcd.leases), quando do daemon servidor (dhcpd.leases).

Arquivo dhcpd.leases[editar | editar código-fonte]

Este arquivo possui padrão de armazenamento parecido com:

lease 10.1.0.1 {
starts 0 2002/01/15 07:32:16;
ends 6 2002/01/21 07:32:16;
hardware ethernet 00:50:04:53:D5:57;
uid 01:00:50:04:53:D5:57;
...
} 

lease: Define o IP atribuído. starts, ends: Define o período que o IP acima foi validamente atribuído.

  • Formato
    • ds data hora;
    • ds: dia da semana, 0 (zero) corresponde a domingo.
    • data: dada no formato aaaa/mm/dd.
    • hora: hora no formato hh:mm:ss.

hardware: Endereço MAC associado ao IP. uid: Número único de identificação do cliente composto pelo endereço MAC precedido do identificador de tipo de hardware (ethernet = 01).

Gerenciando Sub-redes[editar | editar código-fonte]

Em uma rede com muitas sub-redes há um maior trabalho a ser feito em relação a configuração DHCP. Você já deve ter imaginado como deveria ser feito para atribuir endereços dinâmicos a uma máquina em uma sub-rede, já que o servidor estaria na rede primária (barramento principal). Deve haver um servidor DHCP para cada sub-rede? Isto pode dar muito trabalho. O ideal é termos um servidor central DHCP no barramento principal.

Sabemos que ao iniciar um cliente DHCP, este envia um sinal via broadcast solicitando um servidor DHCP. Como este servidor não pertence a esta sub-rede e obviamente não está no mesmo barramento, como este sinal chegaria ao servidor em outra rede? Para resolver este problema existem os agentes retransmissores chamados de servidores dhcrelay.

Configurando um Servidor dhcrelay[editar | editar código-fonte]

Como já descrito, o servidor dhcrelay também é chamado de agente retransmissor DHCP. O dhcrelay faz parte do pacote dhcpd que pode ser obtido como já mencionado anteriormente no endereço http://www.isc.org.

O agente retransmissor identifica solicitações DHCP em uma sub-rede e os retransmite para o Servidor DHCP de outra sub-rede. Veja este exemplo de rede.

<img src="%ATTACHURLPATH%/pag_148a.jpg" alt="pag_148a.jpg" width="564" height="418" />
Fig. 5 - Exemplo de rede e duas sub-redes utilizando um Servidor DHCP.

Neste exemplo de rede temos como barramento principal a rede 10.1.0.0/16, onde se encontra o servidor DHCP e alguns cliente DHCP. Esta rede possui duas sub-redes: a rede 10.1.3.0/24 e a 10.1.4.0/24, cujo roteadores para as respectivas redes são: a máquina LAB2 e a máquina LAB8, para este exemplo as máquinas devem ter endereços estáticos. Para que o servidor DHCP forneça serviços para toda esta rede - incluindo as sub-rede - devemos utilizar dos agentes retransmissores DHCP. O servidor dhcrelay deve estar ligado a mesma sub-rede do DHCP cliente, pois o mesmo deve estar no mesmo barramento para escutar o pedido via broadcast dos clientes DCHP. Entretanto, o servidor dhcrelay não precisa compartilhar a mesma rede do Servidor DHCP, pois utiliza o do endereço IP do servidor para enviar o requerimento direto para o servidor DHCP. Então, ao cliente da sub-rede solicitar um servidor DHCP, o requerimento chegará ao servidor dhcrelay que repassará o pedido para o Servidor DHCP, este retorna a resposta para o servidor dhcrelay que transmite-a para o cliente DHCP.

%PASSO% Para configurar o Servidor dhcrelay utilize o comando dhcrelay. Abaixo está a sintaxe deste comando:

dhcrelay <opções> <endereço IP do servidor dhcp>

%PASSO% Veja este exemplo de comando:

#dhcrelay  10.1.0.101

%PASSO% Este comando sem opções seria o bastante. Em um servidor dhcrelay este comando deve ser executado quando a máquina é inicializada, para que isto aconteça, no caso da Conectiva e Red Hat, adicione o comando no arquivo rc.local que fica dentro do diretório /etc/rc.d, no caso da distribuição Slackware, o arquivo é o /etc/rc.d/rc.inet1. Toda vez que a máquina é inicializada todos os comandos definidos neste arquivo são executados. É interessante o uso da opção -q, esta opção diz ao dhcrelay para não imprimir informações de configuração de rede, na inicialização não seria interessante que apareça tais informações. Para anexar este comando ao fim do arquivo /etc/rc.d/rc.local, execute

# echo "dhcrelay -q 10.1.0.101 10.1.0.102" >> /etc/rc.d/rc.local

Neste exemplo foi declarado mais de um servidor DHCP, isto pode ser feito, você pode passar vários servidores DHCP separados por espaço para o mesmo comando. O dhcrelay enviará um requerimento a todos os servidores listado na linha de comando.

%PASSO% Em nosso exemplo é interessante usarmos os roteadores para serem os nossos agentes retransmissores DHCP, apesar de não ser necessariamente obrigatório. Logo, o roteador possui mais de uma interface e deve ser configurado para fornecer o serviço DHCP retransmissor para a interface correta. Como os roteadores utilizam da interface eth1, interface que está conectada à sub-rede local que possui clientes DHCP e que precisa do serviço DHCP retransmissor, o comando dhcrelay para este caso deve ser:

dhcrelay -i eth1 10.1.0.101

Ambos os roteadores desta rede terão a mesma configuração e, consequentemente, usarão o comando apresentado acima. Este comando pede ao dhcrelay somente listar os requerimentos DHCP na interface eth1. Quando ele receber algum desses requerimentos, ele os transmite para 10.1.0.101.

Configurando o servidor DHCP para gerenciar sub-redes[editar | editar código-fonte]

Esta configuração é uma extensão da configuração apresentada na seção Configurando o Servidor DHCP. Vejamos o exemplo desta configuração:

#Define valores globais para todo o sistema
max-lease-time 604800;
default-lease-time 86400;
option domain-name "sistemasabertos.com.br";
option domain-name-servers 10.1.0.2, 10.1.0.101;
option pop-server 10.1.0.106;

#Define faixa de endereços dinâmicos para o barramento principal
subnet 10.1.0.0 netmask 255.255.0.0 {
# Este será o roteador do barramento principal, este pode ser um roteador de acesso a
# internet. Ele não está apresentado no exemplo de rede.
option routers 10.1.0.7; 
option broadcast-address 10.1.255.255;
range 10.1.0.10 10.1.0.30;
}

subnet 10.1.3.0 netmask 255.255.255.0 {
option routers 10.1.3.202;
option broadcast-address 10.1.3.255;
range 10.1.3.31 10.1.3.50;
}
subnet 10.1.4.0 netmask 255.255.255.0 {
option routers 10.1.4.208;
option broadcast-address 10.1.4.255;
range 10.1.4.51 10.1.4.70;
}


# Define os host dos clientes que obtiveram endereços IP estáticos

group {
use-host-decl-names true;
host lab100 {
hardware ethernet 00:80.c7:aa:a8:04;
fixed-address 10.1.0.2;
}
host lab110 {
Hardware ethernet 00:00:c0:a1:5e:10;
fixed-address 10.1.0.101;

}
}

As novas implementações deste arquivo se refere a duas novas sub-redes definidas neste arquivo: a sub-rede 10.1.3.0/24 e a sub-rede 10.1.4.0/24. Cada sub-rede deve ter seu roteador definido através da entrada option routers. O endereço IP do roteador deve obviamente ser o endereço da interface que está no barramento da sub-rede. Neste caso será a interface eth1, logo para sub-rede 10.1.3.0/24 seu roteador será o host 10.1.3.202, para a sub-rede 10.1.4.0/24 o roteador será o host 10.1.4.208. O roteador 10.1.0.7 definido para a rede do barramento principal trata de um roteador que poderia existir para dar acesso a outras redes, no caso comum e real, este seria um roteador de acesso a Internet. Os roteadores LAB2 e LAB8 poderiam ter endereços IP estáticos, enquanto as máquinas lab100 e lab110 terão endereço pré-definidos pelo fato de serem servidores de DNS, email, etc.

Depois de configurado o servidor DHCP e os agentes retransmissores (dhcrelay), configure os clientes DHCP já explicado anteriormente. Aqui acaba a configuração do DHCP para gerenciar sub-redes.

Links indicados[editar | editar código-fonte]

Terminologia utilizada neste capítulo[editar | editar código-fonte]

BOOTP: é um acrônimo para Bootstrap Protocol, um protocolo Internet que possibilita uma estação de trabalho sem disco rígido obter seu próprio endereço IP, através de um servidor BOOTP na rede. boot remoto [inicialização remota]: é o processo de inicialização de uma estação, através do protocolo bootp. dhcpd: é acrônimo para DHCP daemon. No pacote ISC DHCP é o nome do executável do daemon DHCP servidor. dhcpcd: é acrônimo para DHCP Client Daemon. Existe um daemon de mesmo nome criado por Sergei Vizniuk, bastante utilizado nas distribuições Linux, geralmente utilizado como cliente para o ISC DHCP. Endereço Ethernet: ou MAC address - endereço físico (camada de enlace), que identifica unicamente o hardware. É um endereço hexadecimal atribuído por cada fabricante. Para controle deste valor única, cada fabricante possui uma faixa de endereços própria. IP Dinâmico: forma de configuração IP geralmente denominada quando se utiliza o DHCP, que um host recebe endereços IPs diferentes cada vez que a interface de rede é configurada, como exemplo, quando o computador é inicializado. IP Estático: forma de endereçamento que o endereço IP continua constante em todo o tempo, mesmo a cada inicialização do serviço de rede. Lease-time [tempo de aluguel]: tempo que as configurações do servidor DHCP serão válidas no cliente. retransmissão dhcp: é o processo que um retransmissor DHCP transmite solicitações e respostas entre um servidor DHCP e seus clientes.

Exercícios[editar | editar código-fonte]

1.Se inicialmente o cliente não tem número IP, como é feita a comunicação de solicitação-resposta DHCP?

2.Quais são os valores padrões das diretivas unkown-clients, bootp e booting?

3.Queremos configurar a interface ethernet de um host em nossa rede para que sempre possua o IP 192.168.0.2. Seu endereço MAC é ee:f4:e2:aa:c9:00. Como poderíamos fazer isto no arquivo /etc/dhcpd.conf?

4.O que são opções globais? Quando se tem opções globais e opções especificas, subnet, group ou host, para um host, qual o ordem de precedência das opções?

5.O que é retransmissão DHCP? Por que é utilizada?