WIKI CNOC
BGP (Border Gateway Protocol)
Error wiki: El nombre de la sección no puede repetirse 'Ejemplo de Configuración EBGP'
Error wiki: El nombre de la sección no puede repetirse 'Descripción:'
Error wiki: El nombre de la sección no puede repetirse 'Configuración Ejemplo:'
Error wiki: El nombre de la sección no puede repetirse 'Explicación:'
Tabla de contenidos
Resumen
1.1. 1. Protocolo de Vector de Ruta
1.1.1. Ejemplo de Configuración
1.2. 2. Conexión Basada en TCP
1.2.1. Ejemplo de Configuración EBGP
1.3.1. Ejemplo de Configuración IBGP
1.4. 4. Escalabilidad
1.4.1. Ejemplo de Agregación de Rutas
1.4.2. Ejemplo de Filtrado de Rutas
2. Tipos de BGP con Ejemplos de Configuración [Editar]
2.2.1. Descripción:
2.2.2. Configuración Ejemplo:
2.5. 4. BGP Multicast y BGP MPLS VPN
2.5.1. Configuración Ejemplo para MPLS VPN:
3. Establecimiento de Sesiones BGP [Editar]
3.1. Resumen del Proceso de Sesión BGP
3.2. 1. Idle
3.3. 2. Connect
3.4. 3. Active
3.5. 4. OpenSent
3.6. 5. OpenConfirm
3.7. 6. Established
4.2. 1. AS-PATH (Path de Sistema Autónomo)
4.3. 2. NEXT-HOP
4.4. 3. LOCAL_PREF (Preferencia Local)
4.5. 4. MED (Multi-Exit Discriminator)
4.6. 5. COMMUNITY
5. Configuración Básica de BGP [Editar]
5.3. Configuración de Router Reflector (RR)
5.4. Notas Finales
6. Configuración Avanzada con MPLS VPN [Editar]
6.1. Configuración BGP en el PE
6.1.1. 1. Configuración de la Interfaz
6.1.2. 2. Configuración de la VPN
6.1.3. 3. Configuración de BGP
6.1.4. 4. Política de Rutas en el PE
6.2. Configuración BGP en el CPE
6.2.1. 1. Configuración General
BGP (Border Gateway Protocol)es el protocolo de enrutamiento utilizado para interconectar diferentes sistemas autónomos (AS) en Internet. Es el protocolo clave que define cómo las redes se comunican entre sí en entornos grandes y complejos, permitiendo el intercambio de rutas y asegurando una comunicación eficiente y escalable.
Características Principales de BGP
Resumen [Editar]
Característica | Ejemplo de Configuración | Explicación |
---|---|---|
Protocolo de Vector | bgp 65000 , peer , network |
Anuncio de rutas basado en atributos. |
Conexión sobre TCP | peer 203.0.113.1 enable |
Sesión confiable en TCP (puerto 179). |
Interconexión Global | EBGP: peer ... as-number ... |
Conecta redes dentro y fuera del AS. |
Escalabilidad | aggregate , route-policy |
Reduce el tamaño de las tablas. |
1. Protocolo de Vector de Ruta
BGP utiliza atributos para seleccionar la mejor ruta hacia un destino. Atributos principales:
- AS-PATH: Lista de sistemas autónomos atravesados por una ruta. Ayuda a evitar bucles.
- NEXT-HOP: Dirección IP del próximo salto hacia el destino.
- MED: Define la preferencia para rutas de entrada en conexiones entre AS.
- LOCAL_PREF: Define prioridades para rutas dentro de un AS.
Ejemplo de Configuración
bgp 65000 router-id 192.168.1.1 peer 192.168.2.1 as-number 65001 ipv4-family unicast network 10.1.1.0 255.255.255.0 import-route static
Explicación:
bgp 65000
: Activa BGP en el sistema autónomo 65000.router-id 192.168.1.1
: Identifica el router.peer 192.168.2.1 as-number 65001
: Establece un vecino BGP externo.network
: Anuncia la red 10.1.1.0/24.
2. Conexión Basada en TCP
BGP utiliza TCP (puerto 179) para asegurar la entrega confiable de mensajes de enrutamiento.
Ejemplo de Configuración EBGP
bgp 65000 peer 203.0.113.1 as-number 65100 ipv4-family unicast advertise-community peer 203.0.113.1 enable
Explicación:
peer 203.0.113.1 as-number 65100
: Configura un vecino externo (EBGP).advertise-community
: Permite anunciar atributos extendidos.peer ... enable
: Activa la sesión BGP con el vecino configurado.
3. Interconexión Global
BGP puede interconectar redes externas (EBGP) e internas (IBGP).
Ejemplo de Configuración EBGP
bgp 65000 router-id 192.168.1.1 peer 198.51.100.1 as-number 65100 ipv4-family unicast network 10.1.1.0 255.255.255.0
Ejemplo de Configuración IBGP
bgp 65000 router-id 192.168.1.1 peer 192.168.2.1 as-number 65000 peer 192.168.3.1 as-number 65000 ipv4-family unicast network 10.1.1.0 255.255.255.0 peer 192.168.2.1 next-hop-self
Explicación:
peer ... as-number 65000
: Define vecinos internos (IBGP) dentro del mismo AS.next-hop-self
: Establece al router local como el próximo salto para rutas anunciadas.
4. Escalabilidad
BGP maneja tablas de enrutamiento masivas utilizando técnicas como agregación de rutas y políticas de filtrado.
Ejemplo de Agregación de Rutas
bgp 65000 ipv4-family unicast aggregate 10.1.0.0 255.255.0.0
Explicación:
aggregate
: Resume múltiples rutas en una sola entrada para reducir el tamaño de las tablas.
Ejemplo de Filtrado de Rutas
bgp 65000 ipv4-family unicast route-policy BLOCK_EXTERNAL deny node 10
Explicación:
route-policy BLOCK_EXTERNAL deny node 10
: Aplica una política que bloquea ciertas rutas.
Tipos de BGP con Ejemplos de Configuración [Editar]
Resumen de Tipos de BGP
Tipo | Descripción | Caso de Uso |
---|---|---|
IBGP (Interno) | Opera dentro de un AS, requiere Full Mesh o Reflectors. | Redes grandes dentro de una organización. |
EBGP (Externo) | Conecta diferentes AS. | ISPs o conexiones entre empresas. |
BGP Confederations | Divide un AS en sub-AS para simplificar la gestión. | Redes con miles de routers. |
BGP Multicast y MPLS VPN | Soporta rutas para multicast y VRFs en MPLS. | Redes empresariales con múltiples clientes. |
1. IBGP (BGP Interno)
Descripción:
- Opera dentro de un solo sistema autónomo (AS).
- Todos los routers deben estar completamente conectados (Full Mesh) o usar técnicas como Route Reflectors.
Configuración Ejemplo:
bgp 65000 router-id 192.168.1.1 peer 192.168.2.1 as-number 65000 peer 192.168.3.1 as-number 65000 ipv4-family unicast network 10.1.1.0 255.255.255.0 peer 192.168.2.1 next-hop-self peer 192.168.3.1 next-hop-self
Explicación:
peer ... as-number 65000
: Configura vecinos internos dentro del mismo AS.next-hop-self
: Establece el router local como próximo salto.
2. EBGP (BGP Externo)
Descripción:
- Conecta diferentes sistemas autónomos (AS).
- Usado para la comunicación entre ISPs o grandes organizaciones.
Configuración Ejemplo:
bgp 65000 router-id 192.168.1.1 peer 203.0.113.1 as-number 65100 ipv4-family unicast network 10.1.1.0 255.255.255.0 peer 203.0.113.1 enable
Explicación:
peer ... as-number 65100
: Configura un vecino externo.peer ... enable
: Activa la sesión BGP con el vecino configurado.
3. BGP Confederations
Descripción:
- Divide un AS grande en sub-AS para simplificar la gestión.
- Los sub-AS se comunican como si fueran externos, pero funcionan como un único AS desde la perspectiva externa.
Configuración Ejemplo:
bgp 65000 bgp confederation identifier 65000 bgp confederation peers 65001 65002 peer 192.168.1.1 as-number 65001 peer 192.168.2.1 as-number 65002 ipv4-family unicast network 10.1.1.0 255.255.255.0
Explicación:
bgp confederation identifier 65000
: Identifica el AS principal.bgp confederation peers
: Define los sub-AS dentro de la confederación.peer ... as-number
: Configura vecinos dentro de los sub-AS.
4. BGP Multicast y BGP MPLS VPN
Descripción:
- BGP Multicast: Distribuye rutas específicas para tráfico multicast.
- BGP MPLS VPN: Utiliza BGP para enrutar tráfico en redes MPLS con VRFs.
Configuración Ejemplo para MPLS VPN:
bgp 65000 router-id 192.168.1.1 ipv4-family vpnv4 policy vpn-target nexthop recursive-lookup delay 1 ipv4-family vpn-instance VPN_CLIENTE_A preference 20 200 200 import-route direct import-route static import-route ospf 1
Explicación:
ipv4-family vpnv4
: Activa BGP para VPN MPLS.policy vpn-target
: Aplica políticas para la instancia VPN.import-route
: Importa rutas desde otros protocolos como OSPF.
Establecimiento de Sesiones BGP [Editar]
El protocolo BGP establece sesiones con vecinos siguiendo un proceso estructurado en seis estados. A continuación, se detalla cada estado con su propósito y cómo identificarlo en configuraciones reales.
Resumen del Proceso de Sesión BGP
Estado | Descripción | Acción Principal |
---|---|---|
Idle | Estado inicial; espera para iniciar TCP. | Verifica configuraciones. |
Connect | Intenta establecer conexión TCP. | Inicia conexión en el puerto 179. |
Active | Reintenta conexión TCP si falla. | Reintenta conexión hasta un límite. |
OpenSent | Envía mensaje OPEN al vecino. | Negocia parámetros de sesión. |
OpenConfirm | Espera confirmación de parámetros negociados. | Verifica parámetros y compatibilidad. |
Established | Sesión activa; intercambia actualizaciones. | Mantiene la sesión y procesa rutas. |
1. Idle
Descripción: El router está inactivo y espera instrucciones para iniciar la conexión TCP con el vecino. Es el estado inicial de BGP.
- Acciones en este estado: Verifica configuraciones y recursos antes de intentar establecer la conexión.
display bgp peer
BGP local router ID: 192.168.1.1 Peer: 203.0.113.1 Local AS: 65000 State: Idle
2. Connect
Descripción: BGP intenta establecer una conexión TCP con el vecino en el puerto 179. Si la conexión falla, pasa al estado Active.
- Acciones en este estado: Se evalúa la disponibilidad de la red y del vecino.
display bgp peer
Peer: 203.0.113.1 State: Connect Last error: Connection timeout
3. Active
Descripción: El router reintenta establecer la conexión TCP. Si falla repetidamente, vuelve a Idle.
- Acciones en este estado: Reintenta la conexión hasta alcanzar un límite.
display bgp peer
Peer: 203.0.113.1 State: Active Last error: No response from peer
4. OpenSent
Descripción: Se envía un mensaje OPEN al vecino para negociar parámetros como el AS y el router ID. El router espera una respuesta de tipo OPEN del vecino.
- Acciones en este estado: Se realiza la negociación inicial de parámetros.
display bgp peer
Peer: 203.0.113.1 State: OpenSent Sent OPEN message to peer
5. OpenConfirm
Descripción: Se recibe el mensaje OPEN del vecino y se espera confirmación para establecer la sesión.
- Acciones en este estado: Se verifica la compatibilidad de los parámetros negociados.
display bgp peer
Peer: 203.0.113.1 State: OpenConfirm Waiting for KEEPALIVE
6. Established
Descripción: La sesión BGP está activa. Los routers comienzan a intercambiar mensajes UPDATE con rutas y atributos.
- Acciones en este estado: Se mantienen actualizaciones periódicas para asegurar la sesión.
display bgp peer
Peer: 203.0.113.1 State: Established Uptime: 10h34m Received prefixes: 25Atributos BGP
Atributos BGP [Editar]
Los atributos en BGP son información adicional asociada a cada ruta, utilizada para tomar decisiones sobre cuál ruta es la más adecuada. Estos atributos permiten el control detallado del enrutamiento en redes complejas.
Resumen de Atributos BGP
Atributo | Propósito | Influencia en el Enrutamiento |
---|---|---|
AS-PATH | Identificar la ruta y evitar bucles. | Selección de rutas más cortas. |
NEXT-HOP | Especificar el siguiente salto hacia el destino. | Validez de la ruta. |
LOCAL_PREF | Preferencia de rutas dentro del AS. | Flujo de tráfico saliente. |
MED | Influenciar la selección de rutas de entrada. | Rutas más preferidas entre AS. |
COMMUNITY | Agrupar rutas con etiquetas comunes. | Aplicación de políticas personalizadas. |
1. AS-PATH (Path de Sistema Autónomo)
Descripción: Lista ordenada de los sistemas autónomos (AS) que una ruta debe atravesar. Ayuda a evitar bucles y seleccionar rutas más cortas.
Comando:
display bgp routing-table
Salida Ejemplo:
Network NextHop AS-PATH 192.168.1.0/24 10.1.1.1 65001 65002
Explicación: La ruta hacia 192.168.1.0/24
pasa por los AS 65001
y 65002
.
2. NEXT-HOP
Descripción: Indica la dirección IP del próximo salto hacia el destino. Si no es alcanzable, la ruta no se utiliza.
Comando:
display bgp routing-table
Salida Ejemplo:
Network NextHop 192.168.1.0/24 10.1.1.1
Explicación: El tráfico hacia 192.168.1.0/24
debe pasar por el vecino 10.1.1.1
.
3. LOCAL_PREF (Preferencia Local)
Descripción: Define la preferencia de una ruta dentro del AS. Cuanto mayor sea el valor, más preferida será la ruta.
Configuración:
route-policy SET_LOCAL_PREF permit node 10 if-match acl 3001 apply local-preference 200
Comando de Verificación:
display bgp routing-table
Salida Ejemplo:
Network LocalPref 192.168.1.0/24 200
4. MED (Multi-Exit Discriminator)
Descripción: Influye en la selección de rutas entrantes entre diferentes AS. Un valor más bajo indica mayor preferencia.
Configuración:
route-policy SET_MED permit node 10 if-match community 65000:100 apply med 50
Comando de Verificación:
display bgp routing-table
Salida Ejemplo:
Network MED 192.168.1.0/24 50
5. COMMUNITY
Descripción: Etiquetas que agrupan rutas para aplicar políticas específicas. Los tipos comunes son:
- no-export: No se propaga fuera del AS.
- no-advertise: No se anuncia a ningún vecino.
- Definidas por el usuario: Para políticas avanzadas.
Configuración:
route-policy SET_COMMUNITY permit node 10 if-match acl 3001 apply community 65000:200
Comando de Verificación:
display bgp routing-table
Salida Ejemplo:
Network Community 192.168.1.0/24 65000:200
Configuración Básica de BGP [Editar]
Configuración de EBGP
bgp 65000 router-id 192.168.1.1 peer 203.0.113.1 as-number 65001 ipv4-family unicast network 192.168.1.0 255.255.255.0
Explicación:
- bgp 65000: Activa el protocolo BGP en el AS 65000.
- router-id 192.168.1.1: Define un identificador único para el router.
- peer 203.0.113.1 as-number 65001: Configura un vecino en el AS 65001.
- network 192.168.1.0/24: Anuncia la red 192.168.1.0/24.
Configuración de IBGP
bgp 65000 router-id 10.1.1.1 peer 10.1.1.2 as-number 65000 ipv4-family unicast network 10.1.0.0 255.255.255.0
Explicación:
- peer 10.1.1.2 as-number 65000: Configura un vecino dentro del mismo AS (IBGP).
- network 10.1.0.0/24: Anuncia redes locales al IBGP.
Configuración de Router Reflector (RR)
bgp 65000 router-id 192.168.0.1 # group iBGP_RR_Main internal peer iBGP_RR_Main description Sesiones_iBGP_RR_Main_Locales peer iBGP_RR_Main connect-interface LoopBack0 peer iBGP_RR_Main password cipher %^%#example_password%^%# peer iBGP_RR_Main advertise-community peer iBGP_RR_Main advertise-ext-community peer 192.168.1.2 enable peer 192.168.1.2 group iBGP_RR_Main peer 192.168.1.3 enable peer 192.168.1.3 group iBGP_RR_Main
Explicación:
1. Definición del Proceso BGP
- bgp 65000: Activa BGP en el AS 65000.
- router-id 192.168.0.1: Identifica el router de manera única.
2. Configuración del Grupo iBGP
- group iBGP_RR_Main internal: Crea un grupo IBGP llamado iBGP_RR_Main.
- peer iBGP_RR_Main description: Añade una descripción para documentar el propósito del grupo.
- peer iBGP_RR_Main connect-interface LoopBack0: Usa la interfaz Loopback0 para establecer sesiones.
- peer iBGP_RR_Main password cipher: Configura una contraseña cifrada para autenticación.
- advertise-community y advertise-ext-community: Permite la propagación de comunidades estándar y extendidas.
3. Adición de Vecinos
- peer 192.168.1.2 enable: Habilita el vecino BGP con la dirección
192.168.1.2
. - peer 192.168.1.2 group iBGP_RR_Main: Asocia al vecino con el grupo iBGP_RR_Main.
4. Expansión para Grupos IPv4 e IPv6
group iBGP_RR_IPv4 internal peer 192.168.2.2 enable peer 192.168.2.2 group iBGP_RR_IPv4 # group iBGP_RR_IPv6 internal peer 192.168.3.2 enable peer 192.168.3.2 group iBGP_RR_IPv6
- Crea grupos adicionales para manejar rutas IPv4 e IPv6.
- Los parámetros son similares a los del grupo principal (advertise-community, passwords, etc.).
Notas Finales
- La configuración de EBGP y IBGP varía según el contexto, pero siguen principios comunes.
- Los Router Reflectors (RR) optimizan el enrutamiento interno en redes grandes con muchos routers.
- Es fundamental verificar la conectividad entre vecinos y parámetros como el router-id y el AS para evitar problemas de sesión.
Configuración Avanzada con MPLS VPN [Editar]
Configuración BGP en el PE
1. Configuración de la Interfaz
interface Vlanif1000 description DATOS_CLIENTE_A ip binding vpn-instance VPN_CLIENTE_A ip address 192.168.10.1 255.255.255.240 undo icmp name net-unreachable send undo icmp name host-unreachable receive undo icmp name protocol-unreachable receive undo icmp name port-unreachable send
Explicación:
- interface Vlanif1000: Configura una interfaz VLAN lógica para conectar el cliente.
- description DATOS_CLIENTE_A: Describe el uso de la interfaz.
- ip binding vpn-instance VPN_CLIENTE_A: Asocia la interfaz a la instancia de VPN
VPN_CLIENTE_A
. - ip address: Configura la dirección IP asignada al PE para la comunicación con el CPE.
- undo icmp: Desactiva mensajes ICMP específicos para aumentar la seguridad.
2. Configuración de la VPN
ip vpn-instance VPN_CLIENTE_A description CLIENTE_A_VPN ipv4-family route-distinguisher 65000:100 export route-policy EXPORT_TO_CLIENTE_A apply-label per-instance vpn-target 65000:100 export-extcommunity vpn-target 65000:100 import-extcommunity vpn-target 65000:50 import-extcommunity vpn-target 65000:200 import-extcommunity
Explicación:
- ip vpn-instance VPN_CLIENTE_A: Crea una instancia de VPN llamada
VPN_CLIENTE_A
. - route-distinguisher: Asigna un identificador único (RD) que distingue las rutas dentro de esta VPN.
- export/import route-policy: Aplica políticas para exportar e importar rutas.
- vpn-target: Define las comunidades extendidas utilizadas para compartir rutas con otros sistemas.
3. Configuración de BGP
bgp 65000 ipv4-family vpn-instance VPN_CLIENTE_A as-number 65000 default-route imported preference 20 200 200 import-route direct import-route static peer 192.168.10.2 as-number 65010 peer 192.168.10.2 timer keepalive 10 hold 30 peer 192.168.10.2 route-policy RPL_CLIENTE_A_PRI import peer 192.168.10.2 keep-all-routes
Explicación:
- bgp 65000: Activa el protocolo BGP con ASN 65000 para el PE.
- ipv4-family vpn-instance VPN_CLIENTE_A: Configura BGP para manejar rutas dentro de la VPN.
- default-route imported: Permite importar una ruta por defecto hacia la VPN.
- import-route: Redistribuye rutas directas y estáticas hacia BGP.
- peer ... as-number: Configura el vecino BGP con ASN 65010.
- peer ... route-policy: Aplica la política de importación para controlar las rutas recibidas.
4. Política de Rutas en el PE
route-policy RPL_CLIENTE_A_PRI permit node 10 apply local-preference 300
Explicación:
- route-policy RPL_CLIENTE_A_PRI: Define una política para manejar las rutas importadas.
- apply local-preference 300: Asigna una preferencia local alta (300) para priorizar estas rutas sobre otras.
Configuración BGP en el CPE
1. Configuración General
router bgp 65010 bgp router-id 192.168.10.2 bgp log-neighbor-changes neighbor PE_GROUP peer-group neighbor PE_GROUP remote-as 65000 neighbor PE_GROUP timers 5 15 neighbor 192.168.10.1 peer-group PE_GROUP
Explicación:
- router bgp 65010: Activa el proceso BGP con ASN 65010 en el CPE.
- bgp router-id: Define el identificador del router.
- neighbor PE_GROUP: Configura un grupo de vecinos llamado
PE_GROUP
. - neighbor ... remote-as: Especifica el ASN del vecino PE.
- neighbor ... timers: Ajusta los tiempos de Keepalive y Hold.
2. Configuración de Direcciones IPv4
address-family ipv4 redistribute connected redistribute static neighbor 192.168.10.1 activate neighbor 192.168.10.1 route-map PE_GROUP_POLICY in
Explicación:
- redistribute connected: Redistribuye rutas conectadas locales al BGP.
- redistribute static: Redistribuye rutas estáticas.
- neighbor ... activate: Activa la sesión BGP para rutas IPv4.
- neighbor ... route-map: Aplica la política
PE_GROUP_POLICY
para modificar las rutas recibidas.
3. Política de Rutas en el CPE
route-map PE_GROUP_POLICY permit 10 set local-preference 300
Explicación:
- route-map PE_GROUP_POLICY: Modifica atributos de rutas entrantes.
- set local-preference 300: Establece una preferencia local de 300 para priorizar las rutas importadas.