[FUG-BR] RES: RES: Quagga + PBR + FreeBSD

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Quarta Novembro 19 11:01:51 BRST 2008


Renato Frederick escreveu:
> Vou voltar ao cenário antigo e  volto a fazer os testes mais a tarde..
> 
> Sobre o prob, você o usou para garantir que caso o link gw_ebt caia, ele
> ainda mande algo para o outro? :-)

Não, era pra balancear mesmo, mas balancear em ratio e não round-robin, 
40% do tráfeggo pra embratel e os 60% que sobram pra GVT. Coloquei 
explicitamente o segundo fwd sem prob pra evitar que caia na tabela de 
roteamento de forma que os 60% poderiam ir tambem pela GVT dependendo da 
decisão do BGP.

> Eu estava querendo usar algo parecido com o " set ip next-hop" do cisco, ele
> antes de enviar o pacote pro GW que eu especifiquei verifica se ele está
> válido ainda(interface UP). Se não estiver, manda de acordo com a tabela de
> roteamento(no caso para a outra operadora.

É esse comportamento que tenho aqui com pf como mencionei. Mas com fwd 
uma entradinha no cron resolve ;) Alias o quagga tem um esquema de 
disparar escript externo por ação se nao me engano, então da pra 
disparar um disable no PBR se o peer ficar down.

> Não uso o openbgpd porque uso também ospf, até uns RIP legados tem aqui...
> =)

OpenOSPF =)

Serio, depois de OpenBGP+OpenOSPF, Zebra nunca mais :) Integração com pf 
e com CARP é perfeita, e tem ainda criptografia e chave entre os 
routers; acaba sendo inutil no caso da troca com os peers mas pra quem 
mantem um ambiente proprio com eBGP e iBGP é garantia de segurança 
equivalente ao desejado BGP-S (que vai levar mais tempo pra cair na 
estrada que o IPv6 heheeh)

> 
>> 01000  3503343728 3411906585417 prob 0.400000 fwd $gw_ebt ip from {
>> $rede1 or $rede2 } to not $rede1,$rede2 in via em0
>> 01100  5255091455 5117945807373 fwd $gw_gvt ip from { $rede1 or $rede2
>> }
>> to not $rede1,$rede2 in via em0
>>
>> E também PBR:
>>
>> 01500      866602      57539533 fwd $gw_ebt ip from $rede3 to not
>> $rede3
>> in via em0
>>
>> O unico detalhe é que faço a alteração do próximo salto na entrada.
>>
>> Fiz isso pra testar, na verdade o que uso é:
>>
>> pf.conf:
>> pass in on $ifi route-to { ($ifebt $gwebt), ($ifgvt $gwgvt) }
>> round-robin from any to route <4230t18881> keep state
>>
>> Sendo um router o 'keep state' é dispensável se quiser fazer PBB por
>> pacote; resolvi fazer por sessão.
>>
>> bgpd.conf:
>> match from any { source-as 4230, transit-as 18881 } set localpref +200
>> match from any { source-as 4230, transit-as 18881 } set rtlabel
>> "4230t18881"
>>
>> Funciona que é uma beleza =)
>>
>>
>>> Quero algo parecido que você, na verdade, o tráfego de entrada já
>> coloquei
>>> prepends para forçar a voltar por um ISP. Agora o tráfego de saída
>> irei
>>> forçar conforme a origem.
>>>
>>> Por exemplo.
>>>
>>> Rede 100.100.0.0/21 sair ISP1
>>> Rede 100.100.8.0/21 sair ISP2
>>>
>>> A volta já está OK.
>>>
>>>
>>> No cisco eu faria um PBR na interface LAN e ele ainda, caso o gateway
>> do
>>> ISP2 estivesse down, faria o tráfego sair pelo ISP1. Com o IPFW
>> também acho
>>> que isto não vai funcionar, se o ISP2 cair ele vai continuar mandando
>> o FWD
>>> para lá...
>> Vai sim, com ipfw você vai precisar dar um "set disable" na regra
>> quando
>> detectar que o peer está down. Facil de qualquer forma, 1 linha no
>> cron.
>> Com pf e rtlabel isso ja funciona sozinho, as sessoes sao removidas
>> quando a rota com o label deixa de existir, e ai match do openbgp não
>> bate mais com nenhuma rota pois se não tem o peer, não tem rota q
>> coincida com a regra.
>>
>>> o route get mostra a rota que o zebra entregou...
>> Deveria funcionar, na minha cabeça não faz sentido não funcionar pq
>> tanto bgpd do quagga quanto do openbgp fazem inclusive as mesmas
>> syscalls pra manipular a tabela de rotas.
>>
>> --
>> Patrick Tracanelli
>>
>> FreeBSD Brasil LTDA.
>> Tel.: (31) 3516-0800
>> 316601 em sip.freebsdbrasil.com.br
>> http://www.freebsdbrasil.com.br
>> "Long live Hanin Elias, Kim Deal!"
>>
>> -------------------------
>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> 
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


-- 
Patrick Tracanelli

FreeBSD Brasil LTDA.
Tel.: (31) 3516-0800
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd