2009/11/12 Cleyton Bertolim <cberto...@gmail.com> > Pessoal, estou quebrando a cabeca aqui com FIB´s..... > Tenho dois link´s internet, um GVT e outro VIRTUA, e estou tentando > fazer funcionar a rota para os dois link´s com FIB mas nao esta dando > certo. Nao sei onde estou errando... Ja procurei um monte na net > tambem e nada.... > > As maquinas da rede, quando saem pelo squid para a internet, saem > todas usando o gateway 10.0.0.1, que é o GVT, e quando eu desligo esse > link cai tudo, as maquinas nao saem pelo link da Net Virtua, que é o > gateway 172.16.0.1. > > Se alguem puder dar uma luz....indicar onde estou errando.... eu > agradeco!!!! > > > > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >
Cleyton, Boa tarde. Se você utilizar o Proxy Squid nesse servidor você terá problemas. O Squid vai querer sair sempre pela rota default. Para testar e analisar o funcionamento, primeiro desabilite o Squid e trabalhe somente com as regras de Filtros e Nat. Logo, análise a saídas dos pacotes usando o pftop (pressione o número 1 para ver por qual gateway as requisições estão saindo), depois configure o Squid em outro servidor. Se você não tiver outra maquina disponível você pode querer usar a opção tcp_outgoing_address. Cheguei a fazer alguns testes simples usando a tabela FIB com PF. Para escolher por qual tabela FIB os pacotes vai sair, usei a opção rtable <N>. Era visível que as maquina da rede interna (10.0.200.0/24 (Porta 80 e 443)) saia pelo gateway (192.168.168.253), que é o link2. Depois fiz um teste com o SSH saindo pelo link1, até aí tava funcionado. Parei de testar e acabei esquecendo disso. Dei uma vasculhada e achei as regras, veja: #/etc/pf.conf ext_if1="le0" ext_if2="le2" int_if1="le1" local_net="10.0.200.0/24" wwwport="{80, 443}" dnsport="{53}" ftpport="{20, 21}" set skip on lo0 scrub in all nat on $ext_if1 proto tcp from $int_if1:network to any -> $ext_if1 nat on $ext_if2 proto tcp from $int_if1:network to any -> $ext_if2 block in all block out all pass in quick on lo0 pass out quick on lo0 pass out on $int_if1 from any to $local_net pass in quick on $int_if1 from $local_net to $int_if1 pass in quick on $int_if1 inet proto tcp from $local_net to any port $wwwport keep state rtable 1 pass in quick on $int_if1 inet proto udp from $local_net to any port $dnsport keep state rtable 1 pass in quick on $int_if1 inet proto icmp from $local_net to any keep state pass in quick on $int_if1 inet proto tcp from $local_net to any port 22 keep state rtable 0 pass out quick on $ext_if2 inet proto tcp from $local_net to any port $wwwport keep state rtable 1 pass out quick on $ext_if2 inet proto udp from $local_net to any port $dnsport keep state rtable 1 pass out quick on $ext_if2 inet proto icmp from $local_net to any keep state rtable 1 pass out quick on $ext_if1 inet proto tcp from $local_net to any port 22 keep state rtable 0 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 pass out on $ext_if1 proto { udp, icmp } from any to any keep state rtable 0 pass out on $ext_if2 proto { udp, icmp } from any to any keep state rtable 1 #setfib 0 route add default 192.168.254.254 #setfib 1 route add default 192.168.168.253 #setfib 0 traceroute 4.2.2.1 #setfib 1 traceroute 4.2.2.1 #pfctl -F all && pfctl -nf /etc/pf.conf && pfctl -NRef /etc/pf.conf Rede Lan End: 10.0.200.0/24 GW: 10.0.200.1 DNS:10.0.200.1 #tcpdump -i le0 -v -p tcp #tcpdump -i le2 -v -p tcp Faças os testes necessários e poste na lista o resultado, vai ajudar muito. Bom final de semana para todos! Atenciosamente Wanderson Tinti ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd