首先加载8021q内核模块并验证,安装vlan工具包,使用ip命令创建VLAN子接口并配置IP,通过Netplan持久化设置,最后将交换机端口配置为Trunk模式以实现Linux系统中的VLAN网络分段。

如果您需要在Linux系统中实现网络分段以提高安全性和管理效率,但物理交换机配置受限或无法满足需求,可以通过软件方式配置VLAN虚拟局域网。以下是基于Linux操作系统在服务器与支持VLAN的交换机环境下实现VLAN的具体步骤。
本文运行环境:Dell PowerEdge R750,Ubuntu 22.04 LTS
一、加载VLAN内核模块
Linux系统需启用802.1Q协议支持才能处理VLAN标签数据包。该功能由内核模块`8021q`提供,必须确保其已加载。
1、打开终端并执行命令 sudo modprobe 8021q 加载VLAN模块。
2、通过命令 lsmod | grep 8021q 验证模块是否成功加载,若输出包含模块名称则表示启用成功。
3、为使模块在系统重启后自动加载,将 8021q 添加至 /etc/modules 文件末尾。
二、安装VLAN配置工具
部分Linux发行版默认未安装VLAN管理工具,需手动安装vconfig或使用现代替代方案如ip命令结合内核支持。
1、执行命令 sudo apt update 更新软件包索引。
2、运行 sudo apt install vlan 安装VLAN用户空间工具包。
3、确认安装完成后,可通过 vconfig --version 检查工具可用性。
三、创建VLAN子接口
通过在物理网卡上创建带VLAN ID的子接口,可实现同一物理链路上传输多个逻辑网络的数据流。
1、假设主网卡为 enp3s0,需创建ID为10的VLAN接口,执行命令:sudo ip link add link enp3s0 name enp3s0.10 type vlan id 10。
2、启用新创建的VLAN接口,使用命令 sudo ip link set dev enp3s0.10 up。
3、重复上述步骤可为其他VLAN ID(如20、30)创建对应子接口。
四、配置VLAN接口IP地址
每个VLAN子接口需分配独立的IP地址以参与通信,地址应属于对应VLAN的子网范围。
1、为接口 enp3s0.10 分配IP地址,执行命令:sudo ip addr add 192.168.10.5/24 dev enp3s0.10。
2、验证地址是否正确绑定,运行 ip addr show enp3s0.10 查看输出结果。
3、如需设置IPv6地址,使用类似格式添加,例如:sudo ip addr add 2001:db8:10::5/64 dev enp3s0.10。
五、持久化VLAN配置
临时配置在系统重启后会丢失,需将设置写入网络配置文件以实现开机自动生效。
1、编辑Netplan配置文件,路径通常为 /etc/netplan/01-network-manager-all.yaml 或类似名称。
2、在文件中添加vlan接口定义,包含match(匹配主接口)、vid(VLAN ID)和link(父接口名称)等参数。
3、保存后运行 sudo netplan apply 应用更改,并检查接口状态确保配置生效。
六、配置交换机端口为Trunk模式
Linux主机发送和接收带标签的VLAN帧时,连接的交换机端口必须配置为Trunk模式以允许多个VLAN通过。
1、登录到交换机管理界面,定位连接Linux服务器的物理端口。
2、将该端口模式从Access改为 Trunk,并允许所需VLAN ID通过(如10,20,30)。
3、确保Trunk端口的PVID(本征VLAN)与Linux未标记流量一致,避免通信异常。










