VLAN 网络隔离配置教程

VLAN(Virtual Local Area Network,虚拟局域网)是一种在同一物理网络上创建多个逻辑隔离网络的技术。通过 VLAN 可以将不同的服务或用户划分到不同的广播域中,提升安全性并优化网络性能。在 Linux 系统中,VLAN 基于 IEEE 802.1Q 标准实现,本文将详细介绍如何在 Linux 服务器上配置 VLAN 实现网络隔离。

一、VLAN 基本概念

  • VLAN ID:范围 1-4094,用于标识不同的虚拟局域网。
  • 802.1Q 标签:在以太网帧中插入 4 字节的 VLAN 标签,标识数据包所属的 VLAN。
  • Trunk 端口:允许多个 VLAN 的数据包通过的端口,数据包带有 VLAN 标签。
  • Access 端口:只属于一个 VLAN 的端口,数据包不带标签。
  • Native VLAN:Trunk 端口上不带标签的数据包所属的 VLAN。

二、加载 802.1Q 模块

modprobe 8021q
echo "8021q" >> /etc/modules-load.d/8021q.conf

安装 VLAN 工具包:

apt install vlan -y

三、使用 ip 命令配置 VLAN

3.1 创建 VLAN 接口

# 在 eth0 上创建 VLAN 10
ip link add link eth0 name eth0.10 type vlan id 10
ip addr add 192.168.10.1/24 dev eth0.10
ip link set eth0.10 up

# 在 eth0 上创建 VLAN 20
ip link add link eth0 name eth0.20 type vlan id 20
ip addr add 192.168.20.1/24 dev eth0.20
ip link set eth0.20 up

3.2 查看 VLAN 信息

cat /proc/net/vlan/config
ip -d link show eth0.10

3.3 删除 VLAN 接口

ip link delete eth0.10

四、使用 Netplan 持久化配置(Ubuntu)

cat > /etc/netplan/02-vlans.yaml <<EOF
network:
  version: 2
  vlans:
    vlan10:
      id: 10
      link: eth0
      addresses:
        - 192.168.10.1/24
    vlan20:
      id: 20
      link: eth0
      addresses:
        - 192.168.20.1/24
    vlan30:
      id: 30
      link: eth0
      addresses:
        - 192.168.30.1/24
EOF

netplan apply

五、使用 NetworkManager 配置(CentOS)

# 创建 VLAN 10
nmcli con add type vlan con-name vlan10 dev eth0 id 10 \
  ipv4.addresses "192.168.10.1/24" ipv4.method manual

# 创建 VLAN 20
nmcli con add type vlan con-name vlan20 dev eth0 id 20 \
  ipv4.addresses "192.168.20.1/24" ipv4.method manual

# 启用
nmcli con up vlan10
nmcli con up vlan20

六、跨 VLAN 路由

不同 VLAN 之间默认不能通信。如果需要跨 VLAN 路由,需要在 Linux 服务器上启用路由功能:

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

此时 Linux 服务器充当路由器角色,不同 VLAN 的设备通过它进行通信。可以配合 iptables 规则控制跨 VLAN 的访问策略:

# 允许 VLAN10 访问 VLAN20
iptables -A FORWARD -i eth0.10 -o eth0.20 -j ACCEPT
iptables -A FORWARD -i eth0.20 -o eth0.10 -m state --state ESTABLISHED,RELATED -j ACCEPT

# 禁止 VLAN30 访问其他 VLAN
iptables -A FORWARD -i eth0.30 -j DROP

七、VLAN 与 Docker 集成

Docker 可以直接使用 VLAN 网络,通过 macvlan 驱动实现:

docker network create -d macvlan \
  --subnet=192.168.10.0/24 \
  --gateway=192.168.10.1 \
  -o parent=eth0.10 \
  vlan10_net

这样容器可以直接获得 VLAN 10 网段的 IP 地址,如同物理设备一样接入网络。

八、VLAN 网络隔离策略

典型的 VLAN 隔离方案:

  • VLAN 10 - 管理网络:SSH 访问、监控系统。
  • VLAN 20 - Web 服务:Nginx、Apache 等前端服务。
  • VLAN 30 - 数据库网络:MySQL、PostgreSQL,仅允许 VLAN 20 访问。
  • VLAN 40 - 存储网络:NFS、iSCSI 等存储流量。

九、验证和排查

# 查看所有 VLAN 接口
ip -d link show type vlan

# 抓包查看 VLAN 标签
tcpdump -i eth0 -e -nn vlan

# 查看 VLAN 统计
cat /proc/net/vlan/eth0.10

十、常见问题

VLAN 接口无法通信

确认物理网卡连接的交换机端口已配置为 Trunk 模式,且允许对应的 VLAN ID 通过。

MTU 问题

802.1Q 标签会增加 4 字节帧头,如果遇到 MTU 问题,需要将物理网卡的 MTU 设置为 1504:

ip link set eth0 mtu 1504

总结

VLAN 是网络安全隔离的基础技术,通过合理的 VLAN 划分可以有效控制网络访问和广播域范围。在搬瓦工 VPS 上学习和实践 VLAN 技术,对于理解企业网络架构非常有帮助。配合 iptables 防火墙规则 可以实现更精细的跨 VLAN 访问控制。购买搬瓦工 VPS 请查看 全部方案,使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买链接:bwh81.net

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。