网络与 IP

VLAN 是什么意思:一台交换机怎样分出多个广播域

VLAN(Virtual LAN,虚拟局域网)是在交换机上用编号把端口分组,每组是一个独立的广播域:同一 VLAN 的端口之间正常二层通信,不同 VLAN 之间互不可见,就像接在不同的交换机上。这个编号就是 VLAN ID,取值 1–4094;帧经过多个 VLAN 共用的链路时,靠 802.1Q 标签(tag)携带它。

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

VLAN 是什么意思?VLAN 是 Virtual Local Area Network 的缩写,中文叫虚拟局域网。它在一台物理交换机上划出多个逻辑上的局域网:交换机给每个端口指定一个编号,也就是 VLAN ID,只在编号相同的端口之间转发帧,广播也只发给同一 VLAN 的端口。于是一台 48 口交换机可以同时承载业务网、管理网和 IPMI 网,彼此在二层上互不相通,效果和用三台交换机分别组网一样。VLAN 的标准是 IEEE 802.1Q,VLAN ID 是一个 12 位的二进制数,可用范围 1–4094。

没有 VLAN 时,一台交换机就是一个广播域

交换机转发靠 MAC 地址表:每收到一个帧,先记下源 MAC 来自哪个端口,再按目的 MAC 查表,查到了就只从对应端口发出。查不到的目的 MAC(未知单播),以及目的地址为 FF:FF:FF:FF:FF:FF 的广播帧,会被泛洪到除来源端口以外的所有端口。

ARP 请求、DHCP 发现报文都是广播。在一台出厂配置的交换机上,所有端口默认都在 VLAN 1,24 个端口就是一个广播域:任何一台服务器发出的 ARP 请求,其余 23 个端口都会收到,服务器之间在二层上完全可见。想把数据库服务器和对外的 Web 服务器隔开,或者把 BMC 管理口单独组一个网,在没有 VLAN 的年代只能多买交换机、分开布线。

交换机怎样用 VLAN 把广播域切开

划了 VLAN 之后,交换机多做了三件事:

  1. 给每个端口分配 VLAN:例如 1–4 口属于 VLAN 10,5–8 口属于 VLAN 20。
  2. 给每个进入的帧确定所属 VLAN:从 3 口进来的帧,在交换机内部就属于 VLAN 10。
  3. 按 VLAN 查表、按 VLAN 泛洪:MAC 地址表以“VLAN + MAC”为索引,广播和未知单播只发往同一 VLAN 的其他端口。

以一台 8 口交换机为例,假设 1 口的服务器已经知道其他服务器的 MAC:

来源 帧 交换机怎么处理 送到哪些端口
1 口(VLAN 10) ARP 广播 在 VLAN 10 内泛洪 2、3、4 口
5 口(VLAN 20) ARP 广播 在 VLAN 20 内泛洪 6、7、8 口
1 口(VLAN 10) 发给 2 口服务器的单播 在 VLAN 10 的表项里查到 2 口 只有 2 口
1 口(VLAN 10) 发给 6 口服务器的单播 这个 MAC 只学在 VLAN 20 里,VLAN 10 查不到,按未知单播在 VLAN 10 内泛洪 2、3、4 口,6 口永远收不到

最后一行说明了隔离从何而来:交换机根本不会把 VLAN 10 的帧送到 VLAN 20 的端口上。在思科交换机上看 MAC 地址表,第一列就是 VLAN:

Switch# show mac address-table dynamic
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
  10    0050.56a1.0001    DYNAMIC     Gi1/0/1
  10    0050.56a1.0002    DYNAMIC     Gi1/0/2
  20    0050.56a1.0005    DYNAMIC     Gi1/0/5

华为、H3C 用 display mac-address 查看,输出里同样有 VLAN 一列。同一个 MAC 如果同时出现在两个 VLAN 里,会是两条互不相干的表项。

VLAN 10 和 VLAN 20 的服务器要通信,只能离开二层,由三层设备转发:在三层交换机上为每个 VLAN 建一个虚拟接口作网关,或者交给路由器、防火墙。所以划分 VLAN 时,每个 VLAN 要配一个独立的子网。

VLAN ID 和 tag 是什么关系

这两个词经常混用,其实是两回事:VLAN ID 是 VLAN 的编号,是交换机给每个端口、每个帧定下的归属;tag 是把这个编号写进以太网帧的方式,只有帧经过一条承载多个 VLAN 的链路时才需要。

设想两台交换机之间只有一根线,VLAN 10 和 VLAN 20 都要从这根线过去。对端收到一个帧,凭什么判断它属于哪个 VLAN?办法是发送方在帧的源 MAC 之后插入 4 字节的 802.1Q 标签,其中 12 位就是 VLAN ID,对端读出编号,再把帧归入对应的 VLAN。帧在不同位置的状态如下:

位置 帧上有没有 tag VLAN 归属从哪来
服务器网卡发往交换机的 access 口 没有 交换机按端口所属的 VLAN 指定
交换机内部 每个帧都带着内部的 VLAN 归属 来自端口或 tag
交换机与交换机之间(trunk) 有,写着 VLAN ID 读 tag
交换机与虚拟化宿主机之间(trunk) 有 宿主机按 tag 把帧分给不同的虚拟机网络
交换机 access 口发往服务器 没有,发出前去掉 —

所以普通服务器根本不需要知道自己在哪个 VLAN,它收发的是普通以太网帧,VLAN 完全由交换机端口决定;只有交换机之间、交换机与宿主机之间的链路才“说” 802.1Q。至于每种端口具体怎样收发带标签和不带标签的帧,属于 access、trunk、hybrid 端口模式的话题,这里不展开。

VLAN ID 的取值也有讲究:

VLAN ID 用途
0 不代表任何 VLAN,tag 里只携带优先级
1 缺省 VLAN,所有端口出厂都在其中,不能删除,不建议承载业务
2–1001 普通范围,可以自由使用
1002–1005 思科保留给早期的 FDDI 和令牌环,不能使用;华为、H3C 没有这个限制
1006–4094 思科称为扩展范围,早期 IOS 要在 VTP 透明模式或 VTP v3 下才能创建,以设备版本为准
4095 保留,不能使用

另外,部分型号会占用一段 VLAN 作内部用途,例如思科 Nexus 系列默认保留从 3968 开始的一段 VLAN;一些 Catalyst 平台会从 1006 起给三层口分配内部 VLAN,可用 show vlan internal usage 查看。具体范围随型号和版本而定。规划全网 VLAN 编号前,先查清楚每种设备有没有这类保留段。

VLAN 和物理网段有什么区别

“物理网段”指一个网段独占一台或一组交换机,谁和谁在一起由物理连接决定;VLAN 则由配置决定。机房里两种做法都有,区别如下:

对比项 物理网段(一个网一套交换机) VLAN(一台交换机分多个网)
隔离方式 物理上不相连 交换机按 VLAN ID 隔离,由配置决定
设备与布线 每个网段一套交换机、一套线 共用交换机,跨交换机靠一条 trunk 承载多个 VLAN
调整网段归属 到现场换线、换交换机 改端口的 VLAN 配置
同一网段跨机柜、跨楼层 要为这个网段单独拉线 在 trunk 上放行该 VLAN 即可延伸
带宽 每个网段独享自己的交换机和上联 多个 VLAN 共享端口、上联和交换容量
故障影响 一台交换机坏了只影响一个网段 交换机坏了,上面所有 VLAN 一起断
配置出错的后果 很难误连 端口划错 VLAN、trunk 放行错,网段就串了
适合 必须物理隔离的网络 绝大多数业务网络

机房里常见的折中是:业务网用 VLAN 划分;带外管理网(服务器 IPMI 口、交换机管理口)至少放进独立的 VLAN,条件允许时用独立的交换机,保证业务网出问题时还能远程进去处理。

VLAN 和子网也不是一回事

VLAN 是二层概念,决定帧能到达哪些端口;子网是三层概念,决定主机认为谁和自己在同一网段、要不要经过网关。两者通常一一对应,但交换机不会替你检查。常见的两种错配:

  • 一个 VLAN 里放两个子网:10.0.10.0/24 和 10.0.20.0/24 的服务器都在 VLAN 10。它们之间要经过网关才能通信,看上去像是隔离了,但仍在同一个广播域里,彼此的 ARP、DHCP 广播照收不误,一台私设的 DHCP 服务器就能让另一个子网的机器拿错地址。
  • 一个子网拆到两个 VLAN:10.0.10.0/24 的服务器一半在 VLAN 10、一半在 VLAN 20。主机认为对方和自己在同一网段,直接发 ARP 找对方,而 ARP 广播过不了 VLAN 边界,结果互相不通,也不会转去找网关。

VLAN 交换机:什么样的交换机能划 VLAN

“VLAN 交换机”不是一种单独的设备,指的是支持 802.1Q 的交换机。按能力可以分成四类:

交换机类型 能否划分 802.1Q VLAN 能否在 VLAN 之间路由 机房里的位置
非网管交换机(傻瓜交换机) 不能,没有配置界面 不能 只适合临时扩口,不建议放进生产网络
简易网管、智能交换机 多数支持;部分只提供本机有效的“端口 VLAN”,不打 802.1Q 标签,不能跨交换机延伸 不能 小型办公、监控网
二层网管交换机 支持,有 access、trunk 等端口模式 不能,VLAN 之间要上联到三层设备 机柜接入层
三层交换机 支持 能,用 VLANIF(SVI)作网关 汇聚层、核心层

选型时除了看支不支持,还要看规格:单台交换机能同时启用多少个 VLAN、能建多少个 VLANIF、MAC 表有多大,各型号不同,以产品规格书为准。非网管交换机串在网络里时,它无法识别 VLAN,接在它下面的设备不论原本该属于哪个 VLAN,都会挤在同一个广播域里,这是机柜里私接小交换机的常见隐患。

在管理系统里怎么落地

理解了 VLAN 和子网的关系,就会发现日常出问题的往往不是概念,而是对应关系:某个端口划进了哪个 VLAN、这个 VLAN 配的是哪个网段,台账和设备上的实际配置是否一致。Toplink DCIM 的交换机管理在服务器列表里显示每台机器所接的交换机端口、速率和 VLAN,客户上线或迁移时在网页上修改端口 VLAN,系统按厂商指令集翻译成命令下发;IP 地址管理为每个地址段登记所在的 VLAN 和网关所在的交换机。端口的 VLAN 和地址段的 VLAN 两边一对照,上面说的“一个 VLAN 两个子网”“一个子网拆进两个 VLAN”这类错配就容易发现。

常见问题

为什么不建议把业务放在 VLAN 1?

VLAN 1 是兜底的 VLAN:没做配置就接上的设备会直接落进来,思科的 CDP、VTP、DTP 等二层协议报文默认也在 VLAN 1 上收发。业务混在里面,误接入的设备就能看到业务广播,所以业务和管理都应放进单独创建的 VLAN,让 VLAN 1 保持空闲。

VLAN 不够用怎么办?

802.1Q 的 VLAN ID 只有 12 位,可用 4094 个。运营商和机房常用 QinQ(IEEE 802.1ad)在原有标签外再套一层外层标签,内外两层组合可以区分约 1,676 万(4094 × 4094)个网络;云平台则多用 VXLAN,以 24 位的 VNI 标识网段。

VLAN 和 VLANIF 是什么关系?

VLAN 是二层的广播域;VLANIF 是三层交换机为某个 VLAN 建的虚拟三层接口,思科叫 SVI(接口名形如 Vlan10),配上 IP 地址后充当这个 VLAN 的网关。一个 VLAN 如果既没有 VLANIF,也没有接到路由器或防火墙上的网关,内部能互通,但出不了这个 VLAN。

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

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

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

让我们聊聊你的 IDC 业务

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

Toplink 企业微信二维码

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

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