De acuerdo

Adoção de BGP Free Core para simplificação do plano de controle

Última respuesta en. 31, 2021 08:07:13 513 7 4 0 0

        Adoção de BGP Free Core para simplificação do plano de controle




        Em um ISP de trânsito, no qual a rede já possua um certo nível de complexidade,  é comum encontrarmos um cenário onde os roteadores de borda e core precisem participar das sessões iBGP para poderem efetuar a troca de suas tabelas de roteamento.

          Nesse cenário, tanto os prefixos originados pelo próprio AS quanto os oriundos da internet irão ser conhecidos por todos os roteadores da rede, como podemos ver a seguir:


iBGP

        

        Nessa topologia os roteadores do core necessitam estabelecer sessões iBGP entre sí para que possam compartilhar suas tabelas de roteamento, a configuração de BGP precisa existir em todos, mesmo que apenas dois deles estejam de fato conectados a operadoras terceiras, caso contrário não será possível a troca das tabelas de roteamento oriundas da internet entre nossos roteadores de borda (PE).


Agora pense comigo, se nossos roteadores do core (P) não tiverem performance suficiente, já estiverem com alta carga de trabalho ou se simplesmente não for do nosso interesse que esses roteadores tenham conhecimento das rotas compartilhadas entre nossas bordas, o que fazer? Não podemos simplesmente eliminar as sessões iBGP, isso ocasionará o descarte do tráfego, além de não ser recomendado importar as rotas BGP para dentro do IGP do nosso AS, então novamente o que fazer?


Bem, aqui chegamos numa situação onde fica justificado o uso do BGP Free Core, basicamente eliminamos o BGP do core da nossa rede nos permitindo economizar com equipamentos, uma vez que não precisamos mais processar a tabela com rotas oriundas da internet no nosso core, reduzimos a utilização de recursos de memória e cpu, variações nas rotas oriundas da internet não precisam ser processadas pelo core, entre outras vantagens.


Com o uso do MPLS+LDP+IGP podemos fechar a sessão iBGP diretamente entre as Loopbacks dos nossos roteadores de borda, mantendo no núcleo da nossa rede apenas as tabelas do IGP com nossas próprias rotas, vejamos abaixo como configurar o recurso:


BGP Free Core


#

sysname PE-1

#

router id 1.1.1.1

#

mpls lsr-id 1.1.1.1

mpls

#

mpls ldp

#

interface GigabitEthernet0/0/0

 ip address 192.168.0.1 255.255.255.252

#

interface GigabitEthernet0/0/1

 ip address 172.16.0.1 255.255.255.252

 ospf network-type p2p

 mpls

 mpls ldp

#

interface GigabitEthernet0/0/2

 ip address 172.16.0.14 255.255.255.252

 ospf network-type p2p

 mpls

 mpls ldp

#

interface LoopBack0

 ip address 1.1.1.1 255.255.255.255

#

bgp 100

 peer 3.3.3.3 as-number 100

 peer 3.3.3.3 connect-interface LoopBack0

 peer 192.168.0.2 as-number 200

 peer 192.168.0.2 connect-interface GigabitEthernet0/0/0

 #

 ipv4-family unicast

  undo synchronization

  network 192.168.0.0

  peer 3.3.3.3 enable

  peer 3.3.3.3 next-hop-local

  peer 192.168.0.2 enable

#

ospf 1

 area 0.0.0.0

  network 1.1.1.1 0.0.0.0

  network 172.16.0.0 0.0.0.3

  network 172.16.0.12 0.0.0.3

#

ip route-static 192.168.0.0 255.255.255.0 NULL0

#

route recursive-lookup tunnel

#

return


#

sysname P-1

#

router id 2.2.2.2

#

mpls lsr-id 2.2.2.2

mpls

#

mpls ldp

#

interface GigabitEthernet0/0/1

 ip address 172.16.0.2 255.255.255.252

 ospf network-type p2p

 mpls

 mpls ldp

#

interface GigabitEthernet0/0/2

 ip address 172.16.0.5 255.255.255.252

 ospf network-type p2p

 mpls

 mpls ldp

#

interface LoopBack0

 ip address 2.2.2.2 255.255.255.255

#

ospf 1

 area 0.0.0.0

  network 2.2.2.2 0.0.0.0

  network 172.16.0.0 0.0.0.3

  network 172.16.0.4 0.0.0.3

#

return


#

sysname P-2

#

router id 4.4.4.4

#

mpls lsr-id 4.4.4.4

mpls

#

mpls ldp

#

interface GigabitEthernet0/0/1

 ip address 172.16.0.10 255.255.255.252

 ospf network-type p2p

 mpls

 mpls ldp

#

interface GigabitEthernet0/0/2

 ip address 172.16.0.13 255.255.255.252

 ospf network-type p2p

 mpls

 mpls ldp

#

interface LoopBack0

 ip address 4.4.4.4 255.255.255.255

#

ospf 1

 area 0.0.0.0

  network 4.4.4.4 0.0.0.0

  network 172.16.0.8 0.0.0.3

  network 172.16.0.12 0.0.0.3

#

return


#

sysname PE-2

#

router id 3.3.3.3

#

mpls lsr-id 3.3.3.3

mpls

#

mpls ldp

#

interface GigabitEthernet0/0/0

 ip address 192.168.1.1 255.255.255.252

#

interface GigabitEthernet0/0/1

 ip address 172.16.0.9 255.255.255.252

 ospf network-type p2p

 mpls

 mpls ldp

#

interface GigabitEthernet0/0/2

 ip address 172.16.0.6 255.255.255.252

 ospf network-type p2p

 mpls

 mpls ldp

#

interface LoopBack0

 ip address 3.3.3.3 255.255.255.255

#

bgp 100

 peer 1.1.1.1 as-number 100

 peer 1.1.1.1 connect-interface LoopBack0

 peer 192.168.1.2 as-number 300

 peer 192.168.1.2 connect-interface GigabitEthernet0/0/0

 #

 ipv4-family unicast

  undo synchronization

  network 192.168.1.0

  peer 1.1.1.1 enable

  peer 1.1.1.1 next-hop-local

  peer 192.168.1.2 enable

#

ospf 1

 area 0.0.0.0

  network 3.3.3.3 0.0.0.0

  network 172.16.0.8 0.0.0.3

  network 172.16.0.4 0.0.0.3

#

ip route-static 192.168.1.0 255.255.255.0 NULL0

#

route recursive-lookup tunnel

#

return




           Verifique a configuração do cenário discutido, ela é objetiva e relativamente simples, conseguimos manter a atualização das tabelas de roteamento entre nossos roteadores de borda sem que os roteadores do core necessitem conhecer essas rotas, limitando-os a realizar o encaminhamento do tráfego e de trocar atualizações de roteamento apenas do IGP da nossa rede.

    Vejamos as tabelas de roteamento de cada roteador da nossa rede:



<PE-1>dis ip routing-table

Route Flags: R - relay, D - download to fib

------------------------------------------------------------------------------

Routing Tables: Public

         Destinations : 18       Routes : 19       


Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface


        1.1.1.1/32  Direct  0    0           D   127.0.0.1       LoopBack0

        2.2.2.2/32  OSPF    10   1           D   172.16.0.2      GigabitEthernet

0/0/1

        3.3.3.3/32  OSPF    10   2           D   172.16.0.2      GigabitEthernet

0/0/1

                    OSPF    10   2           D   172.16.0.13     GigabitEthernet

0/0/2

        4.4.4.4/32  OSPF    10   1           D   172.16.0.13     GigabitEthernet

0/0/2

       20.0.0.0/22  EBGP    255  0          RD   192.168.0.2     GigabitEthernet

0/0/0

       30.0.0.0/22  IBGP    255  0          RD   3.3.3.3         GigabitEthernet

0/0/1

                    IBGP    255  0          RD   3.3.3.3         GigabitEthernet

0/0/2

      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0

      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0

     172.16.0.0/30  Direct  0    0           D   172.16.0.1      GigabitEthernet

0/0/1

     172.16.0.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet

0/0/1

     172.16.0.4/30  OSPF    10   2           D   172.16.0.2      GigabitEthernet

0/0/1

     172.16.0.8/30  OSPF    10   2           D   172.16.0.13     GigabitEthernet

0/0/2

    172.16.0.12/30  Direct  0    0           D   172.16.0.14     GigabitEthernet

0/0/2

    172.16.0.14/32  Direct  0    0           D   127.0.0.1       GigabitEthernet

0/0/2

    192.168.0.0/24  Static  60   0           D   0.0.0.0         NULL0

    192.168.0.0/30  Direct  0    0           D   192.168.0.1     GigabitEthernet

0/0/0

    192.168.0.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet

0/0/0

    192.168.1.0/24  IBGP    255  0          RD   3.3.3.3         GigabitEthernet

0/0/1

                    IBGP    255  0          RD   3.3.3.3         GigabitEthernet

0/0/2


<P-1>dis ip routing-table 

Route Flags: R - relay, D - download to fib

------------------------------------------------------------------------------

Routing Tables: Public

         Destinations : 12       Routes : 13       


Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface


        1.1.1.1/32  OSPF    10   1           D   172.16.0.1      GigabitEthernet

0/0/1

        2.2.2.2/32  Direct  0    0           D   127.0.0.1       LoopBack0

        3.3.3.3/32  OSPF    10   1           D   172.16.0.6      GigabitEthernet

0/0/2

        4.4.4.4/32  OSPF    10   2           D   172.16.0.1      GigabitEthernet

0/0/1

                    OSPF    10   2           D   172.16.0.6      GigabitEthernet

0/0/2

      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0

      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0

     172.16.0.0/30  Direct  0    0           D   172.16.0.2      GigabitEthernet

0/0/1

     172.16.0.2/32  Direct  0    0           D   127.0.0.1       GigabitEthernet

0/0/1

     172.16.0.4/30  Direct  0    0           D   172.16.0.5      GigabitEthernet

0/0/2

     172.16.0.5/32  Direct  0    0           D   127.0.0.1       GigabitEthernet

0/0/2

     172.16.0.8/30  OSPF    10   2           D   172.16.0.6      GigabitEthernet

0/0/2

    172.16.0.12/30  OSPF    10   2           D   172.16.0.1      GigabitEthernet

0/0/1


<P-2>dis ip routing-table 

Route Flags: R - relay, D - download to fib

------------------------------------------------------------------------------

Routing Tables: Public

         Destinations : 12       Routes : 13       


Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface


        1.1.1.1/32  OSPF    10   1           D   172.16.0.14     GigabitEthernet

0/0/2

        2.2.2.2/32  OSPF    10   2           D   172.16.0.14     GigabitEthernet

0/0/2

                    OSPF    10   2           D   172.16.0.9      GigabitEthernet

0/0/1

        3.3.3.3/32  OSPF    10   1           D   172.16.0.9      GigabitEthernet

0/0/1

        4.4.4.4/32  Direct  0    0           D   127.0.0.1       LoopBack0

      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0

      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0

     172.16.0.0/30  OSPF    10   2           D   172.16.0.14     GigabitEthernet

0/0/2

     172.16.0.4/30  OSPF    10   2           D   172.16.0.9      GigabitEthernet

0/0/1

     172.16.0.8/30  Direct  0    0           D   172.16.0.10     GigabitEthernet

0/0/1

    172.16.0.10/32  Direct  0    0           D   127.0.0.1       GigabitEthernet

0/0/1

    172.16.0.12/30  Direct  0    0           D   172.16.0.13     GigabitEthernet

0/0/2

    172.16.0.13/32  Direct  0    0           D   127.0.0.1       GigabitEthernet

0/0/2


<PE-2>dis ip routing-table 

Route Flags: R - relay, D - download to fib

------------------------------------------------------------------------------

Routing Tables: Public

         Destinations : 18       Routes : 19       


Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface


        1.1.1.1/32  OSPF    10   2           D   172.16.0.10     GigabitEthernet

0/0/1

                    OSPF    10   2           D   172.16.0.5      GigabitEthernet

0/0/2

        2.2.2.2/32  OSPF    10   1           D   172.16.0.5      GigabitEthernet

0/0/2

        3.3.3.3/32  Direct  0    0           D   127.0.0.1       LoopBack0

        4.4.4.4/32  OSPF    10   1           D   172.16.0.10     GigabitEthernet

0/0/1

       20.0.0.0/22  IBGP    255  0          RD   1.1.1.1         GigabitEthernet

0/0/1

                    IBGP    255  0          RD   1.1.1.1         GigabitEthernet

0/0/2

       30.0.0.0/22  EBGP    255  0          RD   192.168.1.2     GigabitEthernet

0/0/0

      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0

      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0

     172.16.0.0/30  OSPF    10   2           D   172.16.0.5      GigabitEthernet

0/0/2

     172.16.0.4/30  Direct  0    0           D   172.16.0.6      GigabitEthernet

0/0/2

     172.16.0.6/32  Direct  0    0           D   127.0.0.1       GigabitEthernet

0/0/2

     172.16.0.8/30  Direct  0    0           D   172.16.0.9      GigabitEthernet

0/0/1

     172.16.0.9/32  Direct  0    0           D   127.0.0.1       GigabitEthernet

0/0/1

    172.16.0.12/30  OSPF    10   2           D   172.16.0.10     GigabitEthernet

0/0/1

    192.168.0.0/24  IBGP    255  0          RD   1.1.1.1         GigabitEthernet

0/0/1

                    IBGP    255  0          RD   1.1.1.1         GigabitEthernet

0/0/2

    192.168.1.0/24  Static  60   0           D   0.0.0.0         NULL0

    192.168.1.0/30  Direct  0    0           D   192.168.1.1     GigabitEthernet

0/0/0

    192.168.1.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet

0/0/0




            Outra grande vantagem aqui é que nossos trânsitos não identificam como exatamente o tráfego é encaminhado dentro da nossa rede, uma vez que nos testes de traceroute eles veem apenas os roteadores que fazem parte do BGP, podemos alterar essa característica quando quisermos, mas não é o caso nesse momento.


<CE-200>tracert 30.0.0.1


 traceroute to  30.0.0.1(30.0.0.1), max hops: 30 ,packet length: 40,press CTRL_C

 to break 


 1 192.168.0.1 30 ms  50 ms  50 ms 


 2  *  *  * 


 3 172.16.0.9 110 ms  160 ms  110 ms 


 4 192.168.1.2 < AS=100 > 150 ms  180 ms  170 ms 

<CE-200>

<CE-200>ping 30.0.0.1

  PING 30.0.0.1: 56  data bytes, press CTRL_C to break

    Reply from 30.0.0.1: bytes=56 Sequence=1 ttl=252 time=190 ms

    Reply from 30.0.0.1: bytes=56 Sequence=2 ttl=252 time=160 ms

    Reply from 30.0.0.1: bytes=56 Sequence=3 ttl=252 time=150 ms

    Reply from 30.0.0.1: bytes=56 Sequence=4 ttl=252 time=180 ms

    Reply from 30.0.0.1: bytes=56 Sequence=5 ttl=252 time=130 ms


  --- 30.0.0.1 ping statistics ---

    5 packet(s) transmitted

    5 packet(s) received

    0.00% packet loss

    round-trip min/avg/max = 130/162/190 ms


<CE-300>tracert 20.0.0.1


 traceroute to  20.0.0.1(20.0.0.1), max hops: 30 ,packet length: 40,press CTRL_C

 to break 


 1 192.168.1.1 70 ms  10 ms  30 ms 


 2  *  *  * 


 3 172.16.0.14 100 ms  90 ms  110 ms 


 4 192.168.0.2 < AS=100 > 130 ms  170 ms  150 ms 

<CE-300>

<CE-300>ping 20.0.0.1

  PING 20.0.0.1: 56  data bytes, press CTRL_C to break

    Reply from 20.0.0.1: bytes=56 Sequence=1 ttl=252 time=130 ms

    Reply from 20.0.0.1: bytes=56 Sequence=2 ttl=252 time=150 ms

    Reply from 20.0.0.1: bytes=56 Sequence=3 ttl=252 time=140 ms

    Reply from 20.0.0.1: bytes=56 Sequence=4 ttl=252 time=170 ms

    Reply from 20.0.0.1: bytes=56 Sequence=5 ttl=252 time=240 ms


  --- 20.0.0.1 ping statistics ---

    5 packet(s) transmitted

    5 packet(s) received

    0.00% packet loss

    round-trip min/avg/max = 130/166/240 ms


        Não procurei abordar aqui todas as possibilidades do BGP Free Core ou de filtros e policies necessárias para manipulação de rotas, o objetivo é apenas apresentar o recurso e toda a simplificação do plano de controle que ele nos proporciona, se faltou algo que o leitor julgue necessário peço encarecidamente que deixem nos comentários e farei o possível para corrigir a publicação.

        

              A topologia utilizada foi baseada em um cenário que possuo atualmente em operação, espero que ele seja de alguma ajuda para vocês.



La publicación está sincronizada con: Publicações em português

  • x
  • convención:

LuizPuppin
HCIE VIP Author Publicado 2021-1-29 16:00:18
Parabéns meu amigo. Excelente publicação.
Ver más
  • x
  • convención:

KleitonSilva
KleitonSilva Publicado 2021-1-29 16:33 (0) (0)
Muitíssimo obrigado mestre Puppin, é realmente uma grande honra um elogio seu.  
LuizPuppin
LuizPuppin Responder KleitonSilva  Publicado 2021-1-29 16:42 (0) (0)
Como sugestão, você poderia incrementar esse de Free Core com pelo menos um Route Reflector, que iria auxiliar muito em ambientes maiores que os desse simulado.
E poderia fazer também um outro mostrando como seria passar IPv6 nesse ambiente, onde o backbone inteiro seria v4 e transportaria o v6 por label...  
LuizPuppin
LuizPuppin Responder LuizPuppin  Publicado 2021-1-29 16:49 (0) (0)
Só ai já tem mais dois artigos pra publicar. kkk  
user_4116813
Publicado 2021-1-29 18:00:09
Parabéns,Kleiton. Muito bem direto ao ponto, eu já tinha ouvido falar sobre esse termo BGP FREE CORE mas não sabia exatamente oque era. nesse caso tenho essa solução implementada aqui na rede também, onde fechamos peer ldp entre todos os POPs porém apenas as bordas BGP( onde as operadoras nos abordam) fecham sessão iBGP entre si. Obrigado pela explicação do conceito
Ver más
  • x
  • convención:

KleitonSilva
Publicado 2021-1-31 08:07:13
Publicado por user_4116813 a las 2021-01-29 04:00 Parabéns,Kleiton. Muito bem direto ao ponto, eu já tinha ouvido falar sobre esse termo BGP FREE CO ...
Muito obrigado meu amigo.
Ver más
  • x
  • convención:

user_4000619
user_4000619 Publicado 2021-2-4 00:30 (0) (0)
buena publicacion  

Comentar

Debe iniciar sesión para responder la publicación Inicio de sesión | Registrarse
Responder

Aviso: Para garantizar sus legítimos derechos e intereses, la comunidad y los terceros no publicarán contenido que pueda generar riesgos legales a las partes, por ejemplo, pornografía, contenido político, contenido sobre juego, consumo y tráfico de drogas, así como contenido que viole los derechos de propiedad intelectual de terceros, por ejemplo, secretos comerciales, marcas, derechos de autor, patentes y privacidad personal. No comparta su cuenta ni su contraseña con terceros. Todas las operaciones realizadas usando su cuenta se considerarán como sus acciones y todas las consecuencias que estas acciones generen serán responsabilidad suya. Para obtener información detallada, consulte la “ Contrato de usuario.”

My Followers

¡Ingresa y disfruta de todos los beneficios para los miembros!

Inicia sesión

Bloquear
¿Estás seguro de bloquear a este usuario?
Los usuarios en lista negra no pueden comentar tus publicaciones,no pueden mencionarte,no pueden enviarte mensajes privados.
Recordatorio
Agrega tu número de teléfono para obtener un bono de invitación.