网络与 IP

VLAN 划分方法:端口、MAC、协议与子网四种方式对比

VLAN 划分方法常说的有四种:按端口、按 MAC 地址、按协议类型、按 IP 子网,区别在于交换机依据什么判断一个帧属于哪个 VLAN。端口划分由管理员在交换机上决定,最稳定;另外三种跟着终端的属性走,更灵活,但终端改一下自己的 MAC 或 IP 就能换 VLAN。IDC 机房的服务器系统由客户掌控,所以几乎都按端口划分。

作者 顶联产品团队发布于 6 分钟阅读

VLAN 划分方法按“交换机凭什么决定一个帧属于哪个 VLAN”分成四种:基于端口,看帧从哪个端口进来;基于 MAC 地址,看帧的源 MAC;基于协议,看帧里的以太网类型字段;基于 IP 子网,看帧的源 IP 落在哪个网段。四种方法有一个共同前提:它们只对不带 VLAN 标签的帧起作用,帧本身带了 802.1Q 标签时,交换机直接按标签里的 VLAN 处理。下面先用一张表看清四种方法的原理,再逐个讲配置和优缺点,最后说明 IDC 机房为什么以端口划分为主。配置示例以华为 S 系列 V200R 版本为准,其他厂商关键字不同、思路相同,以手册为准。

四种划分方法一览

方法 交换机看什么 配置写在哪里 主机换到别的端口后 谁能改变归属 典型场景
基于端口 帧从哪个端口进来 每个端口的 PVID 归属新端口的 VLAN 只有交换机管理员 机房、园区接入,绝大多数网络
基于 MAC 地址 源 MAC 地址 交换机上的 MAC 与 VLAN 对应表 VLAN 不变 能改网卡 MAC 的人 终端位置常变、数量不多的办公网
基于协议 以太网类型字段,如 IPv4 是 0x0800、IPv6 是 0x86DD VLAN 下的协议模板 按协议归属 终端改用哪种协议 多协议并存的老网络、IPv6 试点
基于 IP 子网 源 IP 地址所属网段 VLAN 下的子网条目 VLAN 不变 能改 IP 地址的人 按网段迁移、实验网

一个端口上同时启用了几种方法时,交换机按固定顺序匹配。以华为 S 系列为例:先匹配 MAC VLAN 和 IP 子网 VLAN(两者谁先由接口下的 vlan precedence 决定,缺省 MAC 优先),再匹配协议 VLAN,都没匹配上,最后归入端口的 PVID。所以基于端口的划分永远是兜底,另外三种是在它之上的“例外规则”。

基于端口划分 VLAN

原理:每个端口有一个 PVID(端口默认 VLAN),从这个端口进来的不带标签的帧,一律属于 PVID 对应的 VLAN。接服务器的 access 端口执行 port default vlan 10,就是在配置基于端口的划分。一个端口要承载多个 VLAN 时,靠帧上的标签区分,那是 trunk 和 hybrid 端口的事,归属依据仍然是“端口加标签”,不看终端属性。

优点 缺点
结果完全由交换机配置决定,终端怎么改都出不了这个 VLAN 设备换端口要改配置,否则会落进新端口的 VLAN
不需要额外的对应表,所有可网管交换机都支持 谁插到这个端口上,谁就进这个 VLAN,要配合端口安全或 MAC 绑定
设备加电那一刻就确定了 VLAN,与操作系统、IP 无关 不带标签时一个端口只能对应一个 VLAN
查配置就能审计:display port vlan 一屏看完 —

基于 MAC 划分 VLAN

原理:在交换机上建一张“MAC 地址对应哪个 VLAN”的表,不带标签的帧进来时,用源 MAC 查表,查到就归入表里的 VLAN,查不到再按端口的 PVID。华为一般在 hybrid 端口上启用(支持的端口类型以版本手册为准),并且该端口要以不带标签的方式放行这些 VLAN:

system-view
vlan batch 10 20 999
vlan 10
 mac-vlan mac-address 0011-2233-4401
 mac-vlan mac-address 0011-2233-4402
 quit
interface GigabitEthernet0/0/5
 port link-type hybrid
 port hybrid pvid vlan 999
 port hybrid untagged vlan 10 20 999
 mac-vlan enable
 quit

这里把 PVID 设为 999,作为没有网关、不上 trunk 的访客 VLAN:登记过的两台设备插到任何启用了 MAC VLAN 的端口都进 VLAN 10,没登记的设备落进 VLAN 999,什么都访问不了。

它的问题都出在“MAC 由终端决定”这一点上:

  • MAC 可以改。Linux 上三条命令就能把网卡 MAC 改成别人登记过的地址,从而进入对方的 VLAN:
ip link set dev eth0 down
ip link set dev eth0 address 00:11:22:33:44:01
ip link set dev eth0 up
  • 维护量大。每台新设备都要先收集 MAC 再录入;网卡、主板返修更换后 MAC 变了,要同步改表,漏改就断网。
  • 表项有上限。MAC VLAN 表占用交换机的硬件表项,能存多少条以型号规格为准。
  • 一个端口上 MAC 不止一个。虚拟化宿主机上每台虚拟机都有自己的 MAC,部分操作系统默认对无线网卡使用随机 MAC,表很难跟得上。

基于 IP 子网划分 VLAN

原理:不带标签的帧进来时,看源 IP 属于哪个已配置的网段,归入对应的 VLAN。配置同样在 hybrid 端口上启用:

system-view
vlan 30
 ip-subnet-vlan 1 ip 192.168.30.0 24
 quit
interface GigabitEthernet0/0/6
 port link-type hybrid
 port hybrid untagged vlan 30
 ip-subnet-vlan enable
 quit

它的用处在网段迁移:例如一个机房从 192.168.30.0/24 迁到新网段,迁移期间新旧两个网段的主机混接在同一批端口上,按子网划分可以让它们各进各的 VLAN、各走各的网关,迁完再改回端口划分。缺点同样明显:

  • IP 由终端决定。主机把地址改成另一个网段的,就进了另一个 VLAN。
  • DHCP 客户端无法匹配。还没拿到地址的主机发出的报文源地址是 0.0.0.0,匹配不到任何子网,只能落入 PVID,所以它主要适合静态地址的主机。
  • 多数设备只支持 IPv4 网段条目。双栈主机的 IPv6 流量要另行考虑,支持情况以型号手册为准。

基于协议划分 VLAN

原理:看以太网帧头的类型字段,不同协议进不同 VLAN。这种方法诞生在 IPX、AppleTalk 与 IP 并存的年代,今天几乎所有流量都是 IP,主要的用处是 IPv6 试点:把 IPv6 流量单独放进一个 VLAN,交给另一台网关或防火墙处理,IPv4 业务完全不受影响。

system-view
vlan 40
 protocol-vlan 1 ipv6
 quit
interface GigabitEthernet0/0/7
 port link-type hybrid
 port hybrid untagged vlan 40
 protocol-vlan vlan 40 all
 quit

两点注意:按 IPv4 划分时,ARP(类型 0x0806)必须和 IPv4 进同一个 VLAN,否则主机解析不了 MAC,部分设备的 IPv4 模板会自动包含 ARP,以手册为准;IPv6 的邻居发现封装在 IPv6 报文里,不存在这个问题。另外,同一台双栈主机的流量被拆进两个 VLAN 后,排障时要同时看两边。

四种方法的优缺点对比

对比项 基于端口 基于 MAC 基于协议 基于 IP 子网
配置量 每端口一条 每台设备一条,持续维护 每种协议一条 每个网段一条
终端换位置 要改配置 自动跟随 自动跟随 自动跟随
终端能否自己换 VLAN 不能 改 MAC 即可 换协议即可 改 IP 即可
开机前、装机阶段 已确定 已确定 已确定 没有 IP,落入 PVID
设备支持 所有可网管交换机 部分型号,以规格为准 部分型号,以规格为准 部分型号,以规格为准
排障难度 低 中,要查对应表 中 中,要看主机当前 IP

除了这四种,园区网里更常见的是第五种做法:动态 VLAN。终端接入时做 802.1X 认证,RADIUS 服务器按用户身份在应答里带上 VLAN,属性按 RFC 3580 填写:Tunnel-Type 为 VLAN(13)、Tunnel-Medium-Type 为 802(6)、Tunnel-Private-Group-ID 为 VLAN 编号。它兼顾了“跟着人走”和“终端改不了”,代价是要部署认证系统。

IDC 机房为什么以端口划分为主

  1. 服务器的系统归客户管。MAC、IP 都在客户手里。如果按子网划分,客户把地址改成邻居网段里的,交换机就会把他放进邻居的 VLAN,客户隔离当场失效;按 MAC 划分同理。按端口划分,客户在系统里怎么改,都出不了交换机端口上配的那个 VLAN。
  2. 交付的单位就是端口。合同里写的是几台服务器、几个端口、多大带宽,“客户—服务器—交换机端口”的对应关系本来就要登记。VLAN 跟端口走,台账和设备配置天然一致。
  3. 硬件更换不影响网络。主板、网卡返修后 MAC 会变,MAC 划分要改表;端口划分不受影响,换完硬件插回原端口即可。
  4. 装机时还没有 IP。PXE 引导时服务器靠 DHCP 取地址,报文的源地址是 0.0.0.0,子网划分在这个阶段无从匹配;端口划分从加电起就确定了 VLAN。
  5. 宿主机一个端口上有几十个 MAC。虚拟化宿主机用 trunk 端口加标签区分各个网段,比给每台虚拟机登记 MAC 可靠得多。
  6. 便于自动化。改端口 VLAN 在每家交换机上都只是一两条命令,管理系统容易对接;MAC、子网对应表要在多台交换机之间保持同步,自动化难度高得多。

机房里 MAC 依然重要,但它的角色是“校验”而不是“决定 VLAN”:VLAN 按端口划分,再在端口上做 MAC 绑定或 IP 与 MAC 的绑定,换了设备就通不过校验。其他几种方法在机房里只出现在局部:运维办公网用 802.1X 动态 VLAN,IPv6 试点期间用协议 VLAN,机房搬迁、网段迁移的过渡期用子网 VLAN。

在管理系统里怎么落地

按端口划分 VLAN 的日常工作,是客户上线、迁移、退租时改端口 VLAN,并让服务器和端口的对应关系始终准确。Toplink DCIM 的交换机管理内置华为、H3C、思科等厂商的指令集,在网页上修改端口 VLAN 时由系统翻译成对应命令下发;服务器列表直接显示每台机器接在哪台交换机的哪个端口、所属 VLAN 是多少。MAC 的校验交给自动绑定:系统自动学习服务器侧的 MAC 并在交换机上完成绑定,换线、迁移时不必再人工核对。

常见问题

基于 MAC 划分 VLAN 能防止私接设备吗?

单靠它做不到。没有登记的 MAC 会落入端口的默认 VLAN,而且 MAC 地址在操作系统里一条命令就能改。要阻止私接设备,用端口安全限制 MAC 数量和白名单,或者用 802.1X 认证。

VLAN 划分方法和端口模式(Access、Trunk、Hybrid)是一回事吗?

不是。划分方法回答“不带标签的帧属于哪个 VLAN”,端口模式回答“帧从端口发出时带不带标签”。两者搭配使用,机房里最常见的组合是 access 端口加基于端口划分。

无线网络常用哪种方法?

企业无线一般按 SSID 映射 VLAN,或者在 802.1X 认证后由 RADIUS 服务器下发 VLAN,用户换个接入点、换个位置,VLAN 都不变。这本质上是按用户身份划分的动态 VLAN,比按 MAC 划分更可控。

想看看在你的机房里怎么用?

从一次产品演示开始,梳理你的业务链路。

查看价格
服务热线 400-112-2951

让我们聊聊你的 IDC 业务

扫码添加企业微信,预约产品演示或申请试用。

Toplink 企业微信二维码

长按保存或使用企业微信 / 微信扫描

也可致电
400-112-2951
Telegram
@TopLink88