Ver Feed RSS

cristianff

Estudo de caso - DHCP em duas redes

Avalie este Post de Blog
Segunda vez que eu enfrente esse tipo de situação, antes foi no meu antigo emprego onde eu trabalhava com inúmeras subredes e eu acabei optando na época por amarrar os ips via MAC.

Hoje estou com um quadro assim, temos na empresa duas redes, a rede da unidade1 é a rede 10.1.1.0 e temos a rede 192.168.1.0

que é a rede da unidade2 da empresa. Contratamos o serviço RAV da Copel para fazer a interligação das unidade e centralizar todo o acesso e gerenciamento na unidade1.

Tenho na eth1 a rede 10.1.1.0 e na eth2 a rede 192.168.1.0 ambas com máscara padrão da classe C.

Abaixo a configuração para o estudo de caso, arquivos de configuração testados e funcionando 100%.

- O SO do servidor é um Debian 6.

Primeiro vamos configurar os ips nas interfaces de rede, o estudo de caso aqui temos o seguinte cenário:

Código :
eth0 = internet
eth1 = rede interna matriz (10.1.1.0/24)
eth2 = rede interna filial (192.168.1.0/24)

Configurando as interfaces:

Código :
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# The loopback network interface
auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet static
     address 172.16.1.254
     network 172.16.1.0
     netmask 255.255.255.0
     broadcast 172.16.1.255
     gateway 172.16.1.1
 
auto eth1
iface eth1 inet static
     address 10.1.1.1
     network 10.1.1.0
     netmask 255.255.255.0
     broadcast 10.1.1.255
     gateway 172.16.1.254
 
auto eth2
iface eth2 inet static
     address 192.168.1.1
     network 192.168.1.0
     netmask 255.255.255.0
     broadcast 192.168.1.255
     gateway 172.16.2.254

Depois de configurado vamos reiniciar o serviço de networking para as modificações tomarem efeito:

Código :
/etc/init.d/networking restart

Agora vamos configurar o nosso dhcpd.conf

Código :
INTERFACES="eth1";
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 10.1.1.0 netmask 255.255.255.0 {
   range 10.1.1.50 10.1.1.98;
   option routers 10.1.1.1;
   option domain-name-servers 10.1.1.1,200.221.11.100;
   option broadcast-address 10.1.1.255;
}
 
INTERFACES="eth2";
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.50 192.168.1.100;
   option routers 192.168.1.1;
   option domain-name-servers 192.168.1.1, 200.221.11.100;
   option broadcast-address 192.168.1.255;
}
 
        #####################
        # hosts com ip fixo #
        #####################
        # 
        host ti01 {
          hardware ethernet f0:4d:a2:df:81:c5;
          fixed-address 10.1.1.50;
        }
        # 
        host ti02 {
          hardware ethernet 00:1f:e2:6f:21:b7;
          fixed-address 10.1.1.51;
        }

Depois de configurado o dhcp para as duas redes, agora temos que "avisar" do dhcp que ele vai escutar requisições em ambas as interfaces, eth1 e eth2.

Código :
# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/isc-dhcp-server by the maintainer scripts
 
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth1 eth2"

Agora vamos reiniciar o serviço para que as alterações tomem efeito:

Código :
proxylon:~# /etc/init.d/isc-dhcp-server restart

Se tudo ocorreu conforme o esperado, agora temos um servidor DHCP que irá distribuir IPS da rede 10.1.1.0 para os equipamentos plugados através da eth1 e IPS da rede 192.168.1.0 para os equipamentos plugados através da eth2.

Vale uma dica sempre monitorar o arquivo de log do sistema, ele ajuda e muito para correção de erros.

Código :
proxylon:~# tail -f /var/log/syslog
Sep 23 20:34:43 proxylon dhcpd: Dynamic and static leases present for 10.1.1.51.
Sep 23 20:34:43 proxylon dhcpd: Remove host declaration ti02 or remove 10.1.1.51
Sep 23 20:34:43 proxylon dhcpd: from the dynamic address pool for 10.1.1.0/24
Sep 23 20:34:43 proxylon dhcpd: DHCPREQUEST for 10.1.1.51 from 00:1f:e2:6f:21:b7 via eth1
Sep 23 20:34:43 proxylon dhcpd: DHCPACK on 10.1.1.51 to 00:1f:e2:6f:21:b7 via eth1
Sep 23 20:35:30 proxylon dhcpd: DHCPREQUEST for 10.1.1.73 from 00:1f:c6:cc:76:a3 (Samuel-PC) via eth1
Sep 23 20:35:30 proxylon dhcpd: DHCPACK on 10.1.1.73 to 00:1f:c6:cc:76:a3 (Samuel-PC) via eth1
Sep 23 20:35:51 proxylon dhcpd: DHCPREQUEST for 10.1.1.79 from 00:22:15:c1:52:60 (producao02) via eth1
Sep 23 20:35:51 proxylon dhcpd: DHCPACK on 10.1.1.79 to 00:22:15:c1:52:60 (producao02) via eth1

Foram feitos inúmeros testes, simulando estações em ambas as redes, realmente quando você troca uma estação de uma rede para outra, ele já faz a comunicação e recebe o IP correto.

Eu já tive problema em fazer essa configuração, estava tentando via shared-network, funcionava mas sempre ocorria de máquinas receberem endereços da outra rede. Essa foi a solução definitiva que está funcionando 100%.

Agora uma dica para vocês quiserem saber quantas estações receberam ip na eth1:

Código :
proxylon:~# arp -a -i eth1
? (10.1.1.230) em 00:17:4f:02:a6:c0 [ether] em eth1
? (10.1.1.51) em 00:1f:e2:6f:21:b7 [ether] em eth1
? (10.1.1.231) em e0:cb:4e:ce:e6:fd [ether] em eth1
? (10.1.1.79) em 00:22:15:c1:52:60 [ether] em eth1
? (10.1.1.89) em 90:e6:ba:e1:c0:56 [ether] em eth1
? (10.1.1.57) em 00:0e:08:2b:68:ce [ether] em eth1
? (10.1.1.73) em 00:1f:c6:cc:76:a3 [ether] em eth1
? (10.1.1.100) em a4:ba:db:07:15:2b [ether] em eth1
? (10.1.1.55) em 00:26:5e:fd:d3:8e [ether] em eth1

Agora para não precisar contar linha por linha pra saber a quantidade:

Código :
proxylon:~# arp -a -i eth1 | wc -l
9

Bom pessoal, acho que é isso!
Qualquer dúvida, sugestão ou reclamação será bem vinda.

Abraço
Categorias
Dicas , Tutoriais

Comentários

  1. Avatar de demattos
    abracos amigo, o que seria de nos sem suas contribuicoes

+ Enviar Comentário