VLAN 入门教程用最简单的拓扑、场景说明 VLAN 的核心过程 . 案例的拓扑是一个局网里有六台主机 , 两个 VLAN,   场景包括 VLAN 配置命令, Ping ARP Request 是怎么被交换机 tagging 、洪泛、转发、 untagging 。案例有两个版本:图解、仿真。本文是图解版本,从仿真截图,并加标注,介绍主要步骤的演变。 仿真版本 显示 VLAN 的整个过程,可以过程配置 - 数据包 -MAC 表之间的因果关系。
-          背景 :在局网内用交换机连接主机,有许多好处:交换机接口多,连线容易,若连接几个交换机,局网内的主机数量可以扩充到千百以上。缺点是洪泛影响大、保密性不够、工作组配置麻烦。 VLAN ( 虚拟局网 ) 解决了这些问题,被广泛的使用。要进一步了解局网、洪泛、交换机,请见参考资料。
-          VLAN 原理 VLAN 用配置交换机接口的手段把局网划分几个较小的局网,称为虚拟局网 (Virtual  LAN) 。它主要的工作是:数据包在进入 VLAN 时,交换机根据出入口接口 (access link) 配置,把数据包加上一个 VLAN 标签  (tagging),   然后根据(数据包 MAC 地址, VLAN tag )在 VLAN 内洪泛、转发,经主干连线 (trunk link) 抵达目的主机连接的交换机 , 出×××换机把 VLAN 标签除掉 (untagging) ,然后把数据发送到目的主机。这段文字有些抽象、拗口,看图解、仿真能形象的看的清楚些。
-          预备知识 :交换机、 ARP.
 
1. 拓扑:
在一个局网里,有六台主机 H1~H6 连接到两个交换机 S1, S2 H1, H5, H6 VLAN 2, H2, H3, H4 VLAN
VLAN 2 用蓝色代表,包括 H1, H5, H6.  VLAN 3 用红色代表,包括 H2, H3, H4
交换机连接到主机的接口叫进出口链路 (access link), 用来划分 VLAN 。例:主机 H1 连接到交换机 S1 F0/1 接口,若把 F0/1 设为 VLAN 2 access link H1 就属于 VLAN 2.
交换机之间连线的接口叫主干链路( trunk link ), 用来传送所有 VLAN 的数据包。图中 S1 F0/7 接口 , S2 F0/7 接口都是 trunk link
地址以 < 地址类别 >.< 主机 > 表示。例: H1 IP 地址是 IP.H1, H1 MAC 地址是 MAC.H1
【注】这个拓扑是从 VLAN Basic仿真 截图而来,仿真显示 VLAN 的整个过程,可以看到 配置命令 - 数据包传送 -MAC 表之间的因果关系, 用户能控制时间轴教程数据包内容。
 
 
2. 配置 VLAN access link :交换机 - 主机。 H1, H5, H6 VLAN 2 ( 蓝色 ) H2, H2, H4 VLAN 3 (红色)。

交换机连接到主机的接口是 access link ,配置 VLAN 时先配置交换机的 access link 图中交换机 S1 的命令窗口显示配置 S1 F0/1 接口的命令:
-          配置 VLAN 2: VLAN 2 添加到 VLAN 数据库: vlan database; vlan 2; apply;
-          配置 access link: 把连接到主机 H1 的接口 F0/1 设为 VLAN 2 Interface f0/1; switchport access vlaan 2.
 

 
3. 配置 VLAN trunk link (主干线) : 交换机 交换机 接口

交换机与交换机之间的接口是 trunk 。这案例中, S1 F0/7 接口连接到 S2 F0/7 接口,这两个接口应设为 trunk llink 。图中命令窗口显示:
-          F0/7 的状态设为 trunk:  switchport mode trunk; interface f0/7;
-          F0/7 设为 trunk: switchport trunk allowed vlan all
 

4. H1 发送 ARP Request 查询 H6 MAC 地址 (VLAN 2)

H1 ping H6, 看看它是否在线。但不知道 H6 MAC 地址 , 就发送 ARP Request 查询。
发送 ARP Request 后, H1 ARP 表添加了一个条目 (IP.H6, Incomplete), ,表示正在查询 H6 MAC 地址。
这时的 ARP Request 没有 VLAN tag.
 
 
 
5. 交换机 S1 tagging, VLAN 2 的标签插入 ARP Request

-          S1 接口 F0/1 收到 ARP Request 时,把一个 VLAN 2 的标签插入 ARP Request ,这就是 VLAN tagging 。交换机转换数据包时,用 MAC VLAN tag 来决定怎么转发、洪泛。
-          S1 收到 ARP Request 时, MAC 表是空的, S1 ARP Request 的源 MAC 地址 (MAC.H1) VLAN tag (VLAN 2) 作为一个新条目 (MAC.H1, 2) 添加到 MAC 表。这叫做发现 MAC ,详情见参考资料。
 
 
6.   H1 发送的 ARP Request VLAN 2 洪泛 , 离开 VLAN 2 时被 untagging 送往 H5, H6 H6 收到后发送 ARP Reply

l  S2 收到 ARP Request 时,用其目的 MAC 地址及 VLAN ID 查索 MAC 表,没找到,无法转发,就把它洪泛到 F0/5, F0/6 S2 先把 VLAN 标签拿掉,然后才发送, 数据包离开 VLAN 时,不再有标签了,这就是 VLAN untagging   VLAN tagging, untagging 的功能使得主机无需知道 VLAN, 不必做任何配制。例: 300 个主机在局网里用三个交换机相连接,被划分为 5 VLAN, 网关只需配置三个交换机。而 1 不是配置 300 台主机。
l  H6 收到 ARP Request 后, ARP Reply H1 ARP Reply S2 tag VLAN 2, 送往 S1
 
 
 
7.  H1 发送 Ping, H4 发送 ARP Request

H1 收到了 H6 ARP Reply , 更新了 ARP 表。现在 H1. 知道了 H6 MAC 地址 , 可以 ping H6 了。
同时 H4 也要 ping H2. 但不知道 H2 MAC 地址 1, 就发送 ARP Request, VLAN 2 查询 H2 MAC 地址。
图中显示 ping ARP Request 都还没有进入 VLAN, 它们还没有被交换机 tag.
 
 
 
8. Trunk 上同时有 VLAN 2, VLAN 3 的数据包在传送。

Ping S1 tag , 转发到 trunk link 接口 F0/7, 送往 H6 .ARP Request S2 tag , 转发到 trunk link 接口 F0/7, 送往 H2 。图中可见 Ping ARP Request 分属 VLAN 2, 3, 答同时在主干上传送。
 
参考资料:
[a] 交换机怎么转发、洪泛数据包,发现新地址。
Visualland.net Switch_VLAN 仿真目录 Switch VLAN overview , 交换机转发、洪泛 , 交换机发现MAC  
谢希仁 计算机网络第五版 3.5.2 在数据链路层扩展以太网
Wikipedia: Network Switch. http://en.wikipedia.org/wiki/Network_switch
 [b] VLAN
Visualland VLAN 仿真目录
谢希仁 计算机网络第五版 3.5.2 在数据链路层扩展以太网
RFC 3069 VLAN Aggregation for Efficient IP Address Allocation http://www.faqs.org/rfcs/rfc3069.html 
 Wikipedia: IEEE 802.1Q http://en.wikipedia.org/wiki/802.1q
[c] ARP
谢希仁 计算机网络第五版 4.2.4 b 地址解析协议 ARP