EndereçamentoDinâmicoIPv4

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

PARTE 1 - Configuração dinâmica de endereços IPv4: serviço DHCP

Não é nada prático ter que configurar manualmente as informações de rede em que cada equipamento ou computador. Seria muito mais simples se a configuração de rede pudesse ser obtida automaticamente, uma vez que o computador esteja conectado à rede. Esse tipo de serviço é amplamente utilizado, o que torna o uso de redes IPv4 muito mais simples para os usuários em geral.

Serviço DHCP

Um host pode obter suas informações de rede dinamicamente por meio do protocolo DHCP (Dynamic Host Configuration Protocol). Desta forma, não há necessidade de o usuário saber as informações de rede necessárias para configurar corretamente seu equipamento. Isso torna possível também centralizar e automatizar a distribuição de endereços de rede para hosts. Se alguma das informações precisar ser modificada (ex: o roteador default), basta alterá-las no serviço DHCP para que toda a rede seja eventualmente reconfigurada.

Configuração dinâmica de endereços IPv4: protocolo DHCP

O serviço DHCP depende de um protocolo, chamado também de DHCP (Dynamic Host Configuration Protocol). Ele serve para obtenção automática de configuração de rede, usado por computadores que acessam fisicamente uma rede. Esses computadores são tipicamente máquinas de usuários, que podem usar a rede esporadicamente (ex: usuários com seus laptops, com acesso via rede cabeada ou sem-fio), ou mesmo computadores fixos da rede. O principal objetivo do DHCP é fornecer um endereço IP, a máscara de rede, o endereço IP do roteador default e um ou mais endereços de servidores DNS. Assim, um novo computador que acesse a rede pode obter essa configuração sem a intervenção do usuário.

Para esse serviço pode haver um ou mais servidores DHCP. Um computador que precise obter sua configuração de rede envia mensagens DHCPDISCOVER em broadcast para o port UDP 67. Um servidor DHCP, ao receber tais mensagens, responde com uma mensagem DHCPOFFER também em broadcast, contendo uma configuração de rede ofertada. O computador então envia novamente em broadcast uma mensagem DHCPREQUEST, requisitando o endereço IP ofertado pelo servidor. Finalmente, o servidor responde com uma mensagem DHCPACK, completando a configuração do computador cliente. Como a configuração tem um tempo de validade (chamado de lease time), o cliente deve periodicamente renová-la junto ao servidor DHCP, para poder continuar usando-a. O diagrama abaixo mostra simplificadamente esse procedimento.

Fluxo do DHCP

Para que o serviço DHCP esteja disponível, deve existir algum equipamento ou computador na rede que tenha o papel de servidor DHCP. Esse equipamento monitora a rede, de forma a detectar as mensagens DHCPDISCOVER e respondê-las, informando uma configuração de rede ao dispositivo cliente.

O servidor DHCP identifica cada cliente pelo seu endereço MAC. Assim, o DHCP está fortemente relacionado a redes locais IEEE 802.3 (Ethernet) e IEEE 802.11 (WiFi).

O endereço escolhido para cada cliente pode ser escolhido forma dinâmica ou estática. Qual delas será usada depende de como foi configurado o serviço DHCP em seu servidor. Equipamentos mais simples, como roteadores para uso residencial (ex: TP-Link Archer C7) oferecem apenas o modo dinâmico. veja as diferenças entre esses modos de operação:

  1. Dinâmico: esta é a forma usual, em que o servidor DHCP faz a escolha a partir de um conjunto de endereços disponíveis, também chamado de faixa ou pool de endereços.
  2. Estático: o servidor DHCP fornece sempre o mesmo endereço IP para um determinado cliente, cujo endereço MAC foi previamente cadastrado e a ele foi associado esse endereço IP.

PARTE 2 - Aprofundando o serviço, protocolo e configurações do DHCP

Vamos resgatar como realizar a configuração mais simplificada de um serviço de DHCP em uma subrede.

Para isso podemos usar como exemplo o roteador sem-fio TP-Link WDR 4300 que tem mais ou menos essa aparência da sua interface web para gerenciamento do equipamento:

Print da Interface Web da TPlink


Vamos acessar ao emulador veja o emulador do Archer C7). e verificar como é simples realizar a configuração desse serviço como servidor. Acompanhe o professor nessa configuração.


Configuração de DHCP no Packet Tracer

Da mesma forma, podemos realizar essa configuração em roteadores simulados no Packet Tracer. Nesse caso não é possível encontrar na "interface WEB" as opções de configuração tal como o emulador acima. Configurações como essa exigem ser realizadas por comandos CLI. Segue uma dica para oferecer o serviço pela interface G0/0 (GigabitEthernet0/0):


>enable
#configure terminal

(config)#interface GigabitEthernet0/0  // Substitua por interface se desejar
(config-if)#ip address 192.168.1.1 255.255.255.0  // Configure o endereço IP e a máscara
(config-if)#exit
(config)#ip dhcp pool minha-pool  // Nome da pool DHCP escolhido por você
(dhcp-config)#network 192.168.1.0 255.255.255.0  // Faixa de endereços para a pool
(dhcp-config)#default-router 192.168.1.1  // Gateway padrão
(dhcp-config)#dns-server 8.8.8.8 // Servidor DNS
(dhcp-config)#exit
(config)#exit
#wr

É possível adicionar endereços IP fixos para determinados PCs, use o comando host:

(config)#ip dhcp pool minha-pool // depois de aplicar "configure terminal"
(dhcp-config)#host pc1
(dhcp-config)#hardware-address aabb.ccdd.eeff  // Endereço MAC do PC
(dhcp-config)#fixed-address 192.168.1.10  // Endereço IP fixo para o PC
(dhcp-config)#ip dhcp server minha-pool
((dhcp-config)#exit
(config)#exit
#wr

Você pode excluir alguns endereços IPv4 de serem cedidos via DHCP, dessa forma:

R1>enable
R1#configure terminal
R1(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.10
R1(config)# end
R1#wr

Nesse exemplo, os endereços entre 192.168.10.1 e 192.168.10.10 não serão cedidos a clientes DHCP.

</syntaxhighlight>

Pode-se reservar por exemplo, uma faixa de 50 IPs para clientes DHCP , configurando uma pool DHCP com uma faixa maior do que a quantidade de dispositivos esperados. Dessa forma, você garantirá que sempre haja endereços disponíveis para os dispositivos, enquanto ainda pode configurar endereços IP fixos para aqueles que você deseja. Basta adicionar:

>enable
#configure terminal

(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.50  // Exclui a faixa reservada

Nesse exemplo, estamos configurando uma pool DHCP com a faixa completa de IPs de 192.168.1.1 a 192.168.1.254. Em seguida, usamos o comando ip dhcp excluded-address para excluir a faixa de 192.168.1.1 a 192.168.1.50, garantindo que esses endereços não sejam atribuídos dinamicamente pelo servidor DHCP. Dessa forma, você reserva uma faixa de 50 IPs para configuração manual ou para atribuir a dispositivos específicos usando a configuração de endereço IP fixo.

Também é possível configurar que exatamente 50 endereços IP sejam distribuídos automaticamente para a rede. Para fazer isso, você pode configurar uma pool DHCP com uma faixa de 50 endereços IP e excluir o restante da faixa.Exemplo:

>enable
#configure terminal
 
(config-dhcp)#ip address range 192.168.1.2 192.168.1.51  // Faixa de endereços a serem distribuídos (50 endereços)

Configuração de DHCP em sistemas Linux

Antes de mais nada, atualize os pacotes de seu PC e instale o conjunto de serviços e ferramentas netplan além de um editor de texto de sua preferência como o Nano. Para isso faça:

sudo apt update
sudo apt upgrade
sudo apt install net-tools        // instalação dos pacotes para gestão e manutenção da rede com o ifconfig
sudo apt install netplan          // instalação dos pacotes atualizados para serviços e configuração de rede
sudo apt install isc-dhcp-client  // instalação dos pacotes básicos para o serviço DHCP.
sudo apt install isc-dhcp-server  // se no mesmo PC vc deseja a instalação dos pacotes básicos para o serviço server.

Configurando a Interface do PC como CLIENTE DHCP

No arquivo de configuração, adicione ou modifique a seção que se parece com esta, substituindo enp0s3 por outro nome da interface de rede. O nome de interface enp0s3 é usual em máquinas virtuais (VMs) do VitualBox:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: true

Reforçando que você deve especificar o nome correto de interface. Outro ponto importante é observar os espaços corretos após os dois pontos de cada opção (em alguns casos vc vai observar que opção fica em vermelho), e a identação ajuda a manter um padrão melhor de organização do arquivo. Salve e feche o arquivo: No caso do editor de texto Nano, pressione Ctrl + O para salvar as alterações e Ctrl + X para sair.

Aplique as Configurações: Execute o seguinte comando para aplicar as alterações de configuração:

sudo netplan apply

Não é caso geral, mas se há algum servidor DHCP na sua rede, e o seu computador cliente, com essa configuração, não receber um número IPv4, talvez seja necessário reiniciar seu PC.

Isso configurará a interface especificada para obter as configurações de rede automaticamente por meio do servidor DHCP. As etapas exatas podem variar dependendo da versão do Ubuntu e do arquivo de configuração específico do Netplan que você está usando.

Lembre-se de que, para PCs que você deseja configurar com IPs fixos ou para adicionar configurações personalizadas, você precisará ajustar a configuração do Netplan de acordo. Certifique-se de fazer essas alterações de acordo com suas necessidades específicas.

Para verificar de modo verbose a evolução do protocolo DHCP, use:

sudo dhclient -v enp0s3

Observe que, no exemplo acima, 'enp0s3' é a identificação da interface de rede substitua o comando pela sua interface identificada (caso não saiba o identificador, basta digitar ifconfig no terminal). Pronto! Seu PC (terminal cliente) já estará apto a trocar mensagens do protocolo DHCP para poder receber a configuração automática de endereço e configuração da rede.

Configurar o PC como SERVIDOR DHCP

Vamos agora configurar um ÚNICO PC da (sub)rede para servir o endereçamento automático através do DHCP. Primeiramente, para configurar um servidor DHCP no Ubuntu e garantir que os cliente habilitados a este serviço possam receber o endereçamento automático faça:

sudo apt update
sudo apt upgrade
sudo apt install netplan          // instalação dos pacotes atualizados para serviços e configuração de rede
sudo apt install isc-dhcp-server  // instalação dos pacotes básicos para o serviço (se o cliente não foi instalado)

Configurar a interface de rede DHCP

Abra o arquivo de configuração da interface de rede:

sudo nano /etc/netplan/50-cloud-init.yaml // ou /etc/netplan/01-netcfg.yaml ou outro equivalente...

Adicione ou modifique a seção "dhcp4" para que ela pareça com isso (substitua o nome da interface de rede conforme necessário):

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      addresses: [192.168.1.1/24]  # Endereço IP do servidor DHCP

Depois de salvar o arquivo, aplique as alterações:

sudo netplan apply

Isso desativa o DHCP cliente para essa interface e configura o endereço IP dela como servidor do serviço.

Outras opções para a configuração do serviço DHCP

As informações como faixa de IP, máscaras de sub-rede, gateways, servidores DNS, tempos de renovação e liberação do IP são configuradas no arquivo de configuração do servidor DHCP. No Ubuntu, o arquivo de configuração padrão é /etc/dhcp/dhcpd.conf.

Aqui está um exemplo de como se pode configurar essas informações no arquivo dhcpd.conf:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option subnet-mask 255.255.255.0;
    option routers 192.168.1.1;  # Endereço IP do gateway
    option domain-name-servers 8.8.8.8, 8.8.4.4;  # Servidores DNS do Google
    default-lease-time 600;  # Tempo de concessão do IP em segundos
    max-lease-time 7200;     # Tempo máximo de concessão do IP em segundos
    # Outras configurações e opções podem ser adicionadas aqui
}

Neste exemplo:

  • subnet define a sub-rede na qual as configurações serão aplicadas.
  • range define a faixa de endereços IP que o servidor DHCP pode atribuir aos clientes.
  • option subnet-mask define a máscara de sub-rede que será fornecida aos clientes.
  • option routers define o endereço IP do gateway (roteador) que os clientes devem usar.
  • option domain-name-servers define os servidores DNS que os clientes devem usar.
  • default-lease-time define o tempo padrão de concessão do IP (em segundos).
  • max-lease-time define o tempo máximo de concessão do IP (em segundos).

Após fazer essas configurações, reinicie o serviço DHCP para que as alterações entrem em vigor:

sudo systemctl restart isc-dhcp-server

Edite o arquivo de configuração do servidor DHCP com o seguinte comando:

sudo gedit /etc/dhcp/dhcpd.conf

Dentro do arquivo de configuração, você pode adicionar as reservas de IP. Para cada reserva, adicione as linhas no formato:

host NomeDoCliente {
    hardware ethernet endereço_mac;
    fixed-address endereço_ip;
}

Substitua "NomeDoCliente" pelo nome do cliente ou qualquer identificador, "endereço_mac" pelo endereço MAC do cliente (você pode descobrir com o comando ifconfig ou ip addr show), e "endereço_ip" pelo endereço IP que você deseja reservar para esse cliente.

Exemplo:

host MeuPC {
    hardware ethernet 00:11:22:33:44:55;
    fixed-address 192.168.1.10;
}

Depois de configurar as reservas de IP e a interface de rede, reinicie os serviços DHCP e a interface de rede:

sudo systemctl restart isc-dhcp-server
sudo netplan apply

Agora, o servidor DHCP estará configurado para atribuir endereços IP às máquinas clientes, e as reservas garantirão que os clientes especificados obtenham sempre o mesmo endereço IP. Certifique-se de que as informações de configuração correspondam à sua rede e requisitos específicos.

Outras opções de configuração para pacotes Netplan

O arquivo dhcpd.conf permite configurar várias opções e parâmetros para personalizar a atribuição de endereços IP e a configuração da rede para os clientes DHCP. Aqui estão algumas outras configurações e opções que você pode adicionar:

Opções de Domínio e Nome
  • option domain-name "dominio.local";: Define o nome de domínio para a rede.
  • option domain-name-servers serv1.example.com, serv2.example.com;: Define os servidores DNS a serem usados pelos clientes.
Opções de Tempo
  • default-lease-time tempo;: Define o tempo de concessão padrão do endereço IP.
  • max-lease-time tempo;: Define o tempo máximo de concessão do endereço IP.
Opções de Boot e PXE (Preboot Execution Environment)
  • next-server endereco_ip;: Define o endereço IP do servidor TFTP para clientes PXE.
  • filename "nome_do_arquivo";: Define o nome do arquivo de inicialização usado por clientes PXE.
Opções de Filtro e Controle
  • deny unknown-clients;: Impede que clientes desconhecidos obtenham endereços IP.
  • allow members of "grupo";: Permite que somente membros de um determinado grupo obtenham endereços IP.
  • ignore client-updates;: Ignora as solicitações de atualização de configuração de clientes.
Opções de NTP (Network Time Protocol)
  • option ntp-servers serv1.example.com, serv2.example.com;: Define os servidores NTP a serem usados pelos clientes.
Opções de Logging
  • log-facility local7;: Define a facilidade de logging para mensagens DHCP.
Opções de Bootp
  • allow bootp;: Permite que o servidor DHCP atenda a solicitações BOOTP.
Opções de Endereço IP Reservado Estático
  • Já realizado anteriormente: host NomeDoCliente { hardware ethernet endereço_mac; fixed-address endereço_ip; }
Opções de Nomes de Host
  • option host-name "nome_do_cliente";: Define o nome de host para o cliente.

Essas são apenas algumas das muitas opções disponíveis para configuração no arquivo dhcpd.conf. Você pode consultar a documentação oficial do ISC DHCP Server para obter informações detalhadas sobre todas as opções e suas sintaxes: https://linux.die.net/man/5/dhcpd.conf

O Netplan é um utilitário de configuração de rede introduzido no Ubuntu para gerenciar interfaces de rede. Embora o Netplan não gerencie diretamente as configurações do servidor DHCP, ele pode ser usado para configurar a interface de rede em que o servidor DHCP está ouvindo.