Guía del Comando ip en Linux
1. Introducción
El comando ip
en Linux se utiliza para administrar interfaces de red, direcciones IP, rutas y más. Es una herramienta fundamental para la gestión de redes y la solución de problemas de conectividad.
2. Cómo Usar la Ayuda de ip
Antes de memorizar comandos, es importante saber cómo obtener ayuda en tiempo real:
Mostrar ayuda general
ip --help
Salida esperada:
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
where OBJECT := { address | addrlabel | fou | help | ... | route | rule | xfrm }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] }
Explicación: Muestra los objetos disponibles que se pueden administrar con ip
.
Ver ayuda sobre un objeto específico
ip address help
Salida esperada:
Usage: ip address { COMMAND | help }
ip address add [ address ] dev IFNAME
ip address del [ address ] dev IFNAME
ip address show [ dev IFNAME ]
Explicación: Muestra las opciones y comandos disponibles dentro de un objeto en particular.
Buscar ejemplos en man
man ip | grep -A5 -i examples
Salida esperada:
EXAMPLES
ip addr show
Display the current IP addresses assigned to all interfaces.
ip route add 192.168.1.0/24 via 192.168.1.1
Add a static route.
Explicación: Extrae ejemplos de uso directamente desde man ip
.
3. Objetos Más Usados en ip
Ver Interfaces de Red
ip link show
Salida esperada:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP
link/ether 00:1a:4b:16:01:22 brd ff:ff:ff:ff:ff:ff
Explicación:
LOOPBACK: La interfaz
lo
(loopback) es utilizada internamente por el sistema para comunicarse consigo mismo.BROADCAST: La interfaz soporta envío de paquetes a todas las máquinas en la red.
MULTICAST: Soporta comunicación con múltiples destinos a la vez.
UP: Indica que la interfaz está activa.
LOWER_UP: La capa de enlace está operativa.
mtu 1500: El Maximum Transmission Unit (MTU) es el tamaño máximo en bytes de un paquete de red.
Ver Direcciones IP Asignadas
ip address show
Salida esperada:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
inet6 fe80::1a4b:16ff:fe01:22/64 scope link
Muestra las direcciones IP asignadas a cada interfaz.
Explicación:
inet 192.168.1.100/24: Dirección IPv4 asignada a la interfaz
eth0
con máscara/24
(255.255.255.0).brd 192.168.1.255: Dirección de broadcast, usada para enviar paquetes a todos los dispositivos en la subred.
scope global: Indica que la dirección IP es válida en toda la red.
scope link: En IPv6,
scope link
significa que la dirección es válida solo en el enlace local.
Ver Rutas Configuradas en el Sistema
ip route show
Salida esperada:
default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
Muestra la tabla de rutas del sistema, indicando por dónde pasan los paquetes de red.
Explicación:
default via 192.168.1.1 dev eth0: Indica que la ruta por defecto (para tráfico que no tiene una ruta específica) se enviará al gateway
192.168.1.1
a través deeth0
.proto dhcp: La ruta fue configurada dinámicamente por DHCP.
metric 100: Indica la prioridad de la ruta (valores menores tienen mayor prioridad).
192.168.1.0/24 dev eth0: Ruta específica para la subred
192.168.1.0/24
, accesible directamente a través deeth0
.proto kernel: Esta ruta fue añadida automáticamente por el kernel cuando se configuró la dirección IP.
scope link: Indica que los paquetes pueden enviarse directamente a otros hosts en la misma subred sin necesidad de pasar por un gateway.
src 192.168.1.100: La dirección IP de origen utilizada en paquetes salientes.
4. Configuración de Direcciones y Rutas
Agregar una Dirección IP a una Interfaz
sudo ip address add 192.168.1.150/24 dev eth0
Verificación:
ip address show eth0
Salida esperada:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
inet 192.168.1.150/24 scope global eth0
Lógica de la Tabla de Rutas
Cada paquete enviado desde el sistema sigue esta lógica:
Busca una ruta específica en la tabla.
Si no la encuentra, usa la ruta por defecto (
default via
).Elige la interfaz de red y el gateway adecuado.
Si el destino está en la misma subred (
scope link
), envía el paquete directamente.Si no, lo reenvía al gateway.
Ejemplo:
ip route get 8.8.8.8
Salida esperada:
8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.100
Explicación:
El sistema enviará paquetes a
8.8.8.8
pasando por192.168.1.1
.Usará la interfaz
eth0
.La dirección IP de origen será
192.168.1.100
.
Agregar una Ruta Estática
sudo ip route add 10.10.10.0/24 via 192.168.1.1
Verificación:
ip route show
Salida esperada:
10.10.10.0/24 via 192.168.1.1 dev eth0
Explicación: Agrega una ruta para que el tráfico hacia 10.10.10.0/24
pase por 192.168.1.1
.
5. Solución de Problemas de Enrutamiento
Verificar Rutas Configuradas
ip route list
Salida esperada:
default via 192.168.1.1 dev eth0 proto dhcp
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
Explicación: Lista todas las rutas del sistema.
Forzar el Uso de una Ruta Específica
ip route get 8.8.8.8
Salida esperada:
8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.100
Explicación: Muestra qué ruta tomarán los paquetes para alcanzar 8.8.8.8
.
Reiniciar la Interfaz de Red
sudo ip link set eth0 down
sudo ip link set eth0 up
Verificación:
ip link show eth0
Salida esperada:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
Explicación: Desactiva y reactiva la interfaz eth0
para resetear la conexión.