Redes: Vamos conhecer melhor o serviço DHCP

27 Comentários

O DHCP, Dynamic Host Configuration Protocol, é um protocolo de serviço TCP/IP que distribui automaticamente configurações de rede aos terminais, que se liguem na rede.

Para além de um endereço de rede (IP), este servidor oferece também a máscara de rede, Default Gateway, servidor(es) de DNS, domínio a que as máquinas pertencem, etc.

dhcp_09


Em que situações se usa DHCP?

No mundo empresarial este serviço é extremamente importante, porque nem todos os utilizadores têm conhecimentos de informática avançados, para configurarem a ligação à rede (além disso torna-se mais cómodo).

Outro exemplo é quando um utilizador se liga a uma rede sem fios, por norma não necessita de configurar parâmetros adicionais (ex. IP, máscara, gateways, etc) na sua máquina pois estes são automaticamente obtidos a partir de um servidor de DHCP ou do próprio router que funciona com servidor de DHCP e disponibiliza esse conjunto de informações.

Eu posso criar e controlar um servidor de DHCP?

Sim. Instalar, configurar e administrar um servidor de DHCP é uma tarefa bastante simples. Um servidor também facilita a acção por parte do utilizador, uma vez que o seu computador é automaticamente configurado.

Para que preciso eu de um servidor de DHCP?

Bem, um servidor de DHCP pode ser usado em diversas situações e num cenário de rede que se justifique. Seguem alguns cenários típicos, onde as configurações de acesso à rede podem ser baseadas DHCP:

  • Uma rede em casa com vários computadores
  • Numa empresa, vários DHCPS para vários segmentos de rede
  • LAN Party’s
  • etc.

Há muitas aplicações que permitem criar um autêntico servidor de DHCP para uma rede. Por exemplo, os routers que normalmente possuímos em casa têm essa funcionalidade. Neste artigo vamos demonstrar como colocar facilmente um servidor de DHCP a correr numa máquina e a distribuir informações sobre as configurações de rede.

Funcionamento base do DHCP

O funcionamento deste protocolo é muito simples e tem quatro fases, que serão descritas abaixo:

  • DHCP Discover – O cliente liga-se à rede e envia um broadcast (enviado para todas as máquinas da rede) a pedir configurações de rede;
  • DHCP Offer – Um ou mais servidores enviam, em unicast (enviado apenas para o cliente), as suas propostas de configurações de rede;
  • DHCP Request – O cliente comunica, em broadcast, ao servidor que aceita uma oferta feita anteriormente;
  • DHCP Ack – Por fim o servidor confirma ao cliente a reserva do endereço de IP e informa o cliente por quanto tempo este é válido;

DHCP-process

Exemplo prático

No cenário usamis 2 máquinas virtuais, um servidor (Ubuntu Server 12.04) e outra que vai fazer pedidos de DHCP (Linux Mint).

Antes de começar este tutorial, é extremamente importante que atribua um IP fixo no servidor, bastando para isso alterar o ficheiro /etc/network/interfaces – no nosso caso foi atribuído o endereço 10.10.10.1/255.255.255.0.

O primeiro passo a executar é atualizar o repositório de pacotes:

$ sudo apt-get update

De seguida vamos fazer a instalação do servidor de DHCP

$ sudo apt-get install isc-dhcp-server

Depois de instalado o software, é necessário definir o interface de rede onde o servidor vais estar à escuta. Para isso basta editar o ficheiro /etc/default/isc-server-dhcp e colocar a interface que vai estar a escuta, no nosso caso é a “eth1”.

dhcp_03

Neste momento estamos prontos a configurar o nosso servidor de DHCP. Vamos abrir o ficheiro de configuração /etc/dhcp/dhcpd.conf com um editor de texto (vim, por exemplo) e alterar os parâmetros que necessitamos.

No caso prático demonstrado foi criada uma pool de IP’s entre o IP 10.10.10.10 e o 10.10.10.253 e foram transmitidos vários parâmetros aos utilizadores, tais como, o gateway, os servidores de DNS, o domínio a que pertencem e também o tempo de aluguer dos endereços.

dhcp_05

É possível reservar endereços de IP para determinados MAC’s, mas é importante que estes endereços estejam fora da nossa pool de DHCP, porque se a pool já estiver quase cheia os endereços que deveriam ser reservados, são atribuídos a outras máquinas.

No ficheiro que editamos anteriormente, vamos colocar o MAC address da máquina e o IP a reservar.

dhcp_06

Com a alteração feita, reservamos o IP 10.10.10.2, para a máquina com o MAC 00:0C:29:1D:36:79.

No fim de fazermos todas as alterações , devemos reiniciar o serviço de DHCP com o seguinte comando:

$ sudo service isc-dhcp-server

Se tudo correr bem é vos apresentada uma mensagem de sucesso e o numero de processo.

dhcp_07

Na imagem pode ver-se que o IP foi reservado para a máquina com o MAC 00:0C:29:1D:36:79.

dhcp_08

Outras funcionalidades ficarão para um post que será publicado brevemente. Entretanto já ensinamos aqui como transformar um Raspberry PI num servidor DHCP.

Homepage: DHCP

Comentários

27

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Asdrubal
    Asdrubal

    Muito bom artigo.

    1. Avatar de Pedro Pinto

      É dar os parabéns ao nosso leitor António Sousa pelo excelente trabalho.

      1. Avatar de Asdrubal
        Asdrubal

        Muitos parabéns, António Sousa. 😉

  2. Avatar de pixar
    pixar

    “No mundo empresarial este serviço é extremamente importante, porque nem todos os utilizadores têm conhecimentos de informática avançados, para configurarem a ligação à rede (além disso torna-se mais cómodo).”

    Se me permitirem, acrescento mais uma razão para se usar o DHCP. Sem o DHCP dificilmente teremos uma rede funcional. Mesmo que se tenham conhecimentos para configurar o endereço IP manualmente, este tipo de configuração acarreta problemas de duplicação de endereços. Numa rede de 100 PC (podia abusar mais um pouco no tamanho mas esta chega) já estou a ver o admin da rede a “ganir” à procura do gato.

  3. Avatar de urko
    urko

    Muito bom o post !

  4. Avatar de João
    João

    Mas para a atribuição automática do IP com o servidor DHCP as máquinas terão de estar configuradas como rede interna no Virtual Box, correto?

    1. Avatar de João
      João

      Agradecia um esclarecimento.

      Como é que a máquina cliente vai assumir o ip do servidor?

      1. Avatar de Manel
        Manel

        Olá.

        Se bem percebi pretende que uma máquina virtual obtenha endereço IP do servidor DHCP, correto?

        No menu da máquina virtual (no virtual box, portanto) selecione a opção de “Network” e de seguida coloque a opção Bridged Adapter, ou seja, esta opção permite obter um novo endereço IP provido pelo seu servidor DHCP para a máquina virtual.
        Isto porque em Bridged Adapter é permitido que a máquina virtual obtenha um novo endereço IP. No entanto isto só acontecerá se o seu servidor DHCP der mais que um endereço IP à mesma máquina simultaneamente. Se for em ambiente caseiro (em casa, com um router wireless) não haverá problema.

        1. Avatar de Joao
          Joao

          NDesde ja agradeco a resposta.

          A ideia seria testar com duas maquinas virtuais, uma com o servidor dhcp e outra como cliente, que vai receber o ip automatico do respetivo servidor.

          Mas para isso sera necessario que na configuracao do virtualbox as maquinas estejam definidas como rede interna, nao? Pois caso contrario as mesmas estariam em redes diferentes..

  5. Avatar de euclides machado
    euclides machado

    Artigo muito bom. Bem explicado. Agora uma dúvida:
    Qual a diferença entre DHCP Server e DHCP Relay?

    1. Avatar de Nelson
      Nelson

      DHCP relay é apenas um intermediário para o dhcp server.

      1. Avatar de euclides machado
        euclides machado

        Obrigado Nelson.

    2. Avatar de António Sousa

      Num post que será postado brevemente irei falar do DHCP Relay e qual a sua função.
      Fiquem atentos!

      1. Avatar de euclides machado
        euclides machado

        Estou na espera. \o/

  6. Avatar de Gabriel Almada
    Gabriel Almada

    Gostaria de saber se é possível encaminhar o tráfego de rede por um proxy forçando o gateway a a “desviar” a net por lá!
    O que pretendo:
    Tenho dezenas de maquinas que precisam de actualizações. E algumas dessas actualizações são mais de 1 GB.
    Se for possível ter uma maquina como “Proxy” que armazene o que passa na rede, assim as actualizações seriam instaladas sem terem de ser sacadas outra vez na Net!

    1. Avatar de Nelson
      Nelson

      Presumo que essas atualizações (Windows, OSX, etc…) sejam “sacadas” por SSL…P

      É que se forem, não da para usar o proxy

      1. Avatar de Gabriel Almada
        Gabriel Almada

        Algumas situações são com as maquinas que têm o Win8 e precisamos de actualizar para o 8.1.
        Estamos a falar de 3GB de actualização para cada uma….

        1. Avatar de Nelson
          Nelson

          Eu não sei se a Microsoft usa HTTPS. Mas deve usar…

          A MS costuma lança um “Redistributable” que é mesmo para isso…

  7. Avatar de António Sousa

    Obrigado pelos elogios… brevemente vou escrever mais sobre DHCP, fiquem atentos!
    Pois, é como diz o Nelson, se as atualizações forem feitas de modo “seguro”, HTTPS, não existe possibilidade de usar proxy!

  8. Avatar de dajosova
    dajosova

    … às custas dos ip’s fixos não queiram ter um belo conflito de ip’s!!!

  9. Avatar de Hélio Correia
    Hélio Correia

    Excelente artigo.

  10. Avatar de Pedro Sardinha
    Pedro Sardinha

    Na configuração do servidor DHCP os hosts também podem ter a opção option host-name. exemplo:

    host teste {
    hardware ethernet 00:0c:29:1d:36:79;
    fixed-address 10.10.10.2;
    option host-name “teste”;
    }

    Em certos casos simplifica-se, centralizando a configuração dos hosts no servidor de DHCP, evitando-se a duplicação da configuração de hosts (nome e IP) que também pode ser configurada no ficheiro /etc/hosts do servidor.

  11. Avatar de Martinho Vasconcelos
  12. Avatar de Michael
    Michael

    Esse seu artigo foi de grande utilidade para mim! Estava com dificuldades em funcionar um servidor DHCP no linux, mas vc resolveu meus problemas! Parabéns! Entretanto, não sei se vc se enganou e não quero ser visto como um chato, mas o DHCP offer envia em broadcast também o pacote com a oferta do IP, e não em unicast como mencionado (como o servidor DHCP sabe o IP do cliente e vice versa?). Alias, todo o processo do DHCP envia em broadcast suas requisições e respostas. Enfim, parabéns! 😀