Aprenda el 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 qué puerta de enlace debe enviar tráfico. Una puerta de enlace podría ser un enrutador en su red.
El comando route se usa en Linux para mostrar y cambiar la tabla de enrutamiento ip.
En este tutorial, explicaré cómo usar el comando route para agregar rutas estáticas a través de la puerta de enlace para enviar tráfico.
1) Muestre 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.
Utilice el comando de ruta con el -n
opción para mostrar la tabla de enrutamiento 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 utilizar netstat -nr
comando para imprimir conexiones de red, tablas de enrutamiento, estadísticas de interfaz, conexiones de enmascaramiento 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 decimos anteriormente, para manipular la tabla de enrutamiento, usamos el 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 de utilizar el ruta agregar mando.
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, sintaxis de la siguiente manera:
ip route add <network_address> via <gateway> dev <interface_name>
Por ejemplo, agreguemos una nueva red de ruta 10.0.0.0/8 y mediante 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 de máscara de red. Si no se proporciona, el comando route 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 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 visualicemos 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 eso puede ser incomprensible.
Las posibles banderas y su definición:
U
– la ruta está arribaH
– el objetivo es un anfitriónG
– usar la puerta de enlaceR
– restablecer la ruta para el enrutamiento dinámicoD
– instalado dinámicamente por demonio o redireccionamientoM
– modificado a partir del demonio de enrutamiento o redireccionamientoA
– instalado por addrconfC
– 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 insertemos antes.
Para eliminar una red de destino de la tabla de enrutamiento, utilice route del
commad:
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
Producció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.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
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 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 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 después de un reinicio, por lo que hemos agregado 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 modifiques. Es importante eliminar las rutas que no necesitamos.
Related Read: How to Permanently add Static Route in Linux