Linux DHCP Server


DHCP Server

Para que computadores troquem informações de aplicação (HTTP, FTP, SSH, HTTPS, Email - Acessar a internet) é necessário que eles sejam configurados com um endereço de IP (internet protocol).

Normalmente em uma rede o administrador não atribui endereços ips em cada computador de maneira estática, isto é: Configurar computador por computador para ter um endereço IPv4 Fixo (ou v6, mas para esse exemplo será o v4). O DHCP (Dynamic Host Configuration Protocol) tem a função de atribuir endereço IP para quem pedir (ou seja, quem nao tem IP)

O servidor DHCP que será usado nesta página será o isc-dhcp-server (dhcpd)

Sabendo que: O Linux irá atuar como servidor DHCP para a rede local, a interface conectada com a mesma deve ser escolhida como interface que irá agir como DHCP server, ou seja essa interface irá estar aptada a receber broadcast na porta 67 e negociar com IP irá atrabuir a aquele dispositivo (computador, celular, televisão, telefoneIP). Para esse exemplo será utilizada a interface eth2

Preparativos

Antes de configurar o DHCP server é necessário definir 3 coisas:

  1. Qual o IP da sua rede local

    1. Para o exemplo, será: IP: 192.168.0 Máscara 255.255.255.0
  2. Qual será o range de IP’s que o servidor irá atribuir

    1. Para o exemplo: Os dispositivos irão receber ips entre o interface 192.168.0.20 até 192.168.0.40
  3. Qual será o DNS Server e o Gateway da rede

    1. Gateway e DNS server será o próprio Linux

Mãos a Obra

Após instalar o isc-dhcp-server devemos editar alguns arquivos com o objetivo de fazer as coisas funcionarem.

Interface

Primeiramente vamos por endereço estático a nossa interface, precisamos alterar o arquivo /etc/network/interfaces – Na verdade não precisa alterar o arquivo, porém se o seu objetivo é que quando o servidor reinicie você ele mantenha o IP estático, siga o procedimento abaixo:

Adicione as seguintes linhas ao final do arquivo

#config para eth2
auto eth2
iface eth2 inet static
address 192.168.0.1   #ip da interface
netmask 255.255.255.0 #mascara de rede
dns-server 127.0.0.1  #servidor dns, nesse caso, o proprio servidor
Configuração do DHCP

Para escolher qual interface irá aceitar pacotes de solicitação DHCP, edite o arquivo: /etc/default/isc-dhcp-server

Basta adicionar a interface na única linha não comentada, sua alteração deve ficar assim:

INTERFACES="eth2"

Agora, a parte mais “chata”, precisamos configurar o pool para que o servidor consiga endereçar os dispositivos que pedirem IP para ele, para isso devemos alterar o arquivo /etc/dhcp/dhcpd.conf, porem antes de mudar esse arquivo, por que não fazer um backup?

Digite o comando abaixo para fazer um backup do arquivo de configuração do ISC

cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.back

Agora, podemos editar, na verdade para ficar mais fácil, vamos apagar o arquivo e escrever um do 0, assim fica mais fácil de entender o que estamos adicionando, para apagar digite

rm /etc/dhcp/dhcpd.conf

Para criar o mesmo arquivo, porém vazio, digite

touch /etc/dhcp/dhcpd.conf

Hora de escrever no arquivo de configuração de DHCP com os comandos abaixo:

authoritative; #unico server DHCP

default-lease-time 600;
max-lease-time 7200;

option domain-name "ragazzid.com.br"; #mude para seu dominio
option domain-name-servers linux.ragazzid.com.br; #mude para o nome do seu servidor

#definindo nosso pool
subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.20 192.168.0.40;
    option domain-name-servers 192.168.0.1; #servidor DNS
    option domain-name linux.ragazzid.com.br;
    option routers 192.168.0.1; #gateway padrao
    option broadcast-address 192.168.0.255; 
}

Salve o arquivo e inicialize o serviço! Se estiver no debian, digite:

service isc-server-dhcp start