[FUG-BR] Dual Nic na mesma subnet.

Marcelo Araujo araujobsdport em gmail.com
Domingo Março 3 23:20:16 BRT 2013


> Date: Sat, 2 Mar 2013 00:24:54 -0300
> From: Klaus Schneider <klausps em gmail.com>
> Subject: Re: [FUG-BR] Dual Nic na mesma subnet.
> To: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
>         <freebsd em fug.com.br>
> Message-ID:
>         <
> CAHw7puT4Bv58DDmQfwkzkUZJgwuexozOtkRH8m6TjatOx7WvOg em mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Opa Marcelo, blz?
>
>
> 2013/2/27 Marcelo Araujo <araujobsdport em gmail.com>
>
> > Em 25 de fevereiro de 2013 19:13, <freebsd-request em fug.com.br> escreveu:
> >
> > >
> > >    7. Re: Dual Nic na mesma subnet. (Renato Botelho)
> > >
> > > Então Marcelo,
> > >
> > > O que eu to tentando entender é o que justificaria a necessidade de se
> > > ter os dois IPs, cada um em uma interface, na mesma subnet. Cada
> > > placa é ligada a um switch ou router diferente? as LANs que vão
> > > acessar são distintas, mas compartilham a subnet?
> > >
> >
> > Sim, as LANs são distintas, mas elas compartilham a mesma subnet.
>
>
> >
> > >
> > > Porque se não for nenhuma das razões acima, eu não consigo ver razão
> > > pra isso mesmo, nesse caso você poderia ter um lagg e os dois IPs
> > > configurados na interface lagg, o que funcionaria normalmente já que um
> > > dos IPs teria mask 0xffffffff.
> > >
> > > []s
> > > --
> > > Renato Botelho
> > >
> >
> >
> > Sim, eu poderia ter uma interface lagg, mas não é o meu caso!
> > Até agora, a única maneira que consegui fazer isso funcionar foi com FIB,
> > mais ou menos dessa maneira:
> >
> > root# ifconfig ix0 fib 0
> > root# ifconfig ix1 fib 1
> > root# setfib 1 route delete 172.17.22.0/23
> > root# setfib 1 route add 172.17.22.0/23 -iface ix1
> > root# setfib 0 smbd -D -s /usr/local/etc/smb_ix0.conf
> > root# setfib 1 smbd -D -s /usr/local/etc/smb_ix1.conf
> >
> > Estou procurando se existe alguma outra alternativa mais fácil de
> > configurar.
> >
>
> Mesmo prefixo em duas interfaces, quebra o modelo de roteamento IP. Afinal,
> por qual lado é o correto sair? O sistema tem o mesmo peso para ambas as
> interfaces. E se houver dois hosts distintos com o mesmo IP nestas duas
> subnets?
>

Concordo plenamente com o que você escreveu!


> O BSD não vai conseguir montar uma tabela arp com duas entradas para o
> mesmo endereço. Fazer isso funcionar seria uma gambiarra, pois teria que
> fazer mudanças nas camadas 2 e 3 do sys/net do FreeBSD, e talvez até
> mudança de alguns drivers.
>
> Você pode fazer a "gambiarra" de colocar por ex:
> iface x 172.16.0.1/22
> iface y 172.16.0.1/23
>
>
>
Já tinha visto isso também, é a maneira como todo mundo fala, mas isso não
resolve o problema como um todo.


> O problema é que vai começar a aparecer flap de endereços MAC e problemas
> com a resolução(arp). E quando resolver sair, vai sair pela iface y se o
> endereçamento estiver dentro do /23, caso não, sairá pelo /22.
>
> A solução menos gambiarra é fazer um NAT de alguma forma.
>

Vou verificar com PF e NAT essa semana.


> A solução correta: trocar as subnets... hehe
>
>
Concordo!


> Isso não é problema do BSD, e sim do modelo de roteamento IP. Aliás, não é
> um problema, é como funciona... em qualquer SO, seja IOS, Junos, Linux e
> Windows...
>

Isso funciona no Linux, Windows, NetApp e JunOS. Na LKLM têm uma discussão
gigante sobre este problema, e no final foi adicionado uma função para
lidar com o ARP.

Na minha experiência, um endereço IP faz parte do HOST e não parte da NIC,
e um host não pode ter dois dispositivos de rede conectado na mesma SUBNET.

Vou fazer mais uns testes, mas minha conclusão é não permitir que o mesmo
host tenha 2 ips com MAC diferentes na mesma subnet.

Grande abraço Klaus.

-- 
Marcelo Araujo
araujo em FreeBSD.org


Mais detalhes sobre a lista de discussão freebsd