BGP Border Gateway Protocol

Documentos relacionados
Introduccion a BGP 1

Ingeniería de tráfico con BGP WALC 2012

INTRODUCCION Y ENUNCIADO

Cartilla resumida de comandos y parámetros Cisco para la configuración de BGP

10. Enrutamiento y reenvió de paquetes

Sistemas autónomos BGPv4. Peering. Autonomous Systems and BGPv4. Protocolo interno y externo Mensajes Atributos Reflectores y confederaciones

YO SÉ NETWORKING. Juan Zambrano BGP. Teleccna.cl 08/01/2014

Capitulo 3: Introducción a los Protocolos de Enrutamiento Dinámico

BGP. Clase 10 Emilio Hernández

Configuración de muestra para eliminar los números AS privados en BGP

NOC-RED CUDI. Hans Ludwing Reyes Chávez. Centro de Operación de Red, CUDI. Octubre 2010 Santa Cruz Track 4.

Atributos BGP y control de políticas

Capítulo 4: Capa Red - IV

Introducción a los protocolos de enrutamiento dinámico

Teoría y Configuración de BGP LACNIC XII

Tecnológico Nacional de México INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Implementando BGP. University of Oregon. José A. Domínguez.

Redes LAN y WAN UNIDAD. Redes WAN. Routing. Clase 3 Clase 4 Clase 5 Clase 6

CCNA 2 Conceptos y Protocolos de Enrutamiento

ARQUITECTURA DE REDES

Protocolos de enrutamiento dinamico RIP, OSPF, BGP

Encaminamiento en Internet 4. BGP

Lab. 4 - Inter-Domain Routing: BGPv4

La nueva generación del Protocolo de Internet

Carácterísticas del enrutamiento dinámico en Internet Tema 4.- Enrutamiento con IP

Redes de Computadores

Ejemplo de Configuración de BGP con Dos Proveedores de Servicio Diferentes (Multihoming)

Capítulo 4: Capa Red - IV

Introducción a los protocolos de enrutamiento dinámico

Top-Down Network Design. Tema 7

Práctica de laboratorio Configuración de BGP con el enrutamiento por defecto

Enrutamiento en IPv6. Material preparado por Mariela Rocha y Guillermo Cicileo

Dirección General de Educación Superior Tecnológica INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Práctica de BGP ibgp, ebgp

Ruteo IP y tecnologías de transporte Laboratorio II BGP

Modulo 4 Laboratorio sobre Estrategias Multihoming

Universidad de Antioquia Juan D. Mendoza V.

Módulo 3 Filtrado de rutas en BGP y funcionalidades avanzadas

Router Teldat. Protocolo BGP

Sistemas de Transporte de Datos (9186). Curso Ingeniería Informática

ANÁLISIS COMPARATIVO E TECNOLOGÍA MPLS

Introducción a BGP. Javier Ger, Mariano Beiró. Facultad de Ingeniería UBA. 2 de noviembre de 2010

Enrutamiento. Emilio Hernández. Carlos Figueira

Enrutamiento Básico Talleres para ISP/IXP

Módulo 9 Puntos de Intercambio de Internet (IXP)

REDES DE COMPUTADORES Laboratorio

Ejercicios BGP Implementando Políticas

ROUTERS MÓDULO 2 PARTE 1

Enrutamiento Dinámico

Cartilla resumida de comandos y parámetros Cisco para la configuración de MPLS

Capa de red en Internet

ACADEMIA LOCAL CISCO UCV-MARACAY CONTENIDO DE CURSO CURRICULUM CCNA. EXPLORATION V4.0 SEMESTRE II. CONCEPTOS Y PROTOCOLOS DE ENRUTAMIENTO

Enrutamiento IPv6. Módulo 8

CCNA EXPLORATION CONCEPTOS Y PROTOCOLOS

Enrutamiento estático IPv6

Características del enrutamiento dinámico en Internet

PROTOCOLOS DE ENRUTAMIENTO

El mejor externo BGP. El mejor externo BGP. Contenido. Encontrar la información de la característica. Contenido

DIPLOMADO EN TECNOLOGIAS AVANZADAS DE INTERNET

En el centro de la red se encuentra el router. En pocas palabras, un router conecta una red con otra red. Por lo tanto, el router es responsable de

INTRODUCCION Y ENUNCIADO

Redistribución de protocolos de ruteo

PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI

BGP hacks. Trucos, ideas y consejos. Fernando García Fernández IP Architect

UNIVERSIDAD PRIVADA CIENCIAS E INFORMATICA PROTOCOLO BGP PROTOCOLO BGP

Segundo Parcial Laboratorio de Redes y Comunicaciones II Abril 25 de 2008

TEMA 2. Encaminamiento en Internet.

Nivel de Red: Funciones Enrutamiento en Internet Tema 4.- Nivel de Red en Internet

Instituto Tecnológico de Salina Cruz Fundamentos de Redes Semestre Enero Julio 2015 Reporte de Practica. Practica n 1 Unidad 6

Tabla de Contenido. Cisco Configurando ACLs de IP Comúnmente Usadas

Qué son los protocolos de enrutamiento Dinámico?

TELECOMUNICACIONES Y REDES

Práctica 4: Configuración de los protocolos de IGRP y EIGRP.

PRACTICA DE ANÁLISIS DE CONFIGURACION. Universidad Tecnológica Nacional F.R.C. Redes de Información (RIN) PARTE 1 OBJETIVOS ACTIVIDADES

EL64E Redes de Computadores. Marcela Quiroga V. Agenda 6 TCP/IP: Network Layer

- ERouting Final Exam - CCNA Exploration: Routing Protocols and Concepts (Versión 4.0)

Configuración de una Red BGP Básica

Enrutamiento con un protocolo de vector distancia en una red empresarial

Lab 4: Routing Dinámico - OSPF José Mª Barceló Ordinas

Universidad de Costa Rica Escuela de Ingeniería Eléctrica Redes de Computadores

Tema: Enrutamiento estático

Práctica de laboratorio: configuración de OSPFv3 básico de área única Topología

Bloque IV: El nivel de red. Tema 13: Enrutamiento IP avanzado

66.62 Redes de Computadoras. Nicolás Matsunaga

CISCO ICDN Cursos MÉTODO DE CAPACITACIÓN. Presencial DURACIÓN. 5 días 45 Horas. 9:00 a 18:00 Hrs. DIRIGIDO A

ÍNDICE. Algoritmos de enrutamiento. Algoritmos de control de congestión. Interconexión de redes. Protocolos de enrutamiento en internet.

Prácticas recomendadas de BGP

REPORTE PRÁCTICA ROUTEADOR ALUMNA: BRIZEIDA DEL CARMEN LEDEZMA OLIVAS N CONTROL: MAESTRO: M.C.C. JOSE RAMON VALDEZ GUTIERREZ

Packet Tracer: uso de traceroute para detectar la red

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS

Administración de Usuario respalda dos modos: Basada en Reglas y Basada en Usuario.

- ERouting Final Exam - CCNA Exploration: Routing Protocols and Concepts (Versión 4.0)

PROTOCOLO DE INTERNET VERSIÓN 6

UNIVERSIDAD NACIONAL AUTONOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES ARAGÓN INGENIERÍA EN COMPUTACIÓN

Direccionamiento IP (1ª parte)

Transcripción:

BGP Border Gateway Protocol Guillermo Cicileo guillermo@lacnic.net Gerardo Rada gerardo@lacnic.net

FUNDAMENTOS

Protocolos de ruteo IGP (Interior Gateway Protocol) - RIP, IGRP, EIGRP, OSPF, etc Protocolo de ruteo usado para intercambiar información de ruteo dentro de un sistema autónomo. EGP (Exterior Gateway Protocol) BGP Protocolo de ruteo usado para intercambiar información de ruteo entre sistemas autónomos. BGPv1 es del año 1989 (RFC 1105) y BGPv4 es del año 1994 (RFC 1654). La RFC actual es la 4271. BGP es un protocolo de ruteo externo del tipo path vector. la tabla de ruteo mantiene una lista de AS s que son atravezados para alcanzar el AS de destino. 3

Protocolos de ruteo IGP: protocolo de ruteo interno RIP Routing Information Protocol OSPF Open Shortest Path First EIGRP Enhanced IGRP (Cisco) IS-IS Intermediate System to Intermediate System BGP: protocolo de ruteo externo, 2 casos: ibgp: dentro del sistema autónomo ebgp: entre sistemas autónomos NO CONFUNDIR: IGP con ibgp!!! 4

Ruteo en Internet 5

Ruteo en Internet Ruteo Inter-AS e Intra-AS a Host h1 C C.b b A.a ruteo Inter-AS entre A, B y C A.c a d A b c ruteo Intra-AS dentro de AS A B.a a B c b Host h2 ruteo Intra-AS dentro de AS B 6

Sistema Autónomo Sistema Autónomo (RFC 1771): conjunto de routers bajo una misma administración técnica, que usan un protocolo de ruteo interno (IGP) y métricas para rutear paquetes dentro de él, y que usan un protocolo de ruteo externo (EGP) para rutear paquetes fuera de él. Desde afuera el AS es visto como una entidad única. Cada AS tiene un identificador: ASN (Autonomous System Number). Tiene su propia política de ruteo. ASN 64496 7

Cómo trabaja BGP? Conceptos Usa TCP como protocolo de transporte (port 179) Routers Neighbors (o peers) se establece entre 1 par de routers una sesión TCP abierta, mediante la cual intercambian información de ruteo BGP. Sesión BGP Enlace Dentro de un AS, los peers BGP no necesitan estar directamente conectados. Sesión BGP AS 64496 Enlace Enlace AS 64496 Cantidad de organizaciones (redes). BGP no pasa la complejidad interna a INTERNET. 8

Cómo trabaja BGP? Conceptos Aprende y enseña rutas para que un router sepa hacia donde encaminar un paquete, alguien tiene que decirle por donde hacerlo (aprende). De la misma manera, si queremos que alguien llegue a nuestras redes tenemos que comunicar que las tenemos (anuncia). Para BGP, el ruteo interno es una caja negra No pasa la complejidad interna a INTERNET. 9

Tabla de ruteo y Tabla de BGP Existe una tabla con rutas por cada protocolo que el router maneja: tabla de isis, tabla de rip, tabla de BGP. Los protocolos compiten para que sus rutas sean las que finalmente se utilicen (en función de una propiedad denominada Distancia Administrativa). Determina cuan confiable es un protocolo. Si hay dos rutas similares, se elige la de menor distancia administrativa. Cuanto menor es la distancia administrativa, más confiable es el protocolo. La ruta elegida es la que pasa a formar parte de la tabla de ruteo. Importante: existen varias tablas de protocolos (una por cada uno de ellos) pero sólo una Tabla de Ruteo. 10

Aprender y anunciar rutas Aprender una ruta: significa que voy a incorporar en mi tabla de BGP alguna ruta que me están enseñando. Anunciar una ruta: significa que le voy a decir a alguien que tengo una ruta para llegar a determinado destino. No basta con tener la ruta en mi tabla de BGP, la debo tener también en mi tabla de ruteo. BGP está preparado para manejar políticas de ruteo. 11

Aprender y anunciar rutas Neighbor: punto remoto a quien voy a querer enseñar y/o de quien aprender rutas. Para hacer este pasaje de rutas debe establecerse una sesión BGP. Para que la sesión BGP se establezca, el potencial neighbor debe ser perfectamente alcanzable por IP (cuidado con filtros!). La sesión establecida puede ser ebgp o ibgp. 12

Aprender y anunciar rutas Una vez establecida la sesión BGP: El router podrá anunciar las rutas que: aprenda de otras sesiones BGP, se inserten en la tabla de BGP (network), pertenezcan a otros protocolos (redistribute) CUIDADO!!, los filtros permitan que se anuncien. El router podrá aprender las rutas que: el neighbor quiera anunciarnos, los filtros permitan que aprendamos. 13

Aprender y anunciar rutas Qué tráfico afecta las rutas que aprendo? saliente Quétráfico afecta las rutas queenseño? entrante Qué pasa si no aprendo nada? Depende de lo que tenga configurado localmente en mi tabla de ruteo. 14

CONFIGURACIÓN

Configuración Básica router bgp <ASN> crea el proceso BGP dentro del router neighbor <ip> remote-as <AS-remoto> vecinos internos (mismo AS) vecinos externos (distinto AS) generalmente los externos comparten una subred, son adyacentes. Los internos (ibgp) pueden estar en cualquier parte del Sistema Autónomo. Nota: Cisco IOS permite ejecutar sólo un proceso BGP a la vez, por lo tanto, un router no puede pertenecer a más de un Sistema Autónomo. En un IGP los vecinos son descubiertos automáticamente; en BGP se configuran en forma explícita 16

Configuración Básica network <red> [mask <máscara>] Se da de alta una red en la tabla de BGP y la marca como local al AS Sintaxis similar pero diferente significado con el comando network de un IGP (en RIP, quedan determinadas las interfaces que están sobre esa red para envíar y recibir actualizaciones, así como que redes conectadas directamente a esas interfaces se anunciarán) La máscara permite especificar supernetting o subnetting 17

Configuración Básica Ejemplo: router bgp 64496 network 203.0.113.0 mask 255.255.255.0 neighbor 192.0.2.2 remote-as 64500 neighbor 192.0.2.22 remote-as 64505 18

Configuración Básica AS 64496 192.0.2.0 198.51.100.1 A 198.51.100.0/30 B 198.51.100.2 AS 64505 203.0.113.0 Configuración Router A router bgp 64496 network 192.0.2.0 neighbor 198.51.100.2 remote-as 64505 Configuración Router B router bgp 64505 network 203.0.113.0 neighbor 198.51.100.1 remote-as 64496 Esas rutas deben existir en la tablas de ruteo del router local o no serán enviadas en las actualizaciones. También podría usarse cada comando network con el parámetro mask 255.255.255.0 Las rutas aprendidas son propagadas por defecto (pueden ser filtradas por una política de ruteo). 19

Configuración Básica AS 64496 192.0.2.0 198.51.100.1 A 198.51.100.0/30 B 198.51.100.2 AS 64505 203.0.113.0 Configuración Router A router bgp 64496 network 192.0.2.0 neighbor 198.51.100.2 remote-as 64505 Configuración Router B router bgp 64505 network 203.0.113.0 neighbor 198.51.100.1 remote-as 64496 Para establecer las relaciones con otros router BGP están los comandos neighbor. Ese comando sirve para identificar un vecino con el cual el router local establece la sesión. El argumento ASN determina si el router vecino es EBGP o IBGP. 20

Configuración Básica Comandos show básicos show ip bgp show ip bgp summary show ip bgp <prefix> show ip bgp neighbors [ <ip> ] show ip bgp neighbors <ip> advertised-routes show ip bgp neighbors <ip> routes show ip bgp regexp <regexp> 21

show ip bgp Las primeras tres columnas listan el status de cada ruta. Un * en la primer columna, indica que la ruta tiene un next- hop válido. Otras opciones: "s" suppressed: BGP conoce la ruta, pero no está siendo anunciada, usualmente porque es parte de una ruta sumarizada. "d" dampened: BGP detiene el anuncio de una ruta que produce un efecto denominado flapping (se levanta y se baja) demasiado rápido hasta que se estabilice por un periodo de tiempo. "h" history: BGP conoce la red, pero no hay una ruta válida hacia ella. "r" RIB * failure: la ruta es anunciada a BGP pero no es instalada en la tabla de ruteo. Esto puede suceder porque hay otro protocolo que tiene la ruta con una mejor distancia administrativa. * RIB: Routing Information Base "S" stale: indica que la ruta está detenida y requiere ser refrescada cuando se reestablezca la conexión con su vecino. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i internal, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 0 64496 65511 i *> 192.0.2.128/26 198.51.100.1 0 64496 64506 i *>i 198.51.100.22 0 0 64506 e * 203.0.113.128/25 198.51.100.1 0 64496 64501 i *> 198.51.100.114 0 0 64501 i *> 203.0.113.0/25 198.51.100.1 0 64496? 22

show ip bgp La segunda columna tiene un signo mayor al lado de la ruta que fue seleccionada como el mejor camino hacia una red determinada. La tercera columna está en blanco, indicando que el router aprendió todas las rutas de un vecino externo. Una ruta aprendida de un vecino ibgp debería tener una i. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i internal, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 0 64496 65511 i *> 192.0.2.128/26 198.51.100.1 0 64496 64506 i *>i 198.51.100.22 0 0 64506 e * 203.0.113.128/25 198.51.100.1 0 64496 64501 i *> 198.51.100.114 0 0 64501 i *> 203.0.113.0/25 198.51.100.1 0 64496? 23

show ip bgp La cuarta columna lista las redes. La que no tiene una máscara de subred, usa la máscara classfull (A /8, B /16, C /24). Cuando el router aprende la misma red desde múltiples fuentes, sólo lista la red una vez. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i internal, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 0 64496 65511 i *> 192.0.2.128/26 198.51.100.1 0 64496 64506 i *>i 198.51.100.22 0 0 64506 e * 203.0.113.128/25 198.51.100.1 0 64496 64501 i *> 198.51.100.114 0 0 64501 i *> 203.0.113.0/25 198.51.100.1 0 64496? 24

ATRIBUTOS 25

Atributos de rutas Optional transitive Un atributo que puede o no ser reconocido por todas las implementaciones de BGP (de ahi que es opcional). Debido a que el atributo es transitivo, BGP lo acepta y lo anuncia junto con la ruta (aun si no fuera reconocido). Ejemplo: COMMUNITY 26

Atributos de rutas Optional non- transitive Un atributo que puede o no ser reconocido por todas las implementaciones de BGP. Si un router receptor reconociera o no el atributo, al ser no transitivo no debe ser anunciado a otros peers. Ejemplo: ORIGINATOR_ID 27

Atributos de rutas Well-known mandatory (mandatorios muy difundidos) AS-Path Next-hop Origin Well- known discretionary (discrecionales muy difundidos) Local preference Atomic aggregate Optional transitive - Community - Aggregator Optional non- transitive - Multi- exit- discriminator (MED) 28

Atributos de rutas Origin Next- hop AS_PATH Multi_EXIT_DISC (Multi- Exit Discriminator) (MED) LOCAL_PREF (Local Preference) COMMUNITY WEIGHT 29

Atributos de rutas: origin Informa a todos los sistemas autónomos como fue introducido el prefijo de red 3 valores: IGP, EGP, incomplete i originada en un IGP, anunciada con network e originada en un EGP (BGP a BGP)? origen desconocido, normalmente producto de una redistribución incompleta desde otro protocolo de ruteo BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i internal, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 0 64496 65511 i *> 192.0.2.128/26 198.51.100.1 0 64496 64506 i *>i 198.51.100.22 0 0 64506 e * 203.0.113.128/25 198.51.100.1 0 64496 64501 i *> 198.51.100.114 0 0 64501 i *> 203.0.113.0/25 198.51.100.1 0 64496? 30

Atributos de rutas: next-hop No necesariamente es la IP del router directamente conectado. En un IGP, el next- hop (NH) es la IP del router que anunció la ruta. En BGP no: En las sesiones ebgp, el NH es la IP del neighbor que anunció la ruta. En las sesiones ibgp: Rutas originadas dentro del AS: NH es la IP del router que la origina. Rutas incorporadas por ebgp: se transporta inalterado el NH aprendido por ebgp. Un next- hop 0.0.0.0 indica que el router local originó la ruta. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i internal, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 0 64496 65511 i *> 192.0.2.128/26 198.51.100.1 0 64496 64506 i *>i 198.51.100.22 0 0 64506 e * 203.0.113.128/25 198.51.100.1 0 64496 64501 i *> 198.51.100.114 0 0 64501 i *> 203.0.113.0/25 198.51.100.1 0 64496? 31

Atributos de rutas: next-hop En medios multiacceso (Ethernet, FR, ATM), el NH es la IP de la interfaz del router que originó la ruta Ejemplo: IXP IP 192.0.2.1 Tráfico Switch IP 198.51.100.2 NH 198.51.100.2 32

Atributos de rutas: next-hop AS 64496 ebgp ibgp C 198.51.100.0/25 A 192.0.2.1 192.0.2.2 B AS 64500 Network Next Hop 198.51.100.0/25 192.0.2.1 203.0.113.0/24 192.0.2.1 AS 64505 203.0.113.0/24 Problema común: NH externo a nuestra red 33

Atributos de rutas: AS-Path Secuencia de ASN que se deben atravezar para llegar al AS destino. Puede ser utilizado en el algoritmo de selección de rutas. Un AS Path en blanco, significa que la ruta fue originada en el AS local. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i internal, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 0 64496 65511 i *> 192.0.2.128/26 198.51.100.1 0 64496 64506 i *>i 198.51.100.22 0 0 64506 e * 203.0.113.128/25 198.51.100.1 0 64496 64501 i *> 198.51.100.114 0 0 64501 i *> 203.0.113.0/25 198.51.100.1 0 64496? 34

Atributos de rutas: AS-Path Puede ser utilizado para detectar loops. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i internal, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 95 0 64496 65511 i *> 192.0.2.128/26 198.51.100.1 95 0 64496 64506 i *>i 198.51.100.22 95 0 64506 e * 203.0.113.128/25 198.51.100.1 95 0 64496 64501 i *> 198.51.100.114 100 0 64501 i *> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64497 64498 64499 64500 64503 64540 64540 65540 65540 655440 65540 65540 65540 i El primer AS (de izquierda a derecha) muestra el AS adyacente desde donde se aprendió la ruta (el AS local no se muestra). El resto, representa la secuencia de ASN que se debe atravezar para llegar a destino. El último ASN es el AS origen de la ruta. utilizado para realizar prepend en route maps 35

Atributos de rutas: MED MED es utilizado para anunciar a los vecinos ebgp preferencia sobre el tráfico entrante a nuestro AS Se le indica a otro AS cuál debería ser la puerta de entrada a nuestro AS. MED solo es enviado a vecinos ebgp. Los path con el valor MED más bajo son los más preferidos. Se utiliza en conexiones multihomed. Baja precedencia en el algoritmo de selección de rutas. Espreferible usar COMMUNITY. Med es un valor calculado por un protocolo. Se puede influir en él ajustando cosas (ancho de banda, route- maps, etc). BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i internal, S Stale Origin codes: i - IGP, e - EGP,? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 95 0 64496 65511 i *> 192.0.2.128/26 198.51.100.1 95 0 64496 64506 i *>i 198.51.100.22 95 0 64506 e * 203.0.113.128/25 198.51.100.1 95 0 64496 64501 i *> 198.51.100.114 100 0 64501 i *> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64497 64498 i 36

Atributos de rutas: MED AS 64500 Router C Network Next Hop Metric * 192.0.2.0/24 B 80 *>192.0.2.0/24 A 50 C Router B 192.0.2.0/24 Set metric 80 B A 192.0.2.0/24 AS 64496 Router A 192.0.2.0/24 Set metric 50 Los routers A y B anuncian el prefijo 192.0.2.0/24 con MED 50 y 80 a un ebgp vecino (AS 64500). El tráfico entrante al AS 64500 desde el AS 64496 elegirá el camino por el router A, pues tiene menor MED. 37

Atributos de rutas: LOCAL_PREF Indica un grado de preferencia respecto a otras rutas al mismo destino. Es un atributo local al sistema autónomo (se propaga por ibgp pero no por ebgp). Mayor local preference indica mejor preferencia: local pref 600 es mejor que 100 (este es el valor por defecto) Da una visión uniforme a todo el AS. Se setea mediante route- maps. Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 95 0 64496 65511 i *> 192.0.2.128/26 198.51.100.1 95 0 64496 64506 i *>i 198.51.100.22 95 0 64506 e * 203.0.113.128/25 198.51.100.1 95 0 64496 64501 i *> 198.51.100.114 100 0 64501 i *> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64497 64498 i 38

Atributos de rutas: LOCAL_PREF Router A Network Next Hop LocPref *> 203.0.113.0/24 F 400 * 203.0.113.0/24 E 200 ping 203.0.113.1 A AS 64496 192.0.2.0/24 B 203.0.113.0/24 set local-pref 200 C D 203.0.113.0/24 set local-pref 400 AS 64500 E F AS 64505 AS 64510 203.0.113.0/24 G 39

Atributos de rutas: Weight Es similar a local_pref, sólo que tiene efecto local en el router que se define. No se pasa esta info a otros routers. Tiene precedencia más alta que cualquier otro atributo (algoritmo de selección de camino). Sirve para discriminar rutas entre proveedores conectados al mismo router. Se setea mediante route- maps. Propietario de CISCO. Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 95 300 64496 65511 i *> 192.0.2.128/26 198.51.100.1 95 0 64496 64506 i *>i 198.51.100.22 95 100 64506 e * 203.0.113.128/25 198.51.100.1 95 0 64496 64501 i *> 198.51.100.114 100 0 64501 i *> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64497 64498 i 40

Atributos de rutas: Weight AS 64510 A AS 64505 203.0.113.0/25 B AS 64500 C 203.0.113.0/25 set weight 100 D AS 64496 203.0.113.0/25 set weight 200 41

Atributos de rutas: Weight AS 64510 A AS 64505 203.0.113.0/25 B AS 64500 C ping 203.0.113.1 203.0.113.0/25 set weight 100 D AS 64496 203.0.113.0/25 set weight 200 Router D Network Next Hop Weight * 203.0.113.0/25 A 100 *> 203.0.113.0/25 C 200 42

Local- pref, MED y Weight 192.0.2.0/24 192.0.2.0/24 AS 64496 192.0.2.0/24 C ebgp A ibgp BGP default behavior Router B Network Next Hop Metric LocPrf Weight * >i 192.0.2.0/24 C 0 100 0 B 43 AS 64500

Local- pref, MED y Weight AS 64496 192.0.2.0/24 192.0.2.0/24 C ebgp 192.0.2.0/24 set local-pref 200 A Router B aprende local-pref 200 ibgp LOCAL_PREF Router B Network Next Hop Metric LocPrf Weight * >i 192.0.2.0/24 C 0 200 0 B 44 AS 64500

Local- pref, MED y Weight AS 64496 192.0.2.0/24 192.0.2.0/24 C ebgp 192.0.2.0/24 set weight 50 A Router B no aprende weight ibgp WEIGHT Router B Network Next Hop Metric LocPrf Weight * >i 192.0.2.0/24 C 0 100 0 B 45 AS 64500

Local- pref, MED y Weight AS 64496 192.0.2.0/24 192.0.2.0/24 set metric 80 C ebgp 192.0.2.0/24 metric = 80 A Router B aprende métrica 80 ibgp MULTI_EXIT_DISC Router B Network Next Hop Metric LocPrf Weight * >i 192.0.2.0/24 C 80 100 0 B 46 AS 64500

Atributos de rutas: COMMUNITY Community representa una técnica para marcar un conjunto de rutas. Es factible usar estos flags para aplicar políticas de ruteo específicas (ej. local preference, etc.) dentro de la red. Está representado por 2 enteros de 16 bits (RFC1998). El formato común es <local- ASN>:xx. 0:0 a 0:65535 y 65535:0 a 65535:65535 están reservados. Muy útiles para aplicar políticas entre sistemas autónomos. Estandar acordado entre proveedores marcan sus rutas. 47

Atributos de rutas: COMMUNITY access-list 101 permit ip 192.0.2.0 0.0.0.255 any access-list 102 permit ip 198.51.100.0 0.0.0.255 any! route-map Peer-R1 permit 10 match ip address 101 set community 64496:650 route-map Peer-R2 permit 10 match ip address 102 set community 64500:750 ip community-list 1 permit 64496:650 ip community-list 2 permit 64500:750! route-map Peer-R3 permit 10 match community 1 set local-preference 130 route-map Peer-R4 permit 10 match community 2 set local-preference 140 48

Redistribución del default network 0.0.0.0 Debe existir la ruta en la tabla de ruteo Se enseña a todos los neighbors Importante: poner filtros!! default-information originate Anunciada a todos los neighbor No importa si el router tiene una ruta por default Redistribution Debe existir la ruta en la tabla de ruteo neighbor x.x.x.x default-originate Aplicado a un neighbor No importa si el router tiene una ruta por default 49

Insertando prefijos en BGP Network Ejemplo: router bgp 64496 network 203.0.113.128 mask 255.255.255.128 ip route 203.0.113.128 255.255.255.128 serial0 Una ruta coincidente debe existir en la tabla de ruteo antes de que la red sea anunciada. Fuerza el atributo origin a ser IGP. 50

Insertando redes en BGP network Ejemplo ip route 203.0.113.128 255.255.255.128 null0 250 router bgp 64496 network 203.0.113.128 mask 255.255.255.128 Se inserta la ruta en la tabla de ruteo idéntica al prefijo que se quiere anunciar La ruta estática a null0 es llamada ruta pull up. sólo se usará si no hay una ruta más específica en la tabla de ruteo. La distancia administrativa 250 asegura que será la ruta estática de último recurso. Es la forma más fácil y mejor de generar una ruta agregada. 51

FILTROS 52

Filtrado de rutas Proceso muy importante a fin de garantizar la estabilidad de nuestro AS y los AS vecinos. Filtrado de entrada: es aplicado a rutas aprendidas no se incluyen en nuestra tabla de ruteo. Filtrado de salida: se aplica a rutas previamente a ser anunciadas a un vecino. no se incluirán en las tablas de ruteo remotas. Razones? económicas transit ISP seguridad sólo rutas asignadas a nuestros clientes técnicas problemas de memoria 53

Filtrado de rutas Filtros basados en direcciones IP distribute-list (access-lists) prefix-list (mas nuevos) Filtros basados en el path filter-list (as-path) 54

Prefix-list Filtrado de rutas Para realizar filtrado más simple y más fácil de leer, es posible aplicar listas de prefijos (prefix-list ) directamente a un vecino BGP utilizando: neighbor {ip-address peer-group} prefix-list prefix-list-name {in out} command. Es una alternativa más simple e intuitiva que las listas de acceso tradicionales. Permiten utilizar un número que especifica la secuencia de instancias permit o deny. Especificando el número es factible editar cada instancia individual, sin necesidad de remover la lista entera (como ocurre con las access list). Si se desea especificar un host en particular (198.51.100.45/32) el ejemplo queda: ip prefix-list bad-host seq 100 deny 198.51.100.45/32 55

Filtrado de rutas Prefix-list router bgp 64496 neighbor 203.0.113.100 remote-as 65551! neighbor 203.0.113.100 prefix-list PEER-IN in neighbor 203.0.113.100 prefix-list PEER-OUT out ip prefix-list PEER-IN deny 198.51.100.0/24 ip prefix-list PEER-IN permit 0.0.0.0/0 le 32 ip prefix-list PEER-OUT permit 192.0.2.0/24 56

Filtrado de rutas Por ejemplo si tenemos un router con esta configuración en su bgp: Willis# show run begin bgp router bgp 64496 no synchronization bgp log-neighbor-changes network 198.51.100.0 mask 255.255.255.192 network 198.51.100.64 mask 255.255.255.192 network 198.51.100.128 mask 255.255.255.192 network 198.51.100.192 mask 255.255.255.192 neighbor 203.0.113.100 remote-as 65551 neighbor 203.0.113.100 prefix-list route-filter out neighbor 203.0.113.210 remote-as 64505 neighbor 203.0.113.210 remote-as 64505 no auto-summary! ip prefix-list route-filter seq 5 permit 198.51.0.0/16 le 26 Ejecutando: Willis# show ip bgp neighbors 203.0.113.100 advertised-routes begin Network Network Next Hop Metric LocPrf Weight Path *> 198.51.100.0/26 0.0.0.0 0 32768 i *> 198.51.100.64/26 0.0.0.0 0 32768 i *> 198.51.100.128/26 0.0.0.0 0 32768 i *> 198.51.100.192/26 0.0.0.0 0 32768 i Esta lista provee la misma funcionalidad que una lista de acceso extendida con el uso de un wildcard 0.0.0.63. La prefix-list 198.51.0.0/16 le 26 permite cualquier red que comience con 198.51.x.x con longitudes de prefijo desde 16 hasta 26 57

Filtros por AS-Path Se define una expresión regular que denota un aspath: ip as-path access-list <n> (permit deny) <regexp> Se aplica esa expresión regular a la información que recibimos (in) o enviamos (out) a un neighbor. Sintaxis: Filtrado de rutas neighbor x.x.x.x filter-list nnn (in out) 58

Ejemplo: Filtros por AS- PATH... neighbor 198.51.100.22 filter-list 10 in neighbor 198.51.100.22 filter-list 11 out... ip as-path access-list 10 permit ^$ ip as-path access-list 11 deny 64496$ ip as-path access-list 11 deny ^645 ip as-path access-list 11 permit _64497_64498_... 59

Filtros por AS- PATH Ejemplo: AS 64500 AS 64505 Permitir redes originadas por el AS 64505 entrando al R1 (ninguna otra ruta) R3 R4 R1 # sh run... router bgp 65550 neighbor 192.0.2.2 remote-as 64505 neighbor 192.0.2.2 filter-list 1 in... ip as-path access-list 1 permit ^64505$... R2 AS 65550 R1 60

Filtros por AS- PATH Ejemplo: AS 64500 AS 64505 Denegar redes originadas en AS64505 y permitir el ingreso a AS64500 a todas las demás redes, a través de R3 R3 R4 R3 # sh run... ip as-path access-list 1 deny _64505$ ip as-path access-list 1 permit.*... router bgp 64500 neighbor 203.0.113.2 remote-as 65550 neighbor 203.0.113.2 filter-list 1 in... R2 AS 65550 R1 61

Ejemplo: Filtros por AS- PATH AS 64500 AS 64505 Solo permitir redes originadas en el AS64505, y AS s directamente conectados a AS64505, que entran al AS65550 por el R1 R3 R4 R2 R1 AS 65550 R1 # sh run... ip as-path access-list 1 permit ^64505_[0-9]*$... router bgp 1 neighbor 192.0.2.2 remote-as 64505 neighbor 192.0.2.2 filter-list 1 in... 62

Filtrado de rutas Route-maps Los route-map son similares a las sentencias de un lenguaje de programación, if. then Cada instancia del route-map tiene un número de secuencia. Son ejecutados en orden desde la sentencia con menor número de secuencia hasta el más alto. Es posible editarlos o modificarlos utilizando este número de secuencia. Si en un route-map, una sentencia con un determinado criterio de coincidencia resulta verdadera, la ejecución del route-map se detiene. Se puede utilizar route-map para permitir o denegar según el criterio encontrado por la sentencia match. 63

Filtrado de rutas Route-maps Si no existiera una sentencia match dentro de una instancia de un route-map, todas las rutas resultan con criterio verdadero. Las sentencias set son aplicadas a todas las rutas *. Si no existiera una lista de acceso para la sentencia match dentro de la instancia del route-map, todas las rutas resultan con criterio verdadero. Las sentencias set se aplican a todas las rutas. Tal como con las listas de acceso, una denegación implícita es incluida al final del route-map. Si múltiples sentencias match son utilizadas dentro de una instancia de un mapa de ruteo, todas las sentencias match deben resultar verdaderas para que de la instancia surja un resultado verdadero * o paquetes 64

Route- maps router bgp 64496 neighbor 203.0.113.10 route-map infilter in! route-map infilter permit 10 match ip address prefix-list HIGH-PREF set local-preference 120! route-map infilter permit 20 match ip address prefix-list LOW-PREF set local-preference 80! route-map infilter permit 30! ip prefix-list HIGH-PREF permit 192.0.2.0/25 ip prefix-list LOW-PREF permit 192.0.2.128/25 65

Route- maps router bgp 64496 neighbor 203.0.113.10 route-map filter-on-as-path in! route-map filter-on-as-path permit 10 match as-path 1 set local-preference 80 set weight 200 set metric 127 set next-hop 192.0.2.10! route-map filter-on-as-path permit 20 match as-path 2 set local-preference 200 set weight 500 set metric 327 set next-hop 192.0.2.100! route-map filter-on-as-path permit 30! ip as-path access-list 1 permit _64505$ ip as-path access-list 2 permit _64510_ 66

Route- maps Uso de prepend en un route- map router bgp 64510 network 192.0.2.0 neighbor 203.0.113.10 remote-as 64496 neighbor 203.0.113.10 route-map set-path out! route-map set-path permit 10 set as-path prepend 64510 64510 Debe ser usado con nuestro número de AS De no ser así BGP puede detectar un loop y retirará la ruta 67

Atributos de rutas: AS-Path utilizado para realizar prepend en route maps Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 95 0 64496 65511 i *> 192.0.2.128/26 198.51.100.1 95 0 64496 64506 i *>i 198.51.100.22 95 0 64506 e * 203.0.113.128/25 198.51.100.1 95 0 64496 64501 i *> 198.51.100.114 100 0 64501 i *> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64497 64498 64499 64500 64503 64540 64540 65540 65540 655440 65540 65540 65540 i 68

Selección del mejor camino 1. Si el next- hop es inaccesible, descartar la ruta. 2. Si el camino es interno (ibgp), synchronization está habilitado y la ruta no está en el IGP, descartarla. 3. Se prefiere el camino con mayor peso weight (propietario Cisco). 4. Luego, se prefiere la ruta de mayor local preference. 69

Selección del mejor camino 5. En caso del mismo local- pref, se prefiere una ruta que es originada por el router (comando network o redistribución). 6. Si la ruta no fue originada por el router y local- pref es igual, se prefiere la ruta con el path de sistemas autónomos más corto (shortest as- path). 7. Si todo es igual, se prefiere el menor código de origen (IGP<EGP<Incomplete). 70

Selección del mejor camino 8. A igualdad de origen, se prefiere el menor valor de MED. Esta comparación se realiza sólo si los neighbors de los que se aprendieron la ruta pertenecen todos a un mismo AS (a menos que se especifique bgp always- compare- med ). 9. Se prefieren rutas aprendidas por ebgp que por ibgp. 10.Se prefiere la ruta cuyo next- hop tiene menor métrica en el IGP. 11.Si hasta aquí no hay decisión, se prefiere la ruta correspondiente al neighbor de menor router- id. 71

MEJORES PRACTICAS 72

BGP vs IGP s Puesta a punto de BGP Protocolos de ruteo interno Ejemplos OSPF, RIP, etc.. Usados para transportar las direcciones de la infraestructura. No usados para transportar los prefijos de Internet o clientes. Diseñados de tal forma que se minimice el número de prefijos. 73

Puesta a punto de BGP BGP vs IGP s BGP: usar internamente (ibgp) y externamente (ebgp) ibgp: usado para transportar: Los prefijos de Internet a través del Backbone Los prefijos de los clientes Utilizar /32 para las interfaces loopbacks de enrutamiento y levantar las sesiones de ibgp con ellas Usar Peer Groups Usar Passwords en la sesiones de ibgp (robos de prefijos) 74

BGP vs IGP s Puesta a punto de BGP IGP El IGP debe contener a las redes de la DMZ o usar neighbor x.x.x.x next-hop-self ebgp usados para Intercambiar prefijos con otros AS Implementar políticas de ruteo 75

BGP Nunca hacer Puesta a punto de BGP Redistribuir prefijos BGP en un IGP Redistribuir rutas IGP dentro de BGP NO Usar IGP para transportar los prefijos de los clientes u otras redes externas 76

Puesta a punto de BGP BGP Que anuncios no debería recibir No recibir los prefijos definidos en el RFC1918 No aceptar mis propios prefijos No aceptar el default (a menos que se requiera) No aceptar prefijos mayores de /24 77

Puesta a punto de BGP Que prefijos no debería recibir: router bgp 64496 network 192.0.2.0 mask 255.255.255.0 neighbor 203.0.113.100 remote-as 64505 neighbor 203.0.113.100 prefix-list in-filter in! ip prefix-list in-filter deny 0.0.0.0/0! Block default ip prefix-list in-filter deny 0.0.0.0/8 le 32 ip prefix-list in-filter deny 10.0.0.0/8 le 32 ip prefix-list in-filter deny 101.10.0.0/19 le 32! Block local prefix ip prefix-list in-filter deny 127.0.0.0/8 le 32 ip prefix-list in-filter deny 169.254.0.0/16 le 32 ip prefix-list in-filter deny 172.16.0.0/12 le 32 ip prefix-list in-filter deny 192.0.2.0/24 le 32 ip prefix-list in-filter deny 192.168.0.0/16 le 32 ip prefix-list in-filter deny 224.0.0.0/3 le 32! Block multicast ip prefix-list in-filter deny 0.0.0.0/0 ge 25! Block prefixes >/24 ip prefix-list in-filter permit 0.0.0.0/0 le 32 78

Muchas gracias! Preguntas?