[FUG-BR] Dual Nic na mesma subnet.

Rafael Ganascim rganascim em gmail.com
Quarta Março 6 08:12:37 BRT 2013


Em 6 de março de 2013 01:42, Marcelo Araujo <araujobsdport em gmail.com>escreveu:

> Em 5 de março de 2013 21:29, <freebsd-request em fug.com.br> escreveu:
>
> >
> >    6. Re: Dual Nic na mesma subnet. (Paulo Henrique)
> >
> > 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.
> >
> >
> Olá Paulo,
>
> Bom, no meu caso, tenho o seguinte ambiente!
>
> ix0 = 172.17.22.2
> ix1 = 172.17.22.3
>
> Serviços:
> ix0 = DLNA, CIFS e AFS.
> ix1 = DLNA, CIFS e NFS.
>
> Com o serviço CIFS, eu tenho 2 configurações diferentes, onde algumas
> máquinas na minha rede devem acessar apenas via ix0. Minha máquina, deve
> acessar os serviços apenas pela ix1.
>
> Até ai tudo bem, como eu compartilho a mesma subnet, e tenho apenas uma
> rota para a rede 172.17.22.0/24 que usa como -iface a placa ix0, todo o
> tráfego vai sair pela ix0, independente se entrou no HOST via ix1 ou ix0.
>
> O que eu queria é bem simples, se o tráfego entra pela ix0, deve sair pela
> ix0; se o tráfego entra pela ix1, deve sair pela ix1. Fix isso com setfib,
> está rodando tudo certo.
>
> Eu estava procurando algo simples como no Linux, iproute2.
>
> Mesmo assim, tive que fazer algumas modificações no KERNEL, pois o FIB não
> roda perfeito.
>
> Primeiro que o KERNEL vai sempre responder o ARP REPLY via FIB 0 e também
> vai sempre fazer o ARP CHECKS via FIB 0:
>
> if_ether.c:
>                         /* XXX MRT use table 0 for arp reply  */
> -                       rt = in_rtalloc1((struct sockaddr *)&sin, 0, 0UL,
> 0);
>
> .... more code here .....
>
> Também tive que fazer algumas alterações no ip_output.c que sempre usa a
> FIB 0.
> tcp_input.c e tcp_syncache.c  que também sempre usa a FIB 0.
>
> Quanto ao protocolo UDP, têm o mesmo problema do TCP, mas como não estou
> usando, nem alterei o código.
>
> Isso eu alterei para IPv4, é o protocolo que estou usando, acredito que
> IPv6 também tem o mesmo problema. O código que implementa roteamento no
> FreeBSD é muito complicado, eu gostaria de ver quem seria o "MACHO" para
> re-escrever, talvez usando código do projeto KAME.
>
> NOTA: NetBSD usa praticamente o mesmo código  de roteamento que o FreeBSD!
>
> Eu estou sem tempo para fazer tudo bonitinho e submeter um PATCH, se alguém
> quiser dar continuidade no que fiz, posso preparar um patch e enviar em
> PVT. Agora, que o FIB no FreeBSD tá BUGADO isso tá.
>
> NOTA 2: O que eu queria era muito simples, apenas ligar minha TV no meu
> NAS, acessar meus arquivos(adultos), acessar via IPAD também conteúdo
> multimedia(adulto), e que o tráfego outgoing saísse pela interface correta.
>
>
> Quanto ao conteúdo adulto, é brincadeira :P
>
> Atenciosamente,
> --
> 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
>

Bom dia!

Colocar as duas interfaces em bridge e configurar apenas um IP já não daria
certo? Não seria 100% garantido que o tráfego voltaria pela interface
correta (isto depende da tabela L2 da bridge e da topologia), mas creio que
vá funcionar.

Se a única conexão da TV até o NAS é via ix0, o tráfego sempre fluirá pela
interface correta (pq o L1/L2 estará assim)
Se a única conexão do Ipad até o NAS for pela ix1, sempre fluirá pela
interface correta (pq o L1/L2 estará assim)


Mais detalhes sobre a lista de discussão freebsd