Gestionar direccionamiento IP en Linux

CompTIABeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderás las habilidades fundamentales para gestionar el direccionamiento IP en un entorno Linux. Comenzarás utilizando el moderno comando ip para inspeccionar las interfaces de red de tu sistema. A continuación, configurarás manualmente una dirección IP estática, establecerás una puerta de enlace predeterminada para permitir la comunicación con redes externas y verificarás tu conexión mediante la utilidad ping.

Después, explorarás la configuración dinámica de IP liberando la dirección estática y utilizando el comando dhclient para obtener automáticamente una nueva dirección IP desde un servidor DHCP. Para concluir el laboratorio, utilizarás los comandos arp y traceroute para inspeccionar y verificar a fondo tu configuración de red, asegurándote de que todos los componentes funcionen correctamente.

Inspeccionar interfaces de red con ip a

En este paso, aprenderás a inspeccionar las interfaces de red en tu sistema Linux. Antes de configurar una dirección IP, primero debes identificar el nombre de la interfaz de red que deseas configurar. Cada conexión, ya sea cableada o inalámbrica, se gestiona a través de una interfaz de red.

El comando moderno y estándar para ver y manipular interfaces de red en Linux es ip. Lo utilizaremos con el argumento a (o address) para mostrar todas las interfaces de red y sus direcciones IP asignadas.

  1. Abre tu terminal. Deberías estar ya en el directorio ~/project.

  2. Para listar todas las interfaces de red y sus configuraciones actuales, ejecuta el siguiente comando:

    ip a
    

    Verás una salida similar a la siguiente. Los detalles exactos, como los nombres de las interfaces (eth0, enp0s5), las direcciones IP y las direcciones MAC, variarán cada vez que inicies un nuevo entorno de laboratorio.

    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 mq state UP group default qlen 1000
        link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159972sec preferred_lft 1892159972sec
    3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
        link/ether 02:42:bb:cb:56:62 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
           valid_lft forever preferred_lft forever
    

Entendiendo la salida:

  • 1: lo: Es la interfaz de loopback, una interfaz virtual que el sistema utiliza para comunicarse consigo mismo. Siempre tiene la dirección IP 127.0.0.1.
  • 2: eth0: Es tu interfaz Ethernet (cableada) principal. Tu interfaz podría tener un nombre diferente o mostrar altname (nombres alternativos) como enp0s5. Esta es la interfaz con la que trabajaremos.
  • 3: docker0: Es posible que veas otras interfaces como docker0, utilizada por el motor de contenedores Docker. Puedes ignorarla para los propósitos de este laboratorio.
  • inet 172.16.50.11/24: Es la dirección IPv4 asignada a tu interfaz. La dirección que veas será diferente. Es la dirección que te permite conectarte a este laboratorio remoto.
  • link/ether ...: Es la dirección MAC de la interfaz, un identificador de hardware único.

Ahora que puedes identificar tu interfaz de red principal (eth0), estás listo para aprender a configurarla.

Configurar una dirección IP estática secundaria

En este paso, asignarás manualmente una dirección IP estática adicional a tu interfaz de red. Una IP estática es útil para servidores que necesitan ser alcanzables de forma consistente en la misma dirección.

Nota importante: Debido a que estás en una sesión de laboratorio remoto, no debes eliminar la dirección IP existente ni desactivar la interfaz de red. Hacerlo cortaría tu conexión. En su lugar, añadiremos una segunda dirección IP a la interfaz, lo cual es una práctica común y segura.

  1. Asigna la nueva dirección IP estática 192.168.1.10 con una máscara de subred /24 a la interfaz eth0. Si tu interfaz tiene un nombre diferente, usa ese nombre en su lugar.

    sudo ip addr add 192.168.1.10/24 dev eth0
    

    Este comando añade la nueva dirección sin afectar a la existente. No produce ninguna salida si tiene éxito.

  2. Finalmente, verifica que la nueva dirección IP se haya asignado. Usa el comando ip a de nuevo, especificando la interfaz eth0.

    ip a show eth0
    

    Ahora deberías ver ambas, la dirección IP dinámica original y la nueva dirección IP estática, listadas para la interfaz eth0.

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159595sec preferred_lft 1892159595sec
        inet 192.168.1.10/24 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::216:3eff:fe0f:23a5/64 scope link
           valid_lft forever preferred_lft forever
    

    Observa que un segundo campo inet muestra ahora 192.168.1.10/24. Has añadido con éxito una dirección IP estática temporal mientras mantienes tu conexión activa.

Establecer una puerta de enlace predeterminada y verificar la conectividad con ping

En este paso, establecerás una puerta de enlace predeterminada y probarás la conectividad de red. La puerta de enlace predeterminada (default gateway) es el router al que tu sistema envía el tráfico cuando el destino se encuentra en otra red (como Internet).

Tu sistema ya tiene una puerta de enlace predeterminada proporcionada por el entorno del laboratorio. Cambiarla o eliminarla interrumpiría tu conexión. Para practicar este comando de forma segura, añadiremos una segunda ruta predeterminada con una métrica (metric) más alta. Una métrica más alta significa que tiene una prioridad menor, por lo que el sistema no la utilizará para el tráfico real, manteniendo nuestra conexión segura.

  1. Vamos a añadir una ruta de puerta de enlace predeterminada para la red 192.168.1.0/24. Estableceremos la IP de la puerta de enlace en 192.168.1.1 y le daremos una metric de 200.

    sudo ip route add default via 192.168.1.1 dev eth0 metric 200
    
    • default: Especifica que esta es la ruta predeterminada.
    • via 192.168.1.1: La IP del router de puerta de enlace.
    • dev eth0: La ruta es accesible a través de la interfaz eth0.
    • metric 200: Hace que esta ruta sea menos preferida que la ruta principal existente (que tiene una métrica menor).
  2. Verifica que la ruta se haya añadido mostrando la tabla de enrutamiento.

    ip route
    

    La salida será compleja y variará, pero ahora debería incluir dos líneas que comienzan con default. Tu puerta de enlace original tendrá una métrica menor (por ejemplo, 100) y la nueva tendrá una métrica de 200.

    default via 172.16.50.253 dev eth0 proto dhcp src 172.16.50.11 metric 100
    default via 192.168.1.1 dev eth0 metric 200
    172.16.50.0/24 dev eth0 proto kernel scope link src 172.16.50.11 metric 100
    192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
    ... (pueden aparecer otras rutas)
    
  3. Ahora, probemos la conectividad con ping. Envía una "solicitud de eco" ICMP a un host para ver si es alcanzable. Intentemos hacer ping a la puerta de enlace que acabamos de configurar para nuestra red imaginaria.

    ping -c 3 192.168.1.1
    

    Resultado esperado: Se espera que este comando falle. Dado que añadimos la IP 192.168.1.10/24 a eth0, el sistema asume que 192.168.1.1 está en la misma red local. Intentará alcanzarla directamente, pero no existe ningún dispositivo con esa dirección, por lo que verás "Destination Host Unreachable".

    PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
    From 192.168.1.10 icmp_seq=1 Destination Host Unreachable
    From 192.168.1.10 icmp_seq=2 Destination Host Unreachable
    From 192.168.1.10 icmp_seq=3 Destination Host Unreachable
    
    --- 192.168.1.1 ping statistics ---
    3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2039ms
    

    Este es el resultado correcto y esperado. Has aprendido cómo añadir una ruta predeterminada y usar ping para realizar pruebas.

Volver a una dirección IP dinámica usando dhclient

En este paso, eliminarás las configuraciones estáticas que creaste y luego usarás dhclient para actualizar la concesión (lease) de IP dinámica desde el servidor DHCP.

Primero, la herramienta dhclient, que forma parte del paquete isc-dhcp-client, podría no estar instalada por defecto. Asegurémonos de que esté disponible.

  1. Actualiza la lista de paquetes de tu sistema e instala el cliente DHCP:

    sudo apt-get update
    sudo apt-get install -y isc-dhcp-client
    

    Ahora, eliminemos de forma segura la IP estática y la ruta que añadimos en los pasos anteriores sin interrumpir tu conexión.

  2. Elimina la dirección IP estática de eth0:

    sudo ip addr del 192.168.1.10/24 dev eth0
    
  3. Elimina la ruta predeterminada estática que añadimos:

    sudo ip route del default via 192.168.1.1 dev eth0
    

    Ahora tu configuración de red ha vuelto a su estado original. Para demostrar dhclient, solicitemos una actualización de la dirección IP desde el servidor DHCP.

  4. Primero, libera la concesión DHCP actual.

    sudo dhclient -r eth0
    
  5. A continuación, solicita una nueva concesión al servidor DHCP.

    sudo dhclient eth0
    

    Es posible que veas el mensaje RTNETLINK answers: File exists. Esto es normal. Simplemente significa que dhclient está intentando añadir rutas que ya están presentes, por lo que no se necesitan cambios. Tu conexión permanecerá estable.

  6. Verifica tu configuración viendo la interfaz eth0 de nuevo.

    ip a show eth0
    

    La salida ahora debería mostrar solo tu dirección IP dinámica original del entorno de laboratorio, como una dirección privada 10.x.x.x o 172.16.x.x. La IP estática 192.168.1.10 debería haber desaparecido.

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:0f:23:a5 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        inet 172.16.50.11/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159460sec preferred_lft 1892159460sec
        inet6 fe80::216:3eff:fe0f:23a5/64 scope link
           valid_lft forever preferred_lft forever
    

    Has limpiado con éxito tu configuración estática y actualizado tu concesión de IP dinámica.

Verificar la configuración de red con arp y traceroute

En este paso final, aprenderás a usar arp y traceroute para inspeccionar tu configuración de red.

Primero, asegurémonos de que las herramientas necesarias estén instaladas. arp se encuentra en net-tools, y traceroute está en su propio paquete.

  1. Instala net-tools y traceroute:

    sudo apt-get update
    sudo apt-get install -y net-tools traceroute
    

Usar arp para ver la caché ARP

El Protocolo de Resolución de Direcciones (ARP) asigna una dirección IP a una dirección MAC física en una red local. Los resultados se almacenan en la caché ARP.

  1. Para poblar tu caché ARP, primero encuentra la IP de tu puerta de enlace predeterminada desde la tabla de enrutamiento.

    ip route | grep default
    

    La salida te mostrará la IP de la puerta de enlace. Ten en cuenta que la dirección IP variará.

    default via 172.16.50.253 dev eth0
    default via 172.16.50.253 dev eth0 proto dhcp src 172.16.50.11 metric 100
    
  2. Ahora, haz ping a esa IP de puerta de enlace (por ejemplo, 172.16.50.253 en el ejemplo anterior) para generar tráfico.

    ping -c 1 <tu-ip-de-puerta-de-enlace>
    
  3. Muestra la caché ARP usando arp -a.

    arp -a
    

    Verás la IP y la dirección MAC de tu puerta de enlace. También podrías ver una entrada <incomplete> para la dirección 192.168.1.1 a la que intentamos hacer ping anteriormente, lo cual es normal.

    ? (192.168.1.1) at <incomplete> on eth0
    _gateway (172.16.50.253) at ee:ff:ff:ff:ff:ff [ether] on eth0
    

    Esto confirma que tu sistema resolvió la IP de la puerta de enlace a una dirección MAC.

Usar traceroute para rastrear rutas de red

El comando traceroute muestra la secuencia de routers ("saltos") que siguen los paquetes para llegar a un destino.

  1. Rastreemos la ruta hacia un dominio público como google.com.

    traceroute google.com
    

    El comando imprimirá la ruta. Nota: En muchos entornos en la nube, el primer salto mostrado por traceroute puede ser una dirección IP interna y no la misma que la puerta de enlace predeterminada en tu tabla de enrutamiento. Este es un comportamiento normal.

    traceroute to google.com (142.250.189.174), 30 hops max, 60 byte packets
     1  10.220.9.2 (10.220.9.2)  0.345 ms  ...
     2  11.73.5.1 (11.73.5.1)  1.978 ms ...
     3  ...
     8  sfo03s24-in-f14.1e100.net (142.250.189.174)  3.001 ms ...
    
    • El primer salto es un router dentro de la red del proveedor del laboratorio.
    • Los saltos subsiguientes muestran la ruta a través de Internet hasta el destino final.
    • Pueden aparecer asteriscos (* * *) si un router a lo largo de la ruta no responde a las sondas de traceroute, lo cual podría deberse a un firewall u otra política de red.

¡Felicidades! Ahora has aprendido cómo inspeccionar, configurar estáticamente y configurar dinámicamente el direccionamiento IP en un sistema Linux, así como a utilizar herramientas clave como ping, arp y traceroute para verificar y solucionar problemas de red.

Resumen

En este laboratorio, aprendiste las habilidades fundamentales para gestionar el direccionamiento IP en un entorno Linux. Comenzaste inspeccionando las interfaces de red y sus configuraciones actuales usando el comando ip a para identificar interfaces objetivo como eth0. Luego, practicaste la asignación manual de una dirección IP estática y una máscara de subred con ip addr add, seguido de la configuración de una puerta de enlace predeterminada usando ip route add para permitir la comunicación con redes externas. Para contrastar con la configuración manual, también aprendiste cómo obtener automáticamente una dirección IP, máscara de subred y puerta de enlace desde un servidor DHCP usando el comando dhclient.

Además, exploraste herramientas esenciales de verificación y solución de problemas de red. Utilizaste el comando ping para confirmar la conectividad de red básica tanto con la puerta de enlace predeterminada como con hosts externos. Para obtener una visión más profunda de la capa de red, examinaste la caché del Protocolo de Resolución de Direcciones (ARP) con el comando arp para ver las asignaciones de IP a dirección MAC. Finalmente, utilizaste traceroute para rastrear la ruta de red salto a salto hasta un destino, verificando tu configuración de enrutamiento.