VLAN是Linux中实现网络流量逻辑隔离与分段的关键手段,需依次完成加载8021q模块、临时或永久创建VLAN子接口(ip命令/netscripts/Netplan)、并验证配置状态与标签行为。

如果您在Linux系统中需要实现网络流量的逻辑隔离与分段,VLAN(Virtual Local Area Network)是关键手段。以下是配置VLAN接口、划分虚拟子网并进行基础管理的具体操作步骤:
一、确认内核支持并加载8021q模块
VLAN功能依赖内核的802.1Q协议支持,需确保模块已加载。未启用时,VLAN子接口无法创建。
1、执行命令检查模块是否已加载:lsmod | grep 8021q。
2、若无输出,手动加载模块:sudo modprobe 8021q。
3、为保证重启后自动加载,将模块名写入配置文件:echo "8021q" | sudo tee -a /etc/modules。
二、使用ip命令临时创建VLAN子接口
该方法无需修改配置文件,适用于测试或临时部署,但系统重启后失效。
1、确定物理网卡名称,例如:ip link show,查得主接口为eth0。
2、为eth0添加VLAN ID 100的子接口:sudo ip link add link eth0 name eth0.100 type vlan id 100。
3、为新接口分配IP地址并启用:sudo ip addr add 192.168.100.10/24 dev eth0.100 && sudo ip link set eth0.100 up。
三、通过network-scripts永久配置VLAN(CentOS/RHEL系)
适用于使用传统network服务的发行版,配置文件位于/etc/sysconfig/network-scripts/目录下,重启网络服务后持续生效。
1、创建VLAN接口配置文件:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0.100。
2、写入以下内容:
DEVICE=eth0.100
BOOTPROTO=static
IPADDR=192.168.100.10
NETMASK=255.255.255.0
VLAN=yes
PHYSDEV=eth0
3、重启网络服务:sudo systemctl restart network。
四、使用Netplan永久配置VLAN(Ubuntu 18.04+及衍生版)
Netplan是现代Ubuntu默认的网络配置工具,通过YAML声明式配置管理物理与虚拟接口。
1、编辑主配置文件:sudo nano /etc/netplan/01-network-manager-all.yaml。
2、在ethernets节下添加VLAN定义,示例片段如下:
eth0:
match: {name: eth0}
set-name: eth0
vlans:
eth0.200:
id: 200
link: eth0
addresses: [192.168.200.5/24]
3、应用配置:sudo netplan apply。
五、验证VLAN配置与连通性
配置完成后,必须验证子接口状态、VLAN标签行为及跨VLAN通信限制是否符合预期。
1、查看所有接口及其VLAN属性:ip -d link show,注意输出中包含vlan protocol 802.1Q字段。
2、检查VLAN子接口是否UP且有正确IP:ip addr show eth0.100。
3、抓包验证VLAN Tag:在物理接口上运行sudo tcpdump -i eth0 -nn vlan 100,观察数据帧是否携带VLAN ID 100标签。










