Articles

La Tabla de Enrutamiento (TCP/IP de la Red de Administración, 3ª Edición)

Libro

Anterior Siguiente

2.4. La Tabla de enrutamiento

Las puertas de enlace enrutan los datos entre redes, pero todos los dispositivos de red, hosts y puertas de enlace, deben tomar decisiones de enrutamiento. Para hosts más, las decisiones de enrutamiento son simples:

  • Si el host de destino está en la red local, los datos se entregan al host de destino.

  • Si el host de destino se encuentra en una red remota, los datos se reenvían a una puerta de enlace local.

Las decisiones de enrutamiento de IP son simplemente búsquedas de tablas. Los paquetes se enrutan hacia sus destinos según las indicaciones de la tabla de ruta (también llamada tabla de reenvío). La tabla de enrutamiento asigna destinos al enrutador y a la interfaz de red que IP debe usar para llegar a ese destino.El examen de la tabla de enrutamiento en un sistema Linux muestra esto.

En un sistema Linux, utilice el comando route con la opción-noption para mostrar la tabla de enrutamiento. La opción-n evita la ruta de conversión de direcciones IP a nombres de host, lo que proporciona una visualización más clara. Aquí hay una tabla de enrutamiento de un ejemplo de sistema Red Hat:

El comando Netstat se utiliza para examinar la tabla de rutas en sistemas Solaris 8. Un ejemplo de Solaris se trata más adelante en este capítulo.

# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface172.16.55.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0172.16.50.0 172.16.55.36 255.255.255.0 UG 0 0 0 eth0127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo0.0.0.0 172.16.55.1 0.0.0.0 UG 0 0 0 eth0

En un sistema Linux, el comando route-ncommand muestra la tabla de enrutamiento con los siguientes campos:

Destination

El valor contra que coincide con la dirección IP de destino.

Gateway

El router a utilizar para alcanzar el destino especificado.

Máscara de dirección

Máscara de dirección utilizada para hacer coincidir una dirección IP con el valor que se muestra en el campo Destino.

Marca

Ciertas características de esta ruta.Los posibles valores de bandera de Linux son:

Las banderas R, M,C, I y ! son específicos de Linux. Las otras banderas se utilizan en los sistemas mostUnix.

U

Indica que la ruta está en marcha y funcionamiento.

H

Indica que esta es una ruta a un host específico (la mayoría de las rutas son a redes).

G

Indica que la ruta utiliza una vía externa. Las interfaces de red del sistema proporcionan rutas a redes conectadas directamente. Todas las demás rutas utilizan puertas de enlace externas.Las redes conectadas directamente no tienen el indicador G establecido; todas las demás rutas lo tienen.

R

Indica una ruta que se instaló, probablemente por un protocolo de enrutamiento dinámico que se ejecuta en este sistema, utilizando la opción estado.

D

Indica que esta ruta se añadió debido a un mensaje de redirección ICMP. Cuando un sistema se entera de una routevia una redirección ICMP, agrega la ruta a su tabla de enrutamiento para que los paquetes adicionales enlazados a ese destino no necesiten ser dirigidos. El sistema utiliza la bandera D para marcar estas rutas.

M

Indica una ruta que fue modificada, probablemente por un protocolo de enrutamiento dinámico que se ejecuta en este sistema, utilizando la opción mod.

A

Indica una ruta en caché que tiene una entrada asociada en la tabla ARP.

C

Indica que esta ruta proviene de la caché de enrutamiento del núcleo. La mayoría de los sistemas utilizan dos tablas de enrutamiento: la Base de Información de reenvío (FIB), que es la tabla en la que estamos interesados porque se utiliza para la decisión de enrutamiento, y el núcleo routingcache, que enumera el origen y el destino de las rutas utilizadas recientemente. Esta bandera está documentada, pero nunca he visto la lista de la tabla de enrutamiento de la bandera C ena, incluso al enumerar la caché de enrutamiento.

L

Indica que el destino de esta ruta es una de las direcciones de este ordenador. Estas «rutas locales» solo se encuentran en la caché de enrutamiento.

B

Indica una ruta cuyo destino es una dirección de transmisión. Estas «rutas de difusión» solo se encuentran en el caché de rutas. Solaris asigna la bandera tanto a las direcciones de difusión como a las direcciones de red; es decir, tanto 172.16.255.255 como 172.16.0.0 son dados la bandera B por los sistemas Solaris que viven en la red172.16.0.0/16.

I

Indica una ruta que utiliza la interfaz de bucle inverso para algún propósito que no sea dirigirse a la red de bucle invertido. Estas «rutas internas» solo se encuentran en la caché de enrutamiento.

!

Indica que los datagramas enlazados a este destino serán rechazados. Linux le permite instalar manualmente rutas «negativas». Estas son rutas que bloquean explícitamente los datos con destino a un destino específico. Esto es específico de Linux y se usa de forma rara, pero es una posible configuración de bandera.

Métrica

El «coste» de la ruta. La métrica se utiliza para cortar rutas duplicadas si aparecen en la tabla. Más allá de esto, se requiere un protocolo de enrutamiento dinámico para hacer uso de la métrica.

Ref

El número de veces que se ha hecho referencia a la ruta para establecer una conexión. Este valor no es utilizado por los sistemas Linux.

Use

El número de veces que esta ruta fue buscada por IP.

Iface

El nombre de la interfaz de red utilizada por esta ruta.

La interfaz de red es el hardware y software de acceso a la red que IP utiliza para comunicarse con la red física. Vea el capítulo 6, «Configuración de la interfaz» para detalles.

Cada entrada de la tabla de enrutamiento comienza con un valor de destino. El valor de destino es la clave con la que se compara la dirección IP para determinar si esta es la ruta correcta a usar para llegar a la dirección IP. El destinationvalue generalmente se llama «red de destino», aunque no necesita ser una dirección de red. El valor de destino puede ser una dirección de host, una dirección de multidifusión, un bloque de direcciones que cubre una agregación de muchas redes, o un valor especial para la ruta predeterminada o la dirección de bucle invertido. En todos los casos, sin embargo, el campo Destino contiene el valor con el que se compara la dirección de destino del paquete IP para determinar si ifIP debe entregar el datagrama utilizando esta ruta.

El campo Genmask es la máscara de bits que IP aplica a la dirección de destino del paquete para ver si la dirección coincide con el valor de destino de la tabla. Si un bit está activado en la máscara de bits, el bit que responde en la dirección de destino es formatear significativamente la dirección. Por lo tanto, la dirección 172.16.50.183 coincidiría con la segunda entrada en la tabla de muestra porque ANDing la dirección con255.55.255.0 rinde 172.16.50.0.

Cuando una dirección coincide con una entrada de la tabla, el campo Gateway le indica a IP cómo llegar al destino especificado. Si el campo Gateway contiene la dirección IP de arouter, se utiliza el router. Si el campo Puerta de enlace contiene todos los 0(0.0.0.0 cuando la ruta se ejecuta con-n) o un asterisco (* cuando la ruta se ejecuta sin-n), la red de destino es una red conectada directamente y la»puerta de enlace» es la interfaz de red del equipo. El último campo que se muestra para cada entrada de tabla es la interfaz de red utilizada para la ruta. En el ejemplo, es la primera Ethernetinterface (eth0) o la interfaz de bucle invertido(lo). El destino, la puerta de enlace, la máscara y la interfaz definen la ruta.

Los cuatro campos restantes (Ref, Use, Flags y Metric) muestran información de apoyo sobre la ruta. Estos campos de información sólo tienen un valor marginal. Algunos sistemas mantienen un recuento preciso en el campo Ref; otros, como Linux, realmente no lo usan. Linux usa el campo de uso para contar el número de veces que se necesitaba buscar en el campo porque no estaba en el caché de enrutamiento cuando la IP lo necesitaba. Algunos otros sistemas muestran el número de paquetes transmitidos a través de la ruta en el campo Uso. El campo de indicadores muestra información que a menudo es visible incluso sin los indicadores: cada ruta tiene el indicador U establecido porque cada ruta en la tabla de enrutamiento está activada por definición, y mirando el campo de puerta de enlace le indica si se utiliza o no una vía externa sin buscar el indicador G. El Metricvalue solo se usa si ejecuta alguna versión del protocolo RoutingInformation (RIP) en su sistema. No se distraiga con esta información. El corazón de la tabla de enrutamiento es la ruta,que se compone del destino, la máscara, la puerta de enlace y la interfaz.

IP utiliza la información de la tabla de enrutamiento (la tabla de reenvío) para construir las rutas utilizadas para las conexiones activas. Las rutas asociadas con conexiones activas se almacenan en la memoria de rutas. En Linuxsystems, la caché de enrutamiento se puede examinar agregando el argumento-C a la línea de comandos de ruta:

$ route -CnKernel IP routing cacheSource Destination Gateway Flags Metric Ref Use Iface127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 0 lo192.203.230.10 172.16.55.3 172.16.55.3 l 0 0 0 lo172.16.55.1 172.16.55.255 172.16.55.255 ibl 0 0 243 lo172.16.55.2 172.16.55.255 172.16.55.255 ibl 0 0 15 lo172.16.55.3 192.203.230.10 172.16.55.1 0 0 0 eth0127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 0 lo172.16.55.3 132.163.4.9 172.16.55.1 0 0 0 eth0172.16.55.2 172.16.55.3 172.16.55.3 il 0 0 149 lo172.16.55.3 172.16.55.2 172.16.55.2 0 1 0 eth0132.163.4.9 172.16.55.3 172.16.55.3 l 0 0 0 lo

La caché de enrutamiento es diferente de la tabla de enrutamiento porque thecache muestra las rutas establecidas. La tabla de enrutamiento se utiliza para tomar decisiones de enrutamiento; la caché de enrutamiento se utiliza después de que se toma la decisión. El caché de enrutamiento muestra el origen y el destino de una conexión de red y la pasarela y la interfaz utilizadas para hacer esa conexión.

Linux proporciona un buen ejemplo para mostrar el contenido de la tabla de rutas porque el comando ruta de Linux muestra la tabla con tanta claridad. En sistemas Solaris, el comando de ruta tiene una sintaxis muy diferente. Al ejecutar Solaris, muestre el contenido de la tabla de enrutamiento con el comando netstat-nr. La opción-r le dice a netstat que muestre la tabla de enrutamiento, y la opción-n le dice a netstat que muestre la tabla en forma numérica.

Linux incorpora la información de la máscara de dirección en la pantalla de la tabla de enrutamiento. Solaris 8 admite máscaras de direcciones; simplemente no las muestra cuando se muestra la tabla de enrutamiento.

% netstat -nr Routing Table: IPv4 Destination Gateway Flags Ref Use Interface ----------- ----------- ----- ---- ----- --------- 127.0.0.1 127.0.0.1 UH 1 298 lo0 default 172.16.12.1 UG 2 50360 172.16.12.0 172.16.12.2 U 40 111379 dnet0 172.16.2.0 172.16.12.3 UG 4 1179 172.16.1.0 172.16.12.3 UG 10 1113 172.16.3.0 172.16.12.3 UG 2 1379 172.16.4.0 172.16.12.3 UG 4 1119

La primera entrada de la tabla es la de loopback routefor el host local. Este es el loopbackaddress mencionado anteriormente como un número de red reservado. Debido a que cada sistema utiliza la ruta de bucle invertido para enviar datagramas a sí mismo, una entrada para la interfaz de bucle invertido está en la tabla de enrutamiento de cada host.El indicador H se establece porque Solaris crea una ruta a un host específico (127.0.0.1), no una ruta a toda una red (127.0.0.0).Veremos la instalación de bucle invertido de nuevo cuando discutamos la configuración del núcleo y el comando ifconfig. Por ahora, sin embargo, nuestro verdadero interés está en las rutas externas.

Otra entrada única en esta tabla de rutas es la que tiene la palabra «default» en el campo de destino. Esta entrada es para la ruta predeterminada, y la puerta de enlace especificada en esta entrada es la puerta de enlace predeterminada. La ruta predeterminada es el número de red otherreserved mencionado anteriormente: 0.0.0.0. El defaultgateway se usa cuando no hay una ruta específica en la tabla para una dirección de red de destino. Por ejemplo, esta tabla de enrutamiento no tiene entrada para la red 192.168.16.0. Si IP recibe cualquier datagrama dirigido a esta red, los enviará a través de la puerta de enlace predeterminada172.16. 12. 1.

Todas las puertas de enlace que aparecen en la tabla de enrutamiento están en redes conectadas directamente al sistema local. En el ejemplo que se muestra arriba, esto significa que todas las direcciones de puerta de enlace comienzan con 172.16.12, independientemente de la dirección de destino. Esta es la única red a la que este host de muestra está conectado directamente, y por lo tanto es la única red a la que puede entregar datos directamente. Las pasarelas que utiliza un host para llegar al resto de Internet deben estar en su subred.

En la Figura 2-4, la capa IP de dos hosts y agateway en nuestra red imaginaria se reemplaza por una pequeña pieza de tabla arouting, que muestra las redes de destino y las pasarelas utilizadas para llegar a esos destinos. Supongamos que la máscara de dirección utilizada para network 172.16.0.0 es 255.255.255.0. Cuando el host de origen(172.16.12.2) envía datos al host de destino (172.16.1.2), aplica la máscara de dirección para determinar que debe buscar la dirección de red de destino 172.16.1.0 en la tabla de enrutamiento. La tabla de rutas en el host de origen muestra que los datos enlazados para 172.16.1.0 se envían a la puerta de enlace 172.16.12.3. El host de origen reenvía el paquete a la puerta de enlace. La puerta de enlace realiza los mismos pasos y busca la dirección de destino en su tabla de enrutamiento. Gateway 172.16.12.3 luego realiza la entrega directa a través de su interfaz 172.16.1.5. El examen de las tablas de rutas de la Figura 2-4 muestra que todos los systemslist solo incluyen puertas de enlace en las redes a las que están conectadas directamente.Esto se ilustra por el hecho de que 172.16.12.1 es el camino predeterminado para 172.16.12.2 y 172.16.12.3, pero porque 172.16.1.2no puede llegar a la red 172.16.12.0 directamente, tiene una ruta predeterminada diferente.

Figura 2-4

Figura 2-4. Enrutamiento basado en tablas

Una tabla de enrutamiento no contiene rutas de extremo a extremo. Una ruta apunta solo al siguiente camino, llamado el siguiente salto, a lo largo del camino a la red de destino. El host se conecta a la puerta de enlace local para entregar los datos, y la puerta de enlace se conecta a otras puertas de enlace. A medida que un datagrama se mueve de una puerta de enlace a otra, eventualmente debería llegar a una que esté conectada directamente a su red de destino. Es esta última puerta de enlace la que finalmente entrega los datos al host de destino.

Como veremos en el Capítulo 7, «Configuración de enrutamiento «, algunos protocolos de enrutamiento, como OSPF y BGP,obtienen información de enrutamiento de extremo a extremo. Sin embargo, el paquete aún se pasa al enrutador de siguiente salto.

IP utiliza la porción de red de la dirección para enrutar el datagrama entre redes. La dirección completa, incluida la información del host,se utiliza para realizar la entrega final cuando el datagrama llega a la red de destino.

Previous Home Next
2.3. Internet Routing Architecture Book Index 2.5. Address Resolution

Library Navigation Links

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *