Entradas

Configuración BGP – eBGP y anunciar rutas con Huawei

Descripción

Continuando con nuestra serie de artículos referidos al protocolo BGP, en esta entrada comentamos teóricamente las principales diferencias entre iBGP y eBGP y prácticamente como se anuncian rutas con los routers Huawei.

Diferencias clave entre EBGP and IBGP :

EBGP IBGP
1 EBGP significa External Border Gateway Protocol. IBGP significa Internal Border Gateway Protocol.
2 Funciona entre routers BGP en un sistema autónomo diferente. Funciona entre routers BGP en el mismo sistema autónomo.
3 Las rutas de EBGP recibidas de un par de EBGP pueden ser anunciadas a los pares de EBGP e IBGP. Las rutas del IBGP recibidas de un par del IBGP no pueden ser anunciadas a otro par del IBGP sino que pueden ser anunciadas a un par del EBGP.
4 No requiere una topología de malla completa. Requiere topología de malla completa.
5 Usado entre routers de una organización o entre la organización y el ISP. Se utiliza dentro de la misma organización.
6 Utiliza el atributo as-path para prevenir los bucles. Usa BGP Split Horizon como prevención de bucles.
7 Sus peers por defecto se establecen con TTL = 1 Sus peers por defecto se establecen con TTL = 255
8 En los peers de EBGP, los atributos como la preferencia local no se envían. En los peers del IBGP, se envían atributos como la preferencia local.
9. Cuando la ruta se anuncia a un peer de EBGP, el next-hop se cambia al router local. Cuando se anuncia la ruta a un peer del IBGP, el siguiente salto permanece sin cambios.
10. Una ruta aprendida de un peer de eBGP será anunciada de vuelta a otro vecino de iBGP o eBGP por defecto. Una ruta aprendida de un peer iBGP no se anunciará a otro vecino del iBGP por defecto.

La distancia administrativa depende de cada fabricante. En los routers Huawei, la distancia administrativa es 255 tanto para eBGP como para iBGP.

Comenzaremos el proceso BGP y estableceremos la relación de peering entre dispositivos. En base a las características descritas en la comparación en el punto 9 y 10, el siguiente paso es el anunciar y/o aprender rutas. En este artículo enseñaremos de forma sencilla como anunciar una ruta que ya tenemos instalada en nuestra tabla de rutas. En entradas posteriores configuraremos políticas de filtrado, obligatorias para el buen funcionamiento del eBGP.

Objetivos de la práctica

  • Establecer una relación eBGP.
  • Anunciar rutas en un external BGP.

Topología

BGP-Anunciar_una_ruta_externa

Configuración paso a paso

<Huawei>system-view
[Huawei]sysname R1
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]ip address 10.200.1.1 30
[R1-GigabitEthernet0/0/0]quit
#
<Huawei>system-view
[Huawei]sysname R2
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.200.1.2 30
[R2-GigabitEthernet0/0/0]quit
#
[R1]bgp 64501
[R1-bgp]router-id 10.0.1.1
[R1-bgp]peer 10.200.1.2 as-number 64502
[R1-bgp]quit
#
[R2]bgp 64502
[R2-bgp]router-id 10.0.2.2
[R2-bgp]peer 10.200.1.1 as-number 64501
[R2-bgp]quit
#
[R1]interface LoopBack 0
[R1-LoopBack0]ip address 10.0.1.1 32
[R1-LoopBack0]quit
[R1]bgp 64501
[R1-bgp]network 10.0.1.1 32
[R1-bgp]quit
#
[R2]interface LoopBack 0
[R2-LoopBack0]ip address 10.0.2.2 32
[R2-LoopBack0]quit
[R2]bgp 64502
[R2-bgp]network 10.0.2.2 32
[R2-bgp]quit

Paso 1. Asignar direcciones IP´s.

R1

<Huawei>system-view
[Huawei]sysname R1
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]ip address 10.200.1.1 30
[R1-GigabitEthernet0/0/0]quit

R2

<Huawei>system-view
[Huawei]sysname R2
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.200.1.2 30
[R2-GigabitEthernet0/0/0]quit

Paso 2. Montar un eBGP entre 2 routers.

R1

[R1]bgp 64501 (1)
[R1-bgp]router-id 10.0.1.1 (2)
[R1-bgp]peer 10.200.1.2 as-number 64502 (3)
[R1-bgp]quit
1 Activamos y accedemos del BGP..
2 Asignamos como router-id el 10.0.1.1.
3 Definimos como peer al 10.200.1.2 cuyo AS es 64502.

R2

[R2]bgp 64502 (1)
[R2-bgp]router-id 10.0.2.2 (2)
[R2-bgp]peer 10.200.1.1 as-number 64501 (3)
[R2-bgp]quit
1 Activamos y accedemos del BGP.
2 Asignamos como router-id el 10.0.2.2.
3 Definimos como peer al 10.200.1.1 cuyo AS es 64501.

Paso 3. Anunciar una ruta.

R1

[R1]interface LoopBack 0 (1)
[R1-LoopBack0]ip address 10.0.1.1 32 (2)
[R1-LoopBack0]quit
[R1]bgp 64501 (3)
[R1-bgp]network 10.0.1.1 32 (4)
[R1-bgp]quit
1 Nos metemos en el interfaz LoopBack 0.
2 Asignamos la IP 10.0.1.1 con máscara /32.
3 Accedemos al BGP.
4 Anunciamos la red 10.0.1.1/32.

R2

[R2]interface LoopBack 0 (1)
[R2-LoopBack0]ip address 10.0.2.2 32 (2)
[R2-LoopBack0]quit
[R2]bgp 64502 (3)
[R2-bgp]network 10.0.2.2 32 (4)
[R2-bgp]quit
1 Nos metemos en el interfaz LoopBack 0.
2 Asignamos la IP 10.0.2.2 con máscara /32.
3 Accedemos al BGP.
4 Anunciamos la red 10.0.2.2/32.

En este ejemplo nuestros routers han anunciado y aprendido su dirección de loopback al router vecino recíprocamente.

Comprobación

Para asegurarnos de que se ha realizado correctamente la configuración, comprobamos los peers ejecutando desde R2 el siguiente comando display bgp peer:

huawei-ebgp-display-bgp-peer

 

Posteriormente, ejecutamos desde R2 el siguiente comando display bgp routing-table:

huawei-bgp-display-bgp-routing-table

 

A continuación, ejecutamos desde R2 el siguiente comando display ip routing-table:

huawei-display-ip-routing-table

 

Conclusión

Como final de la explicación, adjuntamos las capturas de nuestro escenario. Con esto se demuestra el uso del puerto 179 TCP para el intercambio de mensajes. Una vez establecida la relación entre peers, en los KEEPALIVE Message es donde se produce el anuncio de las rutas. En este caso, la red anunciada es la de loopback, que se ha aprendido mediante un protocolo de ruteo interno IGP.

pcap-huawei-ebgp-lo0

Con esta explicación, hemos visto que anunciar y aprender rutas por BGP es muy sencillo. Cuando queremos anunciar diferentes redes, se hace fundamental cuales rutas tenemos que importar y cuales rutas tenemos que exportar. Para eso entran en juego diferentes atributos del protocolo BGP así como la correcta configuración de los filtros de entrada y salida.

En el Máster en Arquitectura de Redes de Operadores de Telecomunicaciones, en el curso HCIP Routing&Switching y en las certificaciones oficiales de MikroTik impartidas en loopback0 (MTCINE), explicamos en profundidad los diferentes tipos de ruteos dinámicos, así como sus pros y contras, escenarios de uso y configuraciones.

BGP – iBGP con Huawei

¿Por qué usar BGP?

A medida que nuestros alumnos asistentes al Máster en Arquitectura de Redes de Operadores de Telecomunicaciones aprenden protocolos de enrutamiento dinámicos, nos suelen hacer esta pregunta. ¿Por qué usar BGP?
Y la respuesta es: «because BGP means Big Guys Protocol»

BGP (Border Gateway Protocol) es el protocolo por el cual funciona internet. Este único motivo debería bastar para que desees profundizar acerca de su funcionamiento. Sin embargo, existen varios argumentos que sustentan el uso de BGP como protocolo de ruteo dinámico.

Destaca que es un protocolo simple de implementar y operar y que utiliza una métrica sencilla para las distancias. Además, por definición, oculta las políticas locales de las externas. También cabe destacar que es un protocolo maduro y que no necesita de gran coordinación entre organizaciones para compartir rutas.

Con esta entrada del blog, comenzamos con una serie de configuraciones utilizando el protocolo BGP. Empezaremos gradualmente con configuraciones básicas e iremos integrando diferentes fabricantes.

Breve descripción de BGP

RFC 1654 definió el Border Gateway Protocol (BGP) como un protocolo de enrutamiento que proporciona escalabilidad, flexibilidad y estabilidad de la red. Cuando se creó BGP, la principal consideración de diseño fue la conectividad entre organizaciones en redes públicas, como Internet, o en redes privadas dedicadas. BGP es el único protocolo que se utiliza para intercambiar información de las redes en Internet. BGP no anuncia actualizaciones incrementales ni actualiza los anuncios de redes como sí hace OSPF o IS-IS. BGP prefiere la estabilidad dentro de la red, porque un link flap (cambio brusco del enlace) podría dar lugar a recalcular miles de rutas.

BGP considera un sistema autónomo (AS) como un conjunto de routers controlados por una sola organización. Este AS puede tener dispositivos comunicando rutas dentro de él mismo (lo que se denomina IGP) y con otros AS (denominado como EGP). Si además, este intercambio de rutas se produce mediante el protocolo BGP, este procedimiento se conoce como iBGP o eBGP (internal BGP o external BGP).

Si habéis leído el RFC al comienzo de este artículo, y como destacamos anteriormente, estamos hablando de un protocolo maduro, lo que ha permitido que sea ampliamente conocido, implantado, discutido, optimizado, etc. Para profundizar en el funcionamiento de este protocolo, tenemos los siguientes documentos:

■ RFC 4271, A Border Gateway Protocol 4 (BGP-4)
■ RFC 4456, BGP Route Reflection – An Alternative to Full Mesh Internal BGP (iBGP)
■ RFC 4278, Standards Maturity Variance Regarding the TCP MD5 Signature Option (RFC 2385) and the BGP-4 Specification
■ RFC 4277, Experience with the BGP-4 Protocol
■ RFC 4276, BGP-4 Implementation Report
■ RFC 4275, BGP-4 MIB Implementation Survey
■ RFC 4274, BGP-4 Protocol Analysis
■ RFC 4273, Definitions of Managed Objects for BGP-4
■ RFC 4272, BGP Security Vulnerabilities Analysis
■ RFC 3392, Capabilities Advertisement with BGP-4
■ RFC 5065, Autonomous System Confederations for BGP
■ RFC 2918, Route Refresh Capability for BGP-4
■ RFC 1772, Application of the Border Gateway Protocol in the Internet Protocol (BGP-4) using SMIv2
■ RFC 4893, BGP Support for Four-octet AS Number Space

Sí. Es un protocolo «simple», ¿verdad?.

No es tan complicado de implementar como veremos a continuación.

Descripción del Laboratorio

Cuando un BGP se ejecuta entre dos peers (vecinos) con el mismo AS, se considera un iBGP (Internal BGP).

Para ello, en esta práctica, se han configurado un iBGP entre routers con el mismo AS con el fin de mostrar como es el funcionamiento y la configuración de un iBGP.

Objetivos de la práctica

  • Conocer el funcionamiento de iBGP.
  • Montar un iBGP entre 2 routers.
  • Verificar la configuración realizada.

Topología

 

Script de Configuración

<Huawei>system-view
[Huawei]sysname R1
[R1]interface GigabitEthernet 0/0/0 
[R1-GigabitEthernet0/0/0]ip address 10.200.1.1 30 
[R1-GigabitEthernet0/0/0]quit
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.100.1 24
[R1-GigabitEthernet0/0/1]quit
[R1]interface loopback 0
[R1-LoopBack0]ip address 10.0.1.1 32
[R1-LoopBack0]quit
#
<Huawei>system-view
[Huawei]sysname R2
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.200.1.2 30
[R2-GigabitEthernet0/0/0]quit
[R2]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1]ip address 172.16.100.2 24
[R2-GigabitEthernet0/0/1]quit
[R2]interface LoopBack 0
[R2-LoopBack0]ip address 10.0.2.2 32
[R2-LoopBack0]quit
#
<Huawei>system-view
[Huawei]sysname R3
[R3]interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1]ip address 192.168.100.3 24
[R3-GigabitEthernet0/0/1]quit
[R3]interface LoopBack 0
[R3-LoopBack0]ip address 10.0.3.3 32
[R3-LoopBack0]quit
#
<Huawei>system-view
[Huawei]sysname R4
[R4]interface GigabitEthernet 0/0/1
[R4-GigabitEthernet0/0/1]ip address 172.16.100.4 24
[R4-GigabitEthernet0/0/1]quit
[R4]interface LoopBack 0
[R4-LoopBack0]ip address 10.0.4.4 32
[R4-LoopBack0]quit
#
[R1]bgp 64501
[R1-bgp]router-id 10.0.1.1
[R1-bgp]peer 192.168.100.3 as-number 64501
[R1-bgp]network 10.0.1.1 32
[R1-bgp]quit
#
[R3]bgp 64501
[R3-bgp]router-id 10.0.3.3
[R3-bgp]peer 192.168.100.1 as-number 64501
[R3-bgp]network 10.0.3.3 32
[R3-bgp]quit
#
[R2]bgp 64502
[R2-bgp]router-id 10.0.2.2
[R2-bgp]peer 172.16.100.4 as-number 64502
[R2-bgp]network 10.0.2.2 32
[R2-bgp]quit
#
[R4]bgp 64502
[R4-bgp]router-id 10.0.4.4
[R4-bgp]peer 172.16.100.2 as-number 64502
[R4-bgp]network 10.0.4.4 32
[R4-bgp]quit

Configuración paso a paso

1. Asignar direcciones IP

 

R1

<Huawei>system-view
[Huawei]sysname R1
[R1]interface GigabitEthernet 0/0/0 
[R1-GigabitEthernet0/0/0]ip address 10.200.1.1 30 
[R1-GigabitEthernet0/0/0]quit
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.100.1 24
[R1-GigabitEthernet0/0/1]quit
[R1]interface loopback 0
[R1-LoopBack0]ip address 10.0.1.1 32
[R1-LoopBack0]quit

R2

<Huawei>system-view
[Huawei]sysname R2
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.200.1.2 30
[R2-GigabitEthernet0/0/0]quit
[R2]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet0/0/1]ip address 172.16.100.2 24
[R2-GigabitEthernet0/0/1]quit
[R2]interface LoopBack 0
[R2-LoopBack0]ip address 10.0.2.2 32
[R2-LoopBack0]quit

R3

<Huawei>system-view
[Huawei]sysname R3
[R3]interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1]ip address 192.168.100.3 24
[R3-GigabitEthernet0/0/1]quit
[R3]interface LoopBack 0
[R3-LoopBack0]ip address 10.0.3.3 32
[R3-LoopBack0]quit

R4

<Huawei>system-view
[Huawei]sysname R4
[R4]interface GigabitEthernet 0/0/1
[R4-GigabitEthernet0/0/1]ip address 172.16.100.4 24
[R4-GigabitEthernet0/0/1]quit
[R4]interface LoopBack 0
[R4-LoopBack0]ip address 10.0.4.4 32
[R4-LoopBack0]quit

2. Montar un iBGP entre el R1 y R3

 

R1

[R1]bgp 64501 (1)
[R1-bgp]router-id 10.0.1.1 (2)
[R1-bgp]peer 192.168.100.3 as-number 64501 (3)
[R1-bgp]network 10.0.1.1 32 (4)
[R1-bgp]quit
1 Activación del BGP.
2 Asignamos como router-id el 10.0.1.1.
3 Definimos como peer al 192.168.100.3 cuyo AS es el 64501.
4 Anumciamos la red 10.0.1.1/32.

R3

[R3]bgp 64501 (1)
[R3-bgp]router-id 10.0.3.3 (2)
[R3-bgp]peer 192.168.100.1 as-number 64501 (3)
[R3-bgp]network 10.0.3.3 32 (4)
[R3-bgp]quit
1 Activación del BGP.
2 Asignamos como router-id el 10.0.3.3.
3 Definimos como peer al 192.168.100.1 cuyo AS es el 64501.
4 Anunciamos la red 10.0.3.3/32.

3. Montar un iBGP entre el R2 y R4

 

R2

[R2]bgp 64502 (1)
[R2-bgp]router-id 10.0.2.2 (2)
[R2-bgp]peer 172.16.100.4 as-number 64502 (3)
[R2-bgp]network 10.0.2.2 32 (4)
[R2-bgp]quit
1 Activación del BGP.
2 Asignamos como router-id el 10.0.2.2.
3 Definimos como peer al 172.16.100.4 cuyo AS es el 64502.
4 Anunciamos la red 10.0.2.2/32.

R4

[R4]bgp 64502 (1)
[R4-bgp]router-id 10.0.4.4 (2)
[R4-bgp]peer 172.16.100.2 as-number 64502 (3)
[R4-bgp]network 10.0.4.4 32 (4)
[R4-bgp]quit
1 Activación del BGP.
2 Asignamos como router-id el 10.0.4.4.
3 Definimos como peer al 172.16.100.2 cuyo AS es el 64502.
4 Anunciamos la red 10.0.4.4/32.

Comprobación

→ Para asegurarnos de que se ha configurado iBGP correctamente, ejecutamos el siguiente comando display ip routing-table:

Esta imagen muestra un display ip routing-table del R3
Figura 1. Esta imagen muestra un display ip routing-table del R3

 

Esta imagen muestra un display ip routing-table del R4

Figura 2. Esta imagen muestra un display ip routing-table del R4

Conclusión

Como has podido comprobar, con muy pocos comandos ya tenemos a nuestros routers Huawei compartiendo rutas dentro del mismo AS mediante el protocolo BGP. Esta sencilla configuración, con muy pocos cambios, nos permitirá también compartir rutas entre distintos AS.

Seguro que ahora eres capaz de implementar y distinguir entre que routers consideramos iBGP y cuales consideramos eBGP.

Huawei iBGP

 

En la captura resultante de esta configuración se puede comprobar el intercambio de mensajes entre los dos routers involucrados en la negociación de este iBGP.