Comando Agregar ruta de Linux con ejemplos

El enrutamiento es la forma en que las computadoras se comunican en una red local oa través de Internet. Para comunicarse a través de una red, las computadoras necesitan saber a qué puerta de enlace deben enviar el 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 modificar la tabla de enrutamiento de 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 de enrutamiento predeterminada en su kernel de Linux.
Utilice el comando de ruta con -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 puedes 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 las rutas
$ ip route show
2) Agregar una nueva ruta
Como dijimos anteriormente, para manipular la tabla de enrutamiento, usamos route add
(agregar es opcional) para especificar manualmente una ruta estática que los paquetes usarán en la red. Se utiliza para asignar una ruta estática temporal que solo cambiará si el administrador cambia manualmente los valores de la nueva ruta.
Hay muchas posibilidades de utilizar un agregar ruta dominio.
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 ruta de red 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
Puedes añadir netmask
opción si desea agregar valor a la 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 uso de host específico -host
opción. Solo necesitamos 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 diferentes valores y estos pueden ser confusos.
Posibles banderas y su definición:
U
– la ruta está arribaH
– el objetivo es un hostG
– usar la puerta de enlaceR
– restaurar ruta para enrutamiento dinámicoD
– instalado dinámicamente por daemon o redirecciónM
– cambiado de demonio de enrutamiento o reenvíoA
– instalado por addrconfC
– entrada de caché!
– rechazo de la 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 anteriormente.
Para eliminar una red de destino de la tabla de enrutamiento, utilice route del
dominio:
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, debemos usar el reject
opción. Podemos conservar o no nuestra puerta de enlace, 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
Muestre 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 con los comandos anteriores no son persistentes durante un reinicio, por lo que agregué 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 este método, la ruta no cambiará a menos que la cambies. Es importante borrar las rutas que no necesitamos.
Related Read: How to Permanently add Static Route in Linux