Configuración de directivas de enrutamiento
Si la configuración de una validación de RPKI fue algo nuevo para usted, ahora puede relajarse, ya que es probable que este capítulo le resulte más familiar. Implementará políticas para filtrar rutas entrantes de sus clientes, colegas y transitas, y le mostrará cómo crear filtros escalables para anunciar rutas a sus clientes, colegas y en tránsito.
Es posible que considere que sus políticas de importación y exportación ya son buenas y que no necesitan más trabajo. Y probablemente nos acordaremos. Sin embargo, incluso si está seguro de que’ya tiene lo que necesita para filtrar las rutas correctamente, dedique unos momentos a hojear este capítulo, por lo menos. En este caso puede haber una o dos ideas que merecerán su tiempo.
Bloques de creación: Reglas básicas de filtrado
A continuación, abordaremos las directivas que se mencionarán con otras políticas. No son únicos por cliente/igual/tránsito y sólo deben definirse una vez.
En esta sección no se muestran las políticas reales. Sin embargo, cortará y pegará las listas de prefijos relevantes y los grupos de rutas, que se utilizan en las políticas más adelante en el capítulo.
Rechazar Bogon números de sistema autónomos
Un anuncio de BGP ruta contiene un campo, llamado ruta, queconsta de los números de sistema autónomo de todas las redes que propagan el anuncio de ruta para llegar a su destino, el número de sistema autónomo original.
Las rutas AS que ve en su tabla de enrutamiento se crean automáticamente a medida que cada red que propaga un anuncio de ruta antepone su número de sistema autónomo propio a la ruta de acceso. Por último, es posible anteponer manualmente un número de sistema autónomo para influir en las decisiones de enrutamiento.
Además de los números de sistemas autónomos públicos asignados por el RIRs, existen números de sistemas autónomos privados que deben usarse para distintos fines (como un emparejamiento privado con redes que no necesitan un número de sistema autónomo asignado a RIR).
Todos los números de sistema autónomos solían ser números de 16 bits (desde 0 hasta 65.535), pero estos días se admiten universalmente números de sistema autónomos de 32 bits. Los distintos tipos de sistemas autónomos núm-BERS son:
0: Reservados
1 a 64.495: números del sistema autónomo público
64.496 a 64.511: reservado para usar en la documentación
64.512 a 65.534: números de sistemas autónomos privados
65,535: Reservados
4,2 mil millones a 4.294.967.294: números de sistemas autónomos privados de 32 bits
Un uso popular de números de sistemas autónomos privados consiste en utilizar dichos números (de una lista de números de sistemas autónomos privados) para las redes que no tienen un número de sistema autónomo asignado por un RIR con el fin de establecer una sesión BGP con una red upstream. En este caso, los errores son fáciles de hacer. Los números de sistemas autónomos privados pueden perderse accidentalmente en una ruta de acceso pública. O, en ocasiones, un operador de red escribirá el número de sistema autónomo que desea anteponer, contaminando la ruta de acceso que ha recibido. Por lo tanto, debe rechazar los anuncios de ruta que contengan un número de sistema autónomo privado o reservado.
Los números de sistema autónomos de Bogon se definen en las RFC. La siguiente lista muestra exactamente qué RFC describe el número de sistema autónomo de Bogon, por lo que si desea obtener más información acerca de por qué un determinado número de sistema autono-Mous no debe encontrarse en su tabla de enrutamiento segura, puede consultar la RFC pertinente.
Definir un as-path
Grupo que enumera los números del sistema autónomo de Bogon:
policy-options {
as-path-group BOGON-ASNS {
/* RFC7607 */
as-path zero ".* 0 .*";
/* RFC 4893 AS_TRANS */
as-path as_trans ".* 23456 .*";
/* RFC 5398 and documentation/example ASNs */ as-path examples1
".* [64496-64511] .*";
as-path examples2 ".* [65536-65551] .*";
/* RFC 6996 Private ASNs*/
as-path reserved1 ".* [64512-65534] .*";
as-path reserved2 ".* [4200000000-4294967294] .*"; /* RFC
6996 Last 16 and 32 bit ASNs */
as-path last16 ".* 65535 .*";
as-path last32 ".* 4294967295 .*";
/* RFC IANA reserved ASNs*/
as-path iana-reserved ".* [65552-131071] .*";
}
}
Para ello, escriba los siguientes comandos:
set policy-options as-path-group BOGON-ASNS as-path zero
".* 0 .*"
set policy-options as-path-group BOGON-ASNS as-path as_trans
".* 23456 .*"
set policy-options as-path-group BOGON-ASNS as-path examples1
".* [64496-64511] .*"
set policy-options as-path-group BOGON-ASNS as-path examples2
".* [65536-65551] .*"
set policy-options as-path-group BOGON-ASNS as-path reserved1
".* [64512-65534] .*"
set policy-options as-path-group BOGON-ASNS as-path reserved2
".* [4200000000-4294967294] .*"
set policy-options as-path-group BOGON-ASNS as-path last16
".* 65535 .*"
set policy-options as-path-group BOGON-ASNS as-path last32
".* 4294967295 .*"
set policy-options as-path-group BOGON-ASNS as-path iana-reserved
".* [65552-131071] .*"
Recuerde que aún no se trata de la política real. La política que llama a estas listas de prefijos está próxima, por lo que debe leer algunos párrafos más.
Con esta Directiva, los enrutadores filtrarán las rutas que reciba desde fuera y que pueden contener un número de sistema autónomo privado. Para evitar que se anuncien (envíen) números de sistemas autónomos privados desde su red, es una buena práctica en las operaciones DFZ para permitir el remove-private
opción en sesiones de EBGP.
Por ejemplo:
set protocols bgp group ext type external
set protocols bgp group ext neighbor 192.168.10.1 peer-as
65530
set protocols bgp group ext neighbor 192.168.20.1 remove-private
set protocols bgp group ext neighbor 192.168.20.1 peer-as
200
Asegúrese de que tiene esta opción establecida en todas las sesiones de EBGP.
Rechazar Bogon prefijos
Un prefijo de Bogon no debe ser visible en la tabla de enrutamiento global, ya que estos prefijos están diseñados para uso interno (RFC 1918), redes de prueba (RFC 4737), multidifusión y otros fines internos. Por lo tanto, estos prefijos nunca deben aceptarse ni anunciarse a DFZ.
Puede crear una lista de prefijos como se indica a continuación:
policy-options { prefix-list BOGONS {
0.0.0.0/8;
10.0.0.0/8;
100.64.0.0/10;
127.0.0.0/8;
169.254.0.0/16;
172.16.0.0/12;
192.0.0.0/24
192.0.2.0/24;
192.88.99.0/24;
192.168.0.0/16;
198.18.0.0/15;
198.51.100.0/24;
203.0.113.0/24;
224.0.0.0/3;
}
Para ello, escriba los siguientes comandos:
set policy-options prefix-list BOGONS 0.0.0.0/8
set policy-options prefix-list BOGONS 10.0.0.0/8
set policy-options prefix-list BOGONS 100.64.0.0/10
set policy-options prefix-list BOGONS 127.0.0.0/8
set policy-options prefix-list BOGONS 169.254.0.0/16
set policy-options prefix-list BOGONS 172.16.0.0/12
set policy-options prefix-list BOGONS 192.0.0.0/24
set policy-options prefix-list BOGONS 192.0.2.0/24
set policy-options prefix-list BOGONS 192.88.99.0/24
set policy-options prefix-list BOGONS 192.168.0.0/16
set policy-options prefix-list BOGONS 198.18.0.0/15
set policy-options prefix-list BOGONS 198.51.100.0/24
set policy-options prefix-list BOGONS 203.0.113.0/24
set policy-options prefix-list BOGONS 224.0.0.0/3
Lo mismo para comandos IPv6:
set policy-options prefix-list BOGONS-INET6 0000::/8
set policy-options prefix-list BOGONS-INET6 fe00::/9
set policy-options prefix-list BOGONS-INET6 ff00::/8
set policy-options prefix-list BOGONS-INET6 2001:db8::/32
set policy-options prefix-list BOGONS-INET6 3ffe::/16
set policy-options prefix-list BOGONS-INET6 2001::/32
La política que llama a estas listas de prefijos es próxima, solo unos cuantos párrafos más!
Rechazar prefijos largos
La tabla de enrutamiento global de la DFZ se expande diariamente, a medida que cada vez más redes comienzan anuncian más y más prefijos. En principio, no hay ningún problema al anunciar las rutas de cualquier – longitud técnicamente, ni siquiera una ruta/32 (para una dirección IPv4 única). Sin embargo, el crecimiento no controlado de la tabla de enrutamiento no es sostenible (simplemente calcule cuánto más grande sería el DFZ si todo el espacio IPv4 se anunciase como/32). Muchas redes han empezado a filtrar por su longitud de prefijo.
En estos días normalmente es posible que se descarte el anuncio si se anuncia un prefijo de/25 o más, es decir, una subred de 128 direcciones IPv4 o menos). La siguiente política configura su red para hacer lo mismo, por lo que todas estas rutas’molestas nos/28 y/32 no lo convierten en su nervio. Esto mismo se aplica a IPv6 donde colocamos el límite en/48 subredes.
Las políticas para filtrar rutas para estos prefijos largos aparecen más adelante en este capítulo. Constan de dos pasos: una directiva genérica a la que se llama y que sólo devuelve prefijos de longitud suficiente, y una directiva que toma esta lista y filtra solo las rutas relevantes de la misma.
Rechazar durante un tiempo como rutas
Vemos’que antes de que cada red de la ruta genere “” automáticamente un ruta as, agregando su propio número de sistema autónomo al principio de la ruta as de la ruta anunciada. En la práctica, dado que BGP busca la ruta más corta de forma predeterminada, la mayoría de las rutas activas que usa su red tendrán una ruta de acceso de solo 1-6 de números de sistema autónomos. Es posible que a veces un path sea más largo y, por supuesto, existe un manual como ruta de acceso pendiente (como medida de ingeniería de tráfico), lo que hace que se vean rutas más largas en la tabla. Pero generalmente hablando, un camino tan largo como una docena de sistemas autónomos puede considerarse inútil. Si observa una duración tan larga como ruta de acceso, es probable que sea el trabajo de un administrador de red que necesite una copia de este libro.
La razón más común de tiempo que dura la espera de las rutas de la ruta. El uso de dos a tres veces su propio número de sistema autónomo en una Prepend es, cuando es necesario, considerado una buena práctica para influir en las rutas. Sin embargo, en espera de más de la’t tiene sentido. Observando el DFZ, en el momento de escribir este punto, existen algunos prefijos con una ruta de acceso de unos 40 números de sistema autónomos, lo que es muy útil. Deje’que un s tome un margen seguro y considere la posibilidad de todo lo que tenga un camino de más de 50 para ser inútil y que permita filtrarse en nuestra tabla de enrutamiento segura.
Como siempre, defina lo que desea filtrar primero:
set policy-options as-path too-many-hops ".{50,}"
Y, a continuación, siga leyendo para llegar a la Directiva en la que llamamos a esta definición. Solo un bloque de creación más.
Rechazar rutas que contengan números de sistemas autónomos en tránsito o en red de gran tamaño
Las redes más grandes del mundo (conocidas principalmente como “nivel 1”) nunca compran tránsito entre sí o desde redes pequeñas (“de nivel 2”). Por ejemplo, sería muy extraño que el cliente o el interlocutor empezara a enviar rutas que tienen AS2914 (NTT) o AS1299 (Telia) en su ruta de AS; no es muy probable que NTT o Telia compre el tránsito de su cliente. Por lo tanto, la Directiva de importación también contiene como filtros de ruta de acceso que rechazan rutas “que tienen” el número as de los nombres grandes. Si los recibiera legítimamente de un cliente o un interlocutor, es probable que usted no sea el público al que va dirigido este libro.
Lo mismo ocurre con algunas de las otras redes de gran tamaño, como Facebook, Google, Microsoft y CloudFlare. Es probable que no compren el tránsito de sus colegas, por lo que si recibe sus vías de sus colegas, debe realizarse algún pez pesquero . Entonces, ¿por qué no asegurarse’de que ganó el uso de cualquiera de estas rutas, lo que sabe que no es correcto en primer lugar?
Primero, deje’que defina el grupo de rutas as:
set policy-options as-path-group BIGNETWORKS as-path 174
".* 174 .*"
set policy-options as-path-group BIGNETWORKS as-path 209
".* 209 .*"
set policy-options as-path-group BIGNETWORKS as-path 286
".* 286 .*"
set policy-options as-path-group BIGNETWORKS as-path 701
".* 701 .*"
set policy-options as-path-group BIGNETWORKS as-path 702
".* 702 .*"
set policy-options as-path-group BIGNETWORKS as-path 703
".* 703 .*"
set policy-options as-path-group BIGNETWORKS as-path 714
".* 714 .*"
set policy-options as-path-group BIGNETWORKS as-path 1239
".* 1239 .*"
set policy-options as-path-group BIGNETWORKS as-path 1299
".* 1299 .*"
set policy-options as-path-group BIGNETWORKS as-path 2828
".* 2828 .*"
set policy-options as-path-group BIGNETWORKS as-path 2906
".* 2906 .*"
set policy-options as-path-group BIGNETWORKS as-path 2914
".* 2914 .*"
set policy-options as-path-group BIGNETWORKS as-path 3209
".* 3209 .*"
set policy-options as-path-group BIGNETWORKS as-path 3257
".* 3257 .*"
set policy-options as-path-group BIGNETWORKS as-path 3320
".* 3320 .*"
set policy-options as-path-group BIGNETWORKS as-path 3356
".* 3356 .*"
set policy-options as-path-group BIGNETWORKS as-path 3549
".* 3549 .*"
set policy-options as-path-group BIGNETWORKS as-path 3561
".* 3561 .*"
set policy-options as-path-group BIGNETWORKS as-path 5511
".* 5511 .*"
set policy-options as-path-group BIGNETWORKS as-path 6453
".* 6453 .*"
set policy-options as-path-group BIGNETWORKS as-path 6461
".* 6461 .*"
set policy-options as-path-group BIGNETWORKS as-path 6762
".* 6762 .*"
set policy-options as-path-group BIGNETWORKS as-path 7018
".* 7018 .*"
set policy-options as-path-group BIGNETWORKS as-path 8075
".* 8075 .*"
set policy-options as-path-group BIGNETWORKS as-path 12956
".* 12956 .*"
set policy-options as-path-group BIGNETWORKS as-path 13335
".* 13335 .*"
set policy-options as-path-group BIGNETWORKS as-path 15169
".* 15169 .*"
set policy-options as-path-group BIGNETWORKS as-path 16509
".* 16509 .*"
set policy-options as-path-group BIGNETWORKS as-path 32934
".* 32934 .*"
Si utiliza esto como grupo de ruta en la’Directiva que se está acumulando, se protegerá de la aceptación de rutas que sus clientes o sus colegas no pierdan accidentalmente. Más adelante se mostrará cómo esto encaja en la imagen más grande.
Asegúrese de agregar esta directiva solo a las sesiones del cliente y del mismo nivel BGP (y no a los tránsitos), o bien que acabe con una tabla de enrutamiento muy pequeña (y muy limitada) de uso.
NoteNuestra lista de redes de gran tamaño es solo una sugerencia. Si busca mejorar la lista, podría ser un buen punto de partida: http://as-rank.caida.org/.
NoteSi desea hacer más cosas (fuera del alcance de este manual), o si tiene clientes que utilizan BGP sesiones para conectarse a la red o ambos, eche un vistazo a dos características más posibles que puede implementar:
Apagado correcto de sesión BGP: https://tools.ietf.org/html/rfc8326. El apagado correcto hace que la red responda a una advertencia de avance del cliente, del mismo nivel o del tránsito que indique que está apareciendo el mantenimiento. Minimiza el tiempo de inactividad que se produciría con este tipo de mantenimiento. Puede obtener más información sobre cómo implementar esto en: http://bgpfilterguide.nlnog.net/guides/graceful_shutdown/.
Comunidad negra conocida: https://tools.ietf.org/html/rfc7999. La comunidad negra conocida permite a sus clientes el tráfico en negro (de ruta nula) hacia un prefijo de destino dentro de su propio prefijo. Esto es útil cuando entra un ataque DDoS; eliminará todo el tráfico de la víctima (haciendo éxito el ataque DDoS), pero al menos mantendrá al resto de la red en línea.
Rechace el resto
De forma predeterminada, la última acción de la Junos OS implementación de BGP es permitir todo lo que queda después de las directivas. El comportamiento predeterminado será configurable en el futuro para cumplir con las especificaciones BGP-4 y según se define en la https://tools.ietf.org/html/rfc8212. Sin embargo, en el momento de redactar este libro, RFC8212’hasn t ha sido implementado, por lo que debe asegurarse de que dispone de una política para rechazar el resto.
Defina una directiva que simplemente rechace todas las rutas que vea:
policy-options {
policy-statement REJECT-ALL {
}
}
O en comandos cortar y pegar:
set policy-options policy-statement REJECT-ALL then reject
Esta Directiva se utiliza más adelante para crear un rechazo explícito, lo que significa que no depende de lo que el protocolo (BGP) haga al final de una cadena de políticas. Siempre es mejor hacer su configuración clara y explícita (piense en su administrador de red más Junior teniendo que solucionar un corte de la red a las 4 AM).
Filtrado de rutas de clientes
Por último,’es hora de configurar alguna directiva de enrutamiento real. En primer lugar’, veamos cómo filtrar rutas que reciba de sus clientes y cómo configurar una directiva para anunciar rutas a sus clientes, tanto para la ruta predeterminada como para las situaciones de tabla completa.
Aceptación de rutas de clientes
La comprobación de las rutas aceptadas por los clientes es la más importante en la configuración de su red. Al final, debe anunciar las rutas del cliente’s a otras personas. Estos anuncios deben estar limpios y contener únicamente información – de enrutamiento correcta, por lo’que es posible que s empiece por aceptar sólo rutas limpias’y, por lo tanto, no tiene que preocuparse de poner la detención de Internet.
La Directiva de enrutamiento que utilizará para filtrar las rutas recibidas de los clientes incluirá una lista de los prefijos que puede anunciar el cliente. En este ejemplo, puede configurar manualmente la lista de prefijos, pero’en el apéndice ll encontrará la manera de obtener las listas de prefijos para actualizar automáticamente. Después de finalizar este libro, debe sentirse cómodo con esta configuración para filtrar’las rutas del cliente y’no olvidarse de implementar actualizaciones automáticas de prefijos de lista para que la tabla de enrutamiento permanezca segura.
La siguiente configuración supone que su cliente’es el número 123 y que estará anunciando 192.0.2.0/24 y 2001: db8::/32. También se supone que el propio número es el 456:
policy-options {
prefix-list AS123 {
}
prefix-list AS123-INET6 {
}
}
Para configurarlos, debe especificar:
set policy-options prefix-list AS123 192.0.2.0/24
set policy-options prefix-list AS123-INET6 2001:db8::/32
Además, supongamos’que cree dos BGP comunidades que usen las políticas, así como una más que necesitará más adelante, según:
policy-options {
community RFC-NO-EXPORT members no-export;
community MYCUSTOMER members 456:9999;
community MYROUTES members 456:456;
}
set policy-options community RFC-NO-EXPORT members no-export
set policy-options community MYCUSTOMER members 456:9999
set policy-options community MYROUTES members 456:456
Al crear una ruta ‘’ de delimitador de descarte para que origine su prefijo, puede unir esta comunidad a la misma:
routing-options {
rib inet.0 {
static {
route 192.0.2.0/24 {
discard;
community 456:456;
}
}
}
}
Ahora, en las políticas que aceptarán realmente las rutas’del cliente. Todo comienza aceptando el prefijo exacto que se permite que anuncien según el prefix-list
:
policy-options {
policy-statement IMPORT-123 {
term INET {
from {
prefix-list-filter AS123 exact;
}
then {
community add MYCUSTOMER;
accept;
}
}
}
}
Para configurar esto, escriba:
set policy-options policy-statement IMPORT-123 term INET
from prefix-list-filter AS123 exact
set policy-options policy-statement IMPORT-123 term INET
then community add MYCUSTOMER
set policy-options policy-statement IMPORT-123 term INET
then accept
Esta política es exclusiva de cada BGP cliente que tenga, igual que cada lista de prefijos es exclusiva de cada cliente BGP. Aplica esta política de importación en la sesión de BGP con su cliente en la cadena de directivas de importación.
Agregamos la comunidad BGP MYCUSTOMER
a las rutas aceptadas del cliente. Esto facilita la tarea de exportar estas rutas posteriormente.
A continuación, su cliente puede anunciar prefijos más específicos para usted. La entrada de la lista de prefijos puede tener definido un/22, por ejemplo, pero desea permitir a su cliente que anuncie hasta el/24. Simplemente con prefix-list-filter AS123 orlonger
’no funciona, ya que esto permitiría al cliente anunciar hasta el/32. Por lo tanto, cree primero una directiva que permita rutas hasta/24 y, a continuación, combínelo con la Directiva que permite estas rutas si se encuentran en la lista de prefijos de clientes:
policy-options {
policy-statement MORE-SPECIFIC-UPTO-24 {
term INET {
from {
family inet;
route-filter 0.0.0.0/0 upto /24;
}
}
}
policy-statement IMPORT-123 {
term MORE-SPECIFIC {
from {
policy MORE-SPECIFIC-UPTO-24;
prefix-list-filter AS123 orlonger;
}
then {
community add MYCUSTOMER
accept;
}
}
}
}
Tenga en cuenta que policy-statement MORE-SPECIFIC-UPTO-24
es genérico – sólo se configura una vez en el enrutador y se utiliza para todos los clientes. El servicio policy-statement IMPORT-123
No obstante, es único para cada cliente, por lo que debe configurarse una vez por cliente.
Estas políticas se configuran especificando:
set policy-options policy-statement MORE-SPECIFIC-UPTO-24
term INET from family inet
set policy-options policy-statement MORE-SPECIFIC-UPTO-24
term INET from route-filter 0.0.0.0/0 upto /24
set policy-options policy-statement MORE-SPECIFIC-UPTO-24
term INET then accept
set policy-options policy-statement MORE-SPECIFIC-UPTO-24
term REJECT then reject
set policy-options policy-statement IMPORT-123 term MORE-SPECIFIC-INET
from policy MORE-SPECIFIC-UPTO-24
set policy-options policy-statement IMPORT-123 term MORE-SPECIFIC-INET
from prefix-list-filter AS123 orlonger
set policy-options policy-statement IMPORT-123 term MORE-SPECIFIC-INET
then community add MYCUSTOMER
set policy-options policy-statement IMPORT-123 term MORE-SPECIFIC-INET
then accept
La política MORE-SPECIFIC-UPTO-24
solo se debe definir una vez. No se’hace referencia a los clientes como o prefijos en esta Directiva. La política IMPORT-123
sin embargo, debe definirse una vez por cliente.
La misma lógica se aplica a las políticas de IPv6, donde acepta rutas hasta/48:
policy-options {
policy-statement IMPORT-123-INET6 {
term INET6 {
from {
prefix-list-filter AS123-INET6 exact;
}
then {
community add MYCUSTOMER
accept;
}
policy-statement MORE-SPECIFIC-UPTO-48-INET6 {
term INET6 {
from {
family inet6;
route-filter ::/0 upto /48;
}
}
policy-statement IMPORT-123-INET6 {
term MORE-SPECIFIC-INET6 {
from {
policy MORE-SPECIFIC-UPTO-48-INET6;
prefix-list-filter AS123-INET6 orlonger;
}
then {
community add MYCUSTOMER;
accept;
}
}
}
}
Para configurar esto, escriba:
set policy-options policy-statement MORE-SPECIFIC-UPTO-48-INET6
term INET6 from family inet6
set policy-options policy-statement MORE-SPECIFIC-UPTO-48-INET6
term INET6 from route-filter ::/0 upto /48
set policy-options policy-statement MORE-SPECIFIC-UPTO-48-INET6
term INET6 then accept
set policy-options policy-statement MORE-SPECIFIC-UPTO-48-INET6
term REJECT then reject
set policy-options policy-statement IMPORT-123-INET6 term
MORE-SPECIFIC-INET6 from policy MORE-SPECIFIC-UPTO-48-INET6
set policy-options policy-statement IMPORT-123-INET6 term
MORE-SPECIFIC-INET6 from prefix-list-filter AS123-INET6 orlonger
set policy-options policy-statement IMPORT-123-INET6 term
MORE-SPECIFIC-INET6 then community add MYCUSTOMER
set policy-options policy-statement IMPORT-123-INET6 term
MORE-SPECIFIC-INET6 then accept
Al igual que con las políticas de IPv4, la Directiva MORE-SPECIFIC-UPTO-48-INET6
solo se debe definir una vez. No se’hace referencia a los clientes como o prefijos en esta Directiva. La política IMPORT-123-INET6
sin embargo, debe definirse una vez por cliente.
Por último, puede optar por permitir que sus clientes anuncien a usted – más enrutas específicas que a/24. Por ejemplo, podrían utilizar estas rutas para la ingeniería del tráfico. Si bien puede llevarlos a la red, no debe anunciarlos a otros clientes, colegas o tránsitos. Esta es la razón por la que lo aceptaremos aquí, pero agregar el conocido“NO-EXPORT
”BGP comunidad:
policy-options {
policy-statement IMPORT-123 {
term MOST-SPECIFIC-INET {
from {
prefix-list-filter AS123 orlonger;
}
then{
community add RFC-NO-EXPORT;
accept;
}
}
}
}
Para configurar esto, escriba:
set policy-options policy-statement IMPORT-123 term MOST-SPECIFIC-INET
from prefix-list-filter AS123 longer
set policy-options policy-statement IMPORT-123 term MOST-SPECIFIC-INET
then community add RFC-NO-EXPORT
set policy-options policy-statement IMPORT-123 term MOST-SPECIFIC-INET
then accept
Y para IPv6:
policy-options {
policy-statement IMPORT-123-INET6 {
term MOST-SPECIFIC-INET6 {
from {
prefix-list-filter AS123 -INET6 orlonger;
}
then{
community add RFC-NO-EXPORT;
accept;
}
}
}
}
Para configurar esto, debe escribir:
set policy-options policy-statement IMPORT-123-INET6 term
MOST-SPECIFIC-INET6 from prefix-list-filter AS123-INET6 longer
set policy-options policy-statement IMPORT-123-INET6 term
MOST-SPECIFIC-INET6 then community add RFC-NO-EXPORT
set policy-options policy-statement IMPORT-123-INET6 term
MOST-SPECIFIC-INET6 then accept
Ahora que se’ha definido la política de importación para las’rutas del cliente, es posible que se pregunte dónde final reject
la Directiva que rechazará las rutas que no se permita que anuncie el cliente sea. Se’renueva correctamente del – curso esta es la Directiva completa que se utilizará para importar rutas de sus clientes:
policy-options {
policy-statement TRANSIT-CUSTOMER-GENERIC {
term DEFAULT-INET {
from {
family inet;
route-filter 0.0.0.0/0 exact;
}
then reject;
}
term DEFAULT-INET6 {
from {
family inet6;
route-filter ::/0 exact;
}
then reject;
}
term BOGONS-INET {
from {
family inet;
prefix-list-filter BOGONS orlonger;
}
then reject;
}
term BOGONS-INET6
from {
family inet6;
prefix-list-filter BOGONS-INET6 orlonger;
}
then reject;
}
t erm BOGON-ASNS {
from as-path-group BOGON-ASNS;
then reject;
}
term BIGNETWORKS {
from as-path-group BIGNETWORKS;
then reject;
}
term RPKI-INVALID {
from community origin-validation-state-invalid;
then reject;
}
term NORMALIZE {
then {
local-preference 500;
next term;
}
}
}
}
policy-options {
policy-statement IMPORT-CUSTOMER-AS123 {
term INET {
from {
prefix-list-filter AS123 exact;
}
then {
community add MYCUSTOMER;
accept;
}
}
term INET6 {
from {
prefix-list-filter AS123-INET6 exact;
}
then {
community add MYCUSTOMER;
accept;
}
}
term MORE-SPECIFIC-INET {
from {
policy MORE-SPECIFIC-UPTO-24;
prefix-list-filter AS123 orlonger;
}
then {
community add MYCUSTOMER;
accept;
}
}
term MORE-SPECIFIC-INET6 {
from {
policy MORE-SPECIFIC-UPTO-48;
prefix-list-filter AS123-INET6 orlonger;
}
then {
community add MYCUSTOMER;
accept;
}
}
term MOST-SPECIFIC-INET {
from {
prefix-list-filter AS123 orlonger;
}
then {
community add RFC-NO-EXPORT; ;
accept;
}
}
term MOST-SPECIFIC-INET6 {
from {
prefix-list-filter AS123-INET6 orlonger;
}
then {
community add RFC-NO-EXPORT; ;
accept;
}
}
}
}
policy-options {
policy-statement REJECT-ALL { then reject;
}
}
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term DEFAULT-INET from family inet
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term DEFAULT-INET from route-filter 0.0.0.0/0 exact
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term DEFAULT-INET then reject
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term DEFAULT-INET6 from family inet6
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term DEFAULT-INET6 from route-filter ::/0 exact
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term DEFAULT-INET6 then reject
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term BOGONS-INET from family inet
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term BOGONS-INET from prefix-list-filter BOGONS orlonger
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term BOGONS-INET then reject
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term BOGONS-INET6 from family inet6
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term BOGONS-INET6 from prefix-list-filter BOGONS-INET6 orlonger
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term BOGONS-INET6 then reject
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term BOGON-ASNS from as-path-group BOGON-ASNS
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term BOGON-ASNS then reject
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term BIGNETWORKS from as-path-group BIGNETWORKS
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term BIGNETWORKS then reject
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term RPKI-CHECK from policy RPKI-CHECK
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term RPKI-INVALID from community origin-validation-state-invalid
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term RPKI-INVALID then reject
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term NORMALIZE then local-preference 500
set policy-options policy-statement TRANSIT-CUSTOMER-GENERIC
term NORMALIZE then next term
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term INET from prefix-list-filter AS123 exact
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term INET then community add MYCUSTOMER
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term INET then accept
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term INET6 from prefix-list-filter AS123-INET6 exact
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term INET6 then community add MYCUSTOMER
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term INET6 then accept
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MORE-SPECIFIC-INET from policy MORE-SPECIFIC-UPTO-25
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MORE-SPECIFIC-INET from prefix-list-filter AS123 orlonger
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MORE-SPECIFIC-INET then community add MYCUSTOMER
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MORE-SPECIFIC-INET then accept
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MORE-SPECIFIC-INET6 from policy MORE-SPECIFIC-UPTO-48
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MORE-SPECIFIC-INET6 from prefix-list-filter AS123-INET6 orlonger
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MORE-SPECIFIC-INET6 then community add MYCUSTOMER
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MORE-SPECIFIC-INET6 then accept
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MOST-SPECIFIC-INET from prefix-list-filter AS123 orlonger
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MOST-SPECIFIC-INET then community add RFC-NO-EXPORT
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MOST-SPECIFIC-INET then accept
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MOST-SPECIFIC-INET6 from prefix-list-filter AS123-INET6 orlonger
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MOST-SPECIFIC-INET6 then community add RFC-NO-EXPORT
set policy-options policy-statement IMPORT-CUSTOMER-AS123
term MOST-SPECIFIC-INET6 then accept
set policy-options policy-statement REJECT-ALL then reject
La configuración BGP
La última parte de la configuración para importar las rutas de clientes consiste en configurar las políticas como políticas de importación en la BGP sesión con el cliente. Recuerde que la primera Directiva, TRANSIT-CUSTOMER-GENERIC
, es genérico y debe definirse solo una vez; la segunda política es tan específica. Cada cliente cuenta con tres políticas encadenadas:
La Directiva genérica que rechaza las rutas no deseadas;
La política específica del cliente que acepta las rutas’del cliente;
Política de rechazo final que rechaza todo lo demás.
Por ejemplo:
group CUST-AS123 {
type external;
import [ TRANSIT-CUSTOMER-GENERIC IMPORT-CUSTOMER-AS123
REJECT-ALL ];
export [ EXPORT-FULL-TABLE REJECT-ALL];
remove-private;
peer-as 123;
neighbor 1.2.3.4;
}
Otro cliente sería:
group CUST-AS456 {
type external;
import [ TRANSIT-CUSTOMER-GENERIC IMPORT-CUSTOMER-AS456
REJECT-ALL ];
export [ EXPORT-FULL-TABLE REJECT-ALL];
remove-private; peer-as 456;
neighbor 5.6.7.8;
}
Anuncio de las rutas a los clientes
Sus clientes reciben las rutas’de red s, lo que les permite utilizar su red para enviar tráfico. Puede ser una tabla completa o una ruta predeterminada. Si desea enviar a sus clientes una ruta predeterminada, asegúrese de generar uno mediante la creación de una ruta predeterminada de descarte.
NoteSi bien ofrecemos comandos de cortar y pegar a continuación para anunciar una ruta predeterminada a los clientes, es necesario tener una ruta predeterminada en primer lugar si se desea anunciar; aceptarlo de un proveedor de tránsito puede no ser lo que usted desea, y generar una ruta predeterminada puede tener efectos negativos en su red si lo hace en un lugar equivocado (Recuerde que la ruta predeterminada lo llevará a todos los enrutadores a través de su IGP). Por lo tanto, es conveniente pensarlo con cuidado. Deliberadamente no se incluye un comando de cortar y pegar para generar la ruta predeterminada en su red.
Después de leer los ejemplos para exportar las exportaciones de la tabla completa y la ruta predeterminada, debe ser fácil crear un reabastecimiento de políticas a aquellos clientes que deseen recibir una tabla completa, así como una ruta predeterminada.
Anunciar una tabla completa a los clientes
La Directiva para enviar una tabla completa es más complicada de lo que parecería. Es necesario quitar rutas que tengan el NO-EXPORT
comunidad, por ejemplo. ’Y no se olvide de agregar un término que acepte las rutas que su propia red tiene – un error muy común es enviar al cliente de tránsito sólo las rutas que ha aprendido a través de EBGP (que es BGP comportamiento predeterminado) y no incluir sus propias rutas:
policy-statement EXPORT-FULL-TABLE {
term DENY {
from community RFC-NO-EXPORT;
then reject;
}
term EXPORT-ORIGINATES {
from community MYROUTES;
then accept;
}
}
O en el formato de cortar y pegar:
set policy-options policy-statement EXPORT-FULL-TABLE term
DENY from community RFC-NO-EXPORT
set policy-options policy-statement EXPORT-FULL-TABLE term
DENY then reject
set policy-options policy-statement EXPORT-FULL-TABLE term
EXPORT-ORIGINATES from community MYROUTES
set policy-options policy-statement EXPORT-FULL-TABLE term
EXPORT-ORIGINATES then accept
set policy-options policy-statement EXPORT-FULL-TABLE term
EXPORT-BGP from protocol bgp
set policy-options policy-statement EXPORT-FULL-TABLE term
EXPORT-BGP then accept
Anuncio de un valor predeterminado para los clientes
Las políticas para enviar una ruta predeterminada a los clientes son sencillas:
policy-statement EXPORT-DEFAULT {
term INET-DEFAULT {
from {
family inet;
route-filter 0.0.0.0/0 exact;
}
}
term INET6-DEFAULT {
from {
family inet6;
route-filter ::/0 exact;
}
}
}
O en comandos cortar y pegar:
set policy-options policy-statement EXPORT-DEFAULT term
INET-DEFAULT from family inet
set policy-options policy-statement EXPORT-DEFAULT term
INET-DEFAULT from route-filter 0.0.0.0/0 exact
set policy-options policy-statement EXPORT-DEFAULT term
INET-DEFAULT then accept
set policy-options policy-statement EXPORT-DEFAULT term
INET6-DEFAULT from family inet6
set policy-options policy-statement EXPORT-DEFAULT term
INET6-DEFAULT from route-filter ::/0 exact
set policy-options policy-statement EXPORT-DEFAULT term
INET6-DEFAULT then accept
Esto funcionará si ya tiene una ruta predeterminada en su red. Recuerde nuestra ADVERTENCIA anterior en caso de que’no disponga de una.
La configuración BGP
La última parte de la configuración para exportar rutas a los clientes es configurar las políticas como políticas de exportación en la BGP sesión con el cliente. Todas las políticas de exportación son genéricas y sólo deben definirse una vez. Cada cliente cuenta con dos políticas encadenadas:
La Directiva genérica que acepta rutas de tabla predeterminadas o completas.
Política de rechazo final que rechaza todo lo demás.
Por ejemplo:
group CUST-AS123 {
type external;
import [ TRANSIT-CUSTOMER-GENERIC IMPORT-CUSTOMER-AS123
REJECT-ALL ];
export [ EXPORT-FULL-TABLE REJECT-ALL];
remove-private;
peer-as 123;
neighbor 1.2.3.4;
}
Otro cliente sería:
group CUST-AS456 {
type external;
import [ TRANSIT-CUSTOMER-GENERIC IMPORT-CUSTOMER-AS456
REJECT-ALL ];
export [ EXPORT-DEFAULT REJECT-ALL ];
remove-private; peer-as 456;
neighbor 5.6.7.8;
}
Filtrado de rutas de interconexión de tráfico
Las políticas para los interlocutores son un poco distintas a las de los clientes, pero no de forma muy importante. Para los pares, rechaza las mismas rutas que para los clientes y usted acepta rutas dentro de su conjunto como (si se ha implementado el filtrado automático de prefijos). Por supuesto, rechaza rutas predeterminadas, RPKI inválidas, Long AS paths y bogons. Los únicos cambios importantes consisten en tener una preferencia local distinta (por debajo de las rutas de clientes), sin agregar el BGP comunidad para exportar las rutas de iguales, y no permitir un prefijo mayor que/24.
Aceptar rutas de los interlocutores
Se trata de la instrucción de Directiva completa para la importación de rutas desde los elementos del mismo nivel:
policy-options {
policy-statement PEER-GENERIC {
term DEFAULT-INET {
from {
family inet;
route-filter 0.0.0.0/0 exact;
}
}
term DEFAULT-INET6 {
from {
family inet6;
route-filter ::/0 exact;
}
}
term BOGONS-INET {
from {
family inet;
prefix-list-filter BOGONS orlonger;
}
}
term BOGONS-INET6 {
from {
family inet6;
prefix-list-filter BOGONS-INET6 orlonger;
}
}
term BOGON-ASNS {
from as-path-group BOGON-ASNS;
then reject;
}
term BIGNETWORKS{
from as-path-group BIGNETWORKS;
then reject;
}
term RPKI-INVALID {
from community origin-validation-state-invalid;
then reject;
}
term NORMALIZE {
then {
local-preference 200;
next term;
}
}
}
}
policy-options {
policy-statement IMPORT-PEER-AS789 {
term INET {
from {
prefix-list-filter AS789 exact;
# if you have automatic filter generation
}
}
term INET6 {
from {
prefix-list-filter AS789-INET6 exact;
# if you have automatic filter generation
}
}
term MORE-SPECIFIC-INET {
from {
policy MORE-SPECIFIC-UPTO-24;
prefix-list-filter AS789 orlonger;
# if you have automatic filter generation
}
}
term MORE-SPECIFIC-INET6 {
from {
policy MORE-SPECIFIC-UPTO-48;
prefix-list-filter AS789-INET6 orlonger;
# if you have automatic filter generation
}
}
}
}
policy-options {
policy-statement REJECT-ALL {
}
}
O en el formato de cortar y pegar:
set policy-options policy-statement PEER-GENERIC term DEFAULT-INET
from family inet
set policy-options policy-statement PEER-GENERIC term DEFAULT-INET
from route-filter 0.0.0.0/0 exact
set policy-options policy-statement PEER-GENERIC term DEFAULT-INET
then reject
set policy-options policy-statement PEER-GENERIC term DEFAULT-INET6
from family inet6
set policy-options policy-statement PEER-GENERIC term DEFAULT-INET6
from route-filter ::/0 exact
set policy-options policy-statement PEER-GENERIC term DEFAULT-INET6
then reject
set policy-options policy-statement PEER-GENERIC term BOGONS-INET
from family inet
set policy-options policy-statement PEER-GENERIC term BOGONS-INET
from prefix-list-filter BOGONS orlonger
set policy-options policy-statement PEER-GENERIC term BOGONS-INET
then reject
set policy-options policy-statement PEER-GENERIC term BOGONS-INET6
from family inet6
set policy-options policy-statement PEER-GENERIC term BOGONS-INET6
from prefix-list-filter BOGONS-INET6 orlonger
set policy-options policy-statement PEER-GENERIC term BOGONS-INET6
then reject
set policy-options policy-statement PEER-GENERIC term BOGON-ASNS
from as-path-group BOGON-ASNS
set policy-options policy-statement PEER-GENERIC term BOGON-ASNS
then reject
set policy-options policy-statement PEER-GENERIC term BIGNETWORKS
from as-path-group BIGNETWORKS
set policy-options policy-statement PEER-GENERIC term BIGNETWORKS
then reject
set policy-options policy-statement PEER-GENERIC term RPKI-CHECK
from policy RPKI-CHECK
set policy-options policy-statement PEER-GENERIC term RPKI-INVALID
from community origin-validation-state-invalid
set policy-options policy-statement PEER-GENERIC term RPKI-INVALID
then reject
set policy-options policy-statement PEER-GENERIC term NORMALIZE
then local-preference 200
set policy-options policy-statement PEER-GENERIC term NORMALIZE
then next term
set policy-options policy-statement IMPORT-PEER-AS789 term
INET from prefix-list-filter AS789 exact
set policy-options policy-statement IMPORT-PEER-AS789 term
INET then accept
set policy-options policy-statement IMPORT-PEER-AS789 term
INET6 from prefix-list-filter AS789-INET6 exact
set policy-options policy-statement IMPORT-PEER-AS789 term
INET6 then accept
set policy-options policy-statement IMPORT-PEER-AS789 term
MORE-SPECIFIC-INET from policy MORE-SPECIFIC-UPTO-24
set policy-options policy-statement IMPORT-PEER-AS789 term
MORE-SPECIFIC-INET from prefix-list-filter AS789 orlonger
set policy-options policy-statement IMPORT-PEER-AS789 term
MORE-SPECIFIC-INET then accept
set policy-options policy-statement IMPORT-PEER-AS789 term
MORE-SPECIFIC-INET6 from policy MORE-SPECIFIC-UPTO-48
set policy-options policy-statement IMPORT-PEER-AS789 term
MORE-SPECIFIC-INET6 from prefix-list-filter AS789-INET6 orlonger
set policy-options policy-statement IMPORT-PEER-AS789 term
MORE-SPECIFIC-INET6 then accept
set policy-options policy-statement REJECT-ALL then reject
La configuración BGP
La última parte de la configuración para importar rutas de igual es configurar las directivas como políticas de importación en la sesión de BGP con el interlocutor. Recuerde que la primera Directiva, PEER-GENERIC
, es genérico y debe definirse solo una vez; la segunda política es tan específica. Cada interlocutor tiene tres políticas encadenadas:
La Directiva genérica que rechaza las rutas no deseadas.
La Directiva específica del mismo nivel que acepta las’rutas del mismo nivel.
Política de rechazo final que rechaza todo lo demás.
Por ejemplo:
group PEER-AS789 {
type external;
import [ PEER-GENERIC IMPORT-PEER-AS789 REJECT-ALL ];
export [ EXPORT-PEER REJECT-ALL];
remove-private; peer-as 789;
neighbor 1.2.3.4;
}
Anuncio de las rutas a los interlocutores
Sus colegas deben recibir sus propias rutas y las rutas de sus clientes. Afortunadamente, hemos utilizado BGP las comunidades para etiquetar estas rutas, por lo que es muy fácil crear las correspondientes instrucciones de políticas:
policy-statement EXPORT-PEER {
term DENY {
from community RFC-NO-EXPORT;
then reject;
term EXPORT-ORIGINATES {
from community MYROUTES;
then accept;
}
}
term EXPORT-CUSTOMER {
from {
protocol bgp;
community MYCUSTOMER;
}
}
}
O en el formato de cortar y pegar:
set policy-options policy-statement EXPORT-PEER term DENY
from community RFC-NO-EXPORT
set policy-options policy-statement EXPORT-PEER term DENY
then reject
set policy-options policy-statement EXPORT-PEER term EXPORT-ORIGINATES
from community MYROUTES
set policy-options policy-statement EXPORT-PEER term EXPORT-ORIGINATES
then accept
set policy-options policy-statement EXPORT-PEER term EXPORT-CUSTOMER
from protocol bgp
set policy-options policy-statement EXPORT-PEER term EXPORT-CUSTOMER
from community MYCUSTOMER
set policy-options policy-statement EXPORT-PEER term EXPORT-CUSTOMER
then accept
La configuración BGP
La última parte de la configuración para exportar rutas a los pares consiste en configurar las políticas como políticas de exportación en la sesión de BGP con el interlocutor. Todas las políticas de exportación son genéricas y sólo deben definirse una vez. Cada interlocutor tiene dos políticas encadenadas:
La Directiva genérica que acepta las rutas y rutas de clientes.
Política de rechazo final que rechaza todo lo demás.
Por ejemplo:
group PEER-AS789 {
type external;
import [ PEER-GENERIC IMPORT-PEER-AS789 REJECT-ALL ];
export [ EXPORT-PEER REJECT-ALL];
remove-private; peer-as 789;
neighbor 1.2.3.4;
}
Filtrar rutas de tránsito
Las políticas de los proveedores de tránsito vuelven de nuevo un poco diferentes de las que se aplican a los colegas, pero de nuevo no lo son de mucho. Para los tránsitos, rechaza las mismas rutas que para los interlocutores: rutas predeterminadas, inRPKI invalids, Long AS paths y bogons. Los únicos cambios importantes consisten en aceptar rutas “de las” redes de gran tamaño en lugar de rechazarlas, tomando una preferencia local distinta (más bajas que las rutas de los homólogos), sin agregar el BGP comunidad para exportar las rutas de tránsito, y aceptar todas las rutas restantes en lugar de rechazarlas.
Aceptación de rutas de tránsitos
Se trata de la declaración de la Directiva completa para la importación de rutas desde tránsitos:
policy-options {
policy-statement TRANSIT-GENERIC {
term DEFAULT-INET {
from {
family inet;
route-filter 0.0.0.0/0 exact;
}
}
term DEFAULT-INET6 {
from {
family inet6;
route-filter ::/0 exact;
}
}
term BOGONS-INET {
from {
family inet;
prefix-list-filter BOGONS orlonger;
}
}
term BOGONS-INET6 {
from {
family inet6;
prefix-list-filter BOGONS-INET6 orlonger;
}
}
term BOGON-ASNS {
from as-path-group BOGON-ASNS;
then reject;
}
term RPKI-INVALID {
from community origin-validation-state-invalid;
then reject;
}
term NORMALIZE {
then {
local-preference 100;
next term;
}
}
}
}
policy-options {
policy-statement IMPORT-TRANSIT-AS10 {
term INET {
from {
family inet;
route-filter 0.0.0.0/0 upto /24;
}
term INET6 {
from {
family inet6;
route-filter ::/0 upto /48;
}
}
}
policy-options {
policy-statement REJECT-ALL {
}
}
O en el formato de cortar y pegar:
set policy-options policy-statement TRANSIT-GENERIC term
DEFAULT-INET from family inet
set policy-options policy-statement TRANSIT-GENERIC term
DEFAULT-INET from route-filter 0.0.0.0/0 exact
set policy-options policy-statement TRANSIT-GENERIC term
DEFAULT-INET then reject
set policy-options policy-statement TRANSIT-GENERIC term
DEFAULT-INET6 from family inet6
set policy-options policy-statement TRANSIT-GENERIC term
DEFAULT-INET6 from route-filter ::/0 exact
set policy-options policy-statement TRANSIT-GENERIC term
DEFAULT-INET6 then reject
set policy-options policy-statement TRANSIT-GENERIC term
BOGONS-INET from family inet
set policy-options policy-statement TRANSIT-GENERIC term
BOGONS-INET from prefix-list-filter BOGONS orlonger
set policy-options policy-statement TRANSIT-GENERIC term
BOGONS-INET then reject
set policy-options policy-statement TRANSIT-GENERIC term
BOGONS-INET6 from family inet6
set policy-options policy-statement TRANSIT-GENERIC term
BOGONS-INET6 from prefix-list-filter BOGONS-INET6 orlonger
set policy-options policy-statement TRANSIT-GENERIC term
BOGONS-INET6 then reject
set policy-options policy-statement TRANSIT-GENERIC term
BOGON-ASNS from as-path-group BOGON-ASNS
set policy-options policy-statement TRANSIT-GENERIC term
BOGON-ASNS then reject
set policy-options policy-statement TRANSIT-GENERIC term
RPKI-CHECK from policy RPKI-CHECK
set policy-options policy-statement TRANSIT-GENERIC term
RPKI-INVALID from community origin-validation-state-invalid
set policy-options policy-statement TRANSIT-GENERIC term
RPKI-INVALID then reject
set policy-options policy-statement TRANSIT-GENERIC term
NORMALIZE then local-preference 200
set policy-options policy-statement TRANSIT-GENERIC term
NORMALIZE then next term
set policy-options policy-statement IMPORT-TRANSIT-AS10
term INET from family inet
set policy-options policy-statement IMPORT-TRANSIT-AS10
term INET from route-filter 0.0.0.0/0 upto /24
set policy-options policy-statement IMPORT-TRANSIT-AS10
term INET then accept
set policy-options policy-statement IMPORT-TRANSIT-AS10
term INET6 from family inet6
set policy-options policy-statement IMPORT-TRANSIT-AS10
term INET6 from route-filter ::/0 upto /48
set policy-options policy-statement IMPORT-TRANSIT-AS10
term INET6 then accept
set policy-options policy-statement REJECT-ALL then reject
La configuración BGP
La última parte de la configuración para importar las rutas de tránsito consiste en configurar las políticas como políticas de importación en la sesión de BGP con el proveedor de tránsito. Recuerde que la primera política, genérica de tránsito, es genérica y debe definirse solo una vez; la segunda política es tan específica. Cada tránsito tiene tres políticas encadenadas:
La Directiva genérica que rechaza las rutas no deseadas.
La Directiva específica de tránsito que acepta las rutas’s de tránsito.
Política de rechazo final que rechaza todo lo demás.
Por ejemplo:
policy-statement EXPORT-TRANSIT {
term DENY {
from community RFC-NO-EXPORT;
then reject;
}
term EXPORT-ORIGINATES {
from community MYROUTES;
then accept;
}
term EXPORT-CUSTOMER {
from {
protocol bgp;
community MYCUSTOMER;
}
}
}
Anuncio de rutas a los tránsitos
Los traspasos deben recibir sus propias rutas y las rutas de sus clientes. Al igual que con la exportación de rutas a los colegas, aquí usamos las comunidades de BGP para etiquetar estas rutas, por lo que es muy sencillo crear las instrucciones de directiva relevantes:
Y en el formato de cortar y pegar:
set policy-options policy-statement EXPORT-TRANSIT term
DENY from community RFC-NO-EXPORT
set policy-options policy-statement EXPORT-TRANSIT term
DENY then reject
set policy-options policy-statement EXPORT-TRANSIT term
EXPORT-ORIGINATES from community MYROUTES
set policy-options policy-statement EXPORT-TRANSIT term
EXPORT-ORIGINATES then accept
set policy-options policy-statement EXPORT-TRANSIT term
EXPORT-CUSTOMER from protocol bgp
set policy-options policy-statement EXPORT-TRANSIT term
EXPORT-CUSTOMER from community MYCUSTOMER
set policy-options policy-statement EXPORT-TRANSIT term
EXPORT-CUSTOMER then accept
La configuración BGP
La última parte de la configuración para exportar rutas a tránsitos consiste en configurar las políticas como políticas de exportación en la BGP sesión con el tránsito. Todas las políticas de exportación son genéricas y sólo deben definirse una vez. Cada tránsito tiene dos políticas encadenadas:
La Directiva genérica que acepta las rutas y rutas de clientes.
Política de rechazo final que rechaza todo lo demás.
Por ejemplo:
group TRANSIT-AS10 {
type external;
import [ TRANSIT-GENERIC IMPORT-TRANSIT-AS10 REJECT-ALL
];
export [ EXPORT-TRANSIT REJECT-ALL];
remove-private; peer-as 10;
neighbor 1.2.3.4;
}
Conclusión
Desde una perspectiva de políticas, los enrutadores ahora tienen lo que se necesita para filtrar rutas, crear una tabla de enrutamiento segura y comunicarse BGP con sus clientes, colegas y proveedores de tránsito. Su red debe estar en buenas formas. ¡ Bien hecho!
Es posible que haya observado que no configuramos políticas para filtrar las rutas que se originan en las sesiones del cliente, del mismo nivel y de tránsito. Esto se hizo a propósito, ya que, por naturaleza BGP, filtrará los anuncios que contengan un número propio para evitar los bucles. Si recibe un anuncio de ruta que contiene el prefijo pero originado por un número distinto, RPKI lo filtrará si ha creado ROAs. Sin embargo, nunca es malo filtrar explícitamente sus propias rutas en todas las sesiones eBGP.
A continuación, algunas maneras de comprobar si las cosas son correctos y qué hacer si’no son así.