Está en la página 1de 6

CCNP Route - BGP: Introduccion a BGP

Los 4 casos ms comunes de conexin a Internet y el uso de BGP o no, son: Single Homed: Es la conexin que usa un solo link, y un solo ISP. Este caso es el ms sencillo ya que slo existe una ruta hacia Internet. Lo mas normal en esta situacin es usar una ruta por defecto. BGP puede ser usado pero no tiene mucho sentido. Dual Homed: Conexin en la que existen 2 o ms link por ISP, pero slo un ISP, o lo que es lo mismo, dos o ms conexiones a Internet con el mismo ISP. En este caso, podemos usar una ruta por defecto cuando queramos preferentemente usar una conexin y tener la otra como redundancia o cuando queramos usar las dos conexiones por igual, balanceando. BGP lo podemos usar en este caso cuando queramos usar preferentemente un path sobre otro para todos los destinos. Para ellos usamos la opcin de BGP default route only. Single Multihomed: Este modo de conexin consiste en 1 link por ISP, pero 2 o ms IPS. A igual que dual homed se pueden usar rutas por defecto o BGP con default route only. Dual Multihomed: 2 o mas links por ISP, mas de 2 ISPs. En este caso lo ms preferible es usar BGP, ya que hay alto nivel de redundancia y BGP puede elegir el mejor link a usar para cada destino.

CCNP Route - BGP: External BGP (eBGP) y Internal BGP (iBGP)


Configurar EBGP es fcil, pero hay que tener en cuenta varios aspectos para que no falle, veamos la configuracin bsica y luego los detalles de cada paso: 1.- Configurar BGP con el comando router bgp [asn], desde el modo de configuracin global. 2.- Configurar los vecinos manualmente con el comando neighbor [ip vecino] remote-as [remote asn], dentro del modo de configuracin de bgp.

Otros requisitos para que se se puedan formar vecinos en eBGP son: Como acabamos de ver, configurar el ASN local en el comando router bgp [asn] y el del router vecino e n el comando neighbor remote-as [asn]. El router id usado por BGP no debe ser el mismo en ambos routers. Si esta configurada, la autenticacin debe ser la misma. La conexin TCP que se establece, se hace a la direccin IP que configuramos con el comando neighbor [ip vecino], por lo que si esa IP no coincide con la del vecino, no se formar adyacencia.

La seleccin del router id en BGP se realiza por el siguiente orden: 1.- La id configurada con el comando bgp router id [router id]. 2.- Si no se ha configurado router id, se selecciona la IP ms alta configurada en cualquier interfaz loopbakc que est operativa (up/up) cuando bgp se inicializa. 3.- Si no hay interfaces loopback configuradas o estn down, se selecciona la IP ms alta de cualquier otra interfaz del router que est up/up cuando bgp es inicializado.

El tercer requisito nombra la autenticacin. BGP admite autenticacin usando MD5, como es lgico, si se configura en un vecino, en el otro tambin se tiene que configurar y con la misma clave, si no es as no se formar la adyacencia. Para configurar la autenticacin se usa el comando neighbor [ip del vecino] password [clave].

Slo nombrar que cuando los routers no estn en la misma subred, osea que son remotos, ambos routers tienen que tener en su tabla de rutas como llegar a esa subred. Un ejemplo de configuracin de BGP entre dos routers podra ser el siguiente E1 y I1-1 forman parte de diferentes ASNs, configurarlos para que se intercambien sus rutas mendiante BGP.

--- Router E1 ---E1(config)#router bgp 11 E1(config-router)# neighbor 10.1.1.6 remote-as 1 E1(config-router)# neighbor 10.1.1.6 password SECRETO --- Router I1-1 ---I1-1(config)#router bgp 1 I1-1(config-router)# neighbor 10.1.1.5 remote-as 11 I1-1(config-router)# neighbor 10.1.1.5 password SECRETO

PREFERIBLEMENTE: Para brindar redundacia en el ejemplo de arriba:


En estos casos en los que tenemos redundancia con varios enlaces, podemos configurar una interfaz loopback en cada router y configurar BGP con la IP de dicha interfaz loopback. Siendo as, si un enlace cae, la comunicacin seguira a travs del otro, ya que el destino de la conexin TCP no es ninguna IP de las que ha caido. Cuando queramos hacer esto, tenemos que seguir estos pasos. 1.- Configurar la interfaz loopback en cada router. 2.- Indicar que BGP use la ip de la interfaz loopback como ip de origen, esto se hace con el comando neighbor [ip vecino] update-source [interfaz loopback]. 3.- Configurar el comando neighbor [ip del vecino] con la IP de la interfaz loopback configurada en el vecino(lgico). 4.- Asegurarnos de que a la IP configurada en el vecino, el router sepa como llegar, para ello configuramos una ruta esttica, como hay redundancia, configurar una ruta esttica para cada enlace (ver ejemplo) 5.- Configurar el comando neighbor [ip del vecino] ebgp-multihop [num saltos]. Este comando se debe configurar porque por defecto BGP enva sus paquetes con un TTL con valor 1. Cuando la IP de vecino que configuremos es la IP de una interfaz fsica no hay problema porque el router recibe el paquete en la interfaz de dicha IP y no tiene que reenviarlo, por lo que el valor de TTL se queda en 0 pero ya es procesado. El problema viene cuando la IP a la que va dirigido es una loopback. El router recibe el paquete en una interfaz fsica y lo tiene que reenviar a la interfaz loopback (lo que incluyue un salto ms). Cuando el router recibe el paquete, resta 1 al valor de TTL, por lo tanto se queda en 0, al intentar reenviarlo el paquete es descartado porque dicho valor est en 0. Para solucionar ese problema se configura el parmetro multihop, cuyo valor debe de ser como mnimo de 2. Fijndonos en el ejemplo anterior y en los pasos para configurarlo con interfaces loopback, la configuracin de ambos routers para usarlos con redundancia en BGP sera la siguiente:

--- Router E1 ---E1(config)# interface loopback 1 E1(config-if)# ip address 1.1.1.1 255.255.255.255 E1(config-if)# no shutdown E1(config)#ip route 2.2.2.2 255.255.255.255 se0/0/0 E1(config)#ip route 2.2.2.2 255.255.255.255 se0/0/1 E1(config)#router bgp 11 E1(config-router)# neighbor 2.2.2.2 remote-as 1 E1(config-router)# neighbor 2.2.2.2 update-source loopback 1 E1(config-router)# neighbor 2.2.2.2 ebgp-multihop 2 E1(config-router)# neighbor 2.2.2.2 password SECRETO --- Router I1-1 ---I1-1(config)# interface loopback 1 I1-1(config-if)# ip address 2.2.2.2 255.255.255.255 I1-1(config-if)# no shutdown I1-1(config)#ip route 1.1.1.1 255.255.255.255 se0/0/0 I1-1(config)#ip route 1.1.1.1 255.255.255.255 se0/0/1 I1-1(config)#router bgp 1 I1-1(config-router)# neighbor 1.1.1.1 remote-as 11 I1-1(config-router)# neighbor 1.1.1.1 update-source loopback 1 I1-1(config-router)# neighbor 1.1.1.1 ebgp-multihop 2 I1-1(config-router)# neighbor 1.1.1.1 password SECRETO

Los estados debe estar established.

Antes de entrar con la publicacin de rutas, mencionar que las adyacencias con vecinos se pueden deshabilitar con el comando neighbor [ip del vecino] shutdown. .Para volverla a formar, slo tendramos que incluir al mismo comando el parmetro no al inicio.

Comando network en BGP, publicar rutas:

BGP busca en la tabla de rutas un prefijo y longitud exactamente igual del que hemos introducido en network y si existe, BGP pone esa ruta en la tabla BGP, por lo que ser publicada. Por ejemplo, si en la configuracin de BGP escribimos el comando network 128.107.0.0 mask 255.255.255.0, entonces BGP buscar en la tabla de rutas esa red con misma mscara, y si existe, la agrega a la tabla BGP para as publicarla. Como acabamos de ver con el ejemplo, para publicar una ruta en BGP, se usa el comando network [red] mask [mascara]. Si existe esa red con misma mscara en la tabla de rutas, entonces se publicar

Ayuda: Comando show ip bgp 0.0.0.0 0.0.0.0 show ip bgp [prefix] [subnet/mask] show ip bgp neighbors [dir ip] received-routes show ip bgp neighbors [dir ip] routes show ip bgp neighbors [dir ip] advertised-routes show ip bgp summary Accin Listado de todas las rutas por defecto posibles Listado de posibles rutas para el prefijo que indiquemos Muestra todas las rutas aprendidas de ese vecino Muestra todas las rutas aprendidas de ese vecino despues de pasar por ACLs si estuvieran configuradas Muestra las rutas publicadas a un vecino Muestra un listado de prefijos aprendidos por cada vecino.

Internal BGP (iBGP):


iBGP es usado para la comunicacin entre routers que forman parte del mismo ASN. Por ejemplo, en el modelo single multihomed, donde unaa compaa conecta a internet a travs de dos ISPs diferentes, se podra configurar iBGP en los router que conectan con cada ISP y que entre ellos se intercambien las rutas que aprenden de ambos ISPs.. Por ejemplo, imaginemos que el ASN 11 de BGP esta compuesto por dos routers, R1 (172.20.0.1) y R2 (172.20.0.2) y queremos que se intercambien rutas BGP entre ellos. La configuracin sera: R1(config)# router bgp 11 R1(config-router)# neighbor 172.20.0.2 remote-as 11 R2(config)# router bgp 11 R2(config-router)# neighbor 172.20.0.1 remote-as 11 Para evitar bucles simepre se debe configurar : neighbor [ip del vecino] next-hop-self Aplicndolo al ejemplo anterior, la configuracin en ambos routers sera la siguiente R1(config)# router bgp 11 R1(config-router)# neighbor 172.20.0.2 remote-as 11 R1(config-router)# neighbor 172.20.0.2 next-hop-self R2(config)# router bgp 11 R2(config-router)# neighbor 172.20.0.1 remote-as 11 R2(config-router)# neighbor 172.20.0.1 next-hop-self En este caso ambos routers estn en la misma subred, an as no est dems configurarlo.

Otro aspecto a tener en cuenta para evitar loops de enrutamiento es cuando los routers que conectan con los ISPs no estn conectados directamente. En este caso tendremos que crear una malla iBGP entre los routers que comunican, es decir, cada router tiene que tener configurado como vecino BGP a todos los dems routers, para que entre todos se intercambien rutas y todos tengan el mismo siguiente salto hacia los diferentes destinos. Este caso es mejor verlo con una imagen.

Para este caso la configuracin sera la siguiente: (Las ips perteneces a interfaces loopbak). ---- Router E1 ---E1(config)#router bgp 11 E1(config-router)# neighbor 10.100.1.2 remote-as 11 E1(config-router)# neighbor 10.100.1.2 next-hop-self E1(config-router)# neighbor 10.100.1.2 update-source loopback0 E1(config-router)# neighbor 10.100.1.3 remote-as 11 E1(config-router)# neighbor 10.100.1.3 next-hop-self E1(config-router)# neighbor 10.100.1.3 update-source loopback0 E1(config-router)# neighbor 10.100.1.4 remote-as 11 E1(config-router)# neighbor 10.100.1.4 next-hop-self E1(config-router)# neighbor 10.100.1.4 update-source loopback0 ----Core 1 ---Core1(config)#router bgp 11 Core1(config-router)# neighbor 10.100.1.2 remote-as 11 Core1(config-router)# neighbor 10.100.1.2 update-source loopback0 Core1(config-router)# neighbor 10.100.1.1 remote-as 11 Core1(config-router)# neighbor 10.100.1.1 update-source loopback0 Core1(config-router)# neighbor 10.100.1.4 remote-as 11 Core1(config-router)# neighbor 10.100.1.4 update-source loopback0 ---- Core 2 ---Core2(config)#router bgp 11 Core2(config-router)# neighbor 10.100.1.2 remote-as 11 Core2(config-router)# neighbor 10.100.1.2 update-source loopback0 Core2(config-router)# neighbor 10.100.1.3 remote-as 11 Core2(config-router)# neighbor 10.100.1.3 update-source loopback0 Core2(config-router)# neighbor 10.100.1.1 remote-as 11 Core2(config-router)# neighbor 10.100.1.1 update-source loopback0 ---- Router E2 ---E2(config)#router bgp 11 E2(config-router)# neighbor 10.100.1.1 remote-as 11 E2(config-router)# neighbor 10.100.1.1 next-hop-self E2(config-router)# neighbor 10.100.1.1 update-source loopback0 E2(config-router)# neighbor 10.100.1.3 remote-as 11

E2(config-router)# neighbor 10.100.1.3 next-hop-self E2(config-router)# neighbor 10.100.1.3 update-source loopback0 E2(config-router)# neighbor 10.100.1.4 remote-as 11 E2(config-router)# neighbor 10.100.1.4 next-hop-self E2(config-router)# neighbor 10.100.1.4 update-source loopback0 Si nos fijamos, el comando next-hop-self slo est configurado en los routers que conectan con Internet, ya que son los nicos que realmente pueden actuar como siguiente salto hacia rutas de Internet.

Un dato importante a tener en cuenta es que el filtrado en BGP se hace por vecino y no por interfaz. Los comandos para cada tipo de filtrado son los siguientes: Filtrado Comando en Configuracin de BGP ACL neigbhor distribute-list [nombre o num de acl] [in|out] Lista de prefijos neighbor prefix-list [nombre prefijo] [in|out] route map neighbor route-map [nombre route map] [in|out] Tomando el ejemplo anterior, evitar mediante lista de prefijos que E1 aprenda la ruta 128.107.0.0/16 proveniente de E2: Paso 1: Configurar la lista de prefijos en R1: E1(config)# ip prefix-list BLOQUEAR deny 128.107.0.0/16 Paso 2: Aplicar la lista de prefijos al vecino, en este caso sera de entrada, ya que el objetivo es bloquear esa red cuando sea recibida desde R2. E1(config-router)# neighbor 10.100.1.2 prefix-list BLOQUEAR in Aplicando esta nueva configuracin, E1 quedara configurado asi E1(config)# ip prefix-list BLOQUEAR deny 128.107.0.0/16 E1(config)#router bgp 11 E1(config-router)# neighbor 10.100.1.2 remote-as 11 E1(config-router)# neighbor 10.100.1.2 next-hop-self E1(config-router)# neighbor 10.100.1.2 update-source loopback0 E1(config-router)# neighbor 10.100.1.2 prefix-list BLOQUEAR in E1(config-router)# neighbor 10.100.1.3 remote-as 11 E1(config-router)# neighbor 10.100.1.3 next-hop-self E1(config-router)# neighbor 10.100.1.3 update-source loopback0 E1(config-router)# neighbor 10.100.1.4 remote-as 11 E1(config-router)# neighbor 10.100.1.4 next-hop-self E1(config-router)# neighbor 10.100.1.4 update-source loopback0