在Linux系统中配置VLAN(虚拟局域网)是一项重要的网络管理技能,它能够将物理网络划分为多个逻辑子网,提升网络性能和安全性,本文将详细介绍在Linux环境下配置VLAN的多种方法,包括通过命令行工具和配置文件进行操作,并涵盖常见问题的解决方案。

VLAN配置基础概念
VLAN技术通过在以太网帧中添加802.1Q标签,实现同一物理设备上的逻辑网络隔离,在Linux中,VLAN配置通常依赖于内核模块8021q,该模块默认已包含在大多数发行版中,配置VLAN前,需确保系统已安装必要的工具包,如Ubuntu/Debian系统的vlan包或RHEL/CentOS系统的net-tools。
使用iproute2工具配置VLAN
iproute2是Linux下现代网络管理的主流工具,取代了传统的ifconfig命令,以下是通过ip命令配置VLAN的步骤:
-
加载VLAN模块
执行modprobe 8021q命令加载VLAN内核模块,并通过lsmod | grep 8021q验证是否加载成功。 -
创建VLAN接口
假设物理网卡为eth0,需创建VLAN ID为100的子接口,命令为:
ip link add link eth0 name eth0.100 type vlan id 100
此命令会在eth0上生成eth0.100虚拟接口。 -
配置IP地址
为VLAN接口分配IP地址,
ip addr add 192.168.100.1/24 dev eth0.100 -
启用接口
使用以下命令激活接口:
ip link set eth0.100 up
ip link set eth0 up(确保物理接口已启动) -
查看VLAN配置
通过ip addr show eth0.100或ip link show查看接口状态,确认VLAN是否生效。
通过配置文件实现持久化设置
虽然命令行配置便捷,但重启后会失效,以下是不同发行版的持久化配置方法:

Ubuntu/Debian(Netplan)
在/etc/netplan/目录下的配置文件(如01-netcfg.yaml)中添加:
network:
version: 2
ethernets:
eth0:
dhcp4: no
vlans:
eth0.100:
id: 100
link: eth0
addresses: [192.168.100.1/24]
gateway4: 192.168.100.254
执行netplan apply使配置生效。
RHEL/CentOS(NetworkManager)
使用nmtui或直接编辑/etc/sysconfig/network-scripts/目录下的配置文件,创建ifcfg-eth0.100:
DEVICE=eth0.100
BOOTPROTO=static
IPADDR=192.168.100.1
PREFIX=24
VLAN=yes
PHYSDEV=eth0
ONBOOT=yes
重启网络服务或执行ifup eth0.100激活接口。
Arch Linux(systemd-networkd)
在/etc/systemd/network/目录下创建配置文件,如eth0.net:
[Match]
Name=eth0
[Network]
VLAN=eth0.100
[VLAN]
Id=100
另创建eth0.100.net:
[Match]
Name=eth0.100
[Network]
Address=192.168.100.1/24
Gateway=192.168.100.254
启用并启动systemd-networkd服务。
VLAN配置的高级应用
-
Trunk模式配置
Trunk模式允许单个物理接口传输多个VLAN流量,在Linux中,需确保物理接口未配置IP地址,并允许特定VLAN通过:
ip link add link eth0 name eth0-trunk type vlan trunk vid 100,200
此命令创建允许VLAN 100和200通过的Trunk接口。
-
VLAN桥接
若需将VLAN接口接入网桥(如Kubernetes或虚拟化场景),可使用bridge-utils工具:brctl addbr br0 ip link set eth0 up ip link add link eth0 name eth0.100 type vlan id 100 brctl addif br0 eth0.100 ip link set br0 up
常见问题与解决方案
-
VLAN接口无法创建
检查8021q模块是否加载(modprobe 8021q),并确认物理网卡驱动支持VLAN。 -
网络服务重启后配置丢失
确保配置文件路径正确,并检查服务是否设置为开机自启(如systemctl enable systemd-networkd)。 -
VLAN间无法通信
验证交换机端口是否配置为Trunk模式,并检查防火墙规则(如iptables)是否阻止了跨VLAN流量。
Linux下的VLAN配置灵活多样,无论是通过iproute2命令行工具还是配置文件,均可实现高效的网络隔离与管理,掌握基础配置方法后,可根据实际需求扩展至Trunk、桥接等高级场景,建议在生产环境中优先采用持久化配置文件,并结合日志工具(如journalctl)排查问题,以确保网络稳定运行,通过合理规划VLAN,企业能够有效提升网络安全性与资源利用率,为复杂的业务需求提供可靠支撑。
















