Objetivos
- Conocer las características básicas del protocolo de enrutamiento dinámico BGP
- Conocer la operación básica de BGP
- Comprender los comandos de configuración de BGP para IPv6
Fundamentos de Multiprotocol BGP
El protocolo BGP (Border Gateway Protocol) es un protocolo utilizado por proveedores de servicio de Internet (ISP) para el intercambio información de enrutamiento entre diferentes sistemas autónomos (AS), los ISP intercambian sus tablas de enrutamiento global a través de actualizaciones del protocolo BGP lo cual permite una comunicación entre todos los ISP formando la Internet.
BGP utiliza atributos junto a los prefijos para la implementación de políticas de enrutamiento entre ISP, los atributos pueden ser manipulado por cada Router para selecciona un siguiente salto más conveniente para los prefijos aprendidos.
Los atributos de BGP consistente en valores que cada prefijo hereda al ser anunciado por BGP hacia otros Router, los tres atributos que todo prefijo hereda por defecto son:
Atributo
|
Descripción
|
AS-Path
|
Listado de sistemas autónomos en la ruta para llegar al prefijo
|
Next-Hop
|
Dirección IP del Router que esta publicado el prefijo
|
Origin
|
Determina si el prefijo fue publicado por un BGP o fue redistribuido
|
Tabla 1 atributos de BGP
BGP utiliza como protocolo de transporte TCP y un intercambio de mensajes por medio de mensajes Unicast y es catalogado como un protocolo de vector de ruta lo que significa que no usa el ancho de banda para la toma de decisiones como los protocolos de enrutamiento de estado de enlace, BGP utiliza los atributos para la selección de la mejor ruta o mejor siguiente salto
A continuación, se muestran las características técnicas del protocolo BGP para la familia de direccionamiento IPv6
Característica
|
Valor
|
Estándar
|
RFC 2858
|
Tipo de protocolo
|
Vector de ruta
|
Protocolo de transporte
|
TCP
|
Distancia Administrativa Externa
|
20
|
Distancia Administrativa Interna
|
200
|
Tabla 2 características de BGP
Operación de MP-BGP
MP-BGP utiliza para su activación un numero de sistema autónomo, el número de sistema autónomo es un valor numérico único asignado a cada ISP, todos los Router de un ISP deben tener habilitado BGP con el mismo número de sistema autónomo (AS), también requiere definir un valor de router-id el cual tiene el formato de una dirección IPv4, el valor debe ser único en cada Router y puede contener cualquier valor.
Todas las configuraciones de establecimiento de sesión BGP se deben realizar en el modo de configuración global de BGP y configuraciones de anuncio de prefijos y políticas que afectan los atributos de los prefijos deben realizarse dentro de la familia de direccionamiento IPv6
BGP no utiliza direcciones Multicast para el descubrimiento de vecinos por lo tanto todas las vecindades en BGP se deben establecer por medio del envío de mensajes Unicast lo que significa que debemos declarar manualmente la IP de nuestro vecino dentro del proceso de BGP para podes enviar mensajes Unicast de establecimiento de sesión
BGP utiliza los siguientes tipos de mensajes para su operación
Mensajes
|
Descripción
|
OPEN
|
Utilizado para el establecimiento de vecindades
|
KEEPALIVE
|
Utilizado para mantener las conexiones entre peer vivas
|
NOTIFICATION
|
Utilizado para notificar a los vecinos de un error de sesión
|
Tabla 3 mensajes utilizados por BGP
BGP establece dos tipos de vecindades las cuales tendrán funciones diferentes
Atributo
|
Descripción
|
Internas (iBGP)
|
Vecindades entre Router con el mismo sistema autónomo
|
Externas (eBGP)
|
Vecindades entre Router con diferentes sistemas autónomos
|
Tabla 4 tipos de vecindades de BGP
iBGP permite el establecimiento de vecindades con Router remotos ya que establece un TTL de 255, para el establecimiento de vecindades iBGP se debe utilizar el direccionamiento IP de una loopback, para lograr esta tarea todos los Router previamente deben conocer las direcciones IPv6 de todos los Router, por lo tanto, la sesión iBGP requieren que existe un protocolo IGP previo a la confirmación de BGP este puede ser OSPFv3 o EIGRP nombrado.
Para las sesiones eBGP el protocolo establece un TTL con valor de uno lo que significa que todas las vecindades se deben establecer por medio de la dirección IP del enlace físico que interconecta a los dos Router, las vecindades deben ser punto a punto.
Implementación de sesiones iBGP para IPv6
A continuación, se muestran los comandos de configuración utilizados para MP-BGP en Cisco IOS-XE
Descripción
|
Comando
|
Crear el proceso
|
router bgp <AS>
|
Activar MP-BGP
|
no bgp default ipv4-unicast
|
Establecer un router-id
|
bgp router-id <id>
|
Definir la IP de la loopback del vecino y su sistema autónomo
|
neighbor <IPv6> remote-as <AS>
|
Definir el uso de la loopback para el establecimiento de la sesión iBGP
|
neighbor <IPv6> update-source <lnt>
|
Ingresar a la familia de direccionamiento
|
address-family ipv6 unicast
|
Activar nuestro vecino para el intercambio de direcciones IPv6
|
address-family ipv6 unicast
neighbor <IPv6> activate
|
Anunciar prefijos hacia los vecinos BGP
|
address-family ipv6 unicast
network <prefijo>
|
Anunciar una red de resumen
|
address-family ipv6 unicast
aggregate <prefijo> summary-only
|
Tabla 5 comandos de configuración de BGP para IPv6
En la tabla 5 se muestran los comandos mínimos para la implementación BGP
A continuación, se muestra la topología base para la implementación de BGP para IPv6 en Cisco IOS-XE
Figura 1 topología de BGP para IPv6 en Ciso IOS-XE
La figura 1 muestra la topología para la implementación de BGP para IPv6 en Cisco IOS-XE, las computadoras tienen el direccionamiento IPv6 mostrado en la imagen, los Switches de acceso SW1 y SW3 no cuentan con ninguna configuración únicamente las que tiene por defecto al encenderlos, el SW2 de acceso cuenta con la configuración de dos VLAN para los Host
a continuación, mostramos la configuración básica y direccionamiento de cada uno de los tres Router IOS-XE
.Router
|
configuración
|
R3
|
hostname R3
!
ipv6 unicast-routing
!
interface g0/0
no shutdown
ipv6 enable
ipv6 address fe80::3 link-local
ipv6 address 2001:DB8:C::1/64
!
interface g0/1
no shutdown
ipv6 enable
ipv6 address fe80::3 link-local
ipv6 address 2002:13::3/64
|
R1
|
hostname R1
!
ipv6 unicast-routing
!
interface loopback 0
ipv6 enable
ipv6 address 2100::1111/64
ospfv3 1 ipv6 area 0
!
interface g0/0
no shutdown
!
interface g0/0.11
encapsulation dot1q 11
ipv6 enable
ipv6 address fe80::1 link-local
ipv6 address 2001:DB8:A::1/64
!
interface g0/0.12
encapsulation dot1q 12
no shutdown
ipv6 enable
ipv6 address fe80::1 link-local
ipv6 address 2001:DB8:B::1/64
!
interface g0/1
no shutdown
ipv6 enable
ipv6 address fe80::1 link-local
ipv6 address 2002:13::1/64
!
interface g0/2
no shutdown
ipv6 enable
ipv6 address fe80::1 link-local
ospfv3 1 ipv6 area 0
!
router ospfv3 1
router-id 1.1.1.1
address-family ipv6 unicast
|
R2
|
hostname R2
!
ipv6 unicast-routing
!
interface loopback 0
ipv6 enable
ipv6 address 2100::2222/64
ospfv3 1 ipv6 area 0
!
interface g0/0
no shutdown
ipv6 enable
ipv6 address fe80::2 link-local
ipv6 address 2001:DB8:D::1/64
!
interface g0/1
no shutdown
ipv6 enable
ipv6 address fe80::2 link-local
ospfv3 1 ipv6 area 0
!
router ospfv3 1
router-id 2.2.2.2
address-family ipv6 unicast
|
Tabla 6 configuración inicial de Router
A continuación, la configuración básica del proceso iBGP entre R1 y R2
Router
|
configuración
|
R1
|
router bgp 10
no bgp default ipv4-unicast
bgp router-id 1.1.1.1
!
neighbor 2100::2222 remote-as 10
neighbor 2100::2222 update-source loopback 0
!
address-family ipv6 unicast
neighbor 2100::2222 activate
network 2001:DB8:A::/64
network 2001:DB8:B::/64
|
R2
|
router bgp 10
no bgp default ipv4-unicast
bgp router-id 2.2.2.2
!
neighbor 2100::1111 remote-as 10
neighbor 2100::1111 update-source loopback 0
!
address-family ipv6 unicast
neighbor 2100::1111 activate
network 2001:DB8:D::/64
|
Tabla 7 configuración básica de iBGP
A continuación, la configuración básica del proceso eBGP entre R3 y R1
Router
|
configuración
|
R3
|
router bgp 20
no bgp default ipv4-unicast
bgp router-id 3.3.3.3
!
neighbor 2002:13::1 remote-as 10
!
address-family ipv6 unicast
neighbor 2002:13::1 activate
network 2001:DB8:C::/64
|
R1
|
router bgp 10
neighbor 2002:13::3 remote-as 20
!
address-family ipv6 unicast
neighbor 2002:13::3 activate
|
Tabla 8 configuración básica de eBGP
En la figura 8 observamos la tabla de vecinos de BGP de R1 donde podemos observar una vecindad iBGP hacia R2 y una vecindad eBGP hacia R3
Figura 17.2 verificación de vecindades BGP
En la figura 4 observamos la tabla de rutas aprendidas en R3 por parte de su vecino eBGP R1
Figura 4 verificación de prefijos aprendidos en R1
Figura 4 verificación de prefijos aprendidos en R1
Figura 5 verificación por ping desde PC3 hacia todos los Host
Como podemos observar los tres Router han intercambiado sus prefijos locales y tenemos comunicación desde la PC3 hacia el resto de Host logrando comunicación entre cada sitio
Como un mecanismo de optimización adicional podemos agregar un resumen de prefijos en R1 para que únicamente anuncie un prefijo de resumen en lugar de dos prefijos individuales, la idea es anunciar el prefijo 2001:DB8:A::/47 en lugar de los prefijos 2001:DB8:A::/64 y 2001:DB8:B::/64 con el objetivo de reducir las entradas en la tabla de enrutamiento
La tabla 9 muestra la configuración del resumen de prefijos realizado en R1, esta configuración le dice a R1 que debe anunciar el prefijo de resumen 2001:DB8:A::/47.
Router
|
configuración
|
R1
|
router bgp 10
address-family ipv6 unicast
aggregate-address 2001:DB8:A::/47 summary-only
|
Tabla 9 resumen de prefijos en BGP
En la siguiente figura 10 observamos como R3 ahora logra ver el prefijo resumen de R1 en lugar de los dos prefijos LAN individuales y en la siguiente
Figura 6 revisión de tabla de enrutamiento en R3
Figura 7 revisión de tabla de enrutamiento en R2.