La ip
command es una poderosa herramienta para configurar interfaces de red que cualquier administrador de sistemas Linux debería conocer. Se utiliza para activar o desactivar interfaces, asignar y eliminar direcciones y rutas, administrar la memoria caché ARP y mucho más.
Este artículo explica cómo usar el comando ip a través de ejemplos prácticos y explicaciones detalladas de las opciones más comunes.
Cómo usar el comando ip #
La ip
La utilidad es parte del paquete iproute2 que está instalado en todas las distribuciones modernas de Linux.
La sintaxis para ip
El comando es el siguiente:
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT es el tipo de objeto que desea administrar. Los objetos (o subcomandos) más utilizados son:
link
(l
) - Mostrar y modificar interfaces de red.address
(a
) - Mostrar y modificar direcciones IP.route
(r
) - Mostrar y modificar la tabla de enrutamiento.neigh
(n
) - Mostrar y manipular objetos vecinos (tabla ARP).
El objeto se puede escribir en forma completa o abreviada (corta). Para mostrar una lista de comandos y argumentos para cada objeto, ingrese, ip OBJECT help
.
Al configurar las interfaces de red, debe ejecutar los comandos como root o usuario con privilegios sudo. De lo contrario, el comando imprimirá RTNETLINK answers: Operation not permitted
.
Las configuraciones establecidas con la ip
comando no son persistentes. Después de reiniciar el sistema, se pierden todos los cambios. Para que los cambios sean permanentes, debe editar los archivos de configuración específicos de la distribución o agregar los comandos a un script de inicio.
Mostrar y modificar direcciones IP #
Al operar con el addr
objeto los comandos toman la siguiente forma:
ip addr [ COMMAND ] ADDRESS dev IFNAME
Los COMANDOS más utilizados del addr
objeto son:show
, add
y del
.
Mostrar información sobre todas las direcciones IP #
Para mostrar una lista de todas las interfaces de red y la dirección IP asociada, escriba el siguiente comando:
ip addr show
La salida se verá así:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0
valid_lft 2900sec preferred_lft 2900sec
inet6 fe80::5054:ff:fe8c:6244/64 scope link
valid_lft forever preferred_lft forever
Obtendrá el mismo resultado si escribe omite el show
comando y escriba:ip addr
.
Si desea mostrar solo IPv4
o IPv6
direcciones IP, use ip -4 addr
o ip -6 addr
.
Mostrar información sobre una sola interfaz de red #
Para obtener información sobre una interfaz de red específica, use ip addr show dev
seguido del nombre del dispositivo. Por ejemplo, para consultar eth0
, escribiría:
ip addr show dev eth0
Asignar direcciones IP a una interfaz #
Para asignar una dirección IP a una interfaz, utilice la siguiente sintaxis:
ip addr add ADDRESS dev IFNAME
Donde IFNAME
es el nombre de la interfaz y ADDRESS
es la dirección IP que desea asignar a la interfaz.
Para agregar la dirección 192.168.121.45
con máscara de red 24 al dispositivo eth0
, escribiría:
sudo ip address add 192.168.121.45/24 dev eth0
En caso de éxito, el comando no mostrará ningún resultado. Si la interfaz no existe, obtendrá Cannot find device "eth0"
.
Asigne múltiples direcciones IP a la misma interfaz #
Con ip
, puede asignar varias direcciones a la misma interfaz. Por ejemplo:
sudo ip address add 192.168.121.241/24 dev eth0
sudo ip address add 192.168.121.45/24 dev eth0
Para confirmar que las direcciones IP están asignadas, escriba ip -4 addr show dev eth0
o ip -4 a show dev eth0
:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0
valid_lft 3515sec preferred_lft 3515sec
inet 192.168.121.45/24 scope global secondary eth0
valid_lft forever preferred_lft forever
Eliminar/Eliminar una dirección IP de la interfaz #
La sintaxis para eliminar una dirección IP de una interfaz es la siguiente:
ip addr dev ADDRESS dev IFNAME
IFNAME es el nombre de la interfaz y DIRECCIÓN es la dirección IP que desea eliminar de la interfaz.
Para eliminar la dirección 192.168.121.45/24
desde el tipo de dispositivo eth0:
sudo ip address del 192.168.121.45/24 dev eth0
Mostrar y modificar interfaces de red #
Para administrar y ver el estado de las interfaces de red, utilice el link
objeto.
Cuando se trabaja con el link
objetos, los comandos más utilizados son:show
, set
, add
y del
.
Mostrar información sobre interfaces de red #
Para mostrar una lista de todas las interfaces de red, escriba el siguiente comando:
ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
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 fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
A diferencia de ip addr show
, ip link show
no imprimirá información sobre las direcciones IP asociadas con el dispositivo.
Para obtener información sobre una interfaz de red específica, use ip link show dev
seguido del nombre del dispositivo. Por ejemplo, para consultar eth0
escribirías:
ip link show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
Alterar el estado de la interfaz UP/DOWN #
Para activar o desactivar las interfaces, use el ip link set dev
seguido del nombre del dispositivo y el estado deseado:
ip link set dev {DEVICE} {up|down}
Por ejemplo, para traer la interfaz eth0
en línea, escribiría:
ip link set eth0 up
Y para traer si fuera de línea
ip link set eth0 down
Mostrar y modificar la tabla de enrutamiento #
Para asignar, eliminar y mostrar la tabla de enrutamiento del núcleo, utilice la route
objeto. Los comandos más utilizados cuando se trabaja con objetos de rutas son:list
, add
y del
.
Mostrar tabla de enrutamiento #
Para obtener una lista de las entradas de la ruta del núcleo, use uno de los siguientes comandos:
ip route
ip route list
ip route list SELECTOR
Cuando se usa sin un SELECTOR
el comando enumerará todas las entradas de ruta en el kernel:
ip route list
default via 192.168.121.1 dev eth0 proto dhcp src 192.168.121.241 metric 100
192.168.121.0/24 dev eth0 proto kernel scope link src 192.168.121.241
192.168.121.1 dev eth0 proto dhcp scope link src 192.168.121.241 metric 100
Para mostrar solo el enrutamiento de una red específica, por ejemplo, 172.17.0.0/16
escribirías:
ip r list 172.17.0.0/16
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
Agregar una nueva ruta #
Para agregar una nueva entrada a la tabla de enrutamiento, use el route add
comando seguido del nombre de la red o del dispositivo.
Agregue una ruta a 192.168.121.0/24 a través de la puerta de enlace en 192.168.121.1
ip route add 192.168.121.0/24 via 192.168.121.1
Agregue una ruta a 192.168.121.0/24 a la que se pueda acceder en el dispositivo eth0.
ip route add 192.168.121.0/24 dev eth0
Para agregar una ruta predeterminada, use la palabra clave default
. El siguiente comando agregará una ruta predeterminada a través de la puerta de enlace local 192.168.121.1
que se puede alcanzar en el dispositivo eth0
.
ip route add default via 192.168.121.1 dev eth0
Eliminar una ruta #
Para eliminar una entrada de la tabla de enrutamiento, use route add
dominio. La sintaxis para eliminar una ruta es la misma que para agregar.
El siguiente comando eliminará la ruta predeterminada:
ip route del default
Eliminar una ruta para 192.168.121.0/24 a través de la puerta de enlace en 192.168.121.1
ip route add 192.168.121.0/24 via 192.168.121.1
Conclusión #
A estas alturas, debería tener una buena comprensión de cómo usar el ip
de Linux dominio. Para obtener más información sobre el otro ip
opciones, visite la página del manual del comando ip o escriba man ip
en tu terminal.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.