Em nosso cenário, o cliente possui 10 estações de trabalho. Isso pode vir a aumentar com o passar do tempo ou até diminuir. Porém, pensando em uma futura expansão, seria muito trabalhoso se a rede aumentasse e tivéssemos que pôr IP nas máquinas manualmente.
Uma solução viável, é ativar um serviço de DHCP. Como isto, toda máquina da rede possuirá um IP e informações de gateway, DNS, entre outras.
O DHCP (Dynamic Host Configuration Protocol) é um protocolo que funciona nas camadas 2 e 3 do modelo OSI e é amplamente utilizado para oferecer endereçamento IP a um host que ainda não está configurado, o que oferece uma flexibilidade ao administrador de sistemas.
O protocolo DHCP opera da seguinte forma:
- DHCPDISCOVER :: um cliente envia um quadro broadcast (destinado a todas as máquinas) com um pedido DHCP.
- DHCPOFFER :: o servidor DHCP captura o quadro e oferece um endereço IP ao cliente.
- DHCPREQUEST :: o cliente envia um DHCP REQUEST endereçado para o servidor DHCP aceitando o IP.
- DHCPACK :: esse é o pacote que confirma a atribuição de uma configuração de rede a um cliente, ou seja, aquele cliente agora possui configurações distribuídas pelo servidor DHCP.
- DHCPNAK :: caso o cliente não aceite aquele endereço IP ele enviará um DHCPNAK para o servidor, e realizará o DHCPDISCOVER novamente.
Fonte:
Dhcp | TutoriaisGNULinux.com
Instalando o serviço
Em distribuições derivadas do Debian o pacote a ser instalado é o
isc-dhcp-server:
# aptitude install isc-dhcp-server
Eu recomendo definir logo qual a placa que estarão servindo os IPs para o demais micros na rede. Isso é útil para não haver problemas e conflitos no serviço. Edite o arquivo
/etc/default/isc-dhcp-server:
# vi /etc/default/isc-dhcp-server
Na variável "INTERFACE", digite o nome da interface de rede local. No meu caso é
eth2 como visto abaixo:
# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer scripts
#
# This is a POSIX shell fragment
#
# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
#DHCPD_CONF=/etc/dhcp/dhcpd.conf
# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPD_PID=/var/run/dhcpd.pid
# Additional options to start dhcpd with.
# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth2"
Feito isso, salve o arquivo e reinicie o serviço de DHCP:
# service isc-dhcp-server restart
O nome do serviço é
isc-dhcp-server e o arquivo para configuração do mesmo, é o
dhcpd.conf.
Faça uma cópia do arquivo original:
# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.old
Agora, vamos limpar o arquivo atual, já que este contém um modelo para utilização do serviço e vamos digitar as nossas configurações:
# echo " " > /etc/dhcp/dhcpd.conf
Vamos começar a editar o arquivo:
# vi /etc/dhcp/dhcpd.conf
Insira as configurações, abaixo de acordo com a sua realidade:
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.100 10.10.10.115;
option routers 10.10.10.254;
option domain-name-servers 8.8.8.8,208.67.220.220;
option broadcast-address 10.10.10.255;
}
Abaixo, explico alguns detalhes das configurações anteriores:
- default-lease-time 600 :: servidores DHCP cedem endereços sob pedido por um tempo pré-determinado. O padrão nesse exemplo, é ceder o endereço IP por 600 segundos, ou 10 minutos.
- max-lease-time 7200 :: caso o cliente solicite um tempo maior, o tempo máximo permitido será de 7.200 segundos (2 horas).
- option subnet-mask :: essa opção define a máscara de sub-rede a ser fornecida aos clientes.
- option broadcast-address :: essa opção define o endereço de envio para requisições de broadcast.
- option routers :: o cliente, além do número IP, recebe também a informação do número do host que é o gateway de sua rede.
- option domain-name-servers :: essa opção lista os servidores de nomes (DNS) a serem utilizados para resolução de nomes.
Configurando um IP fixo
Em algumas situações, pode ser necessário que uma máquina ou dispositivo na rede, tenha um IP fixo como uma impressora compartilhada em um computador, um notebook de um gerente, entre outros.
Para resolver essa questão, basta inserir as informações abaixo, após a última chave ("}"):
host gerente {
hardware ethernet 00:80:C7:D2:E8:D3;
fixed-address 10.10.10.20;
}
O arquivo final, ficaria assim:
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.100 10.10.10.115;
option routers 10.10.10.254;
option domain-name-servers 8.8.8.8,208.67.220.220;
option broadcast-address 10.10.10.255;
}
host gerente {
hardware ethernet 00:80:C7:D2:E8:D3;
fixed-address 10.10.10.20;
}
Obs.: o IP da máquina do gerente, foi posto fora do range padrão para diferenciar dos demais. Apenas como forma de organização.
Feche o arquivo e reinicie o serviço de DHCP:
# service isc-dhcp-server restart
Para visualizar os IPs que já foram entregues às estações de trabalho:
# cat /var/lib/dhcp/dhcpd.leases
Pronto! Finalizada mais uma etapa.
Neste momento, os clientes já estão recebendo IP automaticamente e navegando na Internet sem problemas.