Linux VLAN 配置详解
在现代网络架构中,虚拟局域网(VLAN)技术被广泛应用于网络分段、安全隔离和流量优化,Linux 作为服务器和网络设备的主流操作系统,提供了强大的 VLAN 支持能力,本文将详细介绍 Linux 系统中 VLAN 的配置方法,包括原理、工具、命令行操作及常见问题的解决方案。

VLAN 的基本概念与原理
VLAN 是一种将物理网络划分为多个逻辑网络的技术,允许在同一物理网络上创建多个独立的广播域,通过 VLAN,可以将不同部门、不同功能或不同安全级别的设备隔离开,从而提高网络的安全性和管理效率,在 Linux 中,VLAN 的实现依赖于 802.1Q 协议,该协议通过在以太网帧中添加 4 字节的标签(Tag)来标识 VLAN ID(VID),范围从 1 到 4094。
环境准备与前提条件
在配置 Linux VLAN 之前,需确保以下条件满足:
- 内核支持:现代 Linux 内核(如 2.4.14+)已内置 VLAN 支持,通常无需额外加载模块,可通过命令
modprobe 8021q检查或加载模块,或查看/proc/net/vlan/config确认是否支持。 - 工具安装:推荐使用
iproute2工具包(提供ip命令)或vconfig(传统工具),在 Debian/Ubuntu 系统中可通过apt install iproute2安装,在 RHEL/CentOS 系统中可通过yum install iproute安装。 - 权限要求:VLAN 配置需要 root 权限,建议使用
sudo或直接以 root 用户操作。
使用 iproute2 配置 VLAN
iproute2 是目前 Linux 系统中推荐的网络配置工具,功能强大且灵活,以下为基本配置步骤:
创建 VLAN 接口
假设物理网卡为 eth0,需创建 VLAN ID 为 10 的子接口,命令如下:
ip link add link eth0 name eth0.10 type vlan id 10
link eth0:指定物理网卡作为父接口。name eth0.10:自定义 VLAN 接口名称,通常采用父接口.VLAN_ID格式。type vlan id 10:指定 VLAN 类型及 ID。
配置 IP 地址与启用接口
为 VLAN 接口分配 IP 地址并启用:
ip addr add 192.168.10.1/24 dev eth0.10 ip link set eth0.10 up
查看 VLAN 状态
使用以下命令验证 VLAN 接口是否创建成功:
ip link show eth0.10
输出中应包含 vlan 标识及当前状态(如 UP)。

删除 VLAN 接口
如需删除 VLAN 接口,执行:
ip link del eth0.10
使用 vconfig 配置 VLAN(传统方法)
vconfig 是较早的 VLAN 配置工具,仍在部分系统中使用,基本操作如下:
创建 VLAN 接口
vconfig add eth0 10
此命令会自动创建名为 eth0.10 的 VLAN 接口。
配置 IP 地址与启用接口
ifconfig eth0.10 192.168.10.1 netmask 255.255.255.0 up
查看 VLAN 信息
vconfig rem eth0.10 # 删除 VLAN 接口
永久配置 VLAN
上述命令为临时配置,重启后会失效,为实现持久化,需根据系统类型修改配置文件:
Debian/Ubuntu 系统(Netplan)
在 /etc/netplan/ 目录下的配置文件中添加:
network:
version: 2
ethernets:
eth0:
dhcp4: no
vlans:
eth0.10:
id: 10
link: eth0
addresses: [192.168.10.1/24]
执行 netplan apply 生效。
RHEL/CentOS 系统(NetworkManager)
创建 /etc/sysconfig/network-scripts/ifcfg-eth0.10 文件:

DEVICE=eth0.10 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.10.1 NETMASK=255.255.255.0 VLAN=yes PHYSDEV=eth0
重启网络服务:systemctl restart network。
RHEL/CentOS 系统(nmcli)
使用 NetworkManager 的命令行工具:
nmcli con add type vlan con-name vlan10 dev eth0 id 10 nmcli con mod vlan10 ipv4.method manual ipv4.addresses 192.168.10.1/24 nmcli con up vlan10
VLAN 配置的高级应用
跨交换机的 VLAN 通信
若需实现跨交换机的 VLAN 通信,需在交换机上配置 Trunk(中继)模式,允许特定 VLAN 的流量通过,在 Linux 端,需将物理接口设置为 Trunk 模式:
ip link set eth0 up ip link add link eth0 name eth0-trunk type vlan proto 802.1Q
VLAN 间路由
通过配置 Linux 作为路由器,可实现不同 VLAN 之间的路由,为 VLAN 10(192.168.10.0/24)和 VLAN 20(192.168.20.0/24)配置路由:
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A FORWARD -i eth0.10 -o eth0.20 -j ACCEPT iptables -A FORWARD -i eth0.20 -o eth0.10 -j ACCEPT
VLAN 与 bonding 结合
在高可用场景中,可将 VLAN 与网卡绑定(bonding)结合使用,提高网络冗余性:
modprobe bonding ip link add bond0 type bond mode active-backup ip link set eth0 master bond0 ip link set eth1 master bond0 ip link add link bond0 name bond0.10 type vlan id 10
常见问题与解决方案
- VLAN 接口无法创建:检查物理网卡是否启用,内核是否加载 8021q 模块(
lsmod | grep 8021q)。 - VLAN 间无法通信:确认 IP 路由是否开启(
cat /proc/sys/net/ipv4/ip_forward),防火墙规则是否阻止流量。 - Trunk 模式配置失败:确保交换机端口允许所有 VLAN 或指定 VLAN 通过,并检查 Linux 端口的链路状态。
Linux 系统中的 VLAN 配置是网络管理的重要技能,通过 iproute2 或传统工具可灵活实现网络分段与隔离,无论是临时配置还是持久化方案,均需根据实际需求选择合适的方法,结合高级功能如跨交换机通信、VLAN 间路由和 bonding,可构建高效、安全的网络架构,掌握这些技术,将有助于提升 Linux 系统在网络运维中的实用性和可靠性。















