Comando ip en Linux: Ver IP, Configurar Red y Rutas (ip addr, ip route)
El Comando ip en Linux es una poderosa herramienta para mostrar y manipular las interfaces de red, configurar direcciones IP, alterar las tablas de rutas y crear túneles.
Con este comando es posible insertar o alterar entradas en la tabla de rutas, agregar o modificar la ruta predeterminada y también configurar direcciones de red.
Este comando reemplaza los comandos de Net-Tools ifconfig y route.
Los objetos con los que el comando ip puede trabajar son: link, addr, addrlabel, route, rule, neigh, ntable, tunnel, tuntap, maddr, mroute, mrule, monitor, xfrm, netns, l2tp, tcp_metrics, token y netconf.
En el día a día, para un programador, es necesario saber cómo funcionan los objetos addr (que configuran la dirección IP), link (que habilita una interfaz) y route (que modifica la tabla de rutas).
La primera función del ip es mostrar la dirección IP de las interfaces del host. Se utiliza el comando ip seguido del objeto addr:
# ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host 2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 link/ether 00:26:55:04:d3:95 brd ff:ff:ff:ff:ff:ff inet 172.19.1.34/20 brd 172.19.15.255 scope global enp0s25 inet6 fe80::226:55ff:fe04:d395/64 scope link
El comando ip puede ser utilizado para asignar una dirección IP al host, utilizando el objeto addr, seguido de la palabra add:
# ip addr add 192.168.50.5 dev eth1
En este caso se asignará la IP 192.168.50.5 a la interfaz eth1. Puede o no informar el tamaño de la red en la notación CIDR:
# ip addr add 192.168.50.5/24 dev eth1
La misma idea puede ser utilizada para eliminar una dirección IP de una interfaz específica, con el objeto addr y el comando del:
# ip addr del 192.168.50.5/24 dev eth1
Para habilitar una interfaz, utilizamos el objeto link, seguido de la palabra set, el nombre de la interfaz y el comando up:
# ip link set eth1 up
Para deshabilitar una interfaz, lo mismo, pero con el comando down:
# ip link set eth1 down
Para verificar la tabla de rutas del host, puede usar el objeto route:
# ip routedefault via 172.19.1.1 dev enp0s25 172.19.0.0/20 dev enp0s25 proto kernel scope link src 172.19.1.34
Para agregar una ruta estática en la tabla de rutas, se utiliza también el objeto route, seguido de la palabra add, la red que se desea agregar y la interfaz y gateway al que está conectada:
# ip route add 10.10.20.0/24 via 172.19.1.10 dev enp0s25
En este ejemplo, se agregará la red 10.10.20.0/24 cuyo gateway será la dirección 172.19.1.10, que está conectada en la interfaz enp0s25.
Al listar nuevamente la tabla de rutas:
# ip route showdefault via 172.19.1.1 dev enp0s25 10.10.20.0/24 via 172.19.1.10 dev enp0s25 172.19.0.0/20 dev enp0s25 proto kernel scope link src 172.19.1.34
La misma lógica aplica para eliminar una ruta de la tabla de rutas:
# ip route del 10.10.20.0/24
También es posible agregar una ruta predeterminada en la tabla de rutas, utilizando el objeto route, seguido de add y la palabra default, seguido de la dirección IP del gateway predeterminado:
# ip route add default via 192.168.50.100
Las herramientas ifconfig, route y netstat que forman parte del paquete heredado Net-Tools tienen paralelo en la herramienta ip de iproute2, a continuación:
| Net-Tools | Iproute2 | Descripción |
| ifconfig -a | ip link show | Muestra todas las interfaces de red |
| ifconfig eth1 up | ip link set up eth1 | Habilita interfaz de red |
| ifconfig eth1 down | ip link set down eth1 | Deshabilita interfaz de red |
| ifconfig eth1 192.168.0.1/24 | ip addr add 192.168.0.1/24 dev eth1 | Define IP/Máscara de red |
| ifconfig eth1 0 | ip addr del 192.168.0.1/24 dev eth1 | Elimina definición de IP/Máscara de red |
| ifconfig eth1 | ip addr show dev eth1 | Muestra información específica de una interfaz |
| ifconfig eth1 hw ether 00:52:bc:33:25:a1 | ip link set dev eth1 address 00:52:bc:33:25:a1 | Cambia la dirección MAC |
| route -n o netstat -rn | ip route show | Muestra la tabla de enrutamiento |
| route add default gw 192.168.0.1 | ip route add default via 192.168.0.1 | Agrega la ruta predeterminada |
| route add -net 192.168.0.0/24 eth1 | ip route add 192.168.0.0/24 dev eth1 | Agrega una ruta estática |
| route del -net 192.168.0.0/24 | ip route del 192.168.0.0/24 | Elimina una ruta estática |
| route del default | ip route del default | Elimina la ruta predeterminada |
Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí. Si ya tienes una cuenta, o quieres crear una, simplemente ingresa o crea tu usuario aquí.
¿Te gustó? Comparte
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.