Interpretación de la columna 'métrica' en la tabla de enrutamiento

Interpretación de la columna 'métrica' en la tabla de enrutamiento

Estoy un poco confundido acerca del resultado que veo en mi tabla de enrutamiento, particularmente la columna "métrica":

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
172.16.35.0     0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0
192.168.82.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8

Según la página de manual, la métrica indica la "distancia" al objetivo. Estaba un poco confundido acerca de qué era exactamente "objetivo". Supuse que era mi enrutador (va a la puerta de enlace 0.0.0.0, que luego va a mi enrutador en 192.168.0.1). Por lo tanto, esperaba que la métrica fuera un único salto a mi enrutador. Sin embargo, ¡son las 9! ¿Por qué este número es tan alto?

Respuesta1

Según la página de manual, la métrica indica la "distancia" al objetivo.

Esperaba que la métrica fuera un único salto a mi enrutador. Sin embargo, ¡son las 9! ¿Por qué este número es tan alto?

El metriccampo tiene varios significados diferentes:

El campo Métrica indica el costo de una ruta. Si existen varias rutas hacia un ID de red de destino determinado, la métrica se utiliza para decidir qué ruta se tomará. La ruta con la métrica más baja es la ruta preferida. Algunos algoritmos de enrutamiento solo almacenan una única ruta a cualquier ID de red en la tabla de enrutamiento, incluso cuando existen varias rutas. En este caso, el enrutador utiliza la métrica para decidir qué ruta almacenar en la tabla de enrutamiento.

Las métricas pueden indicar diferentes formas de expresar una preferencia de ruta:

  • Número de saltos.

    Una métrica común. Indica la cantidad de enrutadores (saltos) en la ruta al ID de red.

  • Demora.

    Una medida de tiempo que se requiere para que el paquete alcance el ID de la red. El retraso se utiliza para indicar la velocidad de la ruta (los enlaces de las redes de área local (LAN) tienen un retraso bajo, los enlaces de la red de área amplia (WAN) tienen un retraso alto) o una condición de congestión de una ruta.

  • Rendimiento.

    La cantidad efectiva de datos que se pueden enviar a lo largo de la ruta por segundo. El rendimiento no es necesariamente un reflejo de la velocidad de bits del enlace, ya que un enlace Ethernet muy ocupado puede tener un rendimiento menor que un enlace WAN de 64 Kbps no utilizado.

  • Fiabilidad.

    Una medida de la constancia del camino. Algunos tipos de enlaces son más propensos a fallar que otros. Por ejemplo, con enlaces WAN, las líneas arrendadas son más confiables que las líneas de acceso telefónico.

FuenteTablas de enrutamiento

Respuesta2

Voy a comentar esto porque la respuesta existente es técnicamente correcta en un sentido descriptivo, pero omite detalles clave y valores concretos útiles para fines de depuración e ingeniería, algunos de los cuales tuve que probar yo mismo para Windows 10 21H2, aunque esto debería se aplican a casi todas las versiones de Windows, menos algunos valores predeterminados integrados específicos de Windows que cambiaron en las versiones más recientes de Windows (más sobre esto más adelante).

una pequeña nota: Otros sistemas operativos, incluidos muchos sistemas operativos integrados en dispositivos (enrutadores/conmutadores/IoT/etc.), a menudo usan una única métrica (frente a diferentes métricas sumadas de puerta de enlace e interfaz, como Windows), pero la regla básica de la métrica de ruta más baja siempre gana es consistente. en todos los lugares que he visto.

Para novatos:El objetivo de los valores de métricas automáticas es, en teoría, intentar garantizar que se elija la "mejor" ruta con la mayor frecuencia posible sin configuración adicional, cuando hay más de 2 rutas a un destino. La razón por la que la definición de la página de manual que se muestra en la otra respuesta es tan vaga/amplia es que puede estructurar los valores seleccionados como desee, por lo que cualquier sistema operativo/ingeniero/desarrollador/sistema puede elegir los valores que desee, tratando de garantizar que su definición de La "mejor" ruta/enlace suele ganar (es decir, es el valor más bajo). Dicho esto, en la mayoría de las aplicaciones normales, lo "mejor" casi siempre se determina asignando valores basados ​​en la velocidad del enlace sin procesar en rangos para acomodar conexiones que varían regularmente en la velocidad del enlace (principalmente enlaces inalámbricos).

No lo sé y no lo he probado para ver si la métrica de la interfaz se actualiza de manera constante o periódica en un enlace inalámbrico a medida que la velocidad del enlace cruza diferentes rangos, pero me imagino que hay algo de histéresis/fijación o simplemente está configurada de forma rígida. en el enlace para evitar que intercambie prioridad de un lado a otro demasiado rápido, en todo caso, con otro enlace (normalmente una conexión por cable en la misma máquina, como una computadora portátil).

Métricas de enrutamiento básicas en Windows

Una ruta se selecciona de la tabla de enrutamiento (se verifica desde la línea de comando con "route print") y es la suma de lasmétrica de interfazymétrica de puerta de enlace. "Rutas activas" le muestra las métricas funcionales sumadas.

Para ver estos valores separados sin consultar el panel de control puedes usar Ejecutar->"netsh int ipv4 show add"

Estas dos métricas se pueden editar en las propiedades de la tarjeta de red->Avanzado->"IPv4" o "IPv6" dependiendo del conjunto de rutas/tráfico con el que esté tratando (Ejecute->"ncpa.cpl" para ir directamente allí -- Hacernouse la aplicación de configuración de formulario sobre función). Puede ver las métricas separadas en "Puertas de enlace predeterminadas" y "Métrica de interfaz".

Valores de métricas automáticas en Windows (varía según la versión)

Métrica de interfaz:

PoresteEn la omnipresente página de Microsoft, hay tablas internas que se utilizan para configurar la métrica de la interfaz en función de la velocidad del enlace. En la actualidad, enumeran, en orden, los valores anteriores a XP-SP2 (supongo), los valores de XP SP2 a Windows 8.1, luego los valores de Windows 10+ para enlaces inalámbricos y enlaces por cable (tablas separadas). Es casi seguro que las versiones del servidor son idénticas a su versión equivalente para el consumidor, como ocurre con muchas cosas ocultas.

  • Ejemplo: enlace cableado Ethernet estándar de 1 Gbit, Win10 -> cuarta tabla (según lo anterior), "Mayor o igual a 200 Mb y menos de 2 Gb" es una métrica automática de interfaz de 25.

Métrica de puerta de enlace:

La métrica de la puerta de enlace puede ser un poco más complicada, ya que los valores predeterminados no son evidentes o aparentemente ni siquiera están documentados en una búsqueda rápida. Aquí se establece según si el enlace utiliza una IP dinámica o estática. Puede haber otras condiciones, pero estas dos son todas las que he encontrado.

De las pruebas, descubrí que el valor predeterminadoestáticoLa métrica es 256 y la predeterminada.dinámico/DHCPLa métrica es 0. Dado que se agregan a la métrica de su interfaz anterior y puede ver en las tablas vinculadas anteriormente que 256 es mayor/peor que cualquier métrica de interfaz automática, le indicaun enlace con dirección dinámica siempre tendrá prioridad sobre cualquier enlace con dirección estática si se utilizan todas las configuraciones predeterminadas/automáticas.

Consideraciones básicas en la práctica

Como ejemplo: para alguien que administra un servidor u otro dispositivo Windows con una IP estática que no quiere que un enrutador fraudulento/de prueba/segundo enrutador en, digamos, una segunda NIC extraiga repentinamente el tráfico del dispositivo a través de dicho enrutador (posiblemente tomando el servidor fuera de línea), establezca a la fuerza las métricas de su puerta de enlace y de interfaz lo suficientemente bajas como para que ninguna otra asignación automática las reemplace. Quizás use 1 y 10 respectivamente o solo 1 y 1 si desea que esa ruta/NIC se use siempre sin excepción. Simplemente documente que lo hizo, ya que establecer algunas cosas en valores extremos ocasionalmente puede causar problemas en el futuro.

Posibles peculiaridades/errores

Antes de comenzar este pequeño proyecto de documentación, configuré una NIC secundariainterfazmétrica a 100 para manejar un laboratorio de red que había configurado y después de tal vez una o dos semanas, con un uso normal en el medio, regresé y encontré la interfaz.puertala métrica también se configuró en 100... no estoy seguro de cómo sucedió eso o si fue un error en una esquina, pero rápidamente lo configuré en estático y viceversa (usaba DHCP, por lo que no había puerta de enlace en las propiedades de la NIC para configurar) lo solucionó. y el problema no ha vuelto.

información relacionada