Conexión de servidores a una VLAN
Esta guía explica cómo configurar VLAN en servidores Linux para aislar y controlar el tráfico de red. Los pasos siguientes cubren Ubuntu 22.04, Debian 11 y AlmaLinux 9 / Rocky Linux 9.
Antes de configurar las VLAN en el servidor, asegúrese de que el puerto del switch esté configurado correctamente. Para las VLAN etiquetadas, el puerto del switch debe permitir los ID de VLAN necesarios. Para el tráfico sin etiquetar, el puerto debe estar en modo de acceso y tener asignada la VLAN correspondiente.
Comprobar el módulo del kernel 8021q
En todas las distribuciones, compruebe que el módulo del kernel 8021q esté cargado antes de configurar las VLAN:
lsmod | grep 8021q
Si el módulo no está cargado, ejecute:
sudo modprobe 8021q
Para hacerlo permanente, añada el módulo a /etc/modules:
echo "8021q" | sudo tee -a /etc/modules
Ubuntu 22.04
Ubuntu 22.04 utiliza netplan para la configuración de red.
Identificar la interfaz de red
Ejecute el siguiente comando para encontrar el nombre de la interfaz:
ip link show
En los ejemplos siguientes, la interfaz es enp0s8.
Configurar la red para un puerto de acceso sin etiquetar
Esta sección explica cómo asignar una dirección IP estática directamente a la interfaz física, sin crear una subinterfaz VLAN.
Abra el archivo de configuración de netplan:
sudo nano /etc/netplan/*.yaml
Añada la siguiente configuración. Utilice direcciones IP diferentes en cada servidor:
Servidor 1:
network: version: 2 ethernets: enp0s8: dhcp4: no addresses: - 192.168.1.1/24 routes: - to: default via: 192.168.1.254
Servidor 2:
network: version: 2 ethernets: enp0s8: dhcp4: no addresses: - 192.168.1.2/24 routes: - to: default via: 192.168.1.254
El parámetro gateway4 está obsoleto desde netplan 0.100 y generará una advertencia. Utilice routes: como se muestra arriba.
Pruebe la configuración antes de aplicarla. El comando espera hasta 120 segundos para recibir una confirmación y revierte automáticamente los cambios si no se confirman, lo que resulta útil en servidores remotos:
sudo netplan try
Si la configuración es válida, aplíquela:
sudo netplan apply
Compruebe que la dirección se haya asignado:
ip addr show enp0s8
Configurar VLAN etiquetadas
Abra el archivo de configuración de netplan y añada las interfaces VLAN. Utilice direcciones IP diferentes para cada servidor en cada VLAN:
Servidor 1:
network: version: 2 ethernets: enp0s8: dhcp4: no vlans: vlan10: id: 10 link: enp0s8 addresses: - 192.168.10.1/24 vlan20: id: 20 link: enp0s8 addresses: - 192.168.20.1/24
Servidor 2:
network: version: 2 ethernets: enp0s8: dhcp4: no vlans: vlan10: id: 10 link: enp0s8 addresses: - 192.168.10.2/24 vlan20: id: 20 link: enp0s8 addresses: - 192.168.20.2/24
El uso de direcciones IP duplicadas provocará un conflicto. Cada servidor debe tener una dirección IP única en cada VLAN.
Normalmente, solo una interfaz VLAN debe tener una puerta de enlace predeterminada. Asignar una puerta de enlace a varias interfaces VLAN puede provocar problemas de enrutamiento, a menos que se haya configurado un enrutamiento avanzado.
Pruebe y aplique la configuración:
sudo netplan try sudo netplan apply
Compruebe el resultado:
ip addr
Para verificar que el etiquetado VLAN funciona correctamente:
ip -d link show vlan10 ip -d link show vlan20
Compruebe la conectividad:
ping 192.168.10.2 ping 192.168.20.2
Debian 11
Debian 11 utiliza el archivo /etc/network/interfaces para la configuración de red.
Instalar el paquete vlan
En una instalación limpia de Debian, instale el paquete vlan antes de configurar las interfaces VLAN:
sudo apt update sudo apt install vlan
Identificar la interfaz de red
ip link show
En los ejemplos siguientes, la interfaz es enp0s8.
Configurar la red para un puerto de acceso sin etiquetar
Esta sección explica cómo asignar una dirección IP estática directamente a la interfaz física, sin crear una subinterfaz VLAN.
Añada lo siguiente a /etc/network/interfaces en cada servidor.
El comando ip addr add asigna una dirección temporalmente y no sobrevivirá a un reinicio. Utilice la configuración persistente siguiente para hacerla permanente.
Servidor 1:
auto enp0s8 iface enp0s8 inet static address 192.168.1.1/24 gateway 192.168.1.254
Servidor 2:
auto enp0s8 iface enp0s8 inet static address 192.168.1.2/24 gateway 192.168.1.254
Aplique la configuración sin reiniciar:
sudo systemctl restart networking
Compruebe que la dirección está activa:
ip addr
Compruebe que los servidores pueden comunicarse entre sí:
ping 192.168.1.2
Configurar VLAN etiquetadas
Añada las interfaces VLAN a /etc/network/interfaces en cada servidor. Utilice direcciones IP diferentes para cada servidor en cada VLAN.
Servidor 1:
auto enp0s8.10 iface enp0s8.10 inet static address 192.168.10.1/24 gateway 192.168.10.254 auto enp0s8.20 iface enp0s8.20 inet static address 192.168.20.1/24
Servidor 2:
auto enp0s8.10 iface enp0s8.10 inet static address 192.168.10.2/24 gateway 192.168.10.254 auto enp0s8.20 iface enp0s8.20 inet static address 192.168.20.2/24
Aplique la configuración:
Reiniciar el servicio de red en un servidor remoto puede interrumpir la sesión SSH actual.
sudo systemctl restart networking
Compruebe el resultado:
ip addr
Para verificar que el etiquetado VLAN funciona correctamente:
ip -d link show enp0s8.10 ip -d link show enp0s8.20
Compruebe la conectividad:
ping 192.168.10.2 ping 192.168.20.2
AlmaLinux 9 / Rocky Linux 9
AlmaLinux 9 y Rocky Linux 9 utilizan NetworkManager para la configuración de red. La herramienta recomendada para gestionar las conexiones es nmcli. El método antiguo mediante /etc/sysconfig/network-scripts/ no es compatible con las distribuciones basadas en RHEL 9.
Identificar la interfaz de red
nmcli device status
En los ejemplos siguientes, la interfaz es enp0s8.
Comprobar las conexiones existentes
Antes de añadir una nueva conexión, compruebe si ya existe un perfil de conexión para la interfaz:
nmcli connection show
Si existe un perfil activo en enp0s8, elimínelo para evitar conflictos. Utilice el nombre del perfil exactamente como aparece en la salida anterior. Omita este paso si el perfil existente fue creado por su proveedor de alojamiento o por cloud-init:
nmcli connection delete "Wired connection 1"
Configurar la red para un puerto de acceso sin etiquetar
Asigne una dirección IP estática a la interfaz física.
Servidor 1:
nmcli connection add type ethernet con-name "enp0s8-primary" ifname enp0s8 \ ipv4.method manual ipv4.addresses 192.168.1.1/24 \ ipv4.gateway 192.168.1.254 \ connection.autoconnect yes nmcli connection up enp0s8-primary
Servidor 2:
nmcli connection add type ethernet con-name "enp0s8-primary" ifname enp0s8 \ ipv4.method manual ipv4.addresses 192.168.1.2/24 \ ipv4.gateway 192.168.1.254 \ connection.autoconnect yes nmcli connection up enp0s8-primary
Compruebe que la dirección se haya asignado:
ip addr show enp0s8
Compruebe la conectividad entre los servidores:
ping 192.168.1.2
Configurar VLAN etiquetadas
Cree una interfaz VLAN sobre la interfaz física. Utilice direcciones IP diferentes en cada servidor para cada VLAN.
Servidor 1:
nmcli connection add type vlan con-name vlan10 ifname enp0s8.10 \ vlan.parent enp0s8 vlan.id 10 \ ipv4.method manual ipv4.addresses 192.168.10.1/24 \ connection.autoconnect yes nmcli connection add type vlan con-name vlan20 ifname enp0s8.20 vlan.parent enp0s8 vlan.id 20 ipv4.method manual ipv4.addresses 192.168.20.1/24 connection.autoconnect yes nmcli connection up vlan10 nmcli connection up vlan20
Servidor 2:
nmcli connection add type vlan con-name vlan10 ifname enp0s8.10 \ vlan.parent enp0s8 vlan.id 10 \ ipv4.method manual ipv4.addresses 192.168.10.2/24 \ connection.autoconnect yes nmcli connection add type vlan con-name vlan20 ifname enp0s8.20 vlan.parent enp0s8 vlan.id 20 ipv4.method manual ipv4.addresses 192.168.20.2/24 connection.autoconnect yes nmcli connection up vlan10 nmcli connection up vlan20
El uso de direcciones IP duplicadas provocará un conflicto. Cada servidor debe tener una dirección IP única en cada VLAN.
Compruebe el resultado:
ip addr
Para verificar que el etiquetado VLAN funciona correctamente:
ip -d link show enp0s8.10 ip -d link show enp0s8.20
Compruebe la conectividad:
ping 192.168.10.2 ping 192.168.20.2
Solución de problemas
Si las interfaces VLAN no aparecen o no reciben tráfico:
- compruebe que el puerto del switch permita los ID de VLAN necesarios;
- confirme que el vSwitch o el grupo de puertos del hipervisor esté configurado para permitir el paso de etiquetas VLAN;
- asegúrese de que la interfaz principal correcta esté especificada en la configuración;
- verifique que el módulo del kernel 8021q esté cargado: lsmod | grep 8021q.