Guía del Comando ip en Linux

·

5 min read

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 de eth0.

  • 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 de eth0.

  • 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:

  1. Busca una ruta específica en la tabla.

  2. Si no la encuentra, usa la ruta por defecto (default via).

  3. Elige la interfaz de red y el gateway adecuado.

  4. Si el destino está en la misma subred (scope link), envía el paquete directamente.

  5. 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 por 192.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.


6. Conclusión