Boa tarde pessoal,
Tenho percebido que o pessoal do forúm tem muitas dúvidas sobre BGP.
Vamos utilizar este tópico para sanar tais dúvidas..
Seja em Mikrotik, Ubiquiti ou FreeBSD/OpenBgpd.
Abraço!
Versão Imprimível
Boa tarde pessoal,
Tenho percebido que o pessoal do forúm tem muitas dúvidas sobre BGP.
Vamos utilizar este tópico para sanar tais dúvidas..
Seja em Mikrotik, Ubiquiti ou FreeBSD/OpenBgpd.
Abraço!
Arthur,
Vc ta falando no VyOS/EdgeRouter?
Vamos por partes @ArthurBernardes
A única forma de balancear BGP com mais de uma operadora é quebrando prefixos.Citação:
Uma dúvida que sempre tive (ainda não sou expert em "prefix-list", "route-map") é: Caso tenhamos sessões com mais de uma operadora, como procedemos? Balanceamos o tráfego baseado em divisão de prefixos?
Exemplo: 192.168.0.0/23
Operadora A: 192.168.0.0/24
Operadora B: 192.168.1.0/24
Para Conseguirmos ter redundância entre as operadoras basta anunciar pras 2 operadoras o bloco inteiro:
Operadora A: 192.168.0.0/24
Operadora A: 192.168.0.0/23
Operadora B: 192.168.1.0/24
Operadora B: 192.168.0.0/23
Caso as 2 estejam online os prefixos mais específicos serão anunciados, porém se uma das duas cair, será anunciado o mais especifico da operadora que ficar online + anuncio do bloco inteiro.
Arthur,
Sim o mesmo, mas principalmente os Filtros muda muito, não tem route-map no RouterOS, a lógica do Route-MAP é mais dificil do cara aprender como que funciona, mas depois que vc dominar, vai ver que de proporciona mais facilidade... Quanto a dúvida, sim vc pode balancear o tráfego de acordo com os prefixos é a principal forma, supondo que vc tenha um /22, basta mandar 2 /24 para cada operadora, em "Teoria" vc já vai ter o tráfego balanceado, digo teoria pois vc está balanceando a saida dos ips, e não o tráfego em sí. Se vc tem um bloco com 200 clientes, e outro bloco de mesmo tamanho com 30 clientes, logicamente o bloco com mais clientes vai gastar mais banda, com isso, a operadora que vai sair esse prefixo vai ter mais consumo no link. Quanto a weigth e local-pref, eles manipulam o seu upload, lembre-se que em BGP vc somente controla o tráfego que está saindo de vc, ele sai por onde e como vc quiser, mas o download dos clientes, vc não manipula diretamente, existem técnicas para influenciar o tráfego de outros ASN's, com isso vc consegue "piorar" sua visibilidade usando prepend, assim dando prioridade de trafego por uma operadora forçando a outra ser backup ou coisas do gênero.
Sim, prepend somente download, manda o link do artigo pra analizarmos... Dai saberei te responder melhor.
as vezes temos conexão com mais de uma operadora, exemplo: Embratel e GVT.
Mesmo com essa divisão de prefixos, é possível fazer com que o trafego com destino aos AS de determinada operadora saia por aquela operadora?
Exemplo:
Configuramos a faixa 192.168.0.0/24 para sair pela Operadora A
e Configuramos a faixa 192.168.2.0/24 para sair pela Operadora B
Mas o cliente 192.168.2.0/24 quer acessar um site que está da Operadora A...
é possível fazer com que nesse caso, ele saia pela Operadora A?
PS: é facil descobrir os AS de determinada operadora.
Teria como configurar prioridades com Destino a esse AS saia pelo Link dele?
Boa pergunta, nessas condições, somente se vc fechar um peer diretamente com a operadora A, ai da pra vc influenciar.
Para balanceamento não precisa.Citação:
Ainda fico na dúvida do uso dos atributos "weight", "local-preference", "as-path" e "as-path-prepend", mas vou me aprofundar antes de perguntar algo sem noção, rsrrs.
AS-PATH é só o caminho de ASN's que você vai passar pra chegar em determinado anuncio.
o AS-PATH-PREPEND serve para tornar um caminho ruim, dando prioridade ao outro caminho existente.
Exemplo para utilização de PTT.
LINK PTT - SEM PREPEND
LINK OPERADORA A - PREPEND 3
Todos os prefixos que estiverem no PTT irão ter prioridade sobre a OPERADORA A.
É assim que é configurado quando se tem PTT em sua rede.
Do PTT você receberia apenas alguns prefixos que são dos participantes e assim não utilizaria os prefixos anunciados pela OPERADORA A.
sobre minha duvida acima, explicando melhor, é possível fazer o seguinte:
vou usar valores fictícios...
1 - Com destino ao AS100 saia pela OperadoraA
2 - Com destino aos AS200 e AS300 saia pela OperadoraB
3 - Cliente 192.168.0.0/24 saia pela OperadoraA
4 - Cliente 192.168.2.0/24 saia pela OperadoraB
Regra 1 tem prioridade sobre a regra 2, e assim por diante.
Se for possível fazer algo desse tipo, ai conseguiríamos fazer com que o Cliente 192.168.2.0/24 (que está configurado para sair pela OperadoraB), acabe saindo pela OperadoraA quando for com destino a algum AS daquela Operadora.
mesmo se eu conhecer quais o AS dessa operadora?
Não tem como eu definir que com destino a determinado AS saia por operadora X...
Então, eu só consigo definir por qual Operadora meu cliente vai sair, mas não consigo definir para que determinado Destino saia por por determinado Operadora.
Que pena...
Descordando um pouco do meu colega @felipeandrade55.
@AndrioPJ não vou te dar 100% de certeza, pois nunca precisei fazer isso especificamente para um ASN ou PREFIXO.
Mas você pode tentar fazer da seguinte maneira no filtro, exemplo para Mikrotik que é mais comum:
OPERADORA SEM PRIORIDADE! (NÃO QUERO QUE PASSE POR LA)
---Matchers---
Chain: in (entrada) - recepção de prefixos
Prefix: 192.168.0.0/20 - prefixo pretendido
---Actions---
Action: Accept
---BGP Actions---
Set BGP Prepend: 3
-----------------------------------------
OPERADORA COM PRIORIDADE! (SÓ VAI PASSAR POR LA)
---Matchers---
Chain: in (entrada) - recepção de prefixos
Prefix: 192.168.0.0/20 - prefixo pretendido
---Actions---
Action: Accept
---BGP Actions---
Set BGP Prepend: 0
-----------------------------------------
Se eu estiver errado por favor me corrijam...
Alisson,
Ta errado não, voçe colocou certinho, mas o amigo quer destinar um fluxo para um determinado asn, isso nao e possível da forma que ele quer, so da forma que mencionei, se fosse por bloco ip, daria para pensar em alguma coisa via mangle e routing mark...
Como vocês mesmo disseram...
No BGP tem como dividirmos nosso prefixo e mandar cada um sair por uma Operadora diferente.
Exemplo:
faixa 192.168.0.0/24 sai pela OperadoraA
faixa 192.168.2.0/24 sai pela OperadoraB
Contudo, pode acontecer de algum cliente da faixa 192.168.2.0/24 tentar acessar um site que está dentro do AS pertencente a OperadoraA... ai acaba que esse cliente sai pela OperadoraB para depois entrar na OperadoraA...
Aumentando consideravelmente a latência.
A ideia era dar uma prioridade maior a determinado destino...
Fazendo com que, caso o cliente fosse acessar algum IP do AS200(exemplo), ele saia pela OperadoraA.
E nos demais casos (quando não for a algum destino configurado), ele continue saindo pela OperadoraB...
PS: é facil saber os AS de determinada Operadora.
Conhecendo os AS, fica facil saber os IPs dela....
@AndrioPJ da maneira que expliquei la em cima funciona para selecionar prefixos para sairem por determinado link, tornando um link 'ruim' e outro 'bom', dessa forma irá funcionar.
vou verificar uma maneira pra fazer através do ASN e posto aqui ok?
Isso é bem relativo.
Aqui temos 2 operadoras e PTT.
Quando só tinha 2 operadoras o tráfego chegava praticamente 80% em uma operadora e 20% na outra.. nesse sistema de "melhor caminho" do próprio BGP..
Ou seja, se o caminho fosse mais curto por uma das operadoras ele vinha por ali. MASSS nem sempre era a melhor rota..
E nem sempre onde existia um maior fluxo de dados..
Diversas vezes fazendo o tráfego passar pela operadora que daria 2.. 3.. 5 saltos a mais tinha mais vazão que a outra.
Quando pegamos PTT.. 25-35% do tráfego vem de lá, melhor caminho..
Mas tem determinados momentos que simplesmente o tráfego vira para outra operadora..
Não estamos livres de receber "saltos mascarados" .. Operadora também satura link e precisa balancear.
E tem mais, pra descobrir por onde determinado trafego está vindo só com LG.
O upload pode sair por uma operadora e vir por outra..
estou implantando prefix-list e route-map vi alguns exemplos que voce pode colocr o prefix-list dentro do route-map ou seja mesmo que permita no prefix se nagar no route-map ele vi obedecer o route-map?
é sempre necessario colocar o prefix dentro do route-map ou posso usar em uma sessao bgp ambos ou somente o prefix ou route-map?
Dois detalhes: Cuidado com a quebra para balanceamento. Operadoras que usam RPF matam pacotes que tem fluxo de entrada / saída em interfaces diferentes. Outra coisa é que prepend é facilmente morto com localpref. Exemplo: Você manda um prefixo seu com prepend, e bate no roteador da GVT. Só que a política da GVT é dar localpref pelo caminho onde você fez prepend. Conclusão: localpref vai matar seu BGP. No resto, discussão saudável.
Att,
Andrio,
Fazer o ASN sair por um link é fácil (sair = upload). Basta fazer um filtro de IN nesse fornecedor, selecionando por AS-PATH, e aplicar um localpref maior. Esses e outros macetes (vou fazer um merchã) eu ensino no meu treinamento de BGP :)
Att,
@uesleycorrea, caso se utilizasse da forma que expliquei com prepend, tornando um link "ruim" e outro "bom" e ao invés de utilizar PREFIXO, usar AS-PATH funcionária da mesma forma correto?
Veja abaixo:
OPERADORA SEM PRIORIDADE! (NÃO QUERO QUE PASSE POR LA)
---Matchers---
Chain: in (entrada) - recepção de prefixos
---Actions---
Action: Accept
---BGP---
BGP AS Path: 65535
---BGP Actions---
Set BGP Prepend: 3
-----------------------------------------
OPERADORA COM PRIORIDADE! (SÓ VAI PASSAR POR LA)
---Matchers---
Chain: in (entrada) - recepção de prefixos
---BGP---
BGP AS Path: 65535
---Actions---
Action: Accept
---BGP Actions---
Set BGP Prepend: 0
-----------------------------------------
@alissonx, se você fizer o que propôs em cima, vai piorar o download. Prepend influencia diretamente no download. O sair, na linguagem de bgp, relacionado a tráfego, é correlato a upload (do ponto de vista do roteador, o tráfego que sai dele para a Internet, é upload). Nesse caso, um localpref resolveria, porém, jogaria TODO o tráfego para cima do circuito com maior localpref. A minha proposição é de aumentar o localpref SOMENTE para o AS-PATH solicitado. Nesse caso, teria preferência de upload para esse circuito informado.
Espero ter sido claro :). Novamente merchã, rs. Esses conceitos de BGP são ensinados (independentemente de plataforma) em meu treinamento de BGP (que por ser necessário uma solução para os labs, é usado o VyOS). Temos turmas agendadas em Fortaleza, Porto Alegre e em breve em Salvador.
Anexo 56901Anexo 56902
@uesleycorrea concordo, porém a dúvida do amigo la em cima, era pra passar totalmente upload/download por um determinado link.
Por exemplo ASN 65535 192.168.0.0/20, recebo esses anúncios pela Operadora A e B.
Porém quero sair somente pela B, simplesmente seria piorar o link da operadora A (com maior prepend/ sem localpref) e melhorar o link da operadora B (sem prepend, com maior localpref), dessa forma não funcionaria também?
@alissonx, como ele usou a expressão "sair", subentendeu-me que estava falando de upload. Agora, controlar saída / entrada de um prefixo por determinada operadora, simultaneamente, ainda não descobri uma forma eficaz de fazer. Lembrando que localpref maior em determinado circuito direcionará TODO o upload para ele. Prepend sim, balancearia o download desde que políticas de localpref nos destinos não interferissem na sua decisão (ASN pode definir como quer fazer a sua política).
Abraço!
@ijr, São Paulo temos a certificação Oficial, mas não envolve BGP. Somente iniciação ao OSPF. Ela sai no final do mês.
Att,
Anexo 56903
Estarei na próxima semana em Sampa, Curso de BGP com Prof. Adilson Florentino... logo postarei dúvidas tbm.
Ótimo tópico, sempre temos coisas novas para aprender sobre BGP rsrsrs
Amigos, boa tarde.
Também não sou expert em BGP mas administro nosso AS com 2 Operadoras + PTT e já realizei alguns treinamentos no Nic.br sobre o assunto.
Minha opnião, resultado dos meus estudos na qual recentemente tive que me aprofundar mais no assunto, é o seguinte:
Nosso amigo uesleycorrea esta coberto de razão pois:
1° - Quando nosso amigo relata sair, subentende-se que ele quer controla seu tráfego de UpLoad.
2° - Prepend serve para controlar sei tráfego de DownLoad.
Ex.: Seu anuncio sem Prepend chega ao destino pela Operadora A e pela Operadora B com 5 Saltos.
Ao adicionar Prepend 3 na Operadora B, seu anuncio chegará no Destino com 8 Saltos na Operadora B e manterá o 5 Saltos na Operadora A. Dessa maneira ela chegará até seu AS pela Operadora A por ter menos saltos.
Obs.: Prepend é um critério de desempate de rotas, ou seja, se o anúncio for mais específico por uma operadora, por ela que seu DownLoad chegará.
3° - O LocalPreferenc faria o que precisa, onde o maior valor vence sendo o valor default 100.
Logo seria necessária a seguinte regra:
-------------------------------------------------------
---Matchers---
Chain: in (entrada) - recepção de prefixos
---Actions---
Action: Accept
---BGP---
BGP AS Path: 65535
---BGP Actions---
Set BGP LocalPreferenc: 150
-------------------------------------------------------
Dessa maneira suas demais rotas aprendidas terão LocalPreferenc 100 (Default) enquanto as rotas recebidas do AS na qual deseja controlar a saída do UpLoad terá LocalPreferenc 150.
Obs.: O ideal é ter filtros separados para cada operadora para que você possa Setar o LocalPreferenc apenas no anúncio vindo do AS pela operadora escolhida.
Também estou com um tópico de OSPF + eBGP + iBGP, quem quiser pode dar uma olhada para contribuir
https://under-linux.org/showthread.php?t=177628
Saudações
ola ativei meu outro link essa semana consegui coloca os doid bgp pra funcionar mas só que to usando o up de um link, pesquisei não achei mas nada de configuração coloquei os filtros sai beleza, consegui coloca dois /24 pra funcionar cada um né um link mas do to usando o upload do link....
Amigo, para balancear o UpLoad bem básico não é preciso fazer nada ou fazer igual para as duas sessões BGP.
Ex.: vamos supor que você recebe anuncio do google que por suposição é 8.8.8.0/22
Caso na sua operadora A e B você não faça o filtro para aceitar o anuncio apenas você terá as seguintes rotas
8.8.8.0/22 distancia=20 via=OperadoraA
8.8.8.0/22 distancia=20 via=OperadoraB
O BGP não faz LoadBalance como o OSPF, portanto ele elegerá apenas uma rota como ativa que nesse caso o critério de desempate é quantidade de saltos até o destino, ou seja, se o destino estiver acessível pela OperadoraA com 5 saltos e na OperadoraB com 8 Saltos, ele elegerá a OperadoraA como melhor rota.
Isso só será possível caso você receba FullRouting das duas operadoras.
Saudações
Localpref já não resolve Alissonx?
@felipeandrade55 no Openbgpd sim... no mikrotik coloquei uma vez para 2 operadoras... porem nao funcionou..
tive que colocar ECMP para poder funcionar...
@ArthurBernardes pode fazer sim kkkkkkkkkk
eu ja fiz uns 4 ou 5 cursos e tenho dúvidas ainda....
kkkkkk
cada caso é um caso... :beer:
Amigo Alisson, eu também já tenho alguns cursos de BGP, tenho até o MTCINE oficial e cada dia aprendemos mais aqui no fórum...
É isso mesmo @felipeandrade55 e @Arthur Bernardes aprendemos muito aqui no forum... e ninguém sabe de tudo... o Tópico pra postagem de duvidas foi exatamente pra isso...
agrademos também ao @uesleycorrea e ao @godoy por tentar ajudar com as duvidas que todos tivemos..
Agradeço a todos colegas que postaram as duvidas, e tenho humildade de dizer que eu não sei tudo, mas o que eu sei eu ajudo meus colegas do forum e também meus vários clientes de consultoria em BGP e etc ;)
e pra quem viu o post do colega que sabe de tudo e que foi apagado...
É uma pena que nem todo mundo pensa assim e acha que sabe de tudo... se sabe de td pq não está milionário ainda?
Acho que se você sabe de tudo... esta perdendo tempo aqui no forum... monta uma empresa e vai dar cursos ou consultorias, ja que pra você ninguém entende de BGP
Mas talvez o seu problema não seja conhecimento (pois já sabe de tudo), seja falta de educação, respeito e humildade ;)
Podem continuar postando duvidas pessoal, o que estiver ao nosso alcance tentaremos ajudar...
Valeu. Tanto não sei tudo, que sou instrutor de bgp e ospf, e faço todos os cursos de roteamento que puder e conseguir. Cada curso que eu faço, vejo algo de uma ótica diferente. E vivo de aprender, e continuo sem saber nada (quanto mais vazio for um saco, com mais conteúdo pode ser preenchido). Continuamos...
Abraço!
@Arthur Bernardes, vamos pra Fortaleza em março? Rodrigo Meireles e outros amigos do Facebook estarão lá! Te espero lá!
Att,
Pessoal bom dia. minha duvida é seguinte, eu trabalho em um empresa provedor, que ela tem em duas cidades, nos temos AS e bloco de ips, e a operadora a qual nos fornece link, ela também entrega link nas duas cidade, então para trabalha com bgp, agente dividiu o bloco no meio, para as duas empresa provedor, meu problema é: quando a operadora fica OFF em uma das cidade, por os dois provedores meu ser interligado, eu acabo desativando o bloco de ip de um lugar e ativando no outro, como link reserva quando a operador cai, eu gostaria de saber se existe alguma forma de que quando a operadora cair, o BGP funcionar automaticamente pela outra cidade que esta funcionado o link?
exemplo
Anexo 57000
Janilton, para isso vc precisa usar ibgp entre suas cidsdes.
Amigo basta fazer o seguinte anuncio:
Exemplo: 2 Blocos.
Cidade A: 192.168.0.0/23 -> Operadora A
Cidade B: 192.168.2.0/23 -> Operadora B
Ao Anunciar:
OP A: 192.168.0.0/24
192.168.1.0/24
192.168.2.0/23
OP B: 192.168.2.0/24
192.168.3.0/24
192.168.0.0/23
Ao cair uma das operadoras você terá redundância pelos anuncios /23
obrigado pessoal, vou dar uma estudada para colocar em pratica
alissonx, neste caso ai basta so fazer desta forma que funciona ne? eu estava olhando aqui na minha rede, e vi que quando ante de eu entra nesta empresa, o técnico a qual aqui trabalhava dividiu o bloco tudo em barra 24, e quando distribuiu estes bloco para as duas empresas, não teve sequencia na organização, ele pegou uma barra 20 e dividiu tudo no /24, a parti dai começou utilizar nas 2 empresa de forma bagunçada, não seguindo a sequencia, neste caso tenho que organiza tudo para fazer este esquema?
Amigo, pode anunciar assim embaralhado, porem tem que ter o bloco inteiro anunciado nas 2 operadoras.
Os prefixos mais especificos, isto é, /24 terá mais prioridade sobre o /23, /22/ e menores.
Porem pode dar conflito e clientes sairem por operadoras erradas... o correto seria voce arrumar esses IPs bagunçados e se parar /24 sequenciais para cada cidade.
Alissonx bom dia, a respeito do ibgp citado pelo amigo fellipeandrade, daria certo neste caso meu?