[FUG-BR] Roteamento pela origem

Wanderson Tinti wanderson em bsd.com.br
Sábado Janeiro 23 21:37:01 BRST 2010


2010/1/22 Leandro Alves <ldralves em gmail.com>

> Pessoal,
>
> Sou novo com FreeBSD e estou com o problema onde conforme desenho abaixo eu
> tenho minha rede interna 10.10.1.0, minha outra rede 10.9.1.0 em um
> roteador
> com FreeBSD e PF ligados a dois gateways GW1 com squid transparente e GW2.
> O
> default gateway do roteador é o GW1, em função disso minhas redes 10.9.1.0
> e
> 10.10.1.0 saem pelo GW1 e tenho configurado algumas rotas para destinos
> saindo pelo GW2. Mas eu preciso que o que passar no roteador tendo como
> origem a rede 10.9.1.0, saia pelo GW2.
>
> Sei que no Debian, Ubuntu e outros tem o IPTABLES utilizando a tabela
> MANGLE
> para marcação de pacotes. Alguém tem alguma solução para FreeBSD.
> Grato,
>
> Leandro
>

Leandro,

Como o Nilson disse, você pode utilizar a tabelas Fib com IPFW, se preferir
pode usar o PF também, veja um exemplo;

#setfib 0 route add default 189.76.1.1     (tabela 0)
#setfib 1 route add default 189.76.2.2     (tabela 1)

pass in quick on $int_if1 inet proto tcp from 10.10.1.0/24 to any port
80,443 keep state rtable 0
pass in quick on $int_if2 inet proto tcp from 10.9.1.0/24 to any port 80,443
keep state rtable 1
pass out on $ext_if1 proto tcp from any to any keep state rtable 0
pass out on $ext_if2 proto tcp from any to any keep state rtable 1

Você pode usar até a opção reply-to para conexões entrante, de modo que tudo
que entrar pelo link1 volte por ele.

Use o pftop e tcpdump para se certificar que está funcionando.

Não esqueça de compilar seu kernel com a opção 'options ROUTETABLES=2', para
usar duas tabela Fib.

Acho que é isso ai.

Boa noite.

Wanderson Tinti


Mais detalhes sobre a lista de discussão freebsd