Balanceamento de carga de entrada BGP do mesmo roteador ISP

10

Eu tenho dois roteadores BGP para o DIA com um problema com um provedor, pois os dois links para esse provedor aterram no mesmo roteador SP. Minhas transferências de Ethernet através de dois links MetroE separados de outro provedor em nome do meu provedor principal, já que o provedor já possuía fibra para o prédio. Se alguém também pudesse esclarecer a terminologia do ISP quando um provedor transportar serviços para outro, eu agradeceria. Os dois circuitos terminam o L3 com o mesmo roteador SP; portanto, meus dois roteadores fazem o mesmo ponto com o mesmo roteador provedor. Estou atribuído espaço PA a partir deste SP.

Não tenho problemas com o balanceamento de carga de saída (ou o compartilhamento de carga, pois acho que seria mais preciso tecnicamente). Na saída, eu faço ECLB no firewall, que escolhe um dos dois roteadores de borda com base em um hash srcip / dstip .

Essa operadora em particular - esqueça a operadora que apenas fornece transporte - não é o tráfego de entrada do balanceamento de carga de um roteador nos dois links para os meus dois roteadores, e esta é a direção em que poderíamos usar o BW de 5x50Mb combinado que possuímos contratado. O SP vê caminhos iguais para nós para a mesma rede anunciada e, basicamente, apenas o primeiro caminho que eles aprendem é o que se torna o melhor caminho.

Listei o que estou considerando como minhas opções abaixo para obter tráfego nos dois circuitos e gostaria de saber o que os especialistas acham melhor, principalmente se você estiver familiarizado com os POPs de SP típicos . Como eu tenho um contrato, alterar o contrato no momento não é uma opção para reconstruí-lo de outra maneira.

Permitir maximum-paths 2na rede SP corrige isso, mas isso se aplica a todos os seus clientes BGP no mesmo roteador que não acho que eles permitirão. Pelo menos uma opção que funcione envolve rotas estáticas, mas não é isso que eu preferiria.

Abaixo estão as opções que considerei na minha ordem de preferência.

  1. Permitir BGPmaximum-paths 2 no roteador SP (afeta todos os clientes BGP hospedados no local) para que / 24 seja usado quando anunciado nos dois circuitos

  2. Divida meu / 24 ao meio e anuncie / 25s separados em cada link junto com o / 24. O SP declarou recentemente que uma comunidade não documentada poderia ser usada para aceitar prefixos> / 24. Isso requer a manipulação do NAT no meu firewall para usar endereços globais nos dois / 25's, já que a maioria do tráfego agora é destinada a nós em apenas alguns endereços no / 25 inferior.

  3. As rotas estáticas do SP para / 24 para forçar o balanceamento de carga com BGP / 24 (rota flutuante).

  4. As rotas estáticas do SP para / 25s para forçar o ECLB com o prefixo BGP / 24 (no RIB, mas não usado, a menos que haja falha de / 25s).

Eu acho que anunciar os / 25s no BGP é a melhor opção que eu descobri recentemente só é possível com a comunidade não documentada do SP, mas existem outras opções que não considerei ou preocupações com pacotes fora de ordem com algumas dessas opções ?

Esse é um tipo de problema de balanceamento de carga reverso que a maioria das pessoas pergunta com o BGP.

generalnetworkerror
fonte
11
Os caminhos máximos podem funcionar mesmo se você estiver com hospedagem múltipla em dois roteadores diferentes, caso cada PE de entrada na rede da operadora precise ter os caminhos máximos ativados e precise receber os dois caminhos do iBGP.
usar o seguinte comando
Tive minhas dúvidas quando escrevi ... Q revisto.
generalnetworkerror

Respostas:

8

Eu pediria 'caminhos máximos' (geralmente é chamado de ECMP em padrões e documentos, não em ECLB). E se o ECMP não for inicial, faça o fallback para o seu plano / 25.

Outras siglas que não consegui descobrir imediatamente foram DIA (acesso dedicado à Internet?) E SOP (procedimento operacional padrão?). Não tenho certeza se esses acrônimos são realmente tão universais que devem ser usados ​​na troca de pilhas sem pelo menos o texto flutuante para resolvê-los.

ytti
fonte
Obrigado, eu sabia que o ECLB não parecia certo, mas não conseguia me lembrar do ECMP no topo da minha cabeça. E você está certo nos TLA's. ;-) DIA é um termo universal que todos os ISPs de camada 1 que usei na última década usam em contratos de serviço de Internet por links diretos. O SOP também é universal, mas vou dizer a você que foi muito difícil usá-lo em um discpline repleto de siglas, como NE.
generalnetworkerror
6

Falando sobre terminologia, você realmente já disse transporte, que eu acho que é esse tipo de serviço mais comumente referido. Às vezes, as pessoas também se referem a ele como uma "amarração".

Você tem outra opção de mover a interface do seu lado para o mesmo roteador e configurar o eBGP multihop *** entre você e seu provedor. Sim, você perde redundância do seu lado, mas do lado oposto, ele vai para o mesmo roteador de qualquer maneira, então esse é um ponto discutível. Isso também elimina a necessidade de o provedor fazer o multipath do eBGP, caso não esteja disposto a fazer isso com você (mas eu descobri que, em geral, a maioria dos provedores está bem em ativar isso, se já não estiver ativado) .

Se isso não parecer plausível, anunciar dois / 25 é provavelmente a sua melhor aposta, a menos que o seu provedor esteja disposto a ligar maximum-paths(novamente, assumindo que eles ainda não o fizeram).

*** Fazer o balanceamento de carga com o eBhop Multihop no seu cenário envolverá o seguinte:

  1. Mova a segunda conexão ISP para um roteador ao seu lado.
  2. Você e o provedor configuram update-source Loopback0em cada uma de suas sessões - você não precisa usar Lo0 se não quiser, desde que concordem com o endereço para o qual a rota estática está.
  3. Configure rotas estáticas 2x / 32 para os loopbacks uns dos outros por meio de interfaces conectadas (ou IPs do próximo salto) - é assim que o balanceamento de carga funciona, pois na verdade é apenas ECMP.
  4. Configure ebgp-multihop 2nas sessões uns dos outros (você deseja manter esse número o menor possível para evitar o seqüestro de sessão TCP).

Voila, balanceamento de carga. Isso também é escalável por interface, pois a adição de uma nova porta envolve a adição de outra interface e uma rota estática.

John Jensen
fonte
Você pode elaborar como o operador começará a enviar tráfego pelos dois links, movendo o eBGP no mesmo roteador no final do cliente, se o caminho múltiplo não estiver ativado.
usar o seguinte comando
Claro, vou modificar minha resposta.
John Jensen
A rigor, isso não requer multi-hop ou migração para o mesmo roteador. Requer apenas que você altere o próximo salto do protocolo BGP para ser o mesmo nos pares e no provedor do eBGP que aceitam 'nexthop remoto' e rota estática para eles.
ytti
Não sei bem o que você quer dizer. Usando ebgp multihop para balanceamento de carga desta forma não requerem conexões paralelas entre as mesmas 2 roteadores.
John Jensen
Você não precisa mover as sessões existentes do eBGP. Você pode simplesmente redefinir o próximo salto no mapa de rotas para algum endereço, o mesmo no eBGP (você nem precisa configurar o IP em nenhum lugar). Contanto que o provedor aceite esse salto seguinte modificado (precisa alternar no IOS e JunOS) e configure as rotas estáticas como você explicou, ele funcionará perfeitamente sem multihop ou mover o eBGP no cliente.
usar o seguinte comando
3

A solução ideal aqui é o BGP ECMP via maximum-paths 2- no entanto, direi que "aceitar rotas> / 24" que exige uma tag da comunidade soa como uma estupidez épica - assumindo que você é um cliente deles, eles devem aceitar o que você der a eles. número máximo de prefixos e simplesmente filtre a saída de acordo com quaisquer acordos que eles tenham com seus outros pares. Se um dos fluxos que eu tiver me colocar em um barco semelhante em relação a não fazer ECMP, sempre espero poder anunciar qualquer tamanho de prefixo que eu desejar a um provedor de transporte público e pedir que eles o usem.

Portanto, como eles não parecem muito competentes, para equilibrar o tráfego, não retire seu prefixo / 24 - deixe como está e garanta que suas rotas / 25 sejam marcadas com NO_EXPORT, além do que o seu provedor supostamente exige que seus / 25s não vazem acidentalmente do AS (não que, provavelmente, chegue muito longe).

Uma última observação - certifique-se de que essa "comunidade não documentada" não seja de fato uma comunidade de buracos negros, porque isso seria ... você sabe, ruim .

Olipro
fonte
Isso é de um conhecido nível 1, e todos os ISPs onde eu fiz o BGP não permitem gt 24como política geral. Eu planejava definir NO_EXPORT nos / 25s.
generalnetworkerror
todos os meus upstream transmitem > / 24 de mim, eles simplesmente não o exportam. Na verdade, eu utilizo esse efeito para desviar o tráfego, uma vez que eles não fazem ECMP.
Olipro
além disso, isso seria terrível no caso de um ataque - se você não puder anunciar um / 32 ao seu upstream com uma comunidade de buracos negros, estará com problemas.
Olipro
Eles permitem anúncios de qualquer tamanho com a comunidade certa.
generalnetworkerror