VLAN 入门教程图解 (案例、过程、分析,并有配套的仿真链接)
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. 拓扑:
![](http://n4.ikafan.com/assetsj/blank.gif)
在一个局网里,有六台主机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。
【注】这个拓扑是从VLANBasic仿真截图而来,仿真显示VLAN的整个过程,可以看到 配置命令-数据包传送-MAC表之间的因果关系, 用户能控制时间轴教程数据包内容。
2. 配置VLAN access link:交换机-主机。H1, H5, H6 在 VLAN 2 (蓝色),H2, H2, H4 在 VLAN 3 (红色)。
![](http://n4.ikafan.com/assetsj/blank.gif)
交换机连接到主机的接口是access link,配置VLAN时先配置交换机的access link。 图中交换机S1的命令窗口显示配置S1的F0/1接口的命令:
- 配置 VLAN 2: 把VLAN 2添加到VLAN数据库: vlan database; vlan 2; apply;
- 配置accesslink: 把连接到主机H1的接口F0/1 设为 VLAN2。Interface f0/1; switchport accessvlaan 2.
3. 配置VLAN trunk link (主干线): 交换机 – 交换机 接口
![](http://n4.ikafan.com/assetsj/blank.gif)
交换机与交换机之间的接口是 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)
![](http://n4.ikafan.com/assetsj/blank.gif)
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的标签插入ARPRequest
![](http://n4.ikafan.com/assetsj/blank.gif)
- 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收到后发送ARPReply。
![](http://n4.ikafan.com/assetsj/blank.gif)
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
![](http://n4.ikafan.com/assetsj/blank.gif)
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的数据包在传送。
![](http://n4.ikafan.com/assetsj/blank.gif)
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 forEfficient IP Address Allocation http://www.faqs.org/rfcs/rfc3069.html
Wikipedia: Virtual LAN http://en.wikipedia.org/wiki/Virtual_LAN
Wikipedia: IEEE 802.1Q http://en.wikipedia.org/wiki/802.1q
[c] ARP
Visualland ARP仿真目录,ARPBasic仿真, ARPswitch仿真.
谢希仁 计算机网络第五版 4.2.4b地址解析协议ARP