ct

    Guia: Compartilhando a conexão e configurando o Squid


     Carlos E. Morimoto
     20/11/2006


    Configurando um servidor DHCP


    Hoje em dia quase todas as redes utilizam algum tipo de servidor DHCP. Em geral, eles são ativados automaticamente ao compartilhar a conexão ou junto com algum outro serviço, de forma que você acaba não aprendendo muita coisa sobre a sua configuração. De um modo geral, o trabalho de um servidor DHCP é bastante simples. Ele responde aos pacotes de broadcast das estações, enviando um pacote com um dos endereços IP disponíveis e os demais dados da rede. Os pacotes de broadcast são enviados para o último endereço da rede, como em 192.168.1.255 ou 255.255.255.255, e são recebidos por todos os micros da rede.

    Periodicamente o servidor DHCP verifica se as estações ainda estão lá, exigindo uma renovação do "aluguel" do endereço IP (opção "lease time"). Isso permite que os endereços IP sejam gastos apenas com quem realmente estiver online, evitando que os endereços disponíveis se esgotem. No Linux o serviço de DHCP é exercido pelo dhcp3-server, que nas distribuições baseadas no Debian pode ser instalado através do comando:

    # apt-get install dhcp3-server

    Os comandos "/etc/init.d/dhcp3-server start" e "/etc/init.d/dhcp3-server stop" gerenciam a atividade do serviço. No Fedora o pacote com o servidor dhcp se chama simplesmente "dhcp" e pode ser instalado através do yum. Uma vez instalado, use os comandos "service dhcpd start" e "service dhcpd stop". No caso do Mandriva, o pacote se chama "dhcpd".

    Em qualquer um dos três casos, o arquivo de configuração é o dhcpd.conf. No Debian, o caminho completo para ele é "/etc/dhcp3/dhcpd.conf" e no Mandriva e Fedora é apenas "/etc/dhcpd.conf". Apesar dessas diferenças nos nomes, o que interessa mesmo é a configuração do arquivo e esta sim é igual, independentemente da distribuição.

    Este é um exemplo de arquivo de configuração básico:

    ddns-update-style none;
    default-lease-time 600;
    max-lease-time 7200;

    authoritative;

    subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.100 192.168.0.201;
    option routers 192.168.0.10;
    option domain-name-servers 200.177.250.10,200.204.0.10;
    option broadcast-address 192.168.0.255;
    }

    A opção " default-lease-time" controla o tempo de renovação dos endereços IP. O "600" indica que o servidor verifica a cada dez minutos se as estações ainda estão ativas. Se você tiver mais endereços IP do que máquinas, os endereços IP das estações raramente vão precisar mudar. Mas, no caso de uma rede congestionada, o "max-lease-time" determina o tempo máximo que uma estação pode usar um determinado endereço IP. Isso foi planejado para ambientes onde haja escassez de endereços IP, como, por exemplo, em um provedor de acesso, onde sempre existem mais clientes do que endereços IP disponíveis e se trabalha contando que nem todos vão ficar conectados simultaneamente.

    Em condições normais, essas duas opções não são muito importantes. O que interessa mesmo é o bloco que vai abaixo, onde ficam as configurações da rede.

    A opção "range" determina a faixa de endereços IP que será usada pelo servidor. Se você utiliza a faixa de endereços 192.168.0.1 até 192.168.0.254, por exemplo, pode reservar os endereços de 192.168.0.1 a 192.168.0.100 para estações configuradas com IP fixo e usar os demais para o DHCP, ou então reservar uma faixa específica para ele, de 192.168.0.100 a 192.168.0.201, por exemplo. O importante é usar faixas separadas para o DHCP e os micros configurados com IP fixo.

    Na "option routers" vai o endereço do default gateway da rede, ou seja, o endereço do servidor que está compartilhando a conexão. Não é necessário que o mesmo micro que está compartilhando a conexão rode também o servidor DHCP. Pode ser, por exemplo, que na sua rede o gateway seja o próprio modem ADSL que está compartilhando a conexão e o DHCP seja um dos PCs.

    A opção "option domain-name-servers" contém os servidores DNS que serão usados pelas estações. Ao usar dois ou mais endereços, eles devem ser separados por vírgula, sem espaços. Em geral você vai usar os próprios endereços DNS do provedor, a menos que você configure um servidor DNS interno na sua rede, que pode ser instalado no próprio micro que está compartilhando a conexão e rodando o DHCP. Estes serviços consomem poucos recursos da máquina.

    O servidor DNS mais usado no Linux é o Bind. No Kurumin ou Debian em geral, você mata o coelho com um "apt-get install bind". Este servidor DNS pode ser configurado para implementar um sistema de domínios e subdomínios na sua rede, mas o uso mais comum é simplesmente fazer um "cache", onde o servidor DNS simplesmente repassa as requisições para um dos 13 root servers da internet e vai armazenando os endereços que já foram acessados.

    Você pode substituir o arquivo de configuração padrão por este modelo, ou editá-lo conforme a necessidade. Ao fazer qualquer alteração no arquivo, você deve reiniciar o servidor DHCP usando o comando:

    # /etc/init.d/dhcp3-server restart
    (ou "service dhcp restart" no Fedora)

    Sempre que configurar um servidor com duas placas de rede, é importante que o servidor DHCP seja configurado para escutar apenas na placa da rede local. No Debian, esta configuração vai no arquivo "/etc/default/dhcp3-server". Procure pela linha:

    INTERFACES=""

    ... e adicione a placa que o servidor DHCP deve escutar, como em:

    INTERFACES="eth0"

    Para que a configuração entre em vigor, basta reiniciar o serviço novamente.


    DHCP com IP fixo


    Mais uma opção interessante no servidor DHCP é a possibilidade de relacionar um determinado endereço IP com o endereço MAC de certo micro da rede. Isso faz com que ele sempre obtenha o mesmo endereço a partir do servidor DHCP, como se tivesse sido configurado para usar IP fixo.

    Esse recurso é usado em redes de terminais leves, para que o servidor "reconheça" os terminais e possa enviar a configuração adequada a cada um, mas pode ser usado em outras situações, como, por exemplo, em uma pequena rede, onde alguns micros compartilham impressoras e arquivos e, por isso, não podem ficar mudando de endereço IP a cada reboot.

    Configurar o servidor DHCP para dar a eles sempre o mesmo IP pode ser mais prático que configurá-los para usar IP fixo manualmente, pois eles continuarão recebendo o mesmo IP mesmo que você reinstale o sistema (pois, apesar da mudança de sistema operacional, a placa de rede continuará a mesma). Veja o caso de quem usa live-CDs como o Kurumin, por exemplo.

    Para usar este recurso, adicione uma seção como esta para cada host, no final do arquivo dhcpd.conf, depois de todas as linhas de configuração, mas antes de fechar a chave (}):

    host kurumin {
    hardware ethernet 00:0F:B0:55:EA:13;
    fixed-address 192.168.0.202;
    }

    Veja que a seção começa com o nome da máquina, "kurumin" no exemplo. Em seguida vão, entre chaves, o endereço MAC da placa de rede (que você pode verificar através do comando "ifconfig") e o endereço IP que a estação deve usar. Um exemplo de arquivo completo, incluindo a configuração de IP fixo para duas máquinas seria:

    ddns-update-style none;
    default-lease-time 600;
    max-lease-time 7200;
    authoritative;

    subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.100 192.168.0.201;
    option routers 192.168.0.10;
    option domain-name-servers 200.177.250.10,200.204.0.10;
    option broadcast-address 192.168.0.255;

    host kurumin {
    hardware ethernet 00:0F:B0:55:EA:13;
    fixed-address 192.168.0.202;
    }

    host mandriva {
    hardware ethernet 00:0F:B0:45:BC:17;
    fixed-address 192.168.0.203;
    }
    }

    Em situações normais, você nunca deve manter mais de um servidor DHCP ativo ao mesmo tempo, principalmente se ambos estiverem configurados para dar endereços dentro da mesma faixa. Caso contrário, começam a surgir problemas com micros configurados com o mesmo IP (cada um dado por um DHCP diferente) e assim por diante. Mas, em algumas situações, uma configuração com dois servidores DHCP pode funcionar, naturalmente depois de bem testada.

    O dhcp3-server usado no Linux é bastante rápido, por isso (desde que a configuração não seja muito complexa) costuma responder antes dos servidores DHCP usados nos servidores Windows e na maioria dos modems ADSL, o que pode ser usado a seu favor.

    Imagine um caso comum: uma rede de 10 ou 20 micros, com um ADSL de 1 megabit, compartilhado pelo próprio modem. Para melhorar o desempenho da rede, você resolve implantar um servidor com o Squid configurado para trabalhar como um proxy transparente, além de um servidor DNS próprio e DHCP.

    Como este "servidor" é o seu próprio micro, que precisa ser desligado de vez em quando, você decide manter a rede da forma que está, com o modem compartilhando a conexão e o seu micro funcionando como um segundo gateway, dentro da rede local. Você quer que a rede continue funcionando mesmo quando seu micro precisar ser desligado por um certo tempo, por isso mantém o servidor DHCP do modem ativo, junto com o servidor DHCP instalado no seu micro.

    No seu caso, o Bind é mais rápido que o DHCP do modem. Por isso, enquanto ele está ligado, os micros da rede local são configurados para acessar através dele, passando pelo proxy transparente. Quando ele é desligado, o modem ADSL passa a responder as chamadas e os micros passam a ser configurados para acessar diretamente através dele (é preciso reconfigurar os clientes via DHCP para que eles obtenham a configuração a partir do modem e passem a utilizá-lo como gateway). A rede continua funcionando mesmo que seu micro seja desconectado definitivamente.

    Note que isso é tecnicamente errado e só funciona em redes pequenas, onde todos os micros são ligados ao mesmo hub ou switch. Quanto maior a rede, mais imprevisível se torna o comportamento dos servidores DHCP e mais importante torna-se manter apenas um ativo.

cb
HOME