Configuración de VLANs en Linux.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org

Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.

Introducción.

Una VLAN (acrónimo de Virtual LAN o Red de Área Local Virtual) constituye un método para crear redes lógicamente independientes dentro de una misma infraestructura física de red. La implementación de varias VLANs en un único conmutador o red física resulta sumamente útil para reducir el dominio de difusión, mejorar la administración y separar segmentos lógicos de red, impidiendo el intercambio directo de datos entre ellos.

Su implementación requiere disponer de conmutadores (switches) con capacidad para el protocolo IEEE 802.1Q (también conocido como dot1q), los cuales deben estar configurados previamente. Asimismo, es fundamental comprender los conceptos de direccionamiento IP versión 4.

Equipamiento lógico (software) necesario.

El soporte fundamental para configurar VLANs en el núcleo (kernel) de Linux se incluye en el paquete iproute, presente por defecto en todas las instalaciones modernas.

Nota sobre contenidos de certificación: Los exámenes de certificación LPIC y similares suelen evaluar el conocimiento de herramientas de red heredadas, asumiendo un entorno agnóstico respecto a la presencia de gestores de red como NetworkManager o ConnMan. Por esta razón, y con fines exclusivamente pedagógicos, este manual también menciona los paquetes net-tools y vconfig. En sistemas actuales con NetworkManager (como ALDOS, RHEL 8/9 o derivados), estos paquetes son innecesarios para la configuración práctica y permanente de VLANs.

Para instalar estas herramientas heredadas, puede ejecutar:

# En AlmaLinux, Rocky Linux, RHEL y derivados
dnf -y install net-tools vconfig

# En ALDOS
yum -y install net-tools vconfig

Procedimientos.

Esta sección presenta diferentes métodos para crear y gestionar interfaces de VLAN, desde configuraciones temporales para pruebas hasta configuraciones persistentes utilizando las herramientas recomendadas en sistemas modernos.

En todos los ejemplos de este manual se utiliza eth1 como nombre genérico para la interfaz de red física. Es fundamental que reemplace este nombre por el identificador real de su dispositivo de red (por ejemplo, enp3s0, ens192, eno1). Para aprender a identificar y nombrar correctamente las interfaces de red en su sistema, se recomienda consultar previamente el manual Configuración de red en Linux.

Configuración temporal con mandatos ip (ad-hoc).

El método más directo para crear una VLAN de prueba, cuyos efectos se perderán al reiniciar el sistema, utiliza los mandatos del paquete iproute.

La sintaxis general para crear, direccionar y activar una interfaz de VLAN temporal es la siguiente:

# Crear la interfaz virtual vinculada al dispositivo físico
ip link add link DISPOSITIVO_FISICO name DISPOSITIVO.VLAN_ID type vlan id VLAN_ID

# Asignar una dirección IP a la interfaz de VLAN
ip addr add DIRECCION_IP/PREFIJO_CIDR brd DIRECCION_BROADCAST dev DISPOSITIVO.VLAN_ID

# Activar la interfaz
ip link set dev DISPOSITIVO.VLAN_ID up

Ejemplo práctico: Suponiendo que la interfaz física es eth1 y se desean crear las VLANs con ID 2, 3 y 4, se ejecutarían los siguientes mandatos:

# VLAN ID 2
ip link add link eth1 name eth1.2 type vlan id 2
ip addr add 172.16.0.65/26 brd 172.16.0.127 dev eth1.2
ip link set dev eth1.2 up

# VLAN ID 3
ip link add link eth1 name eth1.3 type vlan id 3
ip addr add 172.16.0.129/26 brd 172.16.0.191 dev eth1.3
ip link set dev eth1.3 up

# VLAN ID 4
ip link add link eth1 name eth1.4 type vlan id 4
ip addr add 172.16.0.193/26 brd 172.16.0.255 dev eth1.4
ip link set dev eth1.4 up

Para eliminar una interfaz de VLAN creada de este modo, se debe desactivar primero y luego eliminar:

ip link set dev DISPOSITIVO.VLAN_ID down
ip link delete DISPOSITIVO.VLAN_ID

Ejemplos:

ip link set dev eth1.2 down
ip link delete eth1.2
ip link set dev eth1.3 down
ip link delete eth1.3
ip link set dev eth1.4 down
ip link delete eth1.4

Configuración persistente con NetworkManager (nmcli).

Para sistemas que utilizan NetworkManager (como ALDOS, Fedora, RHEL 8/9 y derivados), el método recomendado y más robusto para una configuración permanente es utilizar el cliente por línea de mandatos nmcli.

  1. Preparar la interfaz física: Asegúrese de que la interfaz base (ej: eth1) esté gestionada por NetworkManager pero sin una configuración IP que interfiera. Puede lograrlo editando su archivo de configuración en /etc/sysconfig/network-scripts/ifcfg-eth1 con un contenido similar al siguiente (ajustando la dirección MAC HWADDR):
    DEVICE=eth1
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    HWADDR=B4:2E:99:1E:01:7A
    NM_CONTROLLED=yes

    Luego, reinicie la conexión para aplicar los cambios:

    nmcli connection down eth1
    nmcli connection up eth1
  2. Crear la conexión de VLAN persistente: Utilice el mandato nmcli connection add con el tipo vlan. La sintaxis es:
    nmcli connection add type vlan con-name NOMBRE_CONEXION dev INTERFAZ_FISICA id VLAN_ID ip4 DIRECCION_IP/PREFIJO gw4 PUERTA_ENLACE

    Ejemplo para crear la VLAN 2 con IP 172.16.0.65/26 y puerta de enlace 172.16.0.65:

    nmcli connection add type vlan con-name eth1-vlan2 dev eth1 id 2 ip4 172.16.0.65/26 gw4 172.16.0.65

    Este mandato crea y activa automáticamente la conexión. Los perfiles se almacenan en /etc/NetworkManager/system-connections/ y persistirán tras reinicios.

Configuración persistente con archivos de Red Hat (ifcfg-*).

El método tradicional en distribuciones basadas en Red Hat utiliza archivos de configuración en el directorio /etc/sysconfig/network-scripts/. Aunque nmcli es el estándar actual, este método permanece válido y funcional.

Es necesario crear un archivo de configuración por cada VLAN, siguiendo la convención de nombres ifcfg-<interfaz_fisica>.<vlan_id>.

Recomendación importante: Evite utilizar la VLAN ID 1 (eth1.1), así como la dirección IP 172.16.0.1 y el segmento de red 172.16.0.0/26, ya que suelen estar reservados para la gestión interna de los conmutadores de red (switches).

A continuación, se muestran ejemplos para las VLANs 2, 3 y 4:

Archivo /etc/sysconfig/network-scripts/ifcfg-eth1.2:

DEVICE=eth1.2
NAME=eth1.2
TYPE=Vlan
PHYSDEV=eth1
VLAN=yes
VLAN_ID=2
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=yes
IPADDR=172.16.0.65
PREFIX=26
BROADCAST=172.16.0.127
NETWORK=172.16.0.64

Archivo /etc/sysconfig/network-scripts/ifcfg-eth1.3:

DEVICE=eth1.3
NAME=eth1.3
TYPE=Vlan
PHYSDEV=eth1
VLAN=yes
VLAN_ID=3
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=yes
IPADDR=172.16.0.129
PREFIX=26
BROADCAST=172.16.0.191
NETWORK=172.16.0.128

Archivo /etc/sysconfig/network-scripts/ifcfg-eth1.4:

DEVICE=eth1.4
NAME=eth1.4
TYPE=Vlan
PHYSDEV=eth1
VLAN=yes
VLAN_ID=4
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=yes
IPADDR=172.16.0.193
PREFIX=26
BROADCAST=172.16.0.255
NETWORK=172.16.0.192

Tras crear los archivos, active las nuevas interfaces de red. En sistemas con NetworkManager, utilice nmcli:

nmcli connection up eth1.2
nmcli connection up eth1.3
nmcli connection up eth1.4

Procedimientos de legado (vconfig e ifconfig).

⚠️ Nota de contexto: Los mandatos vconfig e ifconfig pertenecen a la pila de red heredada (net-tools). Su inclusión aquí responde únicamente a su presencia en los temarios de certificaciones profesionales como LPIC. Para configuraciones nuevas en sistemas modernos, se recomienda enfáticamente utilizar los métodos anteriores (ip o nmcli).

Creación de interfaces VLAN con vconfig:

vconfig add eth1 2
vconfig add eth1 3
vconfig add eth1 4

Asignación de direcciones IP con ifconfig:

ifconfig eth1.2 172.16.0.65 netmask 255.255.255.192
ifconfig eth1.3 172.16.0.129 netmask 255.255.255.192
ifconfig eth1.4 172.16.0.193 netmask 255.255.255.192

Eliminación de interfaces VLAN con vconfig:

vconfig rem eth1.2
vconfig rem eth1.3
vconfig rem eth1.4

Verificación con ifconfig:

La salida del mandato ifconfig mostrará las interfaces eth1.2, eth1.3 y eth1.4 activas y con sus direcciones IP asignadas.

Verificación de la configuración.

Independientemente del método utilizado, puede verificar el estado de todas las interfaces de red, incluidas las VLANs, con el mandato ip:

ip addr show

La salida mostrará las interfaces físicas y virtuales (eth1.2@eth1, eth1.3@eth1, etc.) con sus respectivas direcciones MAC e IP asignadas, confirmando que la configuración es operativa.

Administrando direcciones IP de las VLANs a través de un servidor DHCP.

Para simplificar la gestión en redes con múltiples estaciones de trabajo, resulta muy eficiente utilizar un servidor DHCP para asignar direcciones IP de manera automática en cada VLAN.

La configuración requiere definir una sección shared-network en el archivo /etc/dhcp/dhcpd.conf por cada VLAN, asegurando que los rangos de direcciones y opciones coincidan con la configuración de las interfaces mostrada anteriormente.

Ejemplo de configuración para las VLANs 2, 3 y 4 en /etc/dhcp/dhcpd.conf:

ddns-update-style interim;
ignore client-updates;
authoritative;
default-lease-time 900;
max-lease-time 7200;
option ip-forwarding off;
option domain-name "red-local.net";
option ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org;

shared-network vlan2 {
    subnet 172.16.0.64 netmask 255.255.255.192 {
        option routers 172.16.0.65;
        option subnet-mask 255.255.255.192;
        option broadcast-address 172.16.0.127;
        option domain-name-servers 172.16.0.65;
        option netbios-name-servers 172.16.0.65;
        range 172.16.0.66 172.16.0.126;
    }
}
shared-network vlan3 {
    subnet 172.16.0.128 netmask 255.255.255.192 {
        option routers 172.16.0.129;
        option subnet-mask 255.255.255.192;
        option broadcast-address 172.16.0.191;
        option domain-name-servers 172.16.0.192;
        option netbios-name-servers 172.16.0.192;
        range 172.16.0.130 172.16.0.190;
    }
}
shared-network vlan4 {
    subnet 172.16.0.192 netmask 255.255.255.192 {
        option routers 172.16.0.193;
        option subnet-mask 255.255.255.192;
        option broadcast-address 172.16.0.255;
        option domain-name-servers 172.16.0.193;
        option netbios-name-servers 172.16.0.193;
        range 172.16.0.194 172.16.0.254;
    }
}

Configuración específica para ALDOS (SysVinit): En distribuciones que utilizan SysVinit, como ALDOS, es necesario especificar las interfaces en las que el servidor DHCP escuchará. Edite el archivo /etc/sysconfig/dhcpd y defina la variable DHCPDARGS:

DHCPDARGS="eth1.2 eth1.3 eth1.4";

Inicio del servicio DHCP: Una vez configurados los archivos, inicie el servicio para aplicar los cambios.

Supervisión de asignaciones: Para observar en tiempo real las concesiones de direcciones IP que realiza el servidor, ejecute el siguiente mandato y conecte un cliente a cualquiera de las VLANs configuradas:

tail -f /var/log/messages | grep dhcp

Pulse CRTL + c para salir de tail.