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] 交换机怎么转发、洪泛数据包,发现新地址。
谢希仁 计算机网络第五版 3.5.2 在数据链路层扩展以太网
[b] VLAN
谢希仁 计算机网络第五版 3.5.2 在数据链路层扩展以太网
[c] ARP
谢希仁 计算机网络第五版 4.2.4 b地址解析协议ARP