Upload
vankhue
View
219
Download
0
Embed Size (px)
Citation preview
Teoría y Configuración de BGPTeoría y Configuración de BGP
WALC 2010
Programa
Uso de atributos de BGPUso de atributos de BGPImplementando IBGP Implementando EBGPEnfasis en Estabilidad EscalabilidadEnfasis en Estabilidad, Escalabilidad y Ejemplos de Configuraciones
R d BGPRepaso de BGP
Por qué utilizarlo?Por qué utilizarlo?
3
Resultado Deseado?
Implementación de políticas deImplementación de políticas de enrutamiento que sean:
EscalableE t blEstableSimple (o eso esperamos!)Simple (o eso esperamos!)
Más Detalles...
Necesitas escalar su IGPNecesitas escalar su IGPEres un cliente con dos conexiones a ISPsNecesitas transitar todas las rutas en InternetNecesitas implementar una politica de enrutamiento o expandir las políticas de QoSenrutamiento, o expandir las políticas de QoS
Actualizaciones de BGP
RetirosRetirosRetirosRetiros
At ib tAt ib tAtributosAtributos
PrefijosPrefijos(NLRI - Network-Layer
Reachability Information)(NLRI - Network-Layer
Reachability Information)y )y )
Atributos de BGP Utilizados para Definir la Política depara Definir la Política de EnrutamientoEnrutamiento
1: ORIGIN1: ORIGIN 7: AGGREGATOR7: AGGREGATOR1: ORIGIN2: AS-PATH3: NEXT-HOP
1: ORIGIN2: AS-PATH3: NEXT-HOP
7: AGGREGATOR8: COMMUNITY9: ORIGINATOR ID
7: AGGREGATOR8: COMMUNITY9: ORIGINATOR ID3: NEXT HOP
4: MED5: LOCAL PREF
3: NEXT HOP4: MED5: LOCAL PREF
9: ORIGINATOR_ID10: CLUSTER_LIST14: MP REACH NLRI
9: ORIGINATOR_ID10: CLUSTER_LIST14: MP REACH NLRI5: LOCAL_PREF
6: ATOMIC_AGGREGATE5: LOCAL_PREF6: ATOMIC_AGGREGATE
14: MP_REACH_NLRI15: MP_UNREACH_NLRI14: MP_REACH_NLRI15: MP_UNREACH_NLRI
BGP Externo (eBGP)AS 109
131 108 0 0
•Entre router en AS diferentes•Usualmente con conexióm directa 131.108.0.0
A.1Router B
Usualmente con conexióm directa•Con next-hop apuntando a si mismo
131.108.10.0131.108.10.0
Router Brouter bgp 110neighbor 131.108.10.1 remote-as 109
B
131.108.10.0131.108.10.0
2
Router Arouter bgp 109 B
150.10.0.0
.2router bgp 109 neighbor 131.108.10.2 remote-as 110
AS 110
BGP Interno• Vecinos en el mismo AS
No se modifica el Ne t hopA B
• No se modifica el Next-hop• No necesariamente con
ió di tconexión directa• No anuncia otras rutas
Router B:router bgp 109
aprendidas por iBGP
neighbor 131.108.30.2 remote-as 109
Router A:b 109router bgp 109
neighbor 131.108.20.1 remote-as 109
Atributos de BGP: NEXT HOPEBGP—next-hop set to self
_
AS 300AS 200 FF150.10.1.1 150.10.1.2
150.10.0.0/16 EE
CC
DDDD
192 0 0 0/24 150 1 1 3CC150.1.1.1
3rd Party EBGP IBGP ne t hop nmodified
150.10.0.0/16 150.10.1.1192.0.0.0/24 150.10.1.1
192.0.0.0/24 150.1.1.3
Modificando los defaults:AABB
y150.1.1.2 150.1.1.3
IBGP next-hop unmodified
Solo para EBGP NLRI:neighbor x.x.x.x next-hop-self
192.0.0.0/24AS 201AS 301
Modificando con route-map:set ip next-hop { A.B.C.D | peeraddress}
Problema: Detección de Loop, PolíticasPolíticasSolución: AS-PATH
1881
1883193.0.32/24
Solución: AS PATHSecuencia de ASs 1881
193.0.33/24AA
BB
Secuencia de ASsLista de AS por los que la
ruta ha pasado
1880193.0.34/24
1882
Conjunto de AS (AS Set)Sumariza la secuencia de
193.0.35/24D
EEEE
ASsEl order de la secuencia
i dCC
A: 193.0.33/24 1880 1881B: 193 0 34/24 1880A: 193.0.33/24 1880 1881B: 193 0 34/24 1880
EEEEse pierde
Prefijo con route-map:set as path B: 193.0.34/24 1880
C: 193.0.32/24 1880 1883E: 193.0.32/22 1880 {1881, 1882,1883}
B: 193.0.34/24 1880C: 193.0.32/24 1880 1883E: 193.0.32/22 1880 {1881, 1882,1883}
set as-path
Problema: Indicar mejor camino ajSolución: MED
690 1883
1755
200
1880
209200 209
Informa sobre la preferencia de punto de entradaSe compara si los caminos son del mismo ASp
A no ser que se us “bgp always-compare-med”
Es un atributo no-transitivoroute-map: set metric
set metric-type internal
Problema: Sobrepasando As-path/MED?path/MED?Solución: LOCAL PREFERENCE
1755 1880690
Solución: LOCAL PREFERENCE
660
680
660
Atributo es local al AS — mandatorio para las actualizaciones de iBGProute-map: set local-preference
Problema: Sobrepasando Local PreferencePreference Solución: WEIGHTSolución: WEIGHT
1755 1880690
666
660660
Local al router en que es configuradoroute-map: set weightEl mayor peso (weight) gana sobre todos los caminos válidos
Problema: Escalando Políticas de EnrutamientoEnrutamientoSolución: COMMUNITY
Communities:
1:100—customer routes
Communities:
1:100—customer routes
Solución: COMMUNITY
CORE Peer A
1:80—peer routes1:80—peer routes Set Community1:80
CORE Peer AMatch Community
1:100Match Community1:100 1:80
Match Community1:100
Set Community
Cliente A Cliente B
Set Community 1:100
Cliente ATodas las rutas
Cliente BRutas de Clientes
Atributo de BGP: COMMUNITYAgrupa los destinos para ayudar a
l l li ió d lí iescalar la aplicación de políticasComunidades Típicas:p
Destinos aprendidos de los clientesDestinos aprendidos de los peersDestinos aprendidos de los peersDestinos en la VPN Destinos que reciben tratamientoDestinos que reciben tratamiento preferencial en la cola
Atributos de BGP:Atributos de BGP: COMMUNITY
Activación por neighbor/peer-group: neighbor {peer-address | peer-group-name} send-community} y
Transferidos a través de ASsF ú d d 4Formato común es una cadena de 4 bytes: <AS>:[0-65536]y
Atributos de BGP:Atributos de BGP:COMMUNITY (Cont.)
Cada destino puede ser miembro de varias comunidadesRoute-map: set community
<1-4294967295> número de comunidadaa:nn número de comunidad en formato aa:nnadditive Añade a una comunidad existentelocal-AS No enviar a los peers EBGP (well-known community)no-advertise No enviar a ningún peer (well-known community)no-export No exportar fuera del AS/Conf (well-known community)no export No exportar fuera del AS/Conf. (well known community)none No atributo de comunidad
Atributo de menor uso:Atributo de menor uso: ORIGIN
IGP—creado con comando network en la configuración de BGPEGP—Redistribuido de EGPEGP Redistribuido de EGPIncomplete—Redistribute IGP en la configuración de BGPconfiguración de BGPNOTA: siempre usar route-map para modificar: set origin igp
Comando set en un route-mapas-path Añade una cadena de AS para el atributo
AS PATHAS-PATHcomm-list set BGP community list (for deletion)community Atributo de Comunidadcommunity Atributo de Comunidaddampening Configura parámetros para dampeninglocal-preference Atributo de preferencia local de BGPlocal preference Atributo de preferencia local de BGPmetric Valor Metric para el protocolo de enrutamientoorigin Codigo de origen BGPweight Peso BGP para la tabla de enrutamientog pip next-hop { A.B.C.D | peer-address }
Atributos de BGP75k1#sh ip bgp 10.0.0.0BGP ti t bl t f 10 0 0 0/24 i 139267814BGP routing table entry for 10.0.0.0/24, version 139267814Paths: (1 available, best #1)Not advertised to any peerasNot advertised to any peer
65000 64000 {100 200}, (aggregated by 64000 16.0.0.2)! AS-PATH
as
AS ID
10.0.10.4 (metric 10) from 10.0.0.1 (10.0.0.2)Origin IGP metric 100 localpref 230 valid aggregated
! NEXT-HOP IGP METRIC PEER-IP PEER-ID
Origin IGP, metric 100, localpref 230, valid, aggregatedinternal (or external or local), atomic-aggregate, bestatomic aggregate, bestCommunity: 64000:3 100:0 200:10Originator: 10.0.0.1, Cluster list: 16.0.0.4, 16.0.0.14
Algoritmo Básico Para DecidirConsidera solo las rutas sincronizadas sin referencia circular y un next-hop válido, entonces prefiere:
Mayor WEIGHT
y p , p
Mayor LOCAL PREFERENCEORIGINADA LOCALMENTE (eg network/aggregate)
Más Corto AS PATHMás Corto AS-PATHMenor ORIGIN (IGP < EGP < incomplete)
Menor MEDEBGP
IBGPMenor IGP METRIC al next-hop
Sincronización
1880
690
A 1880A
209B
• Router A no anunciará los prefijos de AS209 hasta que haya convergencia en el IGP.
• Asegurarse de que los next-hops del iBGP pueden ser vistos via IGP, entonces:
q y g
router bgp 1880no synchronization
Consideraciones Generales
Sincronización: no requerida si se tieneSincronización: no requerida si se tiene una maya iBGP completa
> No dejar que BGP tenga prioridad=> No dejar que BGP tenga prioridad sobre IGPauto-summary: no. En su lugar usar comandos de agregación:
router bgp 100no synchronization
comandos de agregación:
no synchronizationno auto-summarydistance 200 200 200
Hasta Ahora …
Aplicar las políticas en base al ASAplicar las políticas en base al AS Agrupar las rutas usando comunidadesSeleccionar los puntos de entrada y salida para grandes grúpos de políticas usandopara grandes grúpos de políticas usando MEDs y preferencia local
Pueden tús políticas escalar?Pueden tús políticas escalar?
Implementando iBGPImplementando iBGP
Route Reflectors, Peer GroupsRoute Reflectors, Peer Groups
26
Guías para un iBGP EstableEstablecer la conexión usando direcciones de loopback
neighbor { ip address | peer-group} update-source loopback0
Independiente de fallos de la interfase físicaBalanceamiento de la carga es realizado por el IGPG
Guía Para Escalar iBGP
Usar peer-group y route-reflectorp g p ySolo llevar next-hop en el IGP S l ll t d l t BGP iSolo llevar todas las rutas en BGP si es necesario No redistribuir BGP en el IGP
Usando Peer-Groups
iBGP Peer Group
eBGP
Peer Group Peer Group Peer GroupPeer Group con todas las rutas
“Default” Rutas de Clientes
Qué es un peer-group?
Todos los miembros del peer-groupp g ptienen una política de salida comúnActualizaciones generadas solo unaActualizaciones generadas solo una vez para el peer-groupSimplifica la configuraciónSimplifica la configuraciónMiembros pueden tener diferentes
ípolíticas de entrada
Por qué usar Route-Por qué usar RouteReflectors?
Para evitar una maya conN(n-1)/2 sesiones
13 Routers => 78 Sesiones
iBGP!n=1000 => casi medio millón de
iBGP!
sesiones iBGP!
Usando Route-ReflectorsRegla para evtar un circulo de RR:
BackboneBackboneRRRRRRRR
circulo de RR: Topología de RR debe reflejar la
RRCRRC
RRRR
RRC
debe reflejar la topología física
Grupo AGrupo A
RRRR
RRGrupo AGrupo A
Grupo BRRC
RRRRRRC
RRRRGrupo CGrupo C
RRRR
Grupo DGrupo D
Qué es un Route-Reflector?
El Reflector recibe información deEl Reflector recibe información de clientes y no clientesSi l j i d li tSi el mejor camino es de un cliente, reflejarlo a clientes y no clientes Si el mejor camino es de no-cliente, reflejarlo a los clientesreflejarlo a los clientes
Desplegando Route-Reflectors
Divida el backbone en varios gruposDivida el backbone en varios grupos Cada grupo contiene al menos 1 RR (multiples para redundancia) y multiples(multiples para redundancia), y multiples clientes L RR l t d iBGPLos RRs crean una maya completa de iBGPUtilizar solo un IGP—next-hop que no es p qmodificado por el RR
Route-Reflector JerárquicoRouter idRR
ARRC Router id
Router id140.10.1.1
141.153.30.1
C
A 141.153.17.1
RRCRR
Ejemplo:RouterB>sh ip bgp 198.10.0.0BGP routing table entry for 198 10 10 0/24
DRouter id141.153.17.2
B
BGP routing table entry for 198.10.10.0/243141.153.14.2 from 141.153.30.1 (140.10.1.1)Origin IGP, metric 0, localpref 100, valid, internal, best 141.153.14.2
198 10 0 0AS3Originator: 141.153.17.2
Cluster list: 144 10 1 1 141 153 17 1 198.10.0.0Cluster list: 144.10.1.1, 141.153.17.1
Atributos de BGP: ORIGINATOR_ID
ORIGINATOR_IDRouter ID del vecino iBGP qye refleja rutas del cliente RR a no clientesdel cliente RR a no clientesSobrepasado por: bgp cluster-id x.x.x.x
D l blDe uso para resolver problemas y chequear por relaciones circulares
Atributos de BGP:Atributos de BGP: CLUSTER_LIST
CLUSTER LISTCLUSTER_LISTCadena de ORIGINATOR_IDs a través de los cuales la ruta ha pasadocuales la ruta ha pasado
De uso para resolver problemas y chequear relaciones circulares
Hasta Ahora…Es la conexión iBGP Estable?
Use loopbacks para la conexión
Escalará?Escalará?Use peer-groupsUse route-reflectors
Simple, configuración jerárquica?Simple, configuración jerárquica?
Desplegando eBGPDesplegando eBGP
Consideraciones de ClientesConsideraciones de Clientes Consideraciones de ISPs
39
Consideraciones de Clientes
ProcedimientoProcedimientoConfigure BGP (use passwords para la sesión!)sesión!)Genere una ruta agregada estableConfigure la política de entrada Configure la política de salidaConfigure la política de salida Configure loadsharing/multihoming
Conectandose a un ISP
AS 200• AS 100 es un cliente de AS 200
AS 200
10.0.0.0• Usualmente con conexión
directaA
10.200.0.0
.1Router B:router bgp 109router bgp 109aggregate-address 10.60.0.0 255.255.0.0 summary-only neighbor 10.200.0.1 remote-as 200
B.2
neighbor 10.200.0.1 route-map ispout outneighbor 10.200.0.1 route-map ispin in
AS10010.60.0.0
Que es agregación?Sumarización basada en rutas específicas la tabla de enrutamiento BGPBGP
10.1.1.0 255.255.255.010 2 0 0 255 255 0 010.2.0.0 255.255.0.0=> 10.0.0.0 255.0.0.0
Cómo Agregar?aggregate-address 10.0.0.0 255.0.0.0 {as-set} {summary-only} {route-map}Use as-set para incluir la información de camino y comunidad basado en las rutas específicassummary-only suprime las rutas específicasroute-map para configurar otros atributosroute map para configurar otros atributos
Por qué Agregar?
Reducir el número de prefijos a anunciarIncrementar estabilidad — rutas agregadas se mantienen aún si las específicas son inestables
óGeneración de rutas agragadas estables:
router bgp 100router bgp 100aggregate-address 10.0.0.0 255.0.0.0 as-set summary-onlynetwork 10.1.0.0 255.255.0.0:i t 10 1 0 0 255 255 0 0 ll0ip route 10.1.0.0 255.255.0.0 null0
Atributos de BGP:Atributos de BGP:Atomic Aggregate
Indica perdida de información de AS-PATHIndica perdida de información de AS PATHNo debe ser removido una vez configurado
óConfiguración: aggregate-address x.x.x.xNo configurado si la clave as-set es utilizada,No configurado si la clave as set es utilizada, AS-SET y COMMUNITY contienen la información sobre las rutas específicasinformación sobre las rutas específicas
Atributos de BGP: Aggregator
Número de AS e IP del enrutador generando el agregado De uso para resolver problemasDe uso para resolver problemas
Atributos de AgregaciónNEXT_HOP = local (0.0.0.0)WEIGHT = 32768LOCAL PREF = ninguna (asume 100)LOCAL_PREF ninguna (asume 100)AS_PATH = AS_SET o nadaORIGIN IGPORIGIN = IGPMED = ninguna
Por qué una Política dePor qué una Política de Entrada?
Aplicar una comunidad reconocible para usar en losAplicar una comunidad reconocible para usar en los filtros de salida u otras políticasConfigurar local preference para modificar elConfigurar local-preference para modificar el default de 100 B l d l bi t d ióBalanceo de las cargas en ambientes de conexión dual—ver mas adelante
route-map ISPin permit 10set local-preference 200set community 100:2
Por qué una política de Salida?
El filtrado de prefijos de salida ayuda a ado d p jo d a da ayuda aprotegernos contra errores (también podemos aplicar filtros de comunidades y as-path)Enviar comunidades basado en acuerdos con el ISP
route-map ISPout permit 10match ip address prefix-list outgoingset community 100:1 additive
Balanceo de Cargas —Un ISP Router A:interface loopback 0interface loopback 0ip address 10.60.0.1 255.255.255.255!router bgp 100router bgp 100 neighbor 10.200.0.2 remote-as 200neighbor 10.200.0.2 update-source loopback0neighbor 10.200.0.2 ebgp-multi-hop 2
200A Loopback 0
10.200.0.2
100200
Balanceo de Cargas—MultiplesBalanceo de Cargas Multiples Caminos desde el mismo AS
Router A:router bgp 100 neighbor 10.200.0.1 remote-as 200neighbor 10.300.0.1 remote-as 200maximum-paths 6
200A
100
200
100
Qué es Multihoming?
Conectarse a dos o más ISPs paraConectarse a dos o más ISPs para incrementar:
C fi bilid d i ISP f ll t d íConfiabilidad—si un ISP falla, todavía funcionaDesempeño—mejores caminos a destinos comunes en Internet
Tipos de Multihoming
Tres casos comunes:Ruta Default de todos los proveedoresRutas de Clientes+default de todosRutas de Clientes+default de todosRutas completas de todos
Default de Todos losDefault de Todos los Proveedores
Solución bajos requerimientos de memoria/CPUSolución bajos requerimientos de memoria/CPU
P o eedo defa lt de BGP > p o eedo decideProveedor default de BGP => proveedor decide basado en la métrica de IGP cual es el defaultTu envias todas tus rutas al proveedor => camino de entrada decidido por el Internet
Tu puedes influenciar agregando tu AS variasveces (AS-path prepend)
Default de Todos losDefault de Todos los Proveedores
AS 100160 10 0 0/16160.10.0.0/16
AS 200 AS 300
EEDD0.0.0.0 0.0.0.0
AS 400BBAA
C Selecciona el IGP
CCcon la métrica más baja para Default
Clientes+Default de Todos los Proveedores
Uso mediano de memoria y CPUUso mediano de memoria y CPU “Mejor” camino—usualmente el camino AS (AS PATH) más corto(AS PATH) más corto Uso de local-preference para modificar b d fij h id dbasado en prefijo, as-path, o comunidadMétrica de IGP al default usado para todos plos destinos
Rutas de Clientes de Todos los Proveedores
Cliente
AS 100160.10.0.0/16
Proveedor ProveedorAS 200 AS 300
EEDD
AS 400BBAA
C Selecciona AS 400el camino AS más corto
CC
Rutas de Clientes de Todos losRutas de Clientes de Todos los Proveedores
Cliente
AS 100160.10.0.0/16
Proveedor AS 300
ProveedorAS 200 AS 300AS 200
DD 800 EE
AS 400ip prefix-list AS100 permit
16.10.0.0/16BBAA
AS 400C Selecciona la AS 400 16.10.0.0/16
route-map AS300in permit 10match ip address prefix-list AS100set local-preference 800
AS 400mayorLocal-Preference
CC
Rutas Completas de AmbosRutas Completas de Ambos Proveedores
Solución de mayores requerimientos deSolución de mayores requerimientos de memoria/CPUAlcanza todos destinos basado en el “mejor”Alcanza todos destinos basado en el mejor camino—usualmente el que tiene el camino mas cortomas cortoTodavía puede ajustar manualmente usando local-pref y comparación de as-local pref y comparación de aspath/comunidad/prefijo
Rutas Completas de AmbosRutas Completas de Ambos Proveedores
AS 100 AS 500AS 100 AS 500
AS 200 AS 300
EEDD
AS 400BBAA
AS 400
CCC Selecciona el
camino más corto
Controlando la Entrada deControlando la Entrada de Tráfico?
La entrada es muy dificil de controlar debido a la falta de una métrica transitivatransitivaPuedes dividir los anuncios de prefijos
t l d tentre los proveedores, pero entonces, que pasa con la redundancia?
Controlando la Entrada de Tráfico? (Cont.)
• Mal Ciudadano Internet:•Divide el espacio de direcciones•Usa “as-path prepend”
Buen Ciudadano :
Usa as path prepend
Buen Ciudadano :Divide el espacio de direccionesU “ d ti ”Usa “advertise maps”
Usando “AS-PATH prepend”Cliente
10.1.0.0/16 300 400 400 10.1.0.0/16 200 400 (Mejor)
AS 100
ProveedorAS 200
Proveedor
AS 300EEDD
AS 40010.1.0.0
BBAA ip prefix-list AS100 permit 10.1.0.0/16route-map AS300out permit 10
t h i dd fi li t AS100CC
match ip address prefix-list AS100set as-path prepend 400
Usando un “Advertise-Map”
10.15.7/24 auto-injectaccess-list 1 permit 10.15.7.0 !Anuncia cuando...access-list 2 permit 10.15.0.0 !… este desaparece
i hb <R1> d ti i t bb
1.10/16
10.15/16
neighbor <R1> advertise-map am non-exist-map bbroute-map am permit 10match ip address 1route map bb permitISP1
ISP2R1R1
R3R3
10.15/16route-map bb permitmatch ip address 2
R2R2
R3R3
1.10.6/24 10.15.7/24
R4R4R2R2
1.10.6/24 10.15.7/24R4R4
1.10.6.1 10.15.7.4
Hasta Ahora…Estabilidad por Medio de:
AgregaciónMultihomingFiltrado de Entreda/Salida
Escalabilidad de memoria/CPU:sca ab dad de e o a/C UDefault, rutas de clientes, todas las rutas
Simplicidada usando soluciones “estandares”Simplicidada usando soluciones estandares
Consideraciones de ISPs
Escalar la agragación de clientes en BGPOfrecer una selección del número de rutas a anunciarIntercambio con otros proveedoresMinimizar la actividad de BGP y protegerse a a act dad de G y p otege secontra los problemas de configuración de los clientesProveer un servicio alternativoPropagar una política de Calidad de Serviciop g p
Guías para el Agregado deGuías para el Agregado de Clientes
Definir por los menos tres “peer-groups”:cliente-default — envía solo defaultcliente-cliente — envía solo las rutas de clientesCliente-completo — envía todas las rutas
Identificar las rutas a traves de comunidades2:100=clientes; 2:80=peers
Aplicar claves y un “prefix-list” para cada vecino BGP
Agregado de Clientes CORECORE
Route ReflectorRoute Reflector
Cliente Peer Group
Router de Agregación(Cliente RR)
Cliente Peer Group
Rutas de Clientes“Default”Rutas Completas
NOTA: Aplicar claves y “prefix-list” de
Rutas de ClientesPeer Group
DefaultPeer Group
Rutas CompletasPeer Group
NOTA: Aplicar claves y prefix list de entrada para cada Cliente
Cliente-completo peer-groupneighbor cliente-completo peer-groupneighbor cliente-completo description Envía todas las rutasneighbor cliente-completo remove-private-ASneighbor cliente-completo version 4neighbor cliente-completo route-map cliente-entrada inneighbor cliente-completo prefix-list cidr-block outneighbor cliente-completo route-map rutas-completas out.ip prefix-list cidr-block seq 5 deny 10.0.0.0/8 ge 9p p q y / gip prefix-list cidr-block seq 10 permit 0.0.0.0/0 le 32
route-map de salida pararoute map de salida para cliente-completo
ip community-list 1 permit 2:100p y pip community-list 80 permit 2:80.route-map rutas-completas permit 10match community 1 80 ; clientes & peersset metric-type internal ; MED = métrica IGPset metric type internal ; MED = métrica IGPset ip next-hop peer-address ; la nuestra
route-map cliente-entrada
route-map cliente-entrada permit 10route map cliente entrada permit 10set metric 4294967294 ; ignora MEDset ip next-hop peer-addressset community 2:100 additiveset community 2:100 additive
cliente-cliente peer-group
neighbor cliente-cliente peer-groupneighbor cliente cliente peer groupneighbor cliente-cliente description Rutas de Clientesneighbor cliente-cliente remove-private-ASneighbor cliente-cliente remove-private-ASneighbor cliente-cliente version 4
i hb li t li t t li t t d ineighbor cliente-cliente route-map cliente-entrada inneighbor cliente-cliente prefix-list cidr-block outneighbor cliente-cliente route-map rutas-clientes out
route-map rutas-clientes
route-map rutas-clientes permit 10route map rutas clientes permit 10match community 1 ; solo clientes
éset metric-type internal ; MED = métrica igpset ip next-hop peer-address ; la nuestrap p p ;
route-map ruta-defaultneighbor cliente-default peer-groupneighbor cliente-default description Envía Default neighbor cliente-default default-originate g g
route-map ruta-defaultneighbor cliente-default remove-private-ASneighbor cliente default remove private ASneighbor cliente-default version 4neighbor cliente-default route-map cliente-entradaneighbor cliente default route map cliente entradaneighbor cliente-default prefix-list niega-todo out
ip prefix-list niega-todo seq 5 deny 0.0.0.0/0 le 32
route-map ruta-default
route map ruta default permit 10route-map ruta-default permit 10set metric-type internal ; MED = métrica igpyp gpset ip next-hop peer-address ; la nuestra
Peer Groups para Puntos dePeer Groups para Puntos de Intercambio
Similar al EBGP para agregado de clientesSimilar al EBGP para agregado de clientes excepto que no se usa el filtrado de prefijos (porque no hay un registro)(porque no hay un registro)En su lugar se usa maximum-prefix y chequeos de sanidad de prefijos Continua usando claves para cada vecino!Continua usando claves para cada vecino!
Peer Groups para Puntos dePeer Groups para Puntos de Intercambio (Cont.)
neighbor nap peer-groupneighbor nap descripción de ISPneighbor nap remove-private-ASneighbor nap remove private ASneighbor nap version 4
i hb fi li h id d ineighbor nap prefix-list chequeo sanidad inneighbor nap prefix-list cidr-block outneighbor nap route-map nap-salidas outneighbor nap maximum prefix 30000neighbor nap maximum prefix 30000
Peer Groups para Puntos dePeer Groups para Puntos de Intercambio (Cont.)
route-map nap-salida permit 10match community 1 ; solo clientesset metric-type internal ; MED = métrica IGP ypset ip next-hop peer-address ; la nuestra
Peer Groups para Puntos de Intercambio :Prefix-List chequeo-sanidad
# Primero filtramos nuestro espacio de direcciones!!ip prefix-list chequeo-sanidad seq 5 deny 0 0 0 0/32ip prefix list chequeo sanidad seq 5 deny 0.0.0.0/32# no aceptamos defaultip prefix-list chequeo-sanidad seq 10 deny 0.0.0.0/8 le 32# no aceptamos nada que comience con 0o acepta os ada que co e ce co 0ip prefix-list chequeo-sanidad seq 15 deny 0.0.0.0/1 le 32# no aceptamos mascaras > 20 para todas las redes clase A (1-127)ip prefix-list chequeo-sanidad seq 15 deny 0.0.0.0/8 ge 20p p q q y g# no aceptamos 10/8 per RFC1918 ip prefix-list chequeo-sanidad seq 20 deny 10.0.0.0/8 le 32# reservado por IANA – dirección de loopback ip prefix-list chequeo-sanidad seq 25 deny 127.0.0.0/8 le 32# no acepta mascaras >= 17 para todas las redes clase B (129-191)ip prefix-list chequeo-sanidad seq 30 deny 128.0.0.0/2 ge 17# no acepta la red 128.0 – reservado por IANAip prefix-list chequeo-sanidad seq 35 deny 128.0.0.0/16 le 32
Peer Groups for NAPs:Peer Groups for NAPs:Prefix-List chequeo-sanidad# no acepta 172.16 por RFC1918ip prefix-list chequeo-sanidad seq 40 deny 172.16.0.0/12 le 32# no acepta clase C 192.0.20.0 reservado por IANAip prefix-list chequeo-sanidad seq 45 deny 192.0.2.0/24 le 32# no acepta clase C 192.0.0.0 reservado por IANA ip prefix-list chequeo-sanidad seq 50 deny 192.0.0.0/24 le 32# no acepta 192.168/16 por RFC1918ip prefix-list chequeo-sanidad seq 55 deny 192.168.0.0/16 le 32# no acepta 191.255.0.0 – reservado por IANA (Creo ??)ip prefix-list chequeo-sanidad seq 60 deny 191.255.0.0/16 le 32# no acepta mascaras > 25 para clase C (192-222)ip prefix-list chequeo-sanidad seq 65 deny 192.0.0.0/3 ge 25# no acepta nada en red 223 – reservado por IANA ip prefix-list chequeo-sanidad seq 70 deny 223.255.255.0/24 le 32# no acepta clase D/Experimentalip prefix-list chequeo-sanidad seq 75 deny 224.0.0.0/3 le 32
ResumenEscalabilidad:
Uso de atributos, especialmente comunidad (community) Uso de peer-groups y route-reflectors
Estabilidad:Estabilidad:Uso de dirección de loopback para el iBGP Generación de agregadosGeneración de agregadosAplicación de clavesSiempre filtrar anuncios de entrada y salida
ResumenSimplicidad—soluciones estandares:
Tres opciones de multihoming Agrupar clientes en comunidadesAgrupar clientes en comunidades Aplicación de políticas estandares en el bordebordeEvitar “configuraciones especiales” Automatice la generación de la configuracion (RR & RtConfig)
Referencias/Fuentes:
Cisco (www.cisco.com)( )Dave Meyer ([email protected])J h St t BGP4 Addi W lJohn Stewart, BGP4, Addison WesleySam Halabi, “Internet Routing Architectures”, , g ,Cisco Press RFCsRFCs
Ej l d filt li tEjemplos de filtros para clientes
ip prefix-list anuncia-mi-prefijo seq 10 permit <numero_red>/<mascara> ge 23
ip prefix-list anuncia-mi-prefijo seq 100 deny 0.0.0.0/32 le 32
ip prefix-list acepta-default seq 10 permit 0.0.0.0/0 ge 32
ip prefix-list acepta-default seq 100 deny 0.0.0.0/0 le 31
access-list 10 permit <numreo red> <mascara wildcard>access-list 10 permit <numreo_red> <mascara_wildcard>
access-list 10 deny any
access-list 20 permit 0.0.0.0 0.0.0.0
access-list 20 deny any