[FUG-BR] Dual Nic na mesma subnet.

Marcelo Araujo araujobsdport em gmail.com
Quarta Março 6 01:42:53 BRT 2013


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


Mais detalhes sobre a lista de discussão freebsd