Manual: IP/Route

El enrutador mantiene la información de enrutamiento en varios espacios separados:

  • FIB (Base de información de reenvío), que se utiliza para tomar decisiones de reenvío de paquetes. Contiene una copia de la información de enrutamiento necesaria.

  • Cada protocolo de enrutamiento (excepto BGP) tiene sus propias tablas internas. Aquí es donde se toman las decisiones de enrutamiento por protocolo. BGP no tiene tablas de enrutamiento internas y almacena información de enrutamiento completa de todos los pares en la RIB.

  • RIB contiene rutas agrupadas en tablas de enrutamiento separadas según su valor de marca de enrutamiento. Todas las rutas sin marca de enrutamiento se mantienen en la tabla de enrutamiento principal. Estas tablas se utilizan para seleccionar la mejor ruta. La tabla principal también se utiliza para la búsqueda de nexthop.

Base de información de enrutamiento

 

 

RIB (Base de información de enrutamiento) contiene información de enrutamiento completa, incluidas rutas estáticas y reglas de enrutamiento de políticas configuradas por el usuario, información de enrutamiento aprendida de protocolos de enrutamiento, información sobre redes conectadas. RIB se utiliza para filtrar la información de enrutamiento, calcular la mejor ruta para cada prefijo de destino, crear y actualizar la base de información de reenvío y distribuir rutas entre diferentes protocolos de enrutamiento.

Por defecto, la decisión de reenvío se basa únicamente en el valor de la dirección de destino. Cada ruta tiene la propiedad dst-address, que especifica todas las direcciones de destino para las que se puede usar esta ruta. Si hay varias rutas que se aplican a una dirección IP en particular, se usa la más específica (con la máscara de red más grande). Esta operación (encontrar la ruta más específica que coincida con la dirección dada) se denomina búsqueda en la tabla de enrutamiento.

Si la tabla de enrutamiento contiene varias rutas con la misma dirección dst, solo una de ellas se puede usar para reenviar paquetes. Esta ruta se instala en FIB y se marca como activa .

Cuando la decisión de reenvío utiliza información adicional, como una dirección de origen del paquete, se denomina enrutamiento de política. El enrutamiento de políticas se implementa como una lista de reglas de enrutamiento de políticas, que seleccionan diferentes tablas de enrutamiento según la dirección de destino, la dirección de origen, la interfaz de origen y la marca de enrutamiento (se puede cambiar mediante las reglas de destrucción del firewall) del paquete.

Todas las rutas por defecto se mantienen en la tabla de enrutamiento principal. Las rutas se pueden asignar a una tabla de enrutamiento específica configurando su propiedad de marca de enrutamiento con el nombre de otra tabla de enrutamiento. Se hace referencia a las tablas de enrutamiento por su nombre y se crean automáticamente cuando se hace referencia a ellas en la configuración.

Cada tabla de enrutamiento puede tener solo una ruta activa para cada valor del prefijo IP de dirección de horario de verano.

Existen diferentes grupos de rutas, en función de su origen y propiedades.

Ruta por defecto

La ruta con dst-address 0.0.0.0/0 se aplica a todas las direcciones de destino. Tal ruta se llama la ruta por defecto. Si la tabla de enrutamiento contiene una ruta predeterminada activa, la búsqueda de la tabla de enrutamiento en esta tabla nunca fallará.

Rutas conectadas

Las rutas conectadas se crean automáticamente para cada red IP que tiene al menos una interfaz habilitada adjunta (como se especifica en la /ip address configuración). RIB rastrea el estado de las rutas conectadas, pero no las modifica. Para cada ruta conectada hay un elemento de dirección IP tal que:

  • la parte de dirección de la dirección dst de la ruta conectada es igual a la red del elemento de dirección IP.

  • la parte de máscara de red de la dirección dst de la ruta conectada es igual a la parte de máscara de red de la dirección del elemento de dirección IP.

  • pref-src de la ruta conectada es igual a la parte de dirección de la dirección del elemento de dirección IP.

  • la interfaz de la ruta conectada es igual a la interfaz real del elemento de la dirección IP (igual que la interfaz, excepto por los puertos de la interfaz del puente).

 

 

Rutas multitrayecto (ECMP)

Para implementar algunas configuraciones, como el balanceo de carga, puede ser necesario usar más de una ruta para un destino determinado. Sin embargo, no es posible tener más de una ruta activa al destino en una sola tabla de enrutamiento.

Las rutas ECMP (múltiples rutas de igual costo) tienen varios valores de nexthop de puerta de enlace. Todos los próximos saltos accesibles se copian en FIB y se utilizan para reenviar paquetes.

El protocolo OSPF puede crear rutas ECMP. Estas rutas también se pueden crear manualmente.

Debido a que los resultados de la decisión de reenvío se almacenan en caché, los paquetes con la misma dirección de origen, dirección de destino, interfaz de origen, marca de enrutamiento y ToS se envían a la misma puerta de enlace. Esto significa que la ruta ECMP no realiza un equilibrio por conexión puro, pero se puede usar para equilibrar la carga de las conexiones si al menos uno de los parámetros mencionados anteriormente es diferente a la conexión anterior. Consulte la vinculación de la interfaz si necesita lograr el equilibrio de carga por paquete.

Rutas con interfaz como pasarela

El valor de la puerta de enlace se puede especificar como un nombre de interfaz en lugar de la dirección IP del próximo salto. Dicha ruta tiene las siguientes propiedades especiales:

  • A diferencia de las rutas conectadas, las rutas con nexthops de interfaz no se utilizan para la búsqueda de nexthops.

  • Es posible asignar varias interfaces como valor de puerta de enlace y crear una ruta ECMP. No es posible tener una ruta conectada con múltiples valores de puerta de enlace.

Selección de ruta

Cada tabla de enrutamiento puede tener una ruta activa para cada prefijo de destino. Esta ruta está instalada en FIB. La ruta activa se selecciona de todas las rutas candidatas con la misma dirección de destino y marca de ruta, que cumplen los criterios para convertirse en una ruta activa. Puede haber múltiples rutas de este tipo desde diferentes protocolos de enrutamiento y desde una configuración estática. La ruta candidata con la distancia más baja se convierte en una ruta activa. Si hay más de una ruta candidata con la misma distancia, la selección de la ruta activa es arbitraria (excepto para las rutas BGP).

BGP tiene el proceso de selección más complicado (descrito en un artículo separado). Tenga en cuenta que esta selección interna del protocolo se realiza solo después de que las rutas BGP estén instaladas en la tabla de enrutamiento principal; esto significa que puede haber una ruta candidata de cada par BGP. También tenga en cuenta que las rutas BGP de diferentes instancias BGP se comparan por su distancia, al igual que otras rutas.

Criterios para la selección de rutas candidatas

Para participar en el proceso de selección de ruta, la ruta debe cumplir con los siguientes criterios:

  • la ruta no está deshabilitada.

  • la distancia no es 255. Las rutas que son rechazadas por el filtro de ruta tienen un valor de distancia de 255.

  • pref-src no está configurado o es una dirección local válida del enrutador.

  • la marca de enrutamiento no está configurada o las reglas de enrutamiento de políticas o firewall hacen referencia a ella.

  • Si el tipo de ruta es unidifusión y no es una ruta conectada, debe tener al menos un nexthop accesible.

Búsqueda de siguiente salto

La búsqueda de Nexthop es parte del proceso de selección de rutas.

Las rutas que están instaladas en la FIB deben tener una interfaz asociada con cada dirección de puerta de enlace. La dirección de la puerta de enlace (nexthop) debe ser accesible directamente a través de esta interfaz. La interfaz que debe usarse para enviar paquetes a cada dirección de puerta de enlace se encuentra realizando una búsqueda de salto siguiente.

Algunas rutas (p. ej., iBGP) pueden tener una dirección de puerta de enlace que esté a varios saltos de distancia de este enrutador. Para instalar dichas rutas en la FIB, es necesario encontrar la dirección de la puerta de enlace accesible directamente (un nexthop inmediato), que debe usarse para llegar a la dirección de la puerta de enlace de esta ruta. Las direcciones nextop inmediatas también se encuentran haciendo una búsqueda nexthop.

 

 

La búsqueda de Nexthop se realiza solo en la tabla de enrutamiento principal, incluso para rutas con un valor diferente de marca de enrutamiento. Es necesario restringir el conjunto de rutas que se pueden usar para buscar próximos saltos inmediatos. Se supone que los valores de Nexthop de las rutas RIP u OSPF, por ejemplo, son directamente accesibles y deben buscarse solo mediante rutas conectadas. Esto se logra utilizando las propiedades scope y target-scope.

  • Las rutas con el nombre de la interfaz como el valor de la puerta de enlace no se utilizan para la búsqueda del siguiente salto. Si la ruta tiene próximos saltos de interfaz y próximos saltos de dirección IP activos, se ignoran los próximos saltos de interfaz.

  • Las rutas con un alcance superior al valor máximo aceptado no se utilizan para la búsqueda de nexthop. Cada ruta especifica el valor de alcance máximo aceptado para sus próximos saltos en la propiedad de alcance de destino. El valor predeterminado de esta propiedad permite la búsqueda de nexthop solo a través de rutas conectadas, con la excepción de las rutas iBGP que tienen un valor predeterminado mayor y pueden buscar nexthop también a través de IGP y rutas estáticas.

La interfaz y el nexthop inmediato se seleccionan según el resultado de la búsqueda nexthop:

  • Si la ruta activa más específica que encuentra la búsqueda de nexthop es una ruta conectada, entonces la interfaz de esta ruta conectada se usa como la interfaz de nexthop, y esta puerta de enlace se marca como accesible. Dado que se puede acceder directamente a la puerta de enlace a través de esta interfaz (eso es exactamente lo que significa la ruta conectada), la dirección de la puerta de enlace se usa como la dirección del siguiente salto inmediato.

  • Si la ruta activa más específica que encuentra la búsqueda de nexthop tiene un nexthop que ya está resuelto, la dirección y la interfaz inmediatas del nexthop se copian desde ese nexthop y esta puerta de enlace se marca como recursiva.

  • Si la ruta activa más específica que encuentra la búsqueda de nexthop es la ruta ECMP, entonces usa la primera puerta de enlace de esa ruta que no es inalcanzable.

  • Si la búsqueda nexthop no encuentra ninguna ruta, esta puerta de enlace se marca como inalcanzable.

 

Ejemplo de búsqueda recursiva de nexthop:

  • nexthop 10.2.0.1 se resuelve a través de una ruta conectada, su estado es accesible.

  • nexthop 10.3.0.1 se resuelve recursivamente a través de una ruta 10.3.0.0/16, su estado es recursivo y usa 10.2.0.1 como el valor nexthop inmediato que está instalado en la FIB.

Base de información de reenvío

FIB (Base de información de reenvío) contiene una copia de la información necesaria para el reenvío de paquetes:

  • todas las rutas activas

  • reglas de enrutamiento de políticas

De forma predeterminada (cuando no se utilizan valores de marcas de enrutamiento), todas las rutas activas están en la tabla principal y solo hay una regla implícita oculta (regla "atrapar todo") que utiliza la tabla principal para todas las búsquedas de destino.

 

 

Consulta de tabla de enrutamiento

FIB usa la siguiente información del paquete para determinar su destino:

  • Dirección de la fuente

  • dirección de destino

  • interfaz de origen

  • marca de enrutamiento

  • ToS (no utilizado por RouterOS en las reglas de enrutamiento de políticas, pero es parte de la clave de búsqueda de caché de enrutamiento)

Las posibles decisiones de enrutamiento son:

  • recibir paquete localmente

  • descartar paquete (ya sea en silencio o enviando un mensaje ICMP al remitente del paquete)

  • enviar paquetes a una dirección IP específica en una interfaz específica

Los resultados de la decisión de enrutamiento se recuerdan en la caché de enrutamiento. Esto se hace para mejorar el rendimiento de reenvío. Cuando se enruta otro paquete con la misma dirección de origen, dirección de destino, interfaz de origen, marca de enrutamiento y ToS, se utilizan los resultados almacenados en caché. Esto también permite implementar balanceo de carga usando rutas ECMP, porque los valores usados ​​para buscar entradas en el caché de enrutamiento son los mismos para todos los paquetes que pertenecen a la misma conexión y van en la misma dirección.

Si no hay una entrada de caché de enrutamiento para este paquete, se crea ejecutando una decisión de enrutamiento:

  • compruebe que el paquete debe entregarse localmente (la dirección de destino es la dirección del enrutador)

  • procesar reglas de enrutamiento de políticas implícitas

  • reglas de enrutamiento de políticas de proceso agregadas por el usuario

  • Procesar la regla general implícita que busca el destino en la tabla de enrutamiento principal.

  • el resultado devuelto es "red inalcanzable".

Las reglas que no coinciden con el paquete actual se ignoran. Si la regla tiene acción descartada o inalcanzable, se devuelve como resultado del proceso de decisión de enrutamiento. Si la acción es buscar , la dirección de destino del paquete se busca en la tabla de enrutamiento que se especifica en la regla. Si la búsqueda falla (no hay una ruta que coincida con la dirección de destino del paquete), la FIB continúa con la siguiente regla. De lo contrario:

  • si el tipo de ruta es blackholeprohibir o inalcanzable, devolver esta acción como resultado de la decisión de enrutamiento;

  • si se trata de una ruta conectada, o una ruta con una interfaz como valor de puerta de enlace, devolver esta interfaz y la dirección de destino del paquete como resultado de la decisión de enrutamiento;

  • si esta ruta tiene una dirección IP como el valor de la puerta de enlace, devuelva esta dirección y la interfaz asociada como resultado de la decisión de enrutamiento;

  • si esta ruta tiene múltiples valores de nexthop, elija uno de ellos en forma de turno rotativo.

El resultado de esta decisión de enrutamiento se almacena en una nueva entrada de caché de enrutamiento.

El resultado de la decisión de enrutamiento puede ser:

  • Dirección IP de nexthop + interfaz

  • interfaz punto a punto

  • entrega local

  • desechar

  • ICMP prohibido

  • Host ICMP inalcanzable

  • Red ICMP inalcanzable

Propiedades

Banderas de ruta:

Propiedad (Bandera)

Descripción

disabled (X)

El elemento de configuración está deshabilitado. No tiene ningún efecto en otras rutas y no es utilizado por los protocolos de reenvío o enrutamiento de ninguna manera.

active (A)

La ruta se utiliza para el reenvío de paquetes. Ver selección de ruta.

dynamic (D)

Elemento de configuración creado por software, no por interfaz de administración. No se exporta y no se puede modificar directamente.

connect (C)

ruta conectada.

static (S)

ruta estática.

rip (r)

ruta RIP.

bgp (b)

ruta BGP.

ospf (o)

ruta OSPF.

mme (m)

ruta MME.

blackhole (B)

Descartar silenciosamente el paquete reenviado por esta ruta.

unreachable (U)

Descartar el paquete reenviado por esta ruta. Notifique al remitente con un mensaje de host ICMP inalcanzable (tipo 3 código 1).

prohibit (P)

Descartar el paquete reenviado por esta ruta. Notifique al remitente con el mensaje de comunicación ICMP administrativamente prohibida (tipo 3 código 13).

 Propiedades generales:

Propiedad

Descripción

check-gateway (arp | ping; Default: "")

Periódicamente (cada 10 segundos) verifique la puerta de enlace enviando una solicitud de eco ICMP (ping) o una solicitud ARP (arp). Si no se recibe ninguna respuesta de la puerta de enlace durante 10 segundos, la solicitud expira. Después de dos tiempos de espera, la puerta de enlace se considera inalcanzable. Después de recibir la respuesta de la puerta de enlace, se considera accesible y se restablece el contador de tiempo de espera.

comment (string; Default: "")

Descripción de la ruta en particular.

distance (integer[1..255]; Default: "1")

Valor utilizado en la selección de ruta. Se da preferencia a las rutas con menor valor de distancia. Si no se establece el valor de esta propiedad, el valor predeterminado depende del protocolo de ruta:

  • rutas conectadas: 0

  • rutas estáticas: 1

  • eBGP: 20

  • OSPF: 110

  • DEP: 120

  • MMM: 130

  • iBGP: 200

dst-address (IP prefix; Default: 0.0.0.0/0)

Prefijo IP de la ruta, especifica las direcciones de destino para las que se puede usar esta ruta. La parte de máscara de red de esta propiedad especifica cuántos de los bits más significativos en la dirección de destino del paquete deben coincidir con este valor. Si hay varias rutas activas que coinciden con la dirección de destino del paquete, se usa la más específica (con el valor de máscara de red más grande).

gateway (IP | interface | IP%interface | IP@table[, IP | string, [..]]; Default: "")

Matriz de direcciones IP o nombres de interfaz. Especifica a qué host o paquetes de interfaz se deben enviar. Las rutas conectadas y las rutas con agujero negroinalcanzable o prohibidas no tienen esta propiedad. Por lo general, el valor de esta propiedad es una dirección IP única de una puerta de enlace a la que se puede acceder directamente a través de una de las interfaces del enrutador (pero consulte la búsqueda de nexthop). Las rutas ECMP tienen más de un valor de puerta de enlace. El valor se puede repetir varias veces.

pref-src (IP; Default: "")

Cuál de las direcciones IP locales usar para los paquetes originados localmente que se envían a través de esta ruta. El valor de esta propiedad no tiene efecto en los paquetes reenviados. Si el valor de esta propiedad se establece en una dirección IP que no es la dirección local de este enrutador, la ruta estará inactiva (en ROS v6, ROS v7 permite la suplantación de IP). Si el valor pref-src no está configurado, entonces para los paquetes originados localmente que se envían usando esta ruta, el enrutador elegirá una de las direcciones locales adjuntas a la interfaz de salida que coincida con el prefijo de destino de la ruta (un ejemplo).

route-tag (integer; Default: "")

Valor del atributo de etiqueta de ruta para RIP u OSPF. Para RIP solo son válidos los valores 0..4294967295.

routing-mark (string; Default: "")

Nombre de la tabla de enrutamiento que contiene esta ruta. No se establece de forma predeterminada, que es lo mismo que main. Los paquetes marcados por el cortafuegos con este valor de marca de enrutamiento se enrutarán usando las rutas de esta tabla, a menos que las reglas de enrutamiento de la política lo anulen. No se pueden agregar más de 251 marcas de enrutamiento por enrutador.

scope (integer[0..255]; Default: "30")

Se utiliza en la resolución nexthop. La ruta puede resolver nexthop solo a través de rutas que tienen un alcance menor o igual que el alcance de destino de esta ruta. El valor predeterminado depende del protocolo de ruta:

  • rutas conectadas: 10 (si la interfaz se está ejecutando)

  • Rutas OSPF, RIP, MME: 20

  • rutas estáticas: 30

  • Rutas BGP: 40

  • rutas conectadas: 200 (si la interfaz no se está ejecutando)

target-scope (integer[0..255]; Default: "10")

Se utiliza en la resolución nexthop. Este es el valor máximo de alcance de una ruta a través del cual se puede resolver un siguiente salto de esta ruta. Consulte la búsqueda de nexthop. El valor de iBGP se establece en 30 de forma predeterminada.

type (unicast | blackhole | prohibit | unreachabl; Default: unicast)

Las rutas que no especifican el siguiente salto para los paquetes, sino que realizan alguna otra acción en los paquetes, tienen un tipo diferente al unicast habitual. La ruta blackhole descarta los paquetes en silencio, mientras que las rutas inalcanzables y prohibidas envían un mensaje de destino inalcanzable ICMP (código 1 y 13 respectivamente) a la dirección de origen del paquete.

vrf-interface (string; Default: "10")

Nombre de la interfaz VRF.

Otras propiedades de solo lectura:

Propiedad

Descripción

gateway-status (array)

Matriz de puertas de enlace, estados de puerta de enlace y qué interfaz se utiliza para el reenvío. Sintaxis "Interfaz de estado de IP", por ejemplo "10.5.101.1 puente de derivación alcanzable". El estado puede ser inalcanzablealcanzable o recursivo. Consulte la búsqueda de nexthop para obtener más información.

ospf-metric (integer)

Métrica OSPF utilizada para una ruta en particular.

ospf-type (string)

Propiedades de ruta BGP

Estas propiedades contienen información que utiliza el protocolo de enrutamiento BGP. Sin embargo, los valores de estas propiedades se pueden establecer para cualquier tipo de ruta, incluidas las estáticas y las conectadas. Se puede hacer manualmente (para rutas estáticas) o usando filtros de ruta.

Propiedad

Descripción

bgp-as-path (string; Default: "")

Valor del atributo BGP AS_PATH. Lista separada por comas de números de AS con números de AS de confederación entre () y AS_SET entre {}. Se utiliza para verificar los bucles AS y en el algoritmo de selección de rutas BGP: se prefieren las rutas con AS_PATH más cortos (pero lea cómo se calcula la longitud de AS_PATH).

bgp-atomic-aggregate (yes | no; Default:)

Valor del atributo BGP ATOMIC_AGGREGATE.

bgp-communities (array of (integer:integer | internet | no-advertise | no-export |local-as; Default:)

Valor de la lista de comunidades BGP. Este atributo se puede utilizar para agrupar o filtrar rutas. Los valores con nombre tienen significados especiales:

  • internet : anuncie esta ruta a la comunidad de Internet (es decir, todos los enrutadores)

  • sin publicidad: no anuncie esta ruta a ningún compañero

  • sin exportación: no anuncie esta ruta a los pares EBGP

  • local-as : igual que no-export, excepto que la ruta también se anuncia a los pares EBGP dentro de la confederación local

bgp-local-pref (integer; Default: )

Valor del atributo BGP LOCAL_PREF. Se utiliza en el algoritmo de selección de ruta BGP: se prefieren las rutas con un valor LOCAL_PREF mayor. Si no se establece el valor, se interpreta como 100.

bgp-med (integer; Default:)

Valor del atributo BGP MULTI_EXIT_DISC BGP. Se utiliza en el algoritmo de selección de ruta BGP: se prefieren las rutas con un valor MULTI_EXIT_DISC más bajo. Si no se establece el valor, se interpreta como 0.

bgp-origin (igp | egp | incomplete; Default:)

Valor del atributo ORIGEN BGP. Se utiliza en el algoritmo de selección de rutas BGP: las rutas igp se prefieren a las egp y las egp a las incompletas.

bgp-prepend (integer [0..16]; Default:)

Cuántas veces se debe anteponer el propio número AS del enrutador al atributo AS_PATH al anunciar la ruta a través de BGP. Afecta solo las rutas enviadas a los pares eBGP (siempre se usa el valor 0 para iBGP).

Solo lectura

Propiedad

Descripción

bgp-ext-communities (string)

Valor del atributo de comunidades extendidas de BGP

bgp-weight (integer)

Valor adicional utilizado por el algoritmo de selección de la mejor ruta de BGP. Se prefieren las rutas con mayor peso. Se puede configurar mediante filtros de enrutamiento entrantes y solo es útil para rutas BGP. Si no se establece el valor, se interpreta como 0.

received-from (string)

Nombre del par BGP desde el que se recibe la ruta.

 

Fuente: https://wiki.mikrotik.com/wiki/Manual:IP/Route