[FUG-BR] Dual Nic na mesma subnet.

Renato Botelho rbgarga em gmail.com
Quarta Março 6 08:31:48 BRT 2013


2013/3/6 Marcelo Araujo <araujobsdport at gmail.com>:
> Em 5 de março de 2013 21:29, <freebsd-request at 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á.

Se você tem detalhes sobre o bug, seria legal pelo menos abrir um PR
pra deixar registrado e quem sabe alguém não se interessa em corrigir.

-- 
Renato Botelho


Mais detalhes sobre a lista de discussão freebsd