[FUG-BR] Freebsd + Quagga + BGP

André Gustavo N. Lopes andre em mrx.com.br
Segunda Agosto 26 20:19:17 BRT 2013


Boa noite Renato,

Eu conheço PBR, mas o que eu quis dizer, aproveitando o seu exemplo é que se vc pegar um /24 e anunciar com mais local-preference para o peer1
escolher outro /24 e anunciar com mais local-preference para o peer2, e assim por diante, vai ter o mesmo resultado. Gerenciando o local-preference por prefixo, não "por link".

Se o link3 ficar saturado, você pode manobrar o tráfego tirando o local-preference dos prefixos que você tinha ajustado anteriormente.
O balanceamento de tráfego para rotas com o mesmo custo (ECMP), depende de suporte no S.O. e isso é uma outra novela.
No linux me disseram que funciona bem, no FreeBSD eu tive 1 milhão de problemas habilitando RADIX_MPATH e full routing com quagga. 
No OpenBSD eu já usei, e funciona bem. 

PBR é muito bacana, mas acho que não é pré requisito para funcionar o que o rapaz ali precisa =)

Abraço!

On Mon, Aug 26, 2013 at 06:39:18PM -0300, Renato Frederick wrote:
> On 8/26/2013 10:28 AM, André Gustavo N. Lopes wrote:
> > Bom dia Renato, eu não entendi muito bem a necessidade de PBR, não é só uma questão de ajustar os local-preference ?
> >
> > On Sun, Aug 25, 2013 at 04:44:12PM -0300, Renato Frederick wrote:
> 
> André,
> 
> Boa Noite!
> 
> Sobre o PBR, imagine isto
> 
> link1 = 10mb
> link2 = 10mb
> link3 = 10mb
> 
> Imagine, pra simplificar que você tem 3 blocos /24.
> 
> redeA 10.0.0.0/24
> redeB 10.0.1.0/24
> redeC 10.0.2.0/24
> 
> PBR seria o seguinte: Você falar que todo o tráfego da redeA sai pelo 
> link1, todo trafego da redeB sai pelo link2 e todo tráfego da redeC pelo 
> link3.
> 
> Agora, imagine que o link3 está 100% usado, mas o link1 está 20% só.
> 
> Se você for no BGP e falar que o link1 tem local-preference maior, TODAS 
> as 3 redes, redeA, redeB, redeC, começaram a siar pelo link1. Então você 
> não resolveu, apenas transferiu o problema do link3 pro link1.
> 
> Com o PBR você faria o seguinte:
> 
> Analisaria quais IP estão usando, por exemplo, 40% do link3.
> 
> Daí, jogaria estes IP e SOMENTE eles para o link1.
> 
> Então, o link1 que tinha 20%, vai ter agora 20 + 40 = 60% de uso.
> e o link3, que tinha 100%, vai ter só 60%.
> 
> então ficou balanceado, 60% link1, 60% link3.
> 
> Porém, imagina que o link1 caiu. sua regra está manual, você teria que 
> entrar no firewall e mudar a regra.
> 
> Com o PF + OPENBGPD você faz o seguinte que resolve.
> 
> pega todas as redes(full rouring) aprendidas pelo BGP do link1 e poe na 
> table do PF <link1>
> 
> Faz o mesmo com o link2 e 3.
> 
> E daí faz uma regra de fwd:
> 
> pass out quick route-to ( em0 ip.remoto ) from { 10.0.0.0/24 } to 
> <link1> keep state
> 
> assim, se o link1 cair, a table <link1> estará vazia(já que o openbgpd 
> não vai popular ela).
> 
> isto é o que o cisco faz no bgp dele, você usa o bgp + estado da 
> interface(fisica ou loopback). Se a interface cai, aquela origem é 
> roteada para outra, usando pesos.
> 
> então, em resumo, local-prefence redireciona TODAS as redes de origem, 
> manipula só destino. Usando este esquema, você  manipula a origem 
> também(com o route-to) e destino(com local-preference, weight, etc).
> 
> No passado eu até perguntei isto aqui, acho que foi até o Patrick que 
> falou algo sobre "BATMAN", olha o link abaixo:
> 
> http://www.fug.com.br/historico/html/freebsd/2008-11/msg00477.html
> 
> Esta ideia dele de usar o pf + openbgpd foi muito legal, e me ajudou 
> demais!!
> 
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : não disponível
Tipo  : application/pgp-signature
Tam   : 490 bytes
Descr.: Digital signature
Url   : http://www.fug.com.br/historico/html/freebsd/attachments/20130826/e4a4c2fd/attachment.bin 


Mais detalhes sobre a lista de discussão freebsd