[FUG-BR] Dual Nic na mesma subnet.

Paulo Henrique paulo.rddck em bsd.com.br
Terça Março 5 10:29:05 BRT 2013


Em 5 de março de 2013 02:53, Marcelo Araujo <araujobsdport em gmail.com>escreveu:

> Em 2 de março de 2013 21:55, <freebsd-request em fug.com.br> escreveu:
>
> >
> >    8. Re: Dual Nic na mesma subnet. (Klaus Schneider)
> >
> > Message: 8
> > 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?
> > 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
> >
> >
> > 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.
> > A solução correta: trocar as subnets... hehe
> >
> > 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...
> >
> >
> >
> >
> Olá Pessoal,
>
> Terminei minhas pesquisas e testes sobre esse assunto; agora é hora de
> compartilhar!
>
> O que eu gostaria de fazer é chamado de Multihoming e é especificado na RFC
> 1122, para ser mais preciso na section 3.3.4.2.
>
> Basicamente existem dois modelos chamados de "Strong ES Model" and "Weak ES
> Model", o FreeBSD suporta o "Weak ES Model" que é comum para dispositivos
> que atuam como ROUTERS e GATEWAYS. Como algumas pessoas comentaram, é
> necessário fazer várias modificações nas camadas 2 e 3 de rede no KERNEL,
> estava até pensando em trabalhar nisso, mas realmente é muito complexo e
> pode quebrar muita coisa.
>
> Algumas pessoas chegaram a tentar implementar o modelo "Strong ES", mas
> devido a complexidade na parte de roteamento, não conseguiram.
>
> Exemplo de comentário no código relacionado a RFC 1122:
>
> File: sys/netinet/ip_input.c
>
>     121 /*
>
>     122  * XXX - Setting ip_checkinterface mostly implements the receive
> side of
>
>     123  * the Strong ES model described in RFC 1122, but since the routing
> table
>
>     124  * and transmit implementation do not implement the Strong ES
> model,
>
>     125  * setting this to 1 results in an odd hybrid.
>
> Na entrada, o KERNEL consegue identificar o pacote e direcionar para a
> placa correta, agora o problema é na saída e também na tabela de
> roteamento.
>
> FreeBSD suporta a RFC 1122 sem problema algum, mas no modelo "Weak ES",
> para utilizar algo como no modelo "Strong ES" é necessário usar source
> based policy routing que pode ser implementado usando FIB(como já é
> sabido).
>
> Fiz vários testes, e todos eles falharam!
>
> 1) ipfw fwd: É possível fazer fwd para multiplos gateways, mas eles não
> podem fazer parte da mesma subnet.
> 2) pf reply-to e route-to: Mesma coisa como o ipfw, única diferença é que é
> possível fazer loadbalance e etc.
> 3) netgraph - ng_one2many: Podemos fazer routing para multiplos links
> one-to-many e o inverso para many-to-one sem problemas, mas ele falha
> igualmente nos casos 1 e 2.
> 4) Jail - nem vou comentar... :P
>
> Sendo assim, não existe uma maneira fácil igualmente implementada no
> Linux(iproute2), e eu acredito que não vamos ter isso nunca no FreeBSD.
>
> É muito esforço alterar a parte de roteamento no FreeBSD(código) e manter
> compatibilidade com IPv4 e IPv6. E claro, manter isso com ótima performance
> como temos hoje.
>
> Sendo assim, para pessoas que como eu, queriam ter 2 interfaces na mesma
> subnet, as soluções são:
>
> 1) Usar FIB.
> 2) Modificar as subnets.
> 3) Desligar tudo e ir tomar umas cervejas!
>
> Grande Abraço.
> --
> Marcelo Araujo
> araujo em FreeBSD.org
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>

Sempre considerei multihomed sendo algo destinado a ASN/BGP, quanto a
estação de usuário/servidor  qual seria a finalidade ?
Em que ambiente e sobre qual premissas se faz necessário possuir dois IPs
na mesma subnet em placas distintas ?

Se considerar redundância, creio que não se aplica.

Teria como esbolçar melhor a necessidade de um ambiente mesmo que teórico
para necessitar de tar recurso.

Att.
-- 
:=)><(=:
By NoRm4nD
Flamers > /dev/null !!!


Mais detalhes sobre a lista de discussão freebsd