Sei sulla pagina 1di 12

Introduccin Terminologa BGP Operacin de BGP Formato de la cabecera del mensaje Negociacin de Vecindad Finite State Machine Seleccin

de Rutas Configuracin de BGP Configuracin iBGP and eBGP Configuracin de eBGP Multihop

Introduccin
BGP es conocido como el routing protocol para la Internet. Es usado para compartir informacin de ruteo entre los diferentes Sistemas Autnomos (AS). BGP v1 fue un classfull y no permiti sumarizacin de rutas. BGP v4 puede hacer sumarizacin de rutas y CIDR. BGP utiliza TCP como protocolo confiable para la transmisin. Usa la puerto 179 para establecer las conexiones. BGP no se preocupa del ruteo INTRA-AS

Terminologa BGP
AS: Conjunto de dispositivos bajo el mismo control administrativo, que es usado por un IGP para ruteo INTRA-AS y un EGP para ruteo INTER-AS. BGP Speaker: Cualquier equipo de ruteo que esta arrancando un BGP routing procedo. PEERS: Se forman cuando dos BGP Speakers hacen una conexin TCP entre ellos. eBGP: External Border Gateway Protocol, es el protocolo de ruteo usado para intercambiar informacin de ruteo entre BGP peer en diferentes AS iBGP: Internal Border Gateway Protocol, es el protocolo de ruteo usado para intercambiar informacin de ruteo entre BGP peers en el mismo AS. INTER-AS routing: Es el routing que ocurre entre diferentes AS.

INTRA-AS routing: Es el routing que ocurre dentro del mismo AS.

Operacin de BGP
y y y y y y y Todos los BGP Speakers dentro del mismo AS usan iBGP para comunicarse entre ellos. Multiples BGP speaking dentro del mismo AS deben ser peer con cada otro. iBGP debe ser un full mesh, no significa que todos los dispositivos deban ser conectados con cada otro, aunque todos deben ser alcanzables a travs de capa 3. eBGP requiere conectividad capa 3 entre ellos. Despus de formar peers, se usa la informacin para crear mapas libres de loop del AS involucrado (BGP Tree) Una vez formado los peers, y se ha creado el rbol BGP, ellos inician el intercambio de informacin de ruteo. El BGP speaking, primero intercambia su tabla BGP enteramente y luego son actualizaciones incrementales de su tabla de ruteo BGP y Keepalive messages para mantener la conexin.

Formato de la cabecera del mensaje


El mensaje bsico del fomato de la cabecera est dividido en: y y y Un campo Marker de 16 Byte Un campo Length de 2 Byte Un campo Type de 1 Byte

Marker: Es usado para detectar una prdida de sincronismo entre un conjunto de peers y tambin autentifica mensajes entrantes. Length: Indica el largo del mensaje entero incluyendo el campo Marker. El valor es entre 19 y 4096 octetos. Type: Indica el tipo de cdigo de los mensajes. Hay 4 valores:

Type Field Values Type Value Message Type 1 OPEN message 2 UPDATE message 3 NOTIFICATION message 4 KEEPALIVE message
Mensaje Open

Es el primer mensaje enviado despus que una sesin TCP se ha formado. Cuando el mensaje Open es aceptado, un mensaje Keepalive confirma el mensaje Open. Luego incrementales mensajes Updates, mensajes de Notificacin y Keepalive sern intercambiados entre los BGP peers. El mensaje Open es de tamao fijo en el BGP Header

Mensaje Update Despus que se ha formado peers, ellos intercambian incrementales mensajes Update. Contienen la informacin de ruteo para BGP y es usado para construir un ambiente libre de loop. El mensaje Update contiene al menos una ruta feasible y multiples rutas unfeasible para retirar.

Mensaje Keepalive Son usados para asegurar conectividad entre peers, es de tamao fijo. Un keepalive mensaje es enviado para restaurar el Hola Timer. El intervalo es de un tercio del valor del hola timer. Esto es porque el hola timer debe ser al menos 3 segundos si este no es cero. Un keepalive no ser enviado si un mensaje update fue enviado. Si el hola timer es seteado a cero, un keepalive nunca ser enviado. Mensaje de Notificacin Cada vez que un error ocurre durante una sesin BGP, el BGP speaker genera un mensaje de notificacin. Tan pronto como el BGP speaker genera la notificacin la sesin es terminada

Negociacin de Vecindad (Neighbor) Antes que BGP puedan comunicarse deben ser vecinos o peers. El primer paso es formar una sesin TCP 179 con cada otro. Despus el BGP speaker enva un mensaje Open, para luego enviar incrementales mensajes Update, notificacin y keepalive. El proceso de la formacin de vecinos es conocido como Finite State Machine

Finite State Machine


Hay seis posibles estados: y Idle: Es el primer estado, el BGP speaker espera por un BGP Start event, para luego iniciar el connect retry timer, se inicia el TCP connector al BGP speaker que quiere como peer y escucha cualquier conexin iniciado por el otro BGP speaker.

El BGP speaker entonces cambiar su estado a connection . Si hay errores la sesin TCP finaliza y el estado vuelve a estado Idle . y Connection: BGP est esperando por la conexin TCP sea formado. Una vez que la conexin es completada, se limpia el connect retry timer, y se enva un mensaje Open al remoto BGP speaker y pasa al estado Open Sent. Si la conexin TCP no es formada, se restaura el connect retry timer, continua escuchando un intento de conexin del remoto BGP speaker y su estado pasa a Activo. Si el connect retry timer expira, se resetea el timer, se inicia una sesin TCP, se sigue escuchando por intentos de conexin del remoto y permanece en el estado conexin. Si hay un error se cierra la conexin TCP y se pasa al estado Idle. Active: El BGPspeaker est intentando iniciar una sesin TCP. Una vez que la conexin es completada, se limpia el cont retry timer, inicializacin completa, y se enva un Open al remoto BGP speaker y pasa al estado Open Sent . Open Sent: El BGP speaker est esperando recibir un Open desde el remoto BGP speaker. Al recibir el Open todos los campos sern chequeados. Si un error es detectado enviar un mensaje de notificacin al remoto y terminar el TCP y pasa al estado Idle. Si ningn error se ha encontrado en el Open el BGP speaker enviar un keepalive y negocian los valores del keepalive timer y hold timer. Un valor de 0 significa que el keepalive timer y el hold timer nunca sern reseteados. Despus de la negociacin se determinar si la conexin ser iBGP o eBGP, porque esto afectar el proceso de UPdate. Una vez que que el tipo de BGP es determinado, pasa al estado Open Confirm. Durante este estado es posible recibir un TCP disconnect, si esto ocurre el estado pasa a Activo. Si hay un error pasa al estado Idle. Open Confirm: El BGP speaker esperar recibir un keepalive desde el remoto. Una vez recibido, se resetea el hola timer y pasa al estado Establecido . En este punto la relacin de peer ha sido formada. Si una notificacin es recibido en vez de un keepalive pasa al

estado Idle. En caso que el hola timer expira antes que el keepalive es recibido, el BGP speaker enviar una notificacin al remoto y terminar la sesin TCP y su estado a Idle. y Establecido: Todas las negociaciones estn completadas. Los BGP peers intercambiarn Update, Keepalive. Cada vez que se recibe un Update o Keepalive ste resetear su hold timer. Si el hold timer expira antes que un Update o Keepalive es recibido, el BGP speaker enviar una notificacin a su peer, terminar la sesin TCP y pasar al estado Idle. Una vez alcanzado el estado Establecido se inicia el intercambio de informacin de ruteo.

Seleccin de Rutas
Cuando se aprende una ruta, esta necesita pasar a travs del Routing Information Base (RIB). Un RIB est dividido en: y y y Adj-RIBs-In Loc-RIB Adj-RIBs-Out

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

El BGP speaker recibe las rutas BGP Las rutas son colocadas en el Adj-RIBs-In Las rutas son enviadas al Inbound Policy Engine el IPE filtra y manipula rutas basadas en la poltica seteada por el administrador. Las rutas que son filtradas son sacadas Las dems rutas BGP son enviadas al Loc-RIB Se almacena las rutas en el Loc-RIB. El router usa estas rutas para hacer decisiones de ruteo BGP Las rutas son direccionadas al Outboind Policy Engine. El OPE filtra y manipula rutas basado en las polticas seteada por el administrador. Las rutas que son filtradas son sacadas. Las rutas son enviadas al Adj-RIBs-Out Las rutas recibidas son almacenadas en el Adj-RIBs-Out Todas las rutas son advertidas a los peers.

Configuracin de BGP
Para habilitar BGP se ocupan el siguiente comando: router bgp Autonomous System Number Para formar relacin de vecindad se utiliza el siguiente comando: neighbor address remote-as autonomous system number Usaremos el siguiente ejemplo para hacer la configuracin:

R1# conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)# router bgp 100 R1(config-router)# ^Z R1# R2# conf t Enter configuration commands, one per line. End with CNTL/Z. R2(config)# router bgp 200 R2(config-router)# ^Z R2# R3# conf t Enter configuration commands, one per line. End with CNTL/Z. R3(config)# router bgp 300 R3(config-router)# ^Z R3# Despus de habilitar BGP configuraremos la relacin con los otros vecinos R1# conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)# router bgp 100 R1(configrouter)# neighbor 10.10.10.2 remote-as 200 R1(config-router)# ^Z R1# R2# conf t Enter configuration commands, one per line. End with CNTL/Z. R2(config)# router bgp 200 R2(configrouter)# neighbor 10.10.10.1 remote-as 100 R2(config-router)# neighbor 20.20.20.1 remote-as 300 R2(config-router)# ^Z R2# R3# conf t Enter configuration commands, one per line. End with CNTL/Z. R3(config)# router bgp 300 R3(config-router)# neighbor 20.20.20.2 remote-as 200 R3(config-router)# ^Z R3# Esto es todo para configurar bsicamente BGP

Configuracin iBGP and eBGP

Ahora configuraremos iBGP en la figura de arriba. Usaremos direcciones Loopback para cada participante del iBGP. Se necesita entrar el siguiente comando adicional neighbor address update-source interface Sin este commando el BGP speakers nuca formar peers con el otro. La razn es porque el BGP speaker espera recibir el paquete desde la direccin loopback del BGP speaker , sin el commando update-source, el paquete BGP usar la direccin de la interface de salida del BGP speaker. El remoto BGP speaker recibir el paquete y lo ignora puesto que no es la direccin que esperaba ver Las direcciones Loopback son la siguientes R2 Lo0-2.2.2.2 R3 Lo0-3.3.3.3 R4 Lo0-4.4.4.4 R1# conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)# router bgp 100 R1(config-router)# ^Z R1# R2# conf t Enter configuration commands, one per line. End with CNTL/Z.

R2(config)# router bgp 200 R2(config-router)# no synchronization R2(config-router)# ^Z R2# R3# conf t Enter configuration commands, one per line. End with CNTL/Z. R3(config)# router bgp 200 R3(config-router)# no synchronization R3(config-router)# ^Z R3# R4# conf t Enter configuration commands, one per line. End with CNTL/Z. R4(config)# router bgp 200 R4(config-router)# no synchronization R4(config-router)# ^Z R4# R5# conf t Enter configuration commands, one per line. End with CNTL/Z. R5(config)# router bgp 300 R5(config-router)# ^Z R5# Ahora que est habilitado BGP asignaremos los vecinos R1# conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)# router bgp 100 R1(config-router)# neighbor 10.10.10.2 remote-as 200

R1(config-router)# ^Z R1# R2# conf t Enter configuration commands, one per line. End with CNTL/Z. R2(config)# router bgp 200 R2(config-router)# neighbor 10.10.10.1 remote-as 100 R2(config-router)# neighbor 3.3.3.3 remote-as 200 R2(config-router)# neighbor 4.4.4.4 remote-as 200 R2(config-router)# neighbor 3.3.3.3 update-source Lo0 R2(config-router)# neighbor 4.4.4.4 update-source Lo0 R2(config-router)# ^Z R2# R3# conf t Enter configuration commands, one per line. End with CNTL/Z. R3(config)# router bgp 200 R3(config-router)# neighbor 2.2.2.2 remote-as 200 R3(config-router)# neighbor 4.4.4.4 remote-as 200 R3(config-router)# neighbor 2.2.2.2 update-source Lo0 R3(config-router)# neighbor 4.4.4.4 update-source Lo0 R3(config-router)# ^Z R3# R4# conf t Enter configuration commands, one per line. End with CNTL/Z. R4(config)# router bgp 200 R4(config-router)# neighbor 20.20.20.1 remote-as 300 R4(config-router)# neighbor 3.3.3.3 remote-as 200

R4(config-router)# neighbor 2.2.2.2 remote-as 200 R4(config-router)# neighbor 3.3.3.3 update-source Lo0 R4(config-router)# neighbor 2.2.2.2 update-source Lo0 R4(config-router)# ^Z R4# R5# conf t Enter configuration commands, one per line. End with CNTL/Z. R5(config)# router bgp 300 R4(config-router)# neighbor 20.20.20.2 remote-as 200 R5(config-router)# ^Z R5# La configuracin del iBGP comparado a eBGP no es diferente

Configuracin de eBGP Multihop


Hay veces en que el remoto BGP speaker no est directamente conectado. Cuando esto ocurre es conocido como un eBGP multihop. Hay un par de diferentes razones que esto puede ocurrir: y y Hay otro router entre el local BGP speaker y el remoto BGP speaker que no puede arrancar BGP. La fuente de una conexin BGP de una interface loopback en al menos un BGP speakers.

Se usa el siguiente commando: neighbor address ebgp-multihop [ ttl ]

En la figura R2 no participa en BGP R1 Lo0-1.1.1.1 R3 Lo0-3.3.3.3 R1# conf t Enter configuration commands, one per line. End with CNTL/Z. R1(config)# router bgp 100 R1(config-router)# neighbor 3.3.3.3 remote-as 200 R1(config-router)# ^Z R1# R3# conf t Enter configuration commands, one per line. End with CNTL/Z. R3(config)# router bgp 200 R3(config-router)# neighbor 1.1.1.1 remote-as 100 R3(config-router)# ^Z R3# R1# conf t

Enter configuration commands, one per line. End with CNTL/Z. R1(config)# router bgp 100 R1(config-router)# neighbor 3.3.3.3 update-source Lo0 R1(config-router)# neighbor 3.3.3.3 ebgp-multihop R1(config-router)# ^Z R1# R3# conf t Enter configuration commands, one per line. End with CNTL/Z. R3(config)# router bgp 200 R3(config-router)# neighbor 1.1.1.1 update-source Lo0 R3(config-router)# neighbor 1.1.1.1 ebgp-multihop R3(config-router)# ^Z R3# Por ahora terminamos con la configuracin Bsica de BGP en un segundo curso abordaremos opciones avanzadas de BGP

Potrebbero piacerti anche