Búsqueda de sitios web

24 comandos "IP" útiles para configurar interfaces de red


Breve: En esta guía, discutiremos algunos ejemplos prácticos del comando ip. Al final de esta guía, los usuarios podrán realizar tareas de red de manera eficiente en Linux desde la interfaz de línea de comandos.

Los administradores de sistemas suelen necesitar realizar tareas de red en servidores Linux. Existe una variedad de herramientas gráficas y de línea de comandos disponibles en el mercado. Sin embargo, la mayoría de los usuarios de Linux prefieren utilizar el comando ip debido a su simplicidad y rica funcionalidad.

El comando ip es una nueva utilidad de línea de comandos de red que se utiliza para asignar una dirección IP a una interfaz de red o configurar/actualizar variables de red útiles en un sistema Linux.

Es parte del paquete iproute2 y ofrece varias tareas de administración de red, como activar o desactivar interfaces de red, asignar y eliminar direcciones y rutas IP, administrar la caché ARP y mucho más.

El comando ip es muy similar al antiguo comando ifconfig, pero es mucho más potente y cuenta con más funciones y capacidades añadidas.

El comando ifconfig ha quedado obsoleto y reemplazado por el comando ip en todas las distribuciones modernas de Linux. Sin embargo, el comando ifconfig todavía funciona y está disponible para la mayoría de las distribuciones de Linux.

Nota: Realice una copia de seguridad del archivo de configuración antes de realizar cualquier cambio.

1. Configurar permanentemente la dirección IP estática en Linux

Para configurar permanentemente una dirección IP estática en Linux, debe actualizar o editar el archivo de configuración de red para asignar una dirección IP estática a un sistema. Debe ser un superusuario con un comando su (cambiar de usuario) desde la terminal o el símbolo del sistema.

Establecer dirección IP estática en sistemas RHEL

Abra y edite los archivos de configuración de red para (eth0 o eth1) usando su editor de texto favorito. Por ejemplo, asignar la dirección IP a la interfaz eth0 de la siguiente manera en distribuciones basadas en RHEL.

vi /etc/sysconfig/network-scripts/ifcfg-eth0     [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]

Establecer una dirección IP estática en sistemas Debian

Para configurar la dirección IP estática permanente, debe modificar el archivo de configuración de su interfaz de red /etc/network/interfaces para realizar cambios permanentes como se muestra a continuación para distribuciones basadas en Debian.

sudo nano /etc/network/interfaces     [On Debian, Ubuntu and Mint]

A continuación, reinicie los servicios de red después de ingresar todos los detalles usando el siguiente comando.

sudo systemctl restart networking

2. Configurar temporalmente la dirección IP estática en Linux

Para configuraciones de red temporales, puede utilizar el comando ip para asignar una dirección IP a una interfaz específica (eth2) sobre la marcha.

ip addr add 172.19.1.10/24 dev eth2
OR
sudo ip addr add 172.19.1.10/24 dev eth2

Nota: Lamentablemente, todas estas configuraciones se perderán después de reiniciar el sistema.

3. Cómo mostrar todas las interfaces de red

En el comando ip, el objeto de enlace representa la interfaz de red. Podemos usar el comando show con él para mostrar todas las interfaces de red.

Ahora, visualicemos todas las interfaces de red usando el siguiente comando:

ip link show

El resultado anterior muestra los detalles de todas las interfaces de red, como el nombre de la interfaz, las banderas, el estado, la dirección del enlace, la dirección de transmisión, etc.

4. Cómo verificar una dirección IP de una interfaz de red específica

Para obtener información detallada de su interfaz de red individual, como la dirección IP y la información de la dirección MAC, utilice el siguiente comando como se muestra a continuación.

ip link show eth2

Hasta ahora, utilizamos el objeto de enlace que muestra información detallada sobre las interfaces de red. Sin embargo, no muestra la dirección IP asociada con la interfaz de red. Para superar esta limitación, podemos usar el objeto addr con el comando ip.

Entendamos esto con un ejemplo.

ip addr show

Aquí podemos ver que ahora la salida muestra las direcciones IP de todas las interfaces de red junto con otros detalles.

Para mostrar la dirección IP de la interfaz de red individual, solo necesita proporcionar el nombre de la interfaz de red como argumento del comando.

ip addr show eth2

5. Cómo mostrar la dirección IP en una salida en color

El comando ip muestra información detallada sobre los objetos de la red. Sin embargo, a veces necesitamos echar un vistazo a la información limitada. En tales casos, podemos habilitar la salida en color. Esta opción resalta detalles importantes en diferentes colores.

Usemos la opción --color del comando para mostrar la salida en diferentes colores:

ip --color addr show eth2

En el resultado anterior, podemos ver que el nombre de la interfaz, la dirección Ethernet y el estado están resaltados en diferentes colores.

6. Cómo mostrar la dirección IP en formato JSON

En los ejemplos anteriores, vimos que el comando ip muestra información significativa. Sin embargo, no es una tarea fácil analizar el resultado sin procesar y extraer información significativa utilizando scripts rudimentarios. En tales casos, podemos indicarle al comando ip que genere la salida en formato JSON.

Entonces, usemos la opción -j con el comando para mostrar el mismo resultado en un formato JSON:

ip -j link show eth2

Este método resulta útil al realizar la automatización porque JSON es un formato ampliamente aceptado y hay muchas bibliotecas/herramientas de análisis JSON disponibles en varios lenguajes de programación.

7. Cómo hacer que la salida JSON sea más legible

En el ejemplo anterior, utilizamos la opción -j para mostrar la salida en formato JSON. Este formato JSON predeterminado es compacto y ahorra espacio. Sin embargo, el resultado no es fácil de leer debido a la falta de sangría.

Para superar esta limitación, podemos usar la opción -p que hace que la salida sea más legible al sangrarla. Entendamos esto con el siguiente ejemplo:

ip -j -p link show eth2

Aquí, podemos ver que el mismo resultado es mucho más legible en comparación con los ejemplos anteriores.

8. Cómo eliminar una dirección IP de la interfaz de red

En el ejemplo anterior, utilizamos el subcomando add para asignar una dirección IP. De manera similar, podemos usar el subcomando del para eliminar una dirección IP en particular.

El siguiente comando eliminará una dirección IP asignada de la interfaz dada (eth2).

ip addr del 172.19.1.10/24 dev eth2
OR
sudo ip addr del 172.19.1.10/24 dev eth2

Ahora, verifiquemos que la dirección IP haya sido eliminada:

ip -j -p addr show eth2

En el resultado anterior, podemos ver que la interfaz de red ahora eth2 tiene solo una dirección IP.

9. Cómo habilitar la interfaz de red

El indicador "arriba" con el nombre de la interfaz (eth2) habilita una interfaz de red. Por ejemplo, el siguiente comando activará la interfaz de red eth2.

ip link set eth2 up
OR
sudo ip link set dev eth2 up

Ahora, verifiquemos el estado actualizado:

ip -j -p link show eth2 | grep operstate

10. Cómo deshabilitar la interfaz de red

El indicador "down" con el nombre de la interfaz (eth2) desactiva una interfaz de red. Por ejemplo, el siguiente comando desactivará la interfaz de red eth2.

ip link set eth2 down
OR
sudo ip link set eth2 down

Ahora, verifiquemos el estado de la interfaz de red eth2:

ip -j -p link show eth2 | grep operstate

El resultado anterior muestra el estado modificado de la interfaz de red.

11. Cómo vaciar las direcciones IP de la interfaz de red

En el ejemplo anterior, vimos cómo utilizar un subcomando del para eliminar una dirección IP. Sin embargo, a veces necesitamos eliminar todas las direcciones IP de una interfaz de red en particular. En tales casos, podemos utilizar el subcomando flush.

Primero, utilice el subcomando flush para eliminar todas las direcciones IP de la interfaz de red eth2:

sudo ip addr flush eth2

Ahora, verifiquemos que todas las direcciones IP de la interfaz de red eth2 hayan sido eliminadas:

ip -j -p addr show eth2

En el resultado anterior, el campo addr_info muestra la matriz JSON vacía. Esto indica que no hay ninguna dirección IP asociada con la interfaz de red eth2.

12. ¿Cómo verifico la tabla de enrutamiento?

Una tabla de enrutamiento almacena la información necesaria para reenviar un paquete de red al destino correcto. Podemos usar el objeto ruta del comando ip para mostrar las reglas de enrutamiento.

Usemos el siguiente comando para enumerar todas las reglas de la tabla de enrutamiento:

ip route show

En el resultado anterior, la primera columna representa el destino, mientras que la última columna representa la dirección IP de origen.

13. ¿Cómo agrego una nueva ruta estática?

¿Por qué es necesario agregar rutas estáticas o manuales, ya que el tráfico no debe pasar por la puerta de enlace predeterminada? Necesitamos agregar rutas estáticas para pasar el tráfico de la mejor manera para llegar al destino.

sudo ip route add 172.19.1.0/24 dev eth2 proto kernel scope link src 172.19.1.2

Ahora, verifiquemos que la entrada se haya agregado exitosamente:

ip route show

15. Cómo eliminar una ruta estática

El subcomando del elimina una entrada particular de la tabla de enrutamiento. Por ejemplo, el siguiente comando elimina la entrada de la ruta del dispositivo eth2:

sudo ip route del 172.19.1.0/24

Ahora, verifiquemos que la entrada se haya eliminado exitosamente:

ip route show

16. ¿Cómo agrego rutas estáticas permanentes?

Todas las rutas anteriores se perderán después de reiniciar el sistema. Para agregar una ruta estática permanente, edite el archivo /etc/sysconfig/network-scripts/route-eth2 (estamos almacenando la ruta estática para (eth2). De forma predeterminada, la El archivo route-eth2 no estará allí y será necesario crearlo.

Establecer ruta permanente en sistemas RHEL

vi /etc/sysconfig/network-scripts/route-eth2

y agregue las siguientes líneas y guarde y salga.

172.19.1.0/24 via 172.19.1.2 dev eth2

Establecer ruta permanente en sistemas Debian

Abra el archivo /etc/network/interfaces y al final agregue las rutas estáticas de persistencia. Las direcciones IP pueden diferir en su entorno.

sudo vi /etc/network/interfaces
auto eth2
iface eth2 inet static
address 172.19.50.2
netmask 255.255.255.0
gateway 172.19.50.100
#########{Static Route}###########
up ip route add 172.19.1.0/24 via 172.19.1.2 dev eth2

A continuación, reinicie los servicios de red después de ingresar todos los detalles usando el siguiente comando.

sudo systemctl restart networking

17. ¿Cómo agrego la puerta de enlace predeterminada?

En las redes, la puerta de enlace predeterminada juega un papel importante. Se utiliza cuando la tabla de enrutamiento no contiene ninguna información sobre el destino.

La puerta de enlace predeterminada se puede especificar globalmente o para archivos de configuración específicos de la interfaz. La ventaja de la puerta de enlace predeterminada es que tenemos más de una NIC presente en el sistema. Puede agregar la puerta de enlace predeterminada sobre la marcha como se muestra debajo del comando.

Primero, agreguemos una interfaz de red eth0 como puerta de enlace predeterminada:

sudo ip route add default via 172.17.0.1

Ahora, verifiquemos la configuración de la puerta de enlace predeterminada usando el siguiente comando:

ip route show

Tenga en cuenta que hemos ejecutado este comando en una máquina de prueba. Tenga cuidado al utilizar este comando en el entorno de producción.

18. Cómo eliminar una puerta de enlace predeterminada

Podemos usar el siguiente comando para eliminar la puerta de enlace predeterminada:

sudo ip route del default

Ahora, enumeremos la tabla de enrutamiento para verificar que se haya eliminado la puerta de enlace predeterminada:

ip route show

19. Cómo mostrar la caché ARP

ARP significa Protocolo de resolución de direcciones, que se utiliza para encontrar la dirección MAC asociada con la dirección IP en particular.

Podemos usar el objeto neigh con el comando ip para mostrar el caché ARP:

ip neigh show

En el comando anterior, el relincho representa objetos vecinos.

20. Cómo agregar una entrada ARP

Para crear una nueva entrada ARP, podemos usar el subcomando agregar con el objeto neigh.

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2

Ahora, enumeremos las entradas de la caché ARP:

ip neigh show

En el resultado anterior, podemos ver la nueva entrada para la interfaz de red eth2.

21. Cómo eliminar una entrada ARP

Al igual que otros objetos de red, podemos utilizar el subcomando del para eliminar la entrada ARP. Por ejemplo, el siguiente comando elimina la entrada ARP de la interfaz de red eth2:

sudo ip neigh del 172.19.1.0 dev eth2

Ahora, verifiquemos que la entrada se haya eliminado enumerando el caché ARP:

ip neigh show 

22. Cómo vaciar las entradas ARP

Podemos usar el subcomando flush para eliminar múltiples entradas ARP. Para entender esto, primero agregue algunas entradas ARP con el estado STALE:

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2 nud stale
sudo ip neigh add 172.19.2.0 lladdr 02:42:e3:40:a6:b2 dev eth2 nud stale
sudo ip neigh add 172.19.3.0 lladdr 02:42:e3:40:a6:b3 dev eth2 nud stale

A continuación, verifique que las nuevas entradas se hayan agregado correctamente:

ip neigh show

Luego, borre todas las entradas usando el siguiente comando:

sudo ip neigh flush all

Finalmente, verifique que se hayan eliminado todas las entradas:

ip neigh show

23. Cómo configurar MTU para la interfaz de red

MTU significa Unidad de transmisión máxima, que representa el tamaño de paquete más grande que se puede transmitir en una sola transacción. Podemos manipular el tamaño de MTU según nuestros requisitos de rendimiento.

Primero, busquemos la MTU de la interfaz de red eth2:

ip -j -p link show eth2 | grep mtu

A continuación, actualice el tamaño de MTU de la interfaz de red eth2 a 3000:

sudo ip link set mtu 3000 dev eth2

Finalmente, verifique que la MTU se haya actualizado exitosamente:

ip -j -p link show eth2 | grep mtu

24. Cómo cambiar la dirección Mac de red

El comando ip nos permite cambiar la dirección MAC de la interfaz de red. Para lograr esto, podemos usar el subcomando set con el objeto de enlace:

Primero, indique la dirección MAC actual de la interfaz de red eth2:

ip -j -p link show eth2 | grep address

A continuación, cambie la dirección MAC de la interfaz de red usando el siguiente comando:

sudo ip link set dev eth2 address 02:42:ac:13:01:03

Finalmente, verifique que la dirección MAC haya sido cambiada:

ip -j -p link show eth2 | grep address

Consulte la página del manual haciendo man ip desde la terminal/símbolo del sistema para saber más sobre el comando IP.

man ip
Conclusión

En este artículo, analizamos algunos ejemplos comunes del comando ip. Se pueden utilizar estos ejemplos en la vida cotidiana para realizar la administración de la red.

¿Conoce algún otro mejor ejemplo del comando ip en Linux? Háganos saber su opinión en los comentarios a continuación.