[FUG-BR] Roteamento

Marcelo Gondim gondim em bsdinfo.com.br
Quarta Março 14 10:06:04 BRT 2012


Em 13/03/2012 23:31, Anderson Alves de Albuquerque escreveu:
>   Eu queria saber se no FreeBSD teria como fazer um roteamento no firewall,
> tendo como cenário 2 saídas p/ a Internet chamadas de A e B.
>
>   No momento em que as duas saídas estão funcionando, o roteamento funciona
> assim:
> - saída A para acesso a internet
> - saída B apenas para acessar a filial com uma rede x.y.z.0/24 conhecida
>
>   Caso a saída A não funcione, todo o tráfego sai pela saída B (incluindo
> acesso a filial e a internet).
>   Caso a saída B não funcione, todo o tráfego sai pela saída A (incluindo
> acesso a filial e a internet).
>
>
>   existe como fazer isso de forma dinâmica?
>
>   Eu não queria utilizar protocolos de roteamentos tipo IGB, BGP ou etc.
> Pois, pela saída B eu poderia utilizar apenas roteamento estática.
>
>
Oi Anderson,

Se eu entendi bem seu problema acredito que você possa resolver fazendo:

1) compilar o kernel pra ter mais de 1 FIB(tabela de roteamento). Nesse 
caso 2.
       options         ROUTETABLES=2

2) FIB 0 possui gateway default para a saída A.

3) FIB 1 possui gateway default para a saída B.

Se você usa ipfw você pode criar 2 regras lá tipo:

ipfw add set 1 setfib 0 ip from any to any via $interface_interna
ipfw add set 2 setfib 1 ip from any to any via $interface_interna
ipfw set disable 2

Quando você quiser que o tráfego passe à usar a FIB 0 deixei ela como 
enable: ipfw set enable 1 e a outra disable e quando a Internet for sair 
pela outra basta inverter.

Para cadastrar um gateway default em uma fib específica é só fazer:

setfib 1 route add default x.x.x.x  ou qualquer outra rota.

Brincar de habilitar e desabilitar FIB no ipfw pode te ajudar nesse caso 
:)  Existe também uma mesma forma usando pf com as FIBs mas eu uso aqui 
ipfw.




Mais detalhes sobre a lista de discussão freebsd