DHCP

De Biblioteca Unix

Conteúdo

DHCP

Sobre

O DHCP, Dynamic Host Configuration Protocol, é um protocolo de serviço TCP/IP que oferece configuração dinâmica de terminais, com concessão de endereços IP de host e outros parâmetros de configuração para clientes de rede [1].

Debian Lenny 5.0/Ubuntu Server 10.04 LTS

Instalando os Pacotes necessários

O procedimento para os 2 sistemas é idêntico, a única diferença crucial é com relação a utilização do sudo antes dos comandos no Ubuntu Server 10.04 LTS. Vamos instalar os pacotes necessários:

# apt-get install dhcp3-server

ao instalar o pacote será criado o diretório /etc/dhcp3/ que contém o arquivo dhcpd.conf e o arquivo /etc/default/dhcp3-server que contém as interfaces que irão escutar o serviço de DHCP, vamos criar um ambiente simples que vai servir de modelo para nossa configuração:

LAN (IPs: 192.168.0.0/24)
DNS (IPs: 208.67.222.222 e 208.67.220.220)
Gateway (IP: 192.168.0.1)

temos então que nossa rede vai ser uma Classe C com subrede 192.168.0.0/24. Veja o arquivo abaixo contendo as configurações que atendem esta necessidade:

ddns-update-style none;
log-facility local7;

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.10 192.168.0.250;
  option domain-name "dominio.com.br";
  option domain-name-servers 208.67.222.222, 208.67.220.220;
  option routers 192.168.0.1;
  default-lease-time 600;
  max-lease-time 7200;
}

as configurações opcionais de servidor de DNS (domain-name-servers), poderiam estar dentro da definição da subnet caso mais de uma subnet fosse declarada e cada uma delas tivesse seu próprio DNS, no nosso caso era mais simples declará-los globalmente. O intervalo de IPs atribuídos para os clientes na rede varia de 192.168.0.10 até 192.168.0.250 e a máscara de rede deve ser declarada completamente e não em CIDR.

Antes de inicializar o serviço é preciso ter certeza que a placa de rede que está na nossa rede exemplo esteja declarada no arquivo default (/etc/default/dhcp3-server):

 INTERFACES="eth0"

pronto, agora basta iniciar o serviço:

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

o serviço vai passar a escutar a interface eth0 do servidor e publicar a subrede que criamos.

Vinculando um IP a um MAC Address

Para vincular um IP a um MAC de uma estação de trabalho ou impressora de rede, de forma que toda vez que este hosts pedir um IP na rede, seja atribuído sempre o mesmo IP, basta adicionar no dhcpd.conf a entrada abaixo com os dados certos:

host impressora_de_rede {
  hardware ethernet 08:00:07:26:c0:a5;
  fixed-address 192.168.0.5;
}

reinicie o serviço para que as alterações tenham efeito:

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

pronto.


FreeBSD 8.0

Instalando os Pacotes necessários

A nomelatura é um pouco diferente, pois não é somente dhcp ou dhcp-server, o FreeBSD inclui quem mantém o código do DHCP também no nome do pacote, vamos instalá-lo:

# pkg_add -r isc-dhcp31-server

serão adicionados um usuário chamado dhcpd e um grupo com o mesmo nome. O pacote compilado do FreeBSD tem várias formas de configuração, mas eles mesmos definem a padrão como paranoia mode, vamos seguir este. Primeiro vamos copiar o arquivo de configuração de exemplo para o local correto:

#  cp /usr/local/etc/dhcpd.conf.sample /usr/local/etc/dhcpd.conf

vamos criar um ambiente simples que vai servir de modelo para nossa configuração:

LAN (IPs: 192.168.0.0/24)
DNS (IPs: 208.67.222.222 e 208.67.220.220)
Gateway (IP: 192.168.0.1)

e editar nosso arquivo de configuração (/usr/local/etc/dhcpd.conf) desta forma:

default-lease-time 600;
max-lease-time 7200;
ddns-update-style ad-hoc;
log-facility local7;

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.10 192.168.0.250;
  option domain-name-servers 208.67.222.222, 208.67.220.220;
  option domain-name "dominio.com.br";
  option routers 192.168.0.1;
  default-lease-time 600;
  max-lease-time 7200;
}

note que todos os arquivos de configuração são parecidos entre os *nix que configuramos aqui, e de fato as configurações de um valem no outro pois usam versões compatíveis entre si.

Falta adicionar a entrada de inicialização do DHCP no /etc/rc.conf:

dhcpd_enable="YES"                          # dhcpd está habilitado?
dhcpd_flags="-q"                           
dhcpd_conf="/usr/local/etc/dhcpd.conf"      # arquivo de configuração
dhcpd_ifaces="le0"                          # interface(s) de rede
dhcpd_withumask="022"                       # máscara de criação de arquivos

agora basta iniciar o serviço:

# /usr/local/etc/rc.d/isc-dhcpd start

o serviço está ativo e rodando na interface desejada.

Vinculando um IP a um MAC Address

Para vincular um IP a um MAC de uma estação de trabalho ou impressora de rede, de forma que toda vez que este hosts pedir um IP na rede, seja atribuído sempre o mesmo IP, basta adicionar no dhcpd.conf a entrada abaixo com os dados certos:

host impressora_de_rede {
  hardware ethernet 08:00:07:26:c0:a5;
  fixed-address 192.168.0.5;
}

reinicie o serviço para que as alterações tenham efeito:

# /usr/local/etc/rc.d/isc-dhcpd restart

pronto.


CentOS/RedHat 5.5

Instalando os Pacotes necessários

Para instalar o serviço primeiro devemos instalar os pacotes necessários, usando o YUM instale o pacote dhcp:

# yum install dhcp

vai ser criado um arquivo vazio de configurações em /etc chamado dhcpd.conf, citando um arquivo de exemplo que vai estar localizado em /usr/share/doc/dhcp*/dhcpd.conf.sample, vamos copiar este arquivo em cima do arquivo original:

#cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf

sobrescreva o arquivo e agora vamos configurá-lo, vamos definir uma rede simples de exemplo:

LAN (IPs: 192.168.0.0/24)
DNS (IPs: 208.67.222.222 e 208.67.220.220)
Gateway (IP: 192.168.0.1)

dada esta rede as configurações sugeridas que atendem este perfil são:

ddns-update-style interim;
ignore client-updates; 

subnet 192.168.0.0 netmask 255.255.255.0 { 
       option routers                  192.168.0.1;
       option subnet-mask              255.255.255.0;
       option domain-name              "dominio.com.br";
       option domain-name-servers      208.67.222.222, 208.67.220.220;
       option time-offset              -18000; # Eastern Standard Time
       range dynamic-bootp 	      192.168.0.10 192.168.0.250;
       default-lease-time 	      21600;
       max-lease-time 		      43200;
       ##AQUI ENTRA A REGRA DE IP FIXADO##
}

a última coisa que falta é dizer qual interface vai ser utilizada para que os IPs sejam fornecidos, supondo que a interface seja a eth0, vamos editar as configurações (/etc/sysconfig/dhcpd) do serviço de DHCP e editar a linha adicionando a interface correspondente:

DHCPDARGS=eth0

pronto, agora podemos inicializar o serviço:

# service dhcpd start

Vinculando um IP a um MAC Address

Onde se lê: ##AQUI ENTRA A REGRA DE IP FIXADO## deve ser inserido o código abaixo:

       # se você quiser que sua impressora de rede tenha um IP Fixo
       host impressora_de_rede {
               hardware ethernet 12:34:56:78:AB:CD;
               fixed-address 207.175.42.254;
       }

note que a declaração aqui aparece dentro da subnet e nos derivados do Debian sugerimos adicionar depois, a regra vale da mesma forma que os DNSs globais ou locais, se você definir dentro da subnet a regra vai ser válida para esta subnet e se for fora, vai valer globalmente. É mais elegante adicionar dentro das subnets aquilo que for específico delas.


--Brivaldo 21h55min de 23 de maio de 2010 (UTC)

Ferramentas pessoais