Tabla de contenidos
Puede configurar direcciones IP, interfaces de red y reglas de enrutamiento sobre la marcha con el ip
comando de Linux . Le mostraremos cómo puede usar este reemplazo moderno del clásico (y ahora obsoleto) ifconfig
.
Cómo funciona el comando ip
Con el ip
comando, puede ajustar la forma en que una computadora Linux maneja las direcciones IP, los controladores de interfaces de red (NIC) y las reglas de enrutamiento . Los cambios también tienen efecto inmediato, no es necesario reiniciar. El ip
comando puede hacer mucho más que esto, pero nos centraremos en los usos más comunes en este artículo.
El ip
comando tiene muchos subcomandos, cada uno de los cuales funciona en un tipo de objeto, como direcciones IP y rutas. Existen, a su vez, muchas opciones para cada uno de estos objetos. Es esta riqueza de funciones la que le da al ip
comando la granularidad que necesita para realizar lo que pueden ser tareas delicadas. Esto no es un trabajo de hacha, requiere un juego de escalpelos.
Veremos los siguientes objetos:
- Dirección : direcciones IP y rangos.
- Enlace : interfaces de red, como conexiones por cable y adaptadores Wi-Fi.
- Ruta : las reglas que administran el enrutamiento del tráfico enviado a
addresses
través de interfaces (links
).
Usando ip con direcciones
Obviamente, primero debes conocer la configuración con la que estás tratando. Para descubrir qué direcciones IP tiene su computadora, use el ip
comando con el objeto address
. La acción predeterminada es show
, que enumera las direcciones IP. También puede omitir show
y abreviar address
como «addr» o incluso «a».
Los siguientes comandos son todos equivalentes:
demostración de la dirección IP
mostrar dirección ip
dirección ip
ip a
Vemos dos direcciones IP, junto con mucha otra información. Las direcciones IP están asociadas con controladores de interfaz de red (NIC). El ip
comando intenta ser útil y también proporciona mucha información sobre la interfaz.
La primera dirección IP es la dirección de bucle invertido (interna) que se utiliza para comunicarse dentro de la computadora. La segunda es la dirección IP real (externa) que tiene la computadora en la red de área local (LAN).
Analicemos toda la información que recibimos:
- lo : el nombre de la interfaz de red como una cadena.
- <LOOPBACK, UP, LOWER_UP>: Esta es una interfaz de loopback. Es
UP
, lo que significa que está operativo. La capa de redes físicas (capa uno) también está activa. - mtu 65536: la unidad de transferencia máxima. Este es el tamaño de la mayor cantidad de datos que puede transmitir esta interfaz.
- qdisc noqueue: A
qdisc
es un mecanismo de cola. Programa la transmisión de paquetes. Existen diferentes técnicas de colas llamadas disciplinas. Lanoqueue
disciplina significa «enviar instantáneamente, no hacer cola». Esta es laqdisc
disciplina predeterminada para los dispositivos virtuales, como la dirección de bucle invertido. - estado DESCONOCIDO: puede ser
DOWN
(la interfaz de red no está operativa),UNKNOWN
(la interfaz de red está operativa pero no hay nada conectado) oUP
(la red está operativa y hay una conexión). - grupo predeterminado: las interfaces se pueden agrupar lógicamente. El valor predeterminado es colocarlos a todos en un grupo llamado «predeterminado».
- qlen 1000: la longitud máxima de la cola de transmisión.
- link / loopback: La dirección de control de acceso a medios (MAC) de la interfaz.
- inet 127.0.0.1/8: la dirección IP versión 4. La parte de la dirección después de la barra inclinada (
/
) es la notación de enrutamiento entre dominios sin clases (CIDR) que representa la máscara de subred. Indica cuántos bits contiguos iniciales se establecen en uno en la máscara de subred. El valor de ocho significa ocho bits. Ocho bits establecidos en uno representan 255 en binario, por lo que la máscara de subred es 255.0.0.0. - host de alcance: el alcance de la dirección IP. Esta dirección IP solo es válida dentro de la computadora (el «host»).
- lo: La interfaz con la que está asociada esta dirección IP.
- valid_lft: Válido de por vida. Para una dirección IP versión 4 asignada por el Protocolo de configuración dinámica de host (DHCP), este es el período de tiempo que la dirección IP se considera válida y puede realizar y aceptar solicitudes de conexión.
- favorite_lft: vida útil preferida. Para una dirección IP de versión 4 asignada por DHCP, esta es la cantidad de tiempo que la dirección IP se puede usar sin restricciones. Este nunca debe ser mayor que el
valid_lft
valor. - inet6 : La IP versión 6 dirección,
scope
,valid_lft
, ypreferred_lft
.
La interfaz física es más interesante, como mostraremos a continuación:
- enp0s3: el nombre de la interfaz de red como una cadena. “En” significa ethernet, “p0” es el número de bus de la tarjeta ethernet y “s3” es el número de ranura.
- <Difusión, multidifusión, UP, LOWER_UP>: esta interfaz soportes de amplio y multidifusión , y la interfaz es
UP
(operacional y conectada). La capa de hardware de la red (capa uno) también lo esUP
. - mtu 1500: la unidad de transferencia máxima que admite esta interfaz.
- qdisc fq_codel: el programador utiliza una disciplina llamada «Cola justa, retraso controlado». Está diseñado para proporcionar una parte justa del ancho de banda a todos los flujos de tráfico que utilizan la cola.
- estado ARRIBA: La interfaz está operativa y conectada.
- grupo predeterminado: esta interfaz está en el grupo de interfaces «predeterminado».
- qlen 1000: la longitud máxima de la cola de transmisión.
- link / ether: la dirección MAC de la interfaz.
- inet 192.168.4.26/24: la dirección IP versión 4. El “/ 24” nos dice que hay 24 bits iniciales contiguos establecidos en uno en la máscara de subred. Son tres grupos de ocho bits. Un número binario de ocho bits equivale a 255; por lo tanto, la máscara de subred es 255.255.255.0.
- brd 192.168.4.255: la dirección de transmisión para esta subred.
- alcance global: la dirección IP es válida en todas partes de esta red.
- dinámico: la dirección IP se pierde cuando la interfaz se cae.
- noprefixroute: no cree una ruta en la tabla de rutas cuando se agrega esta dirección IP. Alguien tiene que agregar una ruta manualmente si quiere usar una con esta dirección IP. Del mismo modo, si se elimina esta dirección IP, no busque una ruta para eliminar.
- enp0s3: la interfaz con la que está asociada esta dirección IP.
- valid_lft: Válido de por vida. La hora a la que la dirección IP se considerará válida; 86,240 segundos son 23 horas y 57 minutos.
- favorite_lft: vida útil preferida. El tiempo que funcionará la dirección IP sin ninguna restricción.
- inet6: La IP versión 6 dirección,
scope
,valid_lft
, ypreferred_lft
.
Mostrar solo direcciones IPv4 o IPv6
Si desea limitar la salida a las direcciones IP de la versión 4, puede usar la -4
opción de la siguiente manera:
dirección ip -4
Si desea limitar la salida a las direcciones IP de la versión 6, puede usar la -6
opción de la siguiente manera:
dirección ip -6
Mostrar información para una única interfaz
Si desea ver la información de la dirección IP de una interfaz única, puede utilizar los show
y las dev
opciones, y el nombre de la interfaz, como se muestra a continuación:
ip addr show dev lo
dirección ip show dev enp0s3
También puede usar la marca -4
o -6
para refinar aún más la salida de modo que solo vea lo que le interesa.
Si desea ver la información de la versión 4 de IP relacionada con las direcciones en la interfaz enp0s3
, escriba el siguiente comando:
ip -4 addr show dev enp0s3
Agregar una dirección IP
Puede usar las opciones add
y dev
para agregar una dirección IP a una interfaz. Solo tiene que decirle al ip
comando qué dirección IP agregar y a qué interfaz agregarla.
Agregaremos la dirección IP 192.168.4.44 a la enp0s3
interfaz. También tenemos que proporcionar la notación CIDR para la máscara de subred.
Escribimos lo siguiente:
sudo ip addr agregar 192.168.4.44/24 dev enp0s3
Escribimos lo siguiente para echar otro vistazo a las direcciones IP de la versión 4 de esta interfaz:
ip -4 addr show dev enp0s3
La nueva dirección IP está presente en esta interfaz de red. Saltamos a otra computadora y usamos el siguiente comando para ver si podemos ping
la nueva dirección IP :
ping 192.168.4.44
La dirección IP responde y envía confirmaciones a los pings. Nuestra nueva dirección IP está en funcionamiento después de un simple ip
comando.
Eliminar una dirección IP
Para eliminar una dirección IP, el comando es casi el mismo que para agregar una, excepto que reemplaza add
con del
, como se muestra a continuación:
sudo dirección ip del 192.168.4.44/24 dev enp0s3
Si escribimos lo siguiente para verificar, vemos que la nueva dirección IP ha sido eliminada:
ip -4 addr show dev enp0s3
Uso de ip con interfaces de red
Utiliza el link
objeto para inspeccionar y trabajar con interfaces de red. Escriba el siguiente comando para ver las interfaces instaladas en su computadora:
espectáculo de enlace ip
Para ver una única interfaz de red, simplemente agregue su nombre al comando, como se muestra a continuación:
ip link show enp0s3
Iniciar y detener enlaces
Puede utilizar la set
opción con up
o down
para detener o iniciar una opción de interfaz de red. También tiene que usar sudo
, como se muestra a continuación:
sudo ip link set enp0s3 abajo
Escribimos lo siguiente para echar un vistazo a la interfaz de red:
ip link show enp0s3
El estado de la interfaz de red es DOWN
. Podemos usar la up
opción para reiniciar una interfaz de red, como se muestra a continuación:
sudo ip link set enp0s3 up
Escribimos lo siguiente para hacer otra verificación rápida del estado de la interfaz de red:
ip link show enp0s3
La interfaz de red se reinició y el estado se muestra como UP
.
Usar ip con rutas
Con el route
objeto, puede inspeccionar y manipular rutas. Las rutas definen hacia dónde se reenvía el tráfico de red a diferentes direcciones IP y a través de qué interfaz de red.
Si la computadora o dispositivo de destino comparte una red con la computadora remitente, la computadora remitente puede reenviar el paquete directamente a ella.
Sin embargo, si el dispositivo de destino no está conectado directamente, la computadora remitente reenvía el paquete al enrutador predeterminado. Luego, el enrutador decide dónde enviar el paquete.
Para ver las rutas definidas en su computadora, escriba el siguiente comando:
ruta ip
Echemos un vistazo a la información que recibimos:
- predeterminado: la regla predeterminada. Esta ruta se usa si ninguna de las otras reglas coincide con lo que se envía.
- via 192.168.4.1: Enruta los paquetes a través del dispositivo en 192.168.4.1. Esta es la dirección IP del enrutador predeterminado en esta red.
- dev enp0s3: use esta interfaz de red para enviar los paquetes al enrutador.
- proto dhcp: el identificador del protocolo de enrutamiento. DHCP significa que las rutas se determinarán dinámicamente.
- métrica 100: una indicación de la preferencia de la ruta en comparación con otras. Las rutas con métricas más bajas se utilizan preferentemente sobre aquellas con métricas más altas. Puede usar esto para dar preferencia a una interfaz de red cableada sobre una Wi-Fi.
La segunda ruta gobierna el tráfico al rango de IP 169.254.0.0/16. Esta es una red de configuración cero , lo que significa que intenta autoconfigurarse para la comunicación de intranet. Sin embargo, no puede usarlo para enviar paquetes fuera de la red inmediata.
El principio detrás de las redes de configuración cero es que no dependen de que DHCP y otros servicios estén presentes y activos. Solo necesitan ver TCP / IP para poder identificarse con cada uno de los otros dispositivos de la red.
Vamos a ver:
- 169.254.0.0/16: el rango de direcciones IP que rige esta regla de enrutamiento. Si la computadora se comunica en este rango de IP, esta regla interviene.
- dev enp0s3: La interfaz de red que utilizará el tráfico gobernado por esta ruta.
- enlace de alcance : el alcance es
link
, lo que significa que el alcance está limitado a la red a la que esta computadora está conectada directamente. - métrica 1000 : esta es una métrica alta y no es una ruta preferida.
La tercera ruta gobierna el tráfico al rango de direcciones IP de 192.168.4.0/24. Este es el rango de direcciones IP de la red local a la que está conectada esta computadora. Es para la comunicación a través de esa red, pero dentro de ella.
Vamos a analizarlo:
- 192.168.4.1/24: el rango de direcciones IP que rige esta regla de enrutamiento. Si la computadora se comunica dentro de este rango de IP, esta regla activa y controla el enrutamiento de paquetes.
- dev enp0s3: La interfaz a través de la cual esta ruta enviará paquetes.
- proto kernel: la ruta creada por el kernel durante la configuración automática.
- vínculo de alcance: el alcance es
link
, lo que significa que el alcance está limitado a la red inmediata a la que está conectada esta computadora. - src 192.168.4.26: la dirección IP desde la que se originan los paquetes enviados por esta ruta.
- métrica 100: esta métrica baja indica una ruta preferida.
Mostrar información para una sola ruta
Si desea centrarse en los detalles de una ruta en particular, puede agregar la list
opción y el rango de direcciones IP de la ruta al comando de la siguiente manera:
lista de rutas ip 192.168.4.0/24
Agregar una ruta
Acabamos de agregar una nueva tarjeta de interfaz de red a esta computadora. Escribimos lo siguiente y vemos que se muestra como enp0s8
:
espectáculo de enlace ip
Agregaremos una nueva ruta a la computadora para usar esta nueva interfaz. Primero, escribimos lo siguiente para asociar una dirección IP con la interfaz:
sudo ip addr agregar 192.168.121.1/24 dev enp0s8
Se agrega una ruta predeterminada que usa la dirección IP existente a la nueva interfaz. Usamos la delete
opción, como se muestra a continuación, para eliminar la ruta y proporcionar sus detalles:
sudo ip route eliminar por defecto a través de 192.168.4.1 dev enp0s8
Ahora usaremos la add
opción para agregar nuestra nueva ruta. La nueva interfaz manejará el tráfico de red en el rango de direcciones IP 192.168.121.0/24. Le daremos una métrica de 100; debido a que será la única ruta que maneja este tráfico, la métrica es bastante académica.
Escribimos lo siguiente:
sudo ip route agregue 192.168.121.0/24 dev enp0s8 métrica 100
Ahora, escribimos lo siguiente para ver qué nos da:
ruta ip
Nuestra nueva ruta ya está en su lugar. Sin embargo, todavía tenemos la ruta 192.168.4.0/24 que apunta a la interfaz; enp0s8
escribimos lo siguiente para eliminarla:
sudo ip ruta eliminar 192.168.4.0/24 dev enp0s8
Ahora deberíamos tener una nueva ruta que apunte todo el tráfico destinado al rango de IP 192.168.121.0/24 a través de la interfaz enp0s8
. También debería ser la única ruta que utiliza nuestra nueva interfaz.
Escribimos lo siguiente para confirmar:
ruta ip
Ruta tomada, no raíz
Lo mejor de estos comandos es que no son permanentes. Si desea borrarlos, simplemente reinicie su sistema. Esto significa que puede experimentar con ellos hasta que funcionen como desee. Y es algo muy bueno si hace un desastre terrible en su sistema; un simple reinicio restaurará el orden.
Por otro lado, si quieres que los cambios sean permanentes, tienes que trabajar un poco más. Exactamente lo que varía según la familia de distribución, pero todos implican cambiar los archivos de configuración.
De esta forma, sin embargo, puede probar los comandos antes de hacer algo permanente.