IP : Protocolo de puerta de enlace fronteriza (BGP)

El BGP prefija los filtros con 4-byte COMO números

17 Octubre 2016 - Traducción Automática
Otras Versiones: PDFpdf | Inglés (22 Agosto 2015) | Comentarios

Introducción

Este artículo describe cómo filtrar los prefijos del Border Gateway Protocol (BGP) con los números de Sistema autónomo (AS) 4-byte en el ® del Cisco IOS.

Contribuido por Lucas De Ghein, ingeniero de Cisco TAC.

Antecedentes

4-byte COMO números fueron introducidos en el BGP cuando el pool de 2-byte libre COMO números llegó a ser bajo. Esto significa que MIENTRAS QUE el número puede ahora ser un 2-byte o un número 4-byte. El RFC 6793 especifica 4-byte COMO números. Un 2-byte COMO número es un número entre 1 y 65,535. Un 4-byte COMO número es un número entre 1 y 4,294,967,295.

El 4-byte COMO número se puede representar en una moda punteada o como número llano. Un ejemplo de un 4-byte punteado COMO número es 7.52359. Éste es COMO punto del notaton. Un ejemplo de un número llano 4-byte es 511111. Éste es COMO asplain de la notación. 7.52359 es lo mismo que 511111.

Un router del Cisco IOS puede utilizar cualquier COMO notación. El valor por defecto en las versiones deL Cisco IOS más recientes es asplain. Para utilizar punteado COMO notación, el comando de punto del asnotation BGP puede ser utilizado.

Si por cualquier motivo el administrador de la red no quiere enviar los prefijos BGP con uno o más 4-byte MIENTRAS QUE miran los números en el AS PATH hacia un BGP externo (eBGP), después estos prefijos pueden ser filtrados. Este documento proporciona un filtro posible para alcanzar esto. Podría haber algunas razones por las que usted puede ser que no quiera que un BGP de conversación enviara los prefijos BGP con 4-byte COMO números en el AS PATH. Un ejemplo podría ser que hay un defecto en el BGP de conversación de recepción que da lugar al comportamiento adverso, que ocurre solamente para los prefijos BGP con 4-byte COMO números en el AS PATH.

4-byte COMO filtro del número

Nota: El filtro en esta sección puede ser utilizado solamente cuando el BGP en el router se ejecuta en el modo del punto del asnotation.

Este filtro puede filtrar hacia fuera los prefijos con COMO TRAYECTORIAS que sostengan uno o más 4-byte COMO números.

router bgp 1
 bgp asnotation dot
 neighbor 10.1.1.2 remote-as 2

 address-family ipv4
  neighbor 10.1.1.2 activate
  neighbor 10.1.1.2 filter-list 1 out

ip as-path access-list 1 deny .*[0-9]+\.[0-9]+.*
ip as-path access-list 1 permit .*

Aquí está un examen de este filtro.

  • [0-9] significa cualquier dígito.

  • + significa uno o más acontecimientos. [0-9]+ significa tan cualquier número, porque puede haber dígitos múltiples presentes.

  • \. significa. (punto). La barra es necesaria para aseegurarse al router no trata el punto como carácter especial sino lo trata como punto. . es un carácter especial y significa la coincidencia cualquier carácter (el comodín).

  • * significa la coincidencia cero o más de preceder. Así pues. * significa la coincidencia cualquier cosa.

  • El filtro completo .*[0-9]+\.[0-9]+.* significa cualquier cosa con un punto en él.

Aquí tiene un ejemplo:

El router1 (r1) recibe ocho prefijos en el BGP. El prefijo 10.100.1.1/32 BGP es el único prefijo con un AS PATH que consista en solamente 2-byte COMO números. Todos los otros prefijos BGP tienen uno o más 4-byte COMO número en el AS PATH.

R1#show bgp ipv4 unicast
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop    Metric LocPrf Weight Path
 *>  10.100.1.1/32    10.1.3.4         0             0 4 100 200 300 i
 *>  10.100.1.2/32    10.1.3.4         0             0 4 1.34464 3.3392 4.37856 i
 *>  10.100.1.3/32    10.1.3.4         0             0 4 1.34464 200 4.37856 i
 *>  10.100.1.4/32    10.1.3.4         0             0 4 500 4.37856 600 ?
 *>  10.100.1.5/32    10.1.3.4         0             0 4 7.41248 3200 400 65000 ?
 *>  10.100.1.6/32    10.1.3.4         0             0 4 50 3200 400 9.60176 ?
 *>  10.100.1.7/32    10.1.3.4         0             0 4 66 1.57464 77 5.17320 99 ?
 *>  10.100.1.8/32    10.1.3.4         0             0 4 7.52359 99 66 99 5.18307
3.37515 99 66 3.37515 99 ?

El r1 hace publicidad solamente de los prefijos sin ningún 4-byte COMO número en el AS PATH hacia el peer BGP 10.1.1.2.

R1#show bgp ipv4 unicast neighbors 10.1.1.2 advertised-routes 
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  10.100.1.1/32    10.1.3.4                 0             0 4 100 200 300 i

Total number of prefixes 1

Usted puede verificar lo que filtra el filtro .*[0-9]+\.[0-9]+.* de la tabla BGP con el comando show ip bgp regexp:

R1#show ip bgp regexp .*[0-9]+\.[0-9]+.*
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop     Metric LocPrf Weight Path
 *>  10.100.1.2/32    10.1.3.4         0             0 4 1.34464 3.3392 4.37856 i
 *>  10.100.1.3/32    10.1.3.4         0             0 4 1.34464 200 4.37856 i
 *>  10.100.1.4/32    10.1.3.4         0             0 4 500 4.37856 600 ?
 *>  10.100.1.5/32    10.1.3.4         0             0 4 7.41248 3200 400 65000 ?
 *>  10.100.1.6/32    10.1.3.4         0             0 4 50 3200 400 9.60176 ?
 *>  10.100.1.7/32    10.1.3.4         0             0 4 66 1.57464 77 5.17320 99 ?
 *>  10.100.1.8/32    10.1.3.4         0             0 4 7.52359 99 66 99 5.18307
3.37515 99 66 3.37515 99 ?

El filtro .*[0-9]+\.[0-9]+.* filtra hacia fuera todos los prefijos con uno o más 4-byte COMO número en el atributo AS PATH.

Aquí está otra manera de marcar lo que filtra el filtro realmente de la tabla BGP:

R1#show bgp ipv4 unicast filter-list 1
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  10.100.1.1/32    10.1.3.4                 0             0 4 100 200 300 i

El r2 recibió solamente el prefijo 10.100.1.1/32 del r1 debido al filtro.

R2#show bgp ipv4 unicast 
BGP table version is 6, local router ID is 10.1.1.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  10.100.1.1/32    10.1.1.1                               0 1 4 100 200 300 i

Configuración alternativa

Una configuración alternativa es utilizar un route-map en vez de una lista de filtros:

router bgp 1
 bgp asnotation dot
 neighbor 10.1.1.2 remote-as 2

 address-family ipv4
  neighbor 10.1.1.2 route-map no-4byte out

ip as-path access-list 1 deny .*[0-9]+\.[0-9]+.*
ip as-path access-list 1 permit .*

route-map no-4byte permit 10
 match as-path 1

Modo de Asplain

Cuando se quita el comando de punto del asnotiation BGP, que significa que el asnotation es asplain, la salida muestra no más los puntos en el 4-byte COMO números. Esta salida es lo mismo según lo mostrado previamente, salvo que punteados COMO números ahora son asplain.

R1#show bgp ipv4 unicast                                      
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop    Metric LocPrf Weight Path
 *>  10.100.1.1/32    10.1.3.4         0             0 4 100 200 300 i
 *>  10.100.1.2/32    10.1.3.4         0             0 4 100000 200000 300000 i
 *>  10.100.1.3/32    10.1.3.4         0             0 4 100000 200 300000 i
 *>  10.100.1.4/32    10.1.3.4         0             0 4 500 300000 600 ?
 *>  10.100.1.5/32    10.1.3.4         0             0 4 500000 3200 400 65000 ?
 *>  10.100.1.6/32    10.1.3.4         0             0 4 50 3200 400 650000 ?
 *>  10.100.1.7/32    10.1.3.4         0             0 4 66 123000 77 345000 99 ?
 *>  10.100.1.8/32    10.1.3.4         0             0 4 511111 99 66 99 345987
234123 99 66 234123 99 ?

El comando show BGP con la expresión normal usada en el filtro en el router no filtra hacia fuera los prefijos con un punto en la tabla BGP, porque hay no más prefijos con el 4-byte punteado COMO formato de número en la tabla BGP. Los 4-byte COMO números ahora están en el formato del asplain.

R1#show ip bgp regexp .*[0-9]+\.[0-9]+.*                      
R1#

El comando show BGP con la lista de filtros también muestra que el filtro no funciona mientras que el router está en el modo del asplain:

R1#show bgp ipv4 unicast filter-list 1
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop    Metric LocPrf Weight Path
 *>  10.100.1.1/32    10.1.3.4         0             0 4 100 200 300 i
 *>  10.100.1.2/32    10.1.3.4         0             0 4 100000 200000 300000 i
 *>  10.100.1.3/32    10.1.3.4         0             0 4 100000 200 300000 i
 *>  10.100.1.4/32    10.1.3.4         0             0 4 500 300000 600 ?
 *>  10.100.1.5/32    10.1.3.4         0             0 4 500000 3200 400 65000 ?
 *>  10.100.1.6/32    10.1.3.4         0             0 4 50 3200 400 650000 ?
 *>  10.100.1.7/32    10.1.3.4         0             0 4 66 123000 77 345000 99 ?
 *>  10.100.1.8/32    10.1.3.4         0             0 4 511111 99 66 99 65509 56
100000 ?

El filtro de la como-trayectoria no funcionará:

R1#show bgp ipv4 unicast neighbors 10.1.1.2 advertised-routes 
BGP table version is 9, local router ID is 10.100.1.100
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop     Metric LocPrf Weight Path
 *>  10.100.1.1/32    10.1.3.4         0             0 4 100 200 300 i
 *>  10.100.1.2/32    10.1.3.4         0             0 4 100000 200000 300000 i
 *>  10.100.1.3/32    10.1.3.4         0             0 4 100000 200 300000 i
 *>  10.100.1.4/32    10.1.3.4         0             0 4 500 300000 600 ?
 *>  10.100.1.5/32    10.1.3.4         0             0 4 500000 3200 400 65000 ?
 *>  10.100.1.6/32    10.1.3.4         0             0 4 50 3200 400 650000 ?
 *>  10.100.1.7/32    10.1.3.4         0             0 4 66 123000 77 345000 99 ?
 *>  10.100.1.8/32    10.1.3.4         0             0 4 511111 99 66 99 65509 56
100000 ?
     Network          Next Hop            Metric LocPrf Weight Path

Total number of prefixes 8

Filtro para el modo de Asplain

Este filtro puede ser utilizado cuando el BGP en el router se ejecuta en el modo del asplain:

ip as-path access-list 4 deny _6553[6-9]_
ip as-path access-list 4 deny _655[4-9][0-9]_
ip as-path access-list 4 deny _65[6-9][0-9][0-9]_
ip as-path access-list 4 deny _[6][6-9][0-9][0-9][0-9]_
ip as-path access-list 4 deny _[7-9][0-9][0-9][0-9][0-9]_
ip as-path access-list 4 deny _[1-9][0-9][0-9][0-9][0-9][0-9]+_
ip as-path access-list 4 permit .*

O, aquí está lo mismo, pero más el acuerdo:

ip as-path access-list 4 deny _(6553[6-9]|655[4-9][0-9]|65[6-9][0-9][0-9]|6[6-9]
[0-9][0-9][0-9]|[7-9][0-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9][0-9]+)_
ip as-path access-list 4 permit .*

Debido a este filtro, ninguno COMO número más arriba de 65,535 se filtra. Una vez más esto se puede aplicar al vecino BGP si usted utiliza una lista de filtros o un route-map.

Nota: La filtración en este artículo no trabaja en una sesión del Internal BGP (iBGP), que incluye en un reflector de ruta.



Document ID: 118700