GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Agregar ruta de Linux con ejemplos

El enrutamiento es la forma en que las computadoras se comunican en una red local o por Internet. Para comunicarse a través de una red, las computadoras necesitan saber a qué puerta de enlace deben enviar tráfico. Una puerta de enlace podría ser un enrutador en su red.

El comando de ruta se usa en Linux para mostrar y cambiar la tabla de enrutamiento IP.

En este tutorial, explicaré cómo usar el comando de ruta para agregar rutas estáticas a través de la puerta de enlace para enviar tráfico.

1) Mostrar la tabla de enrutamiento

Antes de editar la tabla de enrutamiento, es bueno ver la tabla predeterminada con las rutas existentes en su Kernel de Linux.

Use el comando de ruta con el -n opción para mostrar la tabla de enrutamiento de IP del kernel actual. Este comando ayuda a identificar las redes conectadas localmente con su ruta.

El siguiente comando muestra la tabla de enrutamiento:

$ route -n
Kernel IP routing table
Destination   Gateway      Genmask         Flags  Metric Ref  Use Iface
0.0.0.0       192.168.1.1  0.0.0.0         UG     600      0  0   eno1
169.254.0.0   0.0.0.0      255.255.0.0     U      1000     0  0   eno1
172.16.20.0   0.0.0.0      255.255.255.0   U      0        0  0   vmnet8
172.17.0.0    0.0.0.0      255.255.0.0     U      0        0  0   docker0
172.18.0.0    0.0.0.0      255.255.0.0     U      0        0  0   br-707c8e2f7441
192.168.1.0   0.0.0.0      255.255.255.0   U      600      0  0   eno1
192.168.161.0 0.0.0.0      255.255.255.0   U      0        0  0   vmnet1

También puede usar netstat -nr Comando para imprimir conexiones de red, tablas de enrutamiento, estadísticas de interfaz, conexiones enmascaradas y membresías de multidifusión.

Muestre la tabla de enrutamiento con el comando netstat:

$ netstat -nr
 Kernel IP routing table
 Destination    Gateway      Genmask        Flags  MSS  Window irtt Iface
 0.0.0.0        192.168.1.1  0.0.0.0        UG     0    0      0    eno1
 169.254.0.0    0.0.0.0      255.255.0.0    U      0    0      0    eno1
 172.16.20.0    0.0.0.0      255.255.255.0  U      0    0      0    vmnet8
 172.17.0.0     0.0.0.0      255.255.0.0    U      0    0      0    docker0
 172.18.0.0     0.0.0.0      255.255.0.0    U      0    0      0    br-707c8e2f7441
 192.168.1.0    0.0.0.0      255.255.255.0  U      0    0      0    eno1
 192.168.161.0  0.0.0.0      255.255.255.0  U      0    0      0    vmnet1

Ahora tenemos el comando ip para mostrar rutas

$ ip route show

2) Añadir una nueva ruta

Como dijimos anteriormente, para manipular la tabla de enrutamiento, usamos route add comando (agregar es la opción) para indicar manualmente una ruta estática que los paquetes usarán a través de la red. Se utiliza para asignar una ruta estática temporal que cambiará solo si el administrador modifica manualmente los valores de la nueva ruta.

Hay muchas posibilidades para usar el añadir ruta comando.

Debemos indicar la red de destino, la máscara de subred de la red y la puerta de enlace a utilizar.

route add -net <network_address> gw <gateway> <interface_name>

Alternativamente, ahora puede usar ip route comando, la sintaxis es la siguiente:

ip route add <network_address> via <gateway> dev <interface_name>

Por ejemplo, agreguemos una nueva red de ruta 10.0.0.0/8 y a través de la dirección IP de la puerta de enlace 192.168.1.1:

# route add -net 10.0.0.0/8 gw 192.168.1.1 eno1

Ahora podemos mostrar la tabla de enrutamiento usando route -n :

# route -n
Kernel IP routing table
Destination   Gateway      Genmask      Flags  Metric Ref Use Iface
0.0.0.0       192.168.1.1  0.0.0.0       UG     600    0   0   eno1
10.0.0.0      192.168.1.1  255.0.0.0     UG     0      0   0   eno1
169.254.0.0   0.0.0.0      255.255.0.0   U      1000   0   0   eno1
172.16.20.0   0.0.0.0      255.255.255.0 U      0      0   0   vmnet8
172.17.0.0    0.0.0.0      255.255.0.0   U      0      0   0   docker0
172.18.0.0    0.0.0.0      255.255.0.0    U      0      0   0   br-707c8e2f7441
192.168.1.0   0.0.0.0      255.255.255.0  U      600    0   0   eno1
192.168.161.0 0.0.0.0      255.255.255.0  U      0      0   0   vmnet1

Puede agregar netmask opción si desea agregar valor de máscara de red. Si no se proporciona, el comando de ruta encuentra automáticamente el valor de la máscara de red.

# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.100 eth0
Kernel IP routing table
Destination  Gateway       Genmask       Flags Metric Ref Use Iface
192.168.1.0  192.168.1.100 255.255.255.0 UG    0      0   0   eth0
192.168.1.0  *             255.255.255.0 U     0      0   0   eth0
169.254.0.0  *             255.255.0.0   U     0      0   0   eth0
10.0.0.0     192.168.1.254 255.0.0.0     UG    0      0   0   eth0
default      192.168.1.1   0.0.0.0       UG    0      0   0   eth0

Para agregar una ruta a un host específico, use -host opción. Solo debemos indicar la puerta de enlace a utilizar.

route add -host <host_IP_address> gw <gateway>

Por ejemplo, agreguemos un host específico '10.0.0.10' y luego mostremos la tabla de enrutamiento

# route add -host 10.0.0.10 gw 192.168.1.1 eno1
# route -n
 Kernel IP routing table
 Destination   Gateway      Genmask         Flags Metric Ref Use Iface
 0.0.0.0       192.168.1.1  0.0.0.0         UG    600    0   0   eno1
 10.0.0.0      192.168.1.1  255.0.0.0       UG    0      0   0   eno1
 10.0.0.10     192.168.1.1  255.255.255.255 UGH   0      0   0   eno1
 169.254.0.0   0.0.0.0      255.255.0.0     U     1000   0   0   eno1
 172.16.20.0   0.0.0.0      255.255.255.0   U     0      0   0   vmnet8
 172.17.0.0    0.0.0.0      255.255.0.0     U     0      0   0   docker0
 172.18.0.0    0.0.0.0      255.255.0.0     U     0      0   0   br-707c8e2f7441
 192.168.1.0   0.0.0.0      255.255.255.0   U     600    0   0   eno1
 192.168.161.0 0.0.0.0      255.255.255.0   U     0      0   0   vmnet1

En los ejemplos anteriores, la columna de la bandera tiene valores diferentes y eso puede ser incomprensible.

Las posibles banderas y su definición:

U - la ruta está arriba
H - el objetivo es un host
G - usar puerta de enlace
R - restablecer la ruta para el enrutamiento dinámico
D - instalado dinámicamente por daemon o redirección
M - modificado desde demonio de enrutamiento o redirección
A - instalado por addrconf
C - entrada de caché
! - rechazar ruta

3) Rechazar y Eliminar una ruta

Podemos manipular la tabla de enrutamiento no solo para agregar rutas estáticas sino también para eliminar o rechazar una ruta que insertamos antes.

Para eliminar una red de destino de la tabla de enrutamiento, use route del comando:

route del -net <network_address> gw <gateway> <interface_name>

Por ejemplo, para eliminar la ruta a nuestra red 10.0.0.0/8:

# route del -net 10.0.0.0/8 gw 192.168.1.1 eno1

Salida

# route -n
 Kernel IP routing table
 Destination   Gateway     Genmask         Flags Metric Ref Use Iface
 0.0.0.0       192.168.1.1 0.0.0.0         UG    600    0   0   eno1
 10.0.0.10     192.168.1.1 255.255.255.255 UGH   0      0   0   eno1
 169.254.0.0   0.0.0.0     255.255.0.0     U     1000   0   0   eno1
 172.16.20.0   0.0.0.0     255.255.255.0   U     0      0   0   vmnet8
 172.17.0.0    0.0.0.0     255.255.0.0     U     0      0   0   docker0
 172.18.0.0    0.0.0.0     255.255.0.0     U     0      0   0   br-707c8e2f7441
 192.168.1.0   0.0.0.0     255.255.255.0   U     600    0   0   eno1
 192.168.161.0 0.0.0.0     255.255.255.0   U     0      0   0   vmnet1

Para prohibir una dirección IP pero todavía está en la tabla de enrutamiento. Tenga en cuenta que todavía usamos el parámetro de opción de agregar, pero al final del comando, tenemos que usar reject opción. Podemos conservar nuestra puerta de enlace o no, pero no mencionamos la interfaz de salida.

route  add -host <host_IP_address> reject

En el siguiente comando rechazaremos nuestro host '10.0.0.10':

# route add -host 10.0.0.10 reject

Mostrar la tabla de enrutamiento después de los cambios:

# route -n
 Kernel IP routing table
 Destination   Gateway     Genmask         Flags Metric Ref Use Iface
 0.0.0.0       192.168.1.1 0.0.0.0         UG    600    0   0   eno1
 10.0.0.10      -          255.255.255.255 !H    0      -   0    -
 10.0.0.10     192.168.1.1 255.255.255.255 UGH   0      0   0   eno1
 169.254.0.0   0.0.0.0     255.255.0.0     U     1000   0   0   eno1
 172.16.20.0   0.0.0.0     255.255.255.0   U     0      0   0   vmnet8
 172.17.0.0    0.0.0.0     255.255.0.0     U     0      0   0   docker0
 172.18.0.0    0.0.0.0     255.255.0.0     U     0      0   0   br-707c8e2f7441
 192.168.1.0   0.0.0.0     255.255.255.0   U     600    0   0   eno1
 192.168.161.0 0.0.0.0     255.255.255.0   U     0      0   0   vmnet1

Las rutas agregadas usando los comandos anteriores no son persistentes durante un reinicio, por lo que agregamos rutas estáticas al archivo de configuración para mantenerlo permanente.

Para agregar rutas estáticas persistentes para cualquier distribución de Linux, puede usar el archivo genérico /etc/rc.local.

Para Ubuntu y Debian use el archivo llamado '/etc/network/interfaces' y en RHEL/CentOS use '/etc/sysconfig/network-scripts/route-ethX'.

Conclusión

En este tutorial, aprendimos cómo agregar rutas estáticas en Linux usando el comando route add. Debemos tener en cuenta que con ese método, la ruta no cambiará a menos que la modifique. Es importante eliminar rutas que no necesitemos.

Related Read: How to Permanently add Static Route in Linux

Linux
  1. Comando wc Linux con ejemplos

  2. Comando de clasificación de Linux con ejemplos

  3. Comando Linux Tee con ejemplos

  4. Comando de cabeza de Linux con ejemplos

  5. Comando JQ en Linux con ejemplos

Comando de CD de Linux con ejemplos

Comando de vigilancia de Linux con ejemplos

Comando de espera en Linux con ejemplos

Comando IP de Linux con ejemplos

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

Ejemplos de comandos de ruta en Linux