GNU/Linux >> Tutoriales Linux >  >> Linux

7 ejemplos de comandos de ruta de Linux (cómo agregar una ruta en Linux)

En la primera parte de la serie de enrutamiento IP, aprendimos los fundamentos del enrutamiento IP de Linux.

El comando de ruta se usa para mostrar/manipular la tabla de enrutamiento de IP. Se utiliza principalmente para configurar rutas estáticas a host o redes específicas a través de una interfaz.

En este artículo veremos cómo manipular las tablas de enrutamiento en Linux usando el comando de ruta.

Primero explicaremos cómo se realiza el enrutamiento con algunos ejemplos básicos de comandos de ruta, y luego explicaremos cómo configurar rutas en su red usando una arquitectura de red de muestra.

Yo. ¿Cómo se realiza el enrutamiento?

1. Mostrar rutas existentes

El comando route por defecto mostrará los detalles de las entradas de la tabla de enrutamiento del kernel. En este ejemplo, la dirección IP del sistema donde se ejecuta el comando de ruta es 192.168.1.157

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

El comando anterior muestra que si el destino está dentro del rango de red 192.168.1.0 – 192.168.1.255, entonces la puerta de enlace es *, que es 0.0.0.0.

Cuando los paquetes se envían dentro de este rango de IP, la dirección MAC del destino se encuentra a través del protocolo ARP y el paquete se enviará a la dirección MAC.

Si no sabe qué es ARP, primero debe comprender cómo funciona el protocolo ARP.

Para enviar paquetes a un destino que no está dentro de este rango de ip, los paquetes se reenviarán a una puerta de enlace predeterminada, que decide el enrutamiento adicional para ese paquete. Veremos esto en breve.

Por defecto, el comando de ruta muestra el nombre del host en su salida. Podemos solicitar que muestre la dirección IP numérica usando la opción -n como se muestra a continuación.

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.1.10    0.0.0.0         UG    0      0        0 eth0

2. Agregar una puerta de enlace predeterminada

Podemos especificar que los paquetes que no están dentro de la red deben reenviarse a una dirección de puerta de enlace.

El siguiente comando de agregar ruta establecerá la puerta de enlace predeterminada como 192.168.1.10.

$ route add default gw 192.168.1.10

Ahora el comando de ruta mostrará las siguientes entradas.

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
default         gateway.co.in   0.0.0.0         UG    0      0        0 eth0

Ahora acabamos de agregar una puerta de enlace predeterminada a nuestra máquina. Para verificar si funciona correctamente, haga ping en algún host externo (por ejemplo, google.com) para enviar el paquete ICMP.

$ ping www.google.com

Las siguientes son las secuencias de eventos que ocurren cuando se ejecuta el comando ping anterior.

  1. Primero consultará el servidor DNS para obtener la dirección IP de google.com (por ejemplo:74.125.236.34)
  2. La dirección de destino (74.125.236.34) no está dentro del rango de la red.
  3. Entonces, en la capa 3 (encabezado de IP), la IP de DESTINO se configurará como "74.125.236.34".
  4. En la capa 2, la dirección MAC de DESTINO se completará como la dirección MAC de la puerta de enlace predeterminada (MAC de 192.168.1.10). El MAC se encontrará usando ARP como se describió anteriormente.
  5. Cuando se envía el paquete, el conmutador de red (que funciona en la capa 2), envía el paquete a la puerta de enlace predeterminada, ya que la MAC de destino es la de la puerta de enlace.
  6. Una vez que la puerta de enlace recibe el paquete, según su tabla de enrutamiento, reenviará los paquetes más.

Los 2 ejemplos anteriores habrían dado una buena idea sobre cómo se realiza el enrutamiento dentro de una red. Ahora veremos otras opciones de línea de comandos disponibles con el comando de ruta.

3. Muestra la información de caché de enrutamiento del kernel

Kernel mantiene la información de caché de enrutamiento para enrutar los paquetes más rápido. Podemos enumerar la información de caché de enrutamiento del kernel usando el indicador -C.

$ route -Cn
Kernel IP routing cache
Source          Destination     Gateway         Flags Metric Ref    Use Iface
192.168.1.157   192.168.1.51    192.168.1.51          0      0        1 eth0
192.168.1.157   74.125.236.69   192.168.1.10          0      0        0 eth0
.
.
.

4. Rechazar el enrutamiento a un host o red en particular

A veces, es posible que deseemos rechazar el enrutamiento de los paquetes a un host/red en particular. Para hacer eso, agregue la siguiente entrada.

$ route add -host 192.168.1.51 reject

Como puede ver a continuación, no podemos acceder a ese host en particular (es decir, host .51 que acabamos de rechazar).

$ ping 192.168.1.51
connect: Network is unreachable

Sin embargo, aún podemos acceder a otros hosts en la red (por ejemplo, el host .52 aún es accesible).

$ ping 192.168.1.53
PING 192.168.1.53 (192.168.1.53) 56(84) bytes of data.
64 bytes from 192.168.1.53: icmp_seq=1 ttl=64 time=7.77 ms

Si desea rechazar una red completa (192.168.1.1 – 192.168.1.255), agregue la siguiente entrada.

$ route add -net 192.168.1.0 netmask 255.255.255.0 reject

Ahora, no puede acceder a ningún host en esa red (por ejemplo:.51, .52, .53, etc.)

$ ping 192.168.1.51
connect: Network is unreachable

$ ping 192.168.1.52
connect: Network is unreachable

$ ping 192.168.1.53
connect: Network is unreachable

II. Una arquitectura de red de muestra (para entender el enrutamiento)

Usemos la siguiente arquitectura de red de muestra para el resto de los ejemplos.

En el siguiente diagrama, tenemos 2 redes individuales (192.168.1.0 y 192.168.3.0, con máscara de subred de 255.255.255.0).

También disponemos de una máquina “GATEWAY” con 3 tarjetas de red. La primera tarjeta está conectada a 192.168.1.0, la segunda tarjeta está conectada a 192.168.3.0 y la tercera tarjeta está conectada al mundo externo.

5. Haz que 192.168.3.* sea accesible desde 192.168.1.*

Ahora necesitamos agregar una entrada de enrutamiento para que podamos hacer ping a 192.168.3. serie de direcciones IP de 192.168.1. serie. El punto común que tenemos es la máquina GATEWAY.

Por lo tanto, en cada máquina en la red 192.168.1.* se agregará una puerta de enlace predeterminada como se muestra a continuación.

$ route add default gw 192.168.1.10

Ahora, cuando 192.168.1.1 haga ping a 192.168.3.1, irá a la PUERTA DE ENLACE a través de 192.168.1.10.

En GATEWAY, agregue la siguiente entrada de enrutamiento.

$ route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.10

Ahora todos los paquetes dirigidos a la red 192.168.3.* se reenviarán a través de la interfaz 192.168.3.10, que luego entrega los paquetes a la máquina dirigida.

6. Haz que 192.168.1.* sea accesible desde 192.168.3.*

Es muy similar a lo que hicimos antes.

Por lo tanto, en cada máquina en la red 192.168.3.* se agregará una puerta de enlace predeterminada como se muestra a continuación.

$ route add default gw 192.168.3.10

En GATEWAY, agregue la siguiente entrada de enrutamiento.

$ route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.10

Ahora las máquinas 192.168.3.* pueden hacer ping a las máquinas 192.168.1.*.

7. Permitir acceso a Internet (Mundo externo)

En los dos ejemplos anteriores, hemos interconectado las 2 redes diferentes.

Ahora necesitamos acceder a Internet desde estas 2 redes diferentes. Para eso, podemos agregar un enrutamiento predeterminado (cuando ninguna regla de enrutamiento coincide) al 125.250.60.59 que está conectado al mundo externo de la siguiente manera.

$ route add default gw 125.250.60.59

Así es como funciona:

  1. Ahora, cuando intenta acceder a Internet (por ejemplo:haga ping a google.com) desde cualquiera de estas máquinas (por ejemplo, desde 192.168.3.2), la siguiente es la secuencia de eventos que suceden.
  2. Dado que el destino (google.com) no está dentro de la serie 3.*, se reenviará a GATEWAY a través de la interfaz 3.10
  3. En GATEWAY, comprueba si el destino está dentro del rango 1.*. En este ejemplo, no lo es.
  4. Luego verifica si el destino está dentro del rango 2.*. EN este ejemplo, no es
  5. Finalmente, toma la ruta predeterminada para reenviar los paquetes (es decir, usando la interfaz 125.250.60.59, que está conectada al mundo externo).

Linux
  1. Ejemplos de comandos sa en Linux

  2. w Ejemplos de comandos en Linux

  3. Ejemplos de comandos ac en Linux

  4. Ejemplos de comandos df en Linux

  5. Ejemplos de comandos du en Linux

Cómo agregar y eliminar una ruta estática en Linux usando el comando IP

Cómo usar el comando Grep en Linux + Ejemplos útiles de Grep

Comando Agregar ruta de Linux con ejemplos

Cómo agregar una ruta en Linux

Ejemplos de comandos id en Linux

Ejemplos de comandos de ruta en Linux