Protocolo DHCP
DHCP é um acrônimo para Protocolo de Configuração Dinâmica de computador [Dinamic Host Configuration Protocol]. É um protocolo
cliente/servidor, que possibilita computadores clientes recebam
configurações TCP/IP dinamicamente.
Esta funcionalidade tem muita
importância em grandes redes, pois o controle das configurações
TCP/IP são feitas de forma centralizada e automática, liberando um tempo de serviço precioso para o administrador, da para pensar em configurar IPs manualmente numa rede de 1000 clientes.
O cliente quando iniciado, envia um pedido de configuração
(request) em broadcast e espera a resposta de um servidor e tão somente o servidor e capaz de ouvir a solicitação.E a resposta do servidor são as informações específicas propriamente ditas. O servidor escuta a porta 67 e transmite na porta 68.
dhcp configura automaticamente os ip de todas as interfaces que estiverem configuradas para receber o seu IP via DHCP.
A atribuição ded IPS pelo DHCP segue um ritual..
1º - dhcpdiscover --> pedido do cliente a toda rede, e somente o servidor ira reconhecer esta solicitação
2º - dhcpoffer --> O servidor envia uma oferta de Ip para a maquina solicitante.
3º - A maquina solicitante aceita a oferta de ip e envia o dhcprequest
4º - O servidor então envia o dhcpack, que configura o endereço do ip para a maquina.
Uma vez que o cliente, antes da inicialização, não possui endereço IP, como ele pode se comunicar com o servidor?
Na verdade, toda comunicação inicial entre o cliente e o servidor independe do protocolo IP, utilizando protocolo a nível de enlace para que um cliente e o servidor negocie os parâmetros de configuração necessários.
Esta negociação é realizada por mensagens transmitidas por difusão (broadcast] na sub-rede, sendo limitada a estações fisicamente conectadas na mesma rede.
Uma vez estabelecido esta negociação inicial, a comunicação pode ser baseada no protocolo IP. Para saber mais sobre este processo de negociação, consulte a RFC2131 disponibilizada no endereço http://ftp.rfc-editor.org/in-notes/rfc2131.txt.
o protocolo de enlace que o DHCP utiliza é baseado no BOOTP - acrônimo de BOOTstrap Protocol - que é um protocolo que permite que estações sem disco rígido inicializem-se pela rede, carregando e inicializando o sistema operacional pela própria rede, além de obter vários parâmetros essenciais para o funcionamento da estação na rede, como seu próprio endereço IP, através de um servidor BOOTP na rede.
Por isso, o protocolo DHCP é considerado como uma extensão do BOOTP, por ser apenas um subconjunto do complexo protocolo BOOTP.
O DHCP também é um protocolo essencial para provedores Internet, uma vez que permite que clientes obtenham dinamicamente seus parâmetros quando se conectam no provedor, via linha discada,
por exemplo.
Assim, toda vez que um cliente estabelece uma conexão com o servidor, geralmente um novo endereço IP é obtido. Se o DHCP não for utilizado, todo cliente deveria ser configurado estaticamente, cada um com um número IP exclusivo, o que seria inviável na prática. Para um provedor com 1000 clientes, por exemplo, deveria se ter disponível 1000 endereços IP's, o que seria impraticável levando se em conta a escassez dos endereços IP. Além disto, seria totalmente inviável a administração destes números IP's, com a entrada e saída de novos clientes.
Não existem muitas implementações de DHCP para Linux licenciados sob a GPL, talvez seja devido ao grande sucesso do DHCP do ISC (ISC DHCP)- Internet Software Consortium - http://www.isc.org - que é a implementação mais popular, disponível em quase todas as distribuições de Linux. Além deste software além de ser considerado muito bom, é totalmente disponibilizado sob a GPL. Outra boa alternativa de DHCP é o DHCP conjugado com BOOTP criado pela Universidade de Carnegie Mellon (CMU BOOTP/DHCP) mantido pela Universidade de Princeton, disponível no endereço: http://www.net.princeton.edu/software/dhcpd/. Neste documento iremos enfocar no ISC DHCP. Toda vez que citarmos DHCP estaremos referindo ao ISC DHCP, existem várias outras implementações do DHCP comerciais, geralmente implementadas por empresas donas de sistemas operacionais, como: Microsoft, Novell, Cisco, IBM, HP e Sun.
Instalando o DHCP
O DHCP está disponível através de pacotes RPM - arquivos binários que podem ser instalados através da ferramenta RPM - porém também é possível obter o código fonte do programa, compilar e instalar.Instalando o DHCP através de arquivos binários
Os pacotes RPMs disponibilizados são: dhcpcd (cliente) e dhcp (servidor), execute:
#rpm -ivh dhcp*
dhcp ###########################################################
dhcpcd ###########################################################O primeiro pacote é referente ao DHCP daemon servidor, baseado no ISC DHCP. Além de instalar o binário do daemon DHCP (dhcpd), também instala a documentação oficial e as páginas de manual. O segundo pacote é referente a um daemon cliente DHCP de autoria de Sergei Vizniuk.
%T% o pacote original via código-fonte do ISC DHCP fornece um cliente DHCP denominado dhclient, porém este não é disponibilizado no pacote RPM do Linux Conectiva. Isto é devido às limitações do cliente dhclient, que além de não ser implementado como daemon, também não tem as várias funcionalidades que o dhcpcd - DHCP Client Daemon, de Sergei Vizniuk - possui.
Instalando o DHCP através do código fonte
O protocolo DHCP geralmente é implementado através de um daemon cliente (dhclient ou dhcpcd) e um daemon servidor (dhcpd).%PASSO% O código-fonte está disponível no endereço www.isc.org ou via FTP anônimo em ftp://ftp.isc.org/isc/dhcp. Esta implementação engloba o servidor dhcpd, assim como o cliente dhclient. Faça download do arquivo que contém os fontes, descompacte-o utilizando o comando tar, em seguida compile-o e instale-o. Vejamos:
#cp dhcp-2.0pl5.tar.gz /usr/local/src
#cd /usr/local/src
#tar xvfz dhcp-2.0pl5.tar.gz
#cd dhcp-2.0pl5
#./configure
#make
#make installBasicamente este comando instala o daemon DHCP, em /usr/sbin/dhcpd; o cliente DHCP, em /usr/sbin/dhclient, porém este não é muito utilizado na prática; e as páginas de manual do comando. Veja também disponibilizado uma amostra de arquivo de instalação, disponível em server/dhcpd.conf.
Um cliente bastante utilizado é o dhcpcd, de autoria de Sergei Vizniuk. Seu código fonte é disponível em ftp://ftp.phystech.com/pub. Para maiores informações sobre a utilização deste cliente, acesse o endereço: http://www.scrounge.org/linux/dhcpcd.html.
A vantagem de compilar diretamente o código fonte é que esta maneira é genérica para qualquer distribuição, ou seja, a forma apresentada acima, desde que se tenha pré-instalado as bibliotecas padrões do linux, o compilador gcc e o utilitário de execução de scripts de compilação make, pode ser usada em todas distribuições. Para maiores informações, veja o README que acompanha o pacote para maiores detalhes.
Podemos instalar o dhcp pela ferramenta apt.
Existem dois pacotes entre os quais devemos escolher para instalar o nosso servidor: dhcpd e dhcp3-server nas versões atuais e o isc-dhcp-server.
lab152:~# apt-get install isc-dhcp-server
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
dhcp3-common
The following packages will be REMOVED:
dhcp
The following NEW packages will be installed:
dhcp3-common dhcp3-server
0 upgraded, 2 newly installed, 1 to remove and 384 not upgraded.
Need to get 684kB of archives.
After unpacking 1127kB of additional disk space will be used.
Do you want to continue? [Y/n]Anterior Proxima