VLAN入门教程用最简单的拓扑、场景说明VLAN的核心过程. 案例的拓扑是一个局网里有六台主机, 两个VLAN,  场景包括VLAN配置命令,PingARP 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. 拓扑:
VLAN 入门教程图解 (案例、过程、分析,并有配套的仿真链接)_IEEE 802.1q
在一个局网里,有六台主机H1~H6 连接到两个交换机 S1, S2H1, H5, H6 VLAN 2, H2, H3, H4 VLAN
VLAN 2 用蓝色代表,包括H1, H5, H6.  VLAN 3 用红色代表,包括H2, H3, H4
交换机连接到主机的接口叫进出口链路(access link), 用来划分 VLAN。例:主机H1连接到交换机S1F0/1接口,若把F0/1设为VLAN 2 access linkH1就属于VLAN 2.
交换机之间连线的接口叫主干链路(trunk link), 用来传送所有VLAN的数据包。图中S1 F0/7接口, S2 F0/7接口都是trunk link
地址以 <地址类别>.<主机> 表示。例:H1IP地址是IP.H1, H1 MAC地址是 MAC.H1
【注】这个拓扑是从VLAN Basic仿真截图而来,仿真显示VLAN的整个过程,可以看到 配置命令-数据包传送-MAC表之间的因果关系, 用户能控制时间轴教程数据包内容。
 
 
2. 配置VLAN access link:交换机-主机。H1, H5, H6 VLAN 2 (蓝色)H2, H2, H4 VLAN 3 (红色)。

VLAN 入门教程图解 (案例、过程、分析,并有配套的仿真链接)_IEEE 802.1q_02
交换机连接到主机的接口是access link,配置VLAN时先配置交换机的access link 图中交换机S1的命令窗口显示配置S1F0/1接口的命令:
-          配置 VLAN 2: VLAN 2添加到VLAN数据库: vlan database; vlan 2; apply;
-          配置access link: 把连接到主机H1的接口 F0/1 设为 VLAN 2Interface f0/1; switchport access vlaan 2.
 

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

VLAN 入门教程图解 (案例、过程、分析,并有配套的仿真链接)_ VLAN_03
交换机与交换机之间的接口是 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查询 H6MAC地址 (VLAN 2)

VLAN 入门教程图解 (案例、过程、分析,并有配套的仿真链接)_虚拟局网_04
H1ping H6, 看看它是否在线。但不知道H6 MAC地址, 就发送ARP Request 查询。
发送ARP Request后,H1ARP表添加了一个条目 (IP.H6, Incomplete),,表示正在查询H6MAC地址。
这时的ARP Request 没有 VLAN tag.
 
 
 
5. 交换机S1 tagging, VLAN 2的标签插入ARP Request

VLAN 入门教程图解 (案例、过程、分析,并有配套的仿真链接)_IEEE 802.1q_05
-          S1接口F0/1收到ARP Request时,把一个 VLAN 2的标签插入ARP Request,这就是VLAN tagging。交换机转换数据包时,用MAC VLAN tag 来决定怎么转发、洪泛。
-          S1收到 ARP Request时, MAC表是空的,S1ARP 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

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

VLAN 入门教程图解 (案例、过程、分析,并有配套的仿真链接)_虚拟局网_07
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的数据包在传送。

VLAN 入门教程图解 (案例、过程、分析,并有配套的仿真链接)_交换机_08
Ping S1 tag, 转发到trunk link接口F0/7, 送往H6.ARP Request S2 tag, 转发到trunk link接口F0/7, 送往H2。图中可见PingARP Request分属VLAN 2, 3, 答同时在主干上传送。
 
参考资料:
[a] 交换机怎么转发、洪泛数据包,发现新地址。
Visualland.net Switch_VLAN 仿真目录 Switch VLAN overview, 交换机转发、洪泛 , 交换机发现MAC  
谢希仁 计算机网络第五版 3.5.2 在数据链路层扩展以太网
 [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