Enviado em 23/09/2011 - 12:20h
Pessoal, bom dia.
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 eu estou enviando meus arquivos de configuração para vocês terem uma idéia de como está a configuração.
Arquivo de configuração do dhcp:
Configurando para escutar requisições em ambas as interfaces "eth1 eth2"
A dúvida que eu tenho e que até certo ponto chega ser um pequeno problema é o seguinte:
Como o arquivo de log abaixo mostra, eu espetei uma máquina para pegar ip via a eth2, foi feita a negociação, ele ofereceu o ip da
rede certa configurada pela eth2 que é um ip da rede 192.168.1.0, o ip para a estação (Gabriel-PC) foi o ip 192.168.1.13, até aí
tudo bem, esse é o comportamento esperado. Depois eu fui fazer outro teste, desconectei a estação que estava ligada via eth2 e a
conectei para pegar ip via eth1, o arquivo abaixo mostra que o ip foi oferecido pela eth1, mas ele em vez de oferecer um ip da rede
configurada para a interface eth1 que é a rede 10.1.1.0, ele ofereceu o ip da rede da interface eth2 e o ip foi o 192.168.1.13.
Então o que aconteceu é que ele pegou o ip que a eth2 anteriormente tinha oferecido.
O comportamento que eu esperava é que ele tivesse oferecido um ip da rede da interface eth1 10.1.1.0.
log do dhcpd
Pensando aqui eu pensei que como o dhcpd guarda uma tabela de leases, eu foi conferir e lá estava, como a primeira requisição foi pela eth2, ele ofereceu o ip da rede 192.168.1.0. A segunda requisição feita pela eth1, ele ofereceu pela eth1 o ip que ele tinha pego anteriormente, só que o ip da rede "errada".
Visualização da tabela de leases:
Estava estudando aqui esse caso e creio que essa questão é do lease-time não é?
Uma possível solução seria deixar um tempo mínimo de lease-time, assim quando ocorrer essa troca, ele faria uma nova negociação e
como o lease-time mínimo, ele ofereceria o ip da rede certa e não o ip da última negociação (estando essa ainda dentro o lease-time
definido).
Claro que são redes distintas e isso não seria um grande problema, mas as vezes uma máquina vem para a unidade1 e quando volta para unidade2 ele fica com o ip que da unidade1, como as unidades estão separadas por 50km e apenas na unidade1 existe uma equipe de TI, quando acontece esses casos é um empecilho.
Existiria uma outra solução para o caso, algo que obrigue o dhcp apenas a distribuir ips da faixa de ip que está configurada para a interface em questão?
Pessoal, é a segunda vez que me deparo com essa situação, não sei se algum amigo já passou por esse mesmo problema e conseguiu
resolver, eu analisando aqui acho que é não um problema mas uma característica do lease-time. Pode ser que exista um jeito de forçar a interface via dhcp oferecer ips apenas da rede nela cadastrada.
Gostaria muito da opinião de vocês.
Grande abraço
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 eu estou enviando meus arquivos de configuração para vocês terem uma idéia de como está a configuração.
Arquivo de configuração do dhcp:
###############################
## VARIAVEIS DE CONFIGURACAO ##
###############################
ddns-update-style none;
option domain-name "xxx.com.br";
authoritative;
shared-network SG {
## Rede eth1
subnet 10.1.1.0 netmask 255.255.255.0 {
range 10.1.1.50 10.1.1.98;
default-lease-time 21600;
max-lease-time 21600;
option subnet-mask 255.255.255.0;
option broadcast-address 10.1.1.255;
option routers 10.1.1.1;
option domain-name-servers 10.1.1.1,200.221.11.100;
authotative;
next-server 10.1.1.1;
}
## Rede eth2
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.100;
default-lease-time 21600;
max-lease-time 21600;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1,200.221.11.100;
authoritative;
next-server 192.168.1.1;
}
}
Configurando para escutar requisições em ambas as interfaces "eth1 eth2"
proxylon:~# cat /etc/default/isc-dhcp-server
# 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"
A dúvida que eu tenho e que até certo ponto chega ser um pequeno problema é o seguinte:
Como o arquivo de log abaixo mostra, eu espetei uma máquina para pegar ip via a eth2, foi feita a negociação, ele ofereceu o ip da
rede certa configurada pela eth2 que é um ip da rede 192.168.1.0, o ip para a estação (Gabriel-PC) foi o ip 192.168.1.13, até aí
tudo bem, esse é o comportamento esperado. Depois eu fui fazer outro teste, desconectei a estação que estava ligada via eth2 e a
conectei para pegar ip via eth1, o arquivo abaixo mostra que o ip foi oferecido pela eth1, mas ele em vez de oferecer um ip da rede
configurada para a interface eth1 que é a rede 10.1.1.0, ele ofereceu o ip da rede da interface eth2 e o ip foi o 192.168.1.13.
Então o que aconteceu é que ele pegou o ip que a eth2 anteriormente tinha oferecido.
O comportamento que eu esperava é que ele tivesse oferecido um ip da rede da interface eth1 10.1.1.0.
# tail -f /var/log/syslog
log do dhcpd
Sep 23 11:02:57 proxylon dhcpd: DHCPREQUEST for 192.168.1.12 from 00:21:5a:f8:03:a3 (Dede-PC) via eth2
Sep 23 11:02:57 proxylon dhcpd: DHCPACK on 192.168.1.12 to 00:21:5a:f8:03:a3 (Dede-PC) via eth2
Sep 23 11:03:01 proxylon dhcpd: DHCPINFORM from 192.168.1.12 via eth2
Sep 23 11:03:01 proxylon dhcpd: DHCPACK to 192.168.1.12 (00:21:5a:f8:03:a3) via eth2
Sep 23 11:03:04 proxylon dhcpd: DHCPINFORM from 192.168.1.12 via eth2
Sep 23 11:03:04 proxylon dhcpd: DHCPACK to 192.168.1.12 (00:21:5a:f8:03:a3) via eth2
Sep 23 11:03:06 proxylon dhcpd: DHCPDISCOVER from 00:26:9e:03:70:73 via eth2
Sep 23 11:03:07 proxylon dhcpd: DHCPOFFER on 192.168.1.13 to 00:26:9e:03:70:73 (Gabriel-PC) via eth2
Sep 23 11:03:07 proxylon dhcpd: DHCPREQUEST for 192.168.1.13 (192.168.1.1) from 00:26:9e:03:70:73 (Gabriel-PC) via eth2
Sep 23 11:03:07 proxylon dhcpd: DHCPACK on 192.168.1.13 to 00:26:9e:03:70:73 (Gabriel-PC) via eth2
Sep 23 11:03:13 proxylon dhcpd: DHCPINFORM from 192.168.1.13 via eth2
Sep 23 11:03:13 proxylon dhcpd: DHCPACK to 192.168.1.13 (00:26:9e:03:70:73) via eth2
Sep 23 11:03:16 proxylon dhcpd: DHCPINFORM from 192.168.1.13 via eth2
Sep 23 11:03:16 proxylon dhcpd: DHCPACK to 192.168.1.13 (00:26:9e:03:70:73) via eth2
Sep 23 11:04:55 proxylon dhcpd: DHCPREQUEST for 192.168.1.13 from 00:26:9e:03:70:73 (Gabriel-PC) via eth1
Sep 23 11:04:55 proxylon dhcpd: DHCPACK on 192.168.1.13 to 00:26:9e:03:70:73 (Gabriel-PC) via eth1
Sep 23 11:05:02 proxylon dhcpd: DHCPINFORM from 192.168.1.13 via eth1
Sep 23 11:05:02 proxylon dhcpd: DHCPACK to 192.168.1.13 (00:26:9e:03:70:73) via eth1
Sep 23 11:05:05 proxylon dhcpd: DHCPINFORM from 192.168.1.13 via eth1
Sep 23 11:05:05 proxylon dhcpd: DHCPACK to 192.168.1.13 (00:26:9e:03:70:73) via eth1
Sep 23 11:07:04 proxylon dhcpd: DHCPREQUEST for 192.168.1.13 from 00:26:9e:03:70:73 (Gabriel-PC) via eth1
Sep 23 11:07:04 proxylon dhcpd: DHCPACK on 192.168.1.13 to 00:26:9e:03:70:73 (Gabriel-PC) via eth1
Sep 23 11:07:11 proxylon dhcpd: DHCPINFORM from 192.168.1.13 via eth1
Sep 23 11:07:11 proxylon dhcpd: DHCPACK to 192.168.1.13 (00:26:9e:03:70:73) via eth1
Sep 23 11:07:17 proxylon dhcpd: DHCPDISCOVER from 00:26:9e:03:70:73 (Gabriel-PC) via eth1
Sep 23 11:07:17 proxylon dhcpd: DHCPOFFER on 192.168.1.13 to 00:26:9e:03:70:73 (Gabriel-PC) via eth1
Pensando aqui eu pensei que como o dhcpd guarda uma tabela de leases, eu foi conferir e lá estava, como a primeira requisição foi pela eth2, ele ofereceu o ip da rede 192.168.1.0. A segunda requisição feita pela eth1, ele ofereceu pela eth1 o ip que ele tinha pego anteriormente, só que o ip da rede "errada".
# cat /var/lib/dhcp/dhcpd.leases
Visualização da tabela de leases:
lease 192.168.1.12 {
starts 5 2011/09/23 14:02:57;
ends 5 2011/09/23 20:02:57;
cltt 5 2011/09/23 14:02:57;
binding state active;
next binding state free;
hardware ethernet 00:21:5a:f8:03:a3;
uid "{TEXTO}01{TEXTO}00!Z\370{TEXTO}03\243";
client-hostname "Dede-PC";
}
lease 192.168.1.13 {
starts 5 2011/09/23 14:04:55;
ends 5 2011/09/23 20:04:55;
cltt 5 2011/09/23 14:04:55;
binding state active;
next binding state free;
hardware ethernet 00:26:9e:03:70:73;
uid "{TEXTO}01{TEXTO}00&\236{TEXTO}03ps";
client-hostname "Gabriel-PC";
}
lease 192.168.1.13 {
starts 5 2011/09/23 14:07:04;
ends 5 2011/09/23 20:07:04;
cltt 5 2011/09/23 14:07:04;
binding state active;
next binding state free;
hardware ethernet 00:26:9e:03:70:73;
uid "{TEXTO}01{TEXTO}00&\236{TEXTO}03ps";
client-hostname "Gabriel-PC";
}
Estava estudando aqui esse caso e creio que essa questão é do lease-time não é?
default-lease-time 21600;
Uma possível solução seria deixar um tempo mínimo de lease-time, assim quando ocorrer essa troca, ele faria uma nova negociação e
como o lease-time mínimo, ele ofereceria o ip da rede certa e não o ip da última negociação (estando essa ainda dentro o lease-time
definido).
Claro que são redes distintas e isso não seria um grande problema, mas as vezes uma máquina vem para a unidade1 e quando volta para unidade2 ele fica com o ip que da unidade1, como as unidades estão separadas por 50km e apenas na unidade1 existe uma equipe de TI, quando acontece esses casos é um empecilho.
Existiria uma outra solução para o caso, algo que obrigue o dhcp apenas a distribuir ips da faixa de ip que está configurada para a interface em questão?
Pessoal, é a segunda vez que me deparo com essa situação, não sei se algum amigo já passou por esse mesmo problema e conseguiu
resolver, eu analisando aqui acho que é não um problema mas uma característica do lease-time. Pode ser que exista um jeito de forçar a interface via dhcp oferecer ips apenas da rede nela cadastrada.
Gostaria muito da opinião de vocês.
Grande abraço