tutoriales.com

Gestión de Redes en Linux: Configuración y Resolución de Problemas con netplan y NetworkManager ⚙️

Este tutorial cubre la gestión de redes en sistemas Linux modernos, centrándose en netplan para la configuración de bajo nivel y NetworkManager para entornos de escritorio y gestión dinámica. Aprenderás a configurar interfaces de red, direcciones IP, VLANs y a diagnosticar problemas comunes de conectividad. Ideal para administradores de sistemas y usuarios avanzados de Linux.

Intermedio20 min de lectura12 views
Reportar error

La gestión de redes es una habilidad fundamental para cualquier usuario o administrador de sistemas Linux. En el ecosistema Linux moderno, existen diversas herramientas y enfoques para configurar y administrar las interfaces de red. Este tutorial se centrará en dos de las soluciones más prevalentes: netplan y NetworkManager, explicando cómo usarlas para configurar tus interfaces de red, establecer direcciones IP, gestionar VLANs y diagnosticar problemas comunes.


🚀 Introducción a la Gestión de Redes en Linux

Tradicionalmente, la configuración de red en Linux se realizaba editando archivos de configuración específicos de la distribución, como /etc/network/interfaces en Debian/Ubuntu o archivos en /etc/sysconfig/network-scripts/ en RHEL/CentOS. Sin embargo, con la evolución de los sistemas operativos, han surgido herramientas más robustas y centralizadas.

netplan: La Solución Declarativa para Ubuntu y Derivados 📜

netplan es una utilidad de configuración de red en Linux que abstrae la complejidad de la configuración de bajo nivel, utilizando archivos YAML para definir la configuración deseada. Es el backend de configuración de red por defecto en Ubuntu desde la versión 17.10 y en otras distribuciones basadas en Ubuntu.

Características Clave de netplan:

  • Declarativo: Defines el estado deseado de tu red, y netplan se encarga de implementarlo, utilizando renderizadores como NetworkManager o systemd-networkd.
  • Simple: Utiliza archivos YAML fáciles de leer y escribir.
  • Consistente: Proporciona una forma unificada de configurar la red en diferentes entornos, ya sea en servidores o estaciones de trabajo.

NetworkManager: El Gestor Versátil para Entornos Gráficos y Servidores 🌐

NetworkManager es un demonio que intenta mantener activas las conexiones de red disponibles. Es ampliamente utilizado en entornos de escritorio Linux debido a su interfaz gráfica y su capacidad para gestionar conexiones dinámicas (Wi-Fi, VPN, móviles). Sin embargo, también es una herramienta potente y flexible para la configuración de red en servidores.

Características Clave de NetworkManager:

  • Dinámico: Gestiona conexiones de forma automática y prioritaria.
  • Versátil: Soporta una amplia gama de tecnologías de red (Ethernet, Wi-Fi, VPN, Bluetooth, 4G/5G).
  • Controlable: Ofrece interfaces de línea de comandos (nmcli) y gráficas (nmtui, applets de escritorio).

🛠️ Configuración de Red con netplan

netplan utiliza archivos de configuración en el directorio /etc/netplan/. Estos archivos suelen tener la extensión .yaml (o .yml).

📝 Estructura Básica de un Archivo netplan

Un archivo netplan básico se ve así:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: true
  • network:: Es el bloque principal.
  • version: 2: Especifica la versión del formato de netplan.
  • renderer:: Indica qué backend usará netplan para aplicar la configuración. Los principales son networkd (para servidores, por systemd-networkd) y NetworkManager (para escritorios).
  • ethernets:: Bloque para configurar interfaces Ethernet. También hay wifis:, bridges:, vlans:, etc.
  • enp0s3:: El nombre de la interfaz de red (puede variar, usa ip a para encontrar el tuyo).
  • dhcp4: true: Habilita DHCP para IPv4.
💡 Consejo: Para identificar el nombre de tus interfaces de red, usa el comando `ip a` o `ifconfig -a` (si `net-tools` está instalado).

➡️ Configuración de IP Estática con netplan

Para configurar una dirección IP estática, modificaremos el archivo YAML. Supongamos que queremos la IP 192.168.1.100/24 con gateway 192.168.1.1 y DNS 8.8.8.8, 8.8.4.4.

Crea o edita un archivo como /etc/netplan/01-static-config.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.1.100/24]
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
      # opcional: search domains
      # search: [miempresa.local]

Explicación:

  • dhcp4: no: Deshabilita DHCP para IPv4.
  • addresses: [192.168.1.100/24]: Asigna la dirección IP y la máscara de subred.
  • routes:: Define las rutas. to: default es la ruta por defecto (gateway).
  • nameservers:: Configura los servidores DNS.

🔄 Aplicar la Configuración de netplan

Después de guardar el archivo YAML, debes aplicar los cambios:

sudo netplan try

netplan try es un comando seguro que te permite probar la configuración durante 120 segundos. Si la configuración interrumpe tu conectividad, se revertirá automáticamente. Si todo funciona, presiona Enter para confirmar.

Si estás seguro de la configuración (o después de netplan try), puedes aplicarla directamente:

sudo netplan apply

📡 Configuración de VLANs con netplan

Las VLANs (Virtual Local Area Networks) permiten segmentar una red física en múltiples redes lógicas. Para configurar una VLAN con ID 10 en la interfaz enp0s3 con IP estática:

Crea o edita un archivo como /etc/netplan/02-vlan-config.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      # La interfaz física base no necesita configuración IP, solo debe estar 'up'
      dhcp4: no
      dhcp6: no
  vlans:
    enp0s3.10:
      id: 10
      link: enp0s3
      addresses: [192.168.10.1/24]
      routes:
        - to: default
          via: 192.168.10.254 # Gateway para esta VLAN
      nameservers:
        addresses: [8.8.8.8]

Después, aplica la configuración con sudo netplan apply.

⚠️ Advertencia: Asegúrate de que tu switch de red esté configurado correctamente para las VLANs antes de aplicar esta configuración, de lo contrario, podrías perder la conectividad.

✨ Gestión de Red con NetworkManager

NetworkManager es especialmente útil en entornos de escritorio, pero sus herramientas de línea de comandos (nmcli, nmtui) lo hacen igual de potente para servidores.

⌨️ Uso de nmcli (NetworkManager Command Line Interface)

nmcli es la herramienta de línea de comandos principal para interactuar con NetworkManager. Te permite ver el estado, crear, modificar y eliminar conexiones.

Mostrar el estado de NetworkManager:

nmcli general status
nmcli device status

Mostrar conexiones activas:

nmcli connection show --active

Listar todas las conexiones:

nmcli connection show

➡️ Configuración de IP Estática con nmcli

Para configurar una IP estática en una interfaz (ej. enp0s3):

  1. Eliminar la conexión existente (si existe):
sudo nmcli connection delete "Wired connection 1" # Reemplaza con el nombre real
  1. Crear una nueva conexión estática:
sudo nmcli connection add type ethernet con-name "Mi Conexión Estática" ifname enp0s3 ipv4.method manual ipv4.addresses 192.168.1.101/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8,8.8.4.4"
  1. Activar la conexión:
sudo nmcli connection up "Mi Conexión Estática"

🔄 Configuración de DHCP con nmcli

Para configurar una interfaz para usar DHCP (es la configuración por defecto, pero así se haría explícitamente):

  1. Eliminar la conexión existente (si existe).
  2. Crear una nueva conexión DHCP:
sudo nmcli connection add type ethernet con-name "Mi Conexión DHCP" ifname enp0s3 ipv4.method auto
  1. Activar la conexión:
sudo nmcli connection up "Mi Conexión DHCP"

🎨 nmtui: Interfaz de Usuario Textual

Para aquellos que prefieren una interfaz interactiva sin entorno gráfico, nmtui es una excelente opción. Abre una interfaz de texto en la terminal:

sudo nmtui

Aquí puedes:

  • Editar una conexión: Selecciona una conexión existente y modifica sus parámetros (IP, DNS, gateway).
  • Añadir una nueva conexión: Crea una conexión desde cero.
  • Activar/desactivar una conexión: Controla qué conexiones están activas.
Inicio Editar Configuración Archivo Netplan / nmcli / nmtui Validar Configuración netplan try / nmcli check Aplicar Cambios netplan apply / nmcli up Verificar Conectividad ping / ip a / ip route

🔍 Diagnóstico y Resolución de Problemas de Red

Cuando la red no funciona como esperas, es crucial saber cómo diagnosticar el problema. Aquí te presentamos algunas herramientas y pasos comunes.

✅ Verificar el Estado de las Interfaces

El primer paso es siempre verificar si tus interfaces están "levantadas" y tienen la configuración IP esperada.

ip a

Busca el estado UP y la dirección IP correcta. Si una interfaz está DOWN, puedes intentar levantarla:

sudo ip link set enp0s3 up

🌐 Probar la Conectividad

Utiliza ping para probar la conectividad a diferentes puntos de la red.

  1. Ping a ti mismo (loopback): Verifica la pila TCP/IP local.
ping 127.0.0.1
  1. Ping a tu gateway: Verifica la conectividad dentro de tu red local hasta el router.
ping 192.168.1.1 # Reemplaza con tu gateway
  1. Ping a un servidor externo por IP: Verifica la conectividad a Internet sin involucrar la resolución DNS.
ping 8.8.8.8 # Servidor DNS de Google
  1. Ping a un sitio web por nombre: Verifica la conectividad a Internet y la resolución DNS.
ping google.com
🔥 Importante: Si `ping` a `8.8.8.8` funciona pero a `google.com` no, el problema es probablemente de DNS.

🛣️ Verificar Tablas de Enrutamiento

Si no puedes llegar a destinos fuera de tu red local, revisa tu tabla de enrutamiento.

ip r

Busca una ruta por defecto (default via ...). Si no está presente o apunta a una IP incorrecta, tu sistema no sabrá cómo enviar tráfico fuera de tu red local.

🕵️‍♀️ Verificar Configuración DNS

Si la resolución de nombres falla (ej. ping google.com no funciona pero ping 8.8.8.8 sí), revisa la configuración de tus servidores DNS.

  • Para systemd-resolved (común en Ubuntu):
systemd-resolve --status
  • Archivo resolv.conf (tradicional):
cat /etc/resolv.conf
Asegúrate de que las IPs de los servidores de nombres sean correctas y accesibles.

🔗 Verificar el Estado del Servicio (netplan/NetworkManager)

Si la configuración no se aplica o parece haber problemas con el servicio:

  • Para netplan (usa systemd-networkd):
systemctl status systemd-networkd
journalctl -u systemd-networkd
  • Para NetworkManager:
systemctl status NetworkManager
journalctl -u NetworkManager

Busca errores en los logs. A veces, reiniciar el servicio puede ayudar:

sudo systemctl restart systemd-networkd # o NetworkManager

📊 Tabla de Herramientas de Diagnóstico Comunes

HerramientaPropósitoEjemplo de Uso
ip aMostrar configuración de interfacesip a
pingProbar conectividad a un host IP o nombreping google.com
ip rMostrar tabla de enrutamientoip r
traceroute/mtrTrazar ruta a un destino, identificar cuellos de botellatraceroute google.com
netstat -tunlpMostrar puertos abiertos y conexiones activasnetstat -tunlp
ss -tunlpMás moderno que netstatss -tunlp
dig/nslookupConsultar servidores DNSdig google.com
journalctlVer logs del sistema/serviciosjournalctl -u NetworkManager
💡 Consejo: Usa `mtr` (My Traceroute) para un análisis continuo de la latencia y pérdida de paquetes a un destino. Es una combinación de `ping` y `traceroute`.

🔒 Consideraciones de Seguridad

Una configuración de red adecuada también implica seguridad. Asegúrate de:

  • Configurar un firewall: Utiliza ufw (Uncomplicated Firewall) o firewalld para controlar el tráfico entrante y saliente. Permite solo el tráfico necesario.
  • Deshabilitar servicios innecesarios: Reduce la superficie de ataque.
  • Actualizar tu sistema: Mantén el sistema operativo y todos los paquetes actualizados para protegerte contra vulnerabilidades conocidas.
90% Completado

🎯 Conclusión

La gestión de redes en Linux es un campo amplio, pero dominar herramientas como netplan y NetworkManager te proporciona un control robusto sobre la conectividad de tus sistemas. Ya sea que estés administrando un servidor sin cabeza con netplan o una estación de trabajo de escritorio con NetworkManager, la comprensión de estas herramientas y los principios básicos de diagnóstico de red son esenciales para mantener tus sistemas conectados y funcionando sin problemas.

Recuerda practicar con máquinas virtuales para experimentar sin afectar tus sistemas de producción. ¡La experiencia es la mejor maestra en la administración de redes!

Preguntas Frecuentes (FAQ)

P: ¿Puedo usar netplan y NetworkManager al mismo tiempo en la misma interfaz?

R: No es recomendable. netplan usa renderizadores como systemd-networkd o NetworkManager. Si configuras una interfaz con netplan y eliges renderer: networkd, NetworkManager no debe intentar gestionarla. Si eliges renderer: NetworkManager, entonces NetworkManager será el encargado final. Lo ideal es elegir uno u otro para evitar conflictos.

P: ¿Qué pasa si mis cambios de netplan me dejan sin conectividad?

R: Usa sudo netplan try primero. Si pierdes la conectividad, simplemente espera 120 segundos y los cambios se revertirán automáticamente. Si ya usaste apply y perdiste la conectividad, puedes intentar reiniciar el servicio systemd-networkd o NetworkManager o arrancar en modo de recuperación para editar el archivo YAML manualmente.

P: ¿Cómo puedo hacer un backup de mi configuración de red?

R: Simplemente copia los archivos .yaml de /etc/netplan/ a un lugar seguro. Para NetworkManager, las configuraciones de conexión se almacenan en /etc/NetworkManager/system-connections/.

Tutoriales relacionados

Comentarios (0)

Aún no hay comentarios. ¡Sé el primero!