A correria é
tanta que se o dia tivesse 30 horas ainda seria pouco.
Atuando ativamente
num imenso projeto de migração / consolidação de domínios da maior instituição
financeira do país, estudando algumas madrugadas à dentro para o exame 70-744 (Securing Windows Server 2016), gravando um curso bem legal sobre ISO 27000 que em breve
será disponibilizado no Udemy, elaborando materiais bem interessantes para
aulas em 2019, iniciando pesquisas para ingressar num programa de mestrado profissional, me esforçando para ser um bom filho, um bom namorado, um bom ser humano, enfim .... caminhando e cantando e seguindo a canção.
Ah ... e cumprindo com meu propósito
de escrever ao menos um artigo por mês para o blog MCSE Brasil.
Inicialmente
eu tinha programado tratar sobre outro tema no artigo desse mês. Está bem
encaminhado e eis que de repente, sou empurrado pela força das circunstâncias a
direções alheias à minha vontade e, esgotadas as forças para lutar
contra, postergo o tema que aqui seria tratado. Mas é por uma excelente causa,
totalmente aderente ao propósito dessas publicações.
Uma
dúvida levantada por um dos dois leitores assíduos de minhas publicações fez
com que tudo fosse prazerosamente alterado, e atendendo à uma espécie de
chamamento, tentarei explorar alguma vocação que talvez tenha – ou acredite ter
- para tentar esclarecer-lhe.
Obedeço
cegamente ao que acredito ser minha vocação e de quebra, cumpro com o objetivo
primário desses artigos: Ajudar profissionais de TI.
Não
importa quantos: Um, dois, dez, cem ou mil. O prazer em fazer isso é exatamente
o mesmo.
Esse
leitor, participando de um processo seletivo numa empresa cuja oportunidade
ofertada representava uma melhora significativa em sua carreira (e quem sabe,
vida), se deparou com a seguinte questão (ou ao menos semelhante) em prova
teórica: “Comente sobre o protocolo DHCP. ”
Assim.
Nua e crua.
E embora ele trabalhe com infraestrutura de TI há algum tempo, e conheça exatamente o que tal serviço faz, muito pouco ele pôde discorrer sobre o tema por desconhecer aspectos teóricos
que enriqueceriam sua resposta.
Então
vamos lá ... nesse mês falarei um pouquinho sobre DHCP.
Começarei pelo
básico: O que é DHCP?
Hoje em dia, todos os computadores de uma rede (privada ou
pública) devem possuir endereços IP únicos. Assim como o RG é único e serve para
identificar cada cidadão brasileiro, esse endereço deve ser único e identifica
cada dispositivo da rede.
Em redes pequenas, controlar esses endereços manualmente talvez (pra
mim, todo controle manual é difícil e impreciso) seja fácil. O problema começa
quando há a necessidade de controlar esses endereços em redes maiores.
Nesse contexto, o protocolo DHCP (Dynamic Host Configuration Protocol)
desempenha um papel importante, pois é o responsável por distribuir, controlar
e renovar automaticamente endereços IP em uma rede.
Sem utilizar um servidor DHCP, toda santa vez que se adicionar um novo
dispositivo (desktop, notebooks, impressoras, scanners, tablets, celulares, etc,
etc, e etc) à rede, o endereço IP deverá ser configurado manualmente. Isso
inclui a configuração de mascara de sub-rede, o gateway padrão que permitirá acesso à
outras redes, bem como os servidores DNS utilizados para resolução de nomes.
Como funciona? Uma maneira simples de explicar...
Através de um
servidor DHCP, endereços IP e demais informações de rede são distribuídas dinamicamente.
Esses endereços são utilizados pelos clientes por tempo determinado, que pode
ser de alguns minutos, horas, dias, meses, anos ou até mesmo indeterminado.
Esse período recebe o nome de concessão.
Em ambientes Microsoft, o tempo de concessão padrão é de oito dias para
clientes com fio e três dias para clientes sem fio.
O pool de endereços IP que serão distribuídos pelo servidor DHCP é
definido e configurado pelo administrador da rede.
Quando um dispositivo cliente solicita um endereço IP, o servidor DHCP
oferecerá o próximo endereço IP disponível do pool.
Em casos específicos, onde é mandatório que um dispositivo possua sempre
o mesmo endereço IP (para criação de regras de firewall, por exemplo) é
possível reservar endereços IP específicos para tais clientes utilizando o MAC
Address da interface de rede do cliente.
Como o DHCP utiliza transmissões IP para iniciar comunicações, os
servidores DHCP estão limitados à comunicação em sua sub-rede IP. Por isso é comum
a utilização de um servidor DHCP para cada sub-rede IP.
Por padrão, todos os sistemas operacionais da Microsoft são configurados
para obter um endereço IP automaticamente.
Um computador configurado manualmente com um endereço IP, possuirá um
endereço IP estático. Nesse caso, ele deixa de ser um cliente DHCP e não se
comunica com um servidor DHCP para obtenção de endereços IP distribuídos dinamicamente.
Servidores e impressoras são exemplos de clientes de rede que
normalmente possuem endereços IP estáticos.
Como funciona? Aprofundando-se no tema ...
O processo para concessão de um endereço IP à um cliente DHCP é dividido
em quatro etapas.
Compreender como cada etapa desse processo funciona é fundamental para a
resolução de problemas em casos onde os clientes não conseguem obter um
endereço IP.
Etapa
01- Nessa etapa, o cliente DHCP transmite através
de broadcast um pacote denominado DHCPDISCOVER
direcionado a cada computador da sub-rede ao qual ele pertence. Os únicos
computadores capazes de responder a essa solicitação, são os servidores DHCP ou
computadores / roteadores que executam um agente de retransmissão DHCP (DHCP Relay Agent). Nesse último caso, o
DHCP Relay Agent encaminhará a mensagem ao servidor DHCP para o qual você o configura
para retransmitir solicitações.
Etapa
02- Localizado
um servidor DHCP, este responderá com um pacote denominado DHCPOFFER, que contém uma oferta de endereço IP para o cliente. O cliente poderá receber pacotes do tipo DHCPOFFER de vários servidores DHCP. Se isso ocorrer, o cliente normalmente escolherá o pacote emitido pelo servidor que respondeu mais rápido ao pacote DHCPDISCOVER por ele enviado. Normalmente esse é o servidor DHCP mais próximo dele.
Etapa
03- Em seguida, o cliente responderá com um pacote denominado DHCPREQUEST que contém a identificação
do servidor cuja oferta será aceita pelo cliente. Isso informa aos demais servidores
DHCP que receberam a comunicação inicial qual DHCPOFFER o cliente escolheu
aceitar.
Etapa
04- O
servidor cuja oferta de endereço IP tenha sido escolhida pelo cliente armazenará as informações do endereço IP ofertado ao cliente no banco de dados DHCP, armazenado
por padrão em “%SystemRoot%\System32\DHCP”
e responderá com uma mensagem do tipo DHCPACK.
Se o servidor DHCP não puder fornecer o endereço inicialmente ofertado
através do pacote DHCPOFFER, ele enviará uma mensagem do tipo DHCPNAK.
A imagem abaixo ilustra o processo acima descrito.
APIPA
Normalmente, a comunicação
acima descrita ocorre quando um computador utilizando o sistema operacional
Windows é iniciado.
Se, por razões diversas, o
cliente Windows não conseguir localizar um servidor DHCP, ele poderá atribuir a
si próprio um endereço IP de um intervalo reservado pela Microsoft. Isso é
conhecido como APIPA, abreviação para Automatic Private IP Addressing.
O intervalo de endereços IP do
APIPA é de 169.254.0.1 a 169.254.255.254.
Isso em tese permitirá que o
computador se comunique com outros computadores que também não conseguiram
obter um endereço IP dinamicamente.
Na configuração de um endereço
APIPA, uma máscara de sub-rede de classe B padrão (255.255.0.0) também é
configurada, entretanto nenhum gateway padrão será atribuído.
Utilizando APIPA, o cliente tentará localizar um servidor DHCP a cada 5 minutos, até que um
servidor DHCP se torne acessível e possa lhe fornecer um endereço IP que lhe permita
a comunicação com os demais dispositivos da rede.
Como ocorre a renovação do endereço IP?
Quando a concessão do DHCP
atinge 50% do tempo de concessão, o cliente iniciará em segundo plano o
processo de renovação da concessão.
Para tentar renovar a
concessão de endereço IP, o cliente enviará em unicast um pacote do tipo DHCPREQUEST. Uma vez que esse pacote
tenha sido recebido pelo servidor que forneceu o endereço IP, ele enviará uma
mensagem DHCPACK de volta ao
cliente.
Esta mensagem contém novos
parâmetros que possam ter sido alterados desde a criação da concessão original.
Importante observar que esses
pacotes não são transmitidos para toda a rede, pois nesse momento o cliente já
possui um endereço IP que pode ser utilizado para comunicações unicast.
Se o cliente DHCP não conseguir se comunicar com o servidor DHCP, ele
aguardará até que 87,5% do tempo de concessão transcorra e então enviará um pacote
do tipo DHCPREQUEST (broadcast) para
tentar obter uma renovação. Nesse caso, a solicitação é enviada para todos os
servidores DHCP, e não apenas ao servidor que forneceu a concessão
original.
No entanto, esta solicitação é para uma renovação, não uma nova
concessão.
Se o processo de renovação for malsucedida o computador cliente tentará
obter uma configuração IP de qualquer servidor DHCP.
Para melhor entendimento, o processo de renovação está simplificado na
imagem abaixo.
Autorização do servidor DHCP na rede
Por ser baseado em difusões de IP, um servidor DHCP desconhecido pode
fornecer configurações inválidas aos clientes e representar uma grave falha de
segurança. Importante considerar que a comunicação DHCP geralmente ocorre antes do
processo de autenticação no computador.
No Windows Server, isso é evitado autorizando o funcionamento do servidor
DHCP no Active Directory antes que ele possa suportar clientes DHCP.
Para isso, clique com o botão direito do mouse sob o servidor DHCP e selecione a opção 'Authorize", conforme imagem abaixo.
Para isso, clique com o botão direito do mouse sob o servidor DHCP e selecione a opção 'Authorize", conforme imagem abaixo.
Considerações sobre servidores DHCP independentes
É possível a existência de servidor Windows que não faça parte de um domínio do Active Directory e que possua a função de servidor DHCP instalada e configurada. Esse servidor é conhecido como DHCP autônomo ou independente.
Se o servidor DHCP independente detectar um servidor DHCP autorizado em um domínio, ele não fornecerá endereços IP e será desligado automaticamente.
Detecção de Conflitos
Embora seja um
comportamento atípico, pode ocorrer de um servidor DHCP atribuir,
ou ao menos tentar, um mesmo endereço para dois dispositivos distintos.
Se isso ocorrer, gerará
indisponibilidade em ao menos um dos dispositivos com endereço IP duplicado.
Para evitar isso,
é possível configurar o servidor DHCP para “testar” o endereço antes de oferta-lo
a algum cliente. Esse teste - que não é configurado por padrão -, refere-se a
uma tentativa de “PING” que o serviço DHCP executa para cada endereço antes de alocar
o endereço IP a um cliente.
Importante
salientar que para cada tentativa adicional de detecção de conflito, são adicionados segundos adicionais ao tempo necessário
para negociar concessões para clientes DHCP.
Assim, é
recomendado que se utilize no máximo uma ou duas tentativas de detecção de
conflitos. Dessa forma, obtém-se os benefícios desejados desse recurso sem
diminuir de forma significativa o desempenho do servidor DHCP no processo de
atribuição de endereços.
Abaixo, imagem que ilustra onde tal configuração deve ser efetuada.
Se um conflito
for detectado, o servidor DHCP criará uma concessão temporária denominada
"BAD ADDRESS". Essa
concessão será configurada com um período de locação de uma (1) hora e no final
do período ela será automaticamente removida do escopo.
Como
administrador de redes, caso encontre uma concessão desse tipo ocorrendo frequentemente
com o mesmo endereço IP, localize o nó da rede e verifique se ele não está
configurado com um endereço IP estático que faça parte de um escopo DHCP.
Bom ... por hoje
é só.
Espero que de
alguma forma essas linhas possam contribuir para a disseminação do conhecimento
e enriquecimento técnico da comunidade de TI.
