1. 实验目的
了解VLAN(虚拟局域网)的作用;
掌握跨交换机的VLAN的配置方法;
掌握trunk端口的配置方法;
了解VLAN数据帧的格式、VLAN标记添加和删除的过程。
2. 实验任务
本实验模拟某公司网络场景。该公司规模较大,内部放置了两台接入交换机(SW2和SW3)负责员工的网络接入,而且在交换机上划分不同VLAN来隔离广播域。由于员工较多,相同部分的员工通过不同交换机接入。为了保证在不同交换机下相同部门的员工能相互通信,需要配置交换机之间的链路为干道(trunk)模式,以实现相同VLAN跨交换机通信。
3. 实验原理
3.1. VLAN概要
由一台或多台交换机/集线器所组成的1个广播域称为扁平网络(flat network)。相互连接的硬件会接收有网络发来的广播帧。因此,随着连接硬件数量的增加,广播数据也会增加,网络状况也就越发混杂。为了减少广播数据,可以采用将整个扁平网络进行逻辑分段的VLAN(Virtual LAN)技术——一种专门为隔离二层广播报文设计的虚拟局域网技术。在一个VLAN中使用同一个广播域,不同的VLAN用户属于不同的广播域,它不能接收来 自于不同VLAN用户的广播报文,因此可以有效地控制该域内广播通信的规模。
提示
网络中将传播过多的广播信息而引起的网络性能恶化的现象称为广播风暴。广播帧属于二层并不会跨越三层,所以为了解决广播风暴,可以使用三层设备隔离广播域,减小广播域范围,比如可以使用路由器来隔离广播域,但由于路由器属于三层设备,对数据的转发容易形成瓶颈,因此一般使用VLAN来隔离广播域。
3.2. VLAN帧格式
当某个VLAN需要跨越多个交换机通信时,一般会使用 中继端口(trunk port) 的VLAN标签(tag VLAN)。IEEE 802.1Q标准规定在原有的标准以太网帧格式上增加一个特殊的标志域——tag域,用于表示数据帧所属的VLAN ID,带有VLAN标签的数据包可以通过中继端口完成以太网数据帧的收发。
在以太网中,TPID的值为0x8100。如果该值不是0x8100,那么该域则不是表示TPID信息,而是被当作“长度/类型”数据域被识别。
TCI又分为PCP、CFI和VLAN ID三个域。
PCP(Priority Code Point):该域占用3个bit位,用于标识数据帧的优先级。
CFI(Canonical Format Indicator):该域仅占用1bit 位,如果该位为0,表示该数据帧采用规范帧格式,如果该位为1,表示该数据帧为非规范帧格式。
VLAN ID:该域占用12个 bit 位,它明确指出该数据帧属于某一个VLAN。0仅用于识别PCP中表示的优先级,4095(0xFFF)为预留值,所以VLAN ID 表示的范围为 1-4094。
3.3. VLAN端口的分类
根据端口对 VLAN 数据帧的处理方式,cisco交换机的端口分为 Access端口和Trunk端口两类。每一个交换机的端口(无论是Access端口还是Trunk端口)都配置有缺省VLAN ID(PVID,Port default VLAN ID), 一般默认的PVID等于1,即属于VLAN 1,也可以人为设置PVID。
一个VLAN帧可能带有Tag(称为Tagged VLAN帧,或简称Tagged帧),也可能不带Tag(称为Untagged VLAN帧,或简称Untagged帧)。所有达到这个端口的Untagged帧将一律打上该端口PVID的tag,划分到PVID所指代的VLAN中。
3.3.1. Access端口
Access 端口一般是指那些连接不支持 VLAN 技术的终端设备的端口,这些端口接收到的数据帧都不包含 VLAN 标签,而向外发送数据帧时,必须保证数据帧中也不包含 VLAN 标签。交换机的Access 端口一般接主机或路由器。
Access端口收报文 :收到一个报文,判断是否有VLAN标签:如果没有则打上端口的PVID(默认VLAN ID),并进行交换转发;如果有,交换机会检查这个报文的tag中的VID是否与PVID相同,如果相同,则队这个Tagged帧进行转发,如果不同,则直接丢弃。
Access端口发报文 :将报文的VLAN信息剥离,直接发送出去。
3.3.2. Trunk端口
Trunk 端口一般是指那些连接支持 VLAN 技术的网络设备(如交换机)的端口,这些端口接收到的数据帧一般都包含 VLAN 标签(数据帧 VLAN ID 和端口缺省 VLAN ID 相同除外),而向外发送数据帧时,必须保证接收端能够区分不同 VLAN 的数据帧,故常常需要添加 VLAN 标签(数据帧 VLAN ID 和端口缺省 VLAN ID 相同除外)。一般用于交换机之间的连接。
Trunk端口收报文 :收到一个报文,判断是否有VLAN标签。如果没有则打上端口的PVID(默认VLAN),再进行交换转发;如果有判断该trunk端口是否允许该 VLAN的数据进入,如果可以则转发,否则丢弃;
Trunk端口发报文 :比较端口的PVID(默认VLAN)和将要发送报文的VLAN标签,如果两者相等则剥离VLAN标签,再发送,如果不相等则直接发送。
备注
以太网交换机带VLAN标签的帧转发说明
当交换机某个端口接收到的数据帧,首先,检查该数据帧是否带VLAN标签,如果没有,则将该端口缺省VLAN ID(pvid)作为其VLAN ID,如果带VLAN标签,则检查是否在允许列表里面,若不在则丢弃该数据帧。接下来,交换机结合VLAN ID进行源MAC地址学习,更新MAC地址表。然后,根据该数据帧的目的MAC地址和VLAN ID,查找MAC地址表并向相应端口转发该数据帧。最后,在发送数据帧的端口,需要根据该VLAN ID的类型(Tagged或Untagged )来决定是否将VLAN标签去掉,然后发送数据帧。
(更多关于VLAN帧转发详见参考文献中的《计算机网络实验教程》以及《奠基·计算机网络(华为微课版)》)
4. 实验环境与分组
cisco packet tracer模拟器,一人一组。
5. 实验组网
6. 实验步骤
6.1. 搭建网络拓扑
打开Cisco Packet Tracer软件(Cisco Packet Tracer 绿色版\bin\PacketTracer7.exe)。在底部工具栏区域,选择“Network Devices”,点击“Swithes”,将二层交换机“2960-24TT”拖拽到空白工作区中(需要拖拽两台二层交换机)。
接着,在底部工具栏区域,选择“End Devices”,点击最下一栏的“End Devices”,将计算机设备“PC”拖拽到空白工作区中(需要拖拽4台PC机)。
拖拽完成后如下图所示。
单击“Connections”,选择“Copper Straight-Through(直通线)”并单击。
再单击PC0图标,再弹出的菜单中选择FastEthernet0选项。
再单击二层交换机“2960-24TT” Switch0,再弹出的菜单中选择FastEthernet0/11选项。
这时可以看到计算机PC0已经连接到Switch0上,但看不出是哪两个端口相连。在模拟器主界面的菜单栏上选择Option -> Preferences命令,打开Preferences对话框,在“Interface”选项卡中勾选“Always Show Port Labels in Logical Workspace”复选框即可显示接口名称。
继续用 Copper Straight-Through(直通线) 将PC1与Switch0的f0/12连接一起,将PC2和PC3分别与Switch1的f0/13和f0/14连接在一起。
将Switch0和Switch1用 Copper Cross Over(交叉线) 进行连接。
备注
Copper Straight-Through(直通线) :用于连接不同类型的网络设备,如计算机与交换机、交换机与路由器。
Copper Cross Over(交叉线) : 用于连接相同类型的网络设备,如计算机和路由器、路由器和路由器、交换机和交换机、计算机和计算机。
目前绝大部分网络设备支持MDI/MDIX功能,能够实现线缆自适应,也就是连接时使用直通线或交叉线都可以。但 在Cisco Packet Tracer中仍要严格遵守连线类型 。
连接完成的组网图如下图所示。
重要
组网图搭建完成后,建议先 保存 起来,以免在后续的操作过程中Cisco Packet Tracer模拟器突然挂了:)
6.2. 进入交换机配置vlan2添加相应接口
6.2.1. 进入Swtich0的用户模式
单击Switch0图标,在弹出的窗口里点击“CLI”选项卡,在“IOS Command Line Interface”工作区中敲回车键,进入交换机的用户模式
6.2.2. 配置Switch0的VLAN 2
在Switch0交换机上使用下列命令进行VLAN配置:
1Switch>enable //进入交换机特权模式
2Switch#configure terminal // 进入交换机全局模式(也称为config模式)
3
4Switch(config)# // 全局模式的提示符是“(config)#”
5Switch(config)# hostname Switch0 // 更改交换机的主机名
6Switch0(config)#no ip domain-lookup // 用于防止DNS解析的命令。如果没有这条命令,当你输入错误的命令时,cisco会尝试连接DNS服务器进行域名解析,浪费时间。
7
8Switch0(config)#vlan 2 // 创建vlan 2
9Switch0(config-vlan)#exit
10
11Switch0(config)#interface f0/11 // 进入f0/11接口模式
12Switch0(config-if)#switchport access vlan 2 //将f0/11端口划分给vlan 2
13Switch0(config-if)#exit
14
15Switch0(config)#interface f0/4 // 进入f0/4接口模式
16Switch0(config-if)#switchport access vlan 2 //将f0/4端口划分给vlan 2
17Switch0(config-if)#exit
18Switch0(config)#exit
19Switch0#
6.2.3. 观察配置Switch0的VLAN信息
在Switch0上查看划分的vlan信息:
6.2.4. 配置Switch1的VLAN 2
在Switch1交换机上使用下列命令进行VLAN配置:
1Switch>enable //进入系统视图
2Switch#configure terminal
3
4Switch(config)#
5Switch(config)# hostname Switch1 // 更改交换机的主机名
6Switch1(config)#no ip domain-lookup // 用于防止DNS解析的命令。
7
8Switch1(config)#vlan 2 //创建vlan 2
9Switch1(config-vlan)#exit
10
11Switch1(config)#interface f0/13
12Switch1(config-if)#switchport access vlan 2 //将f0/13端口划分给vlan 2
13Switch1(config-if)#exit
14
15Switch1(config)#interface f0/4
16Switch1(config-if)#switchport access vlan 2 //将f0/4端口划分给vlan 2
17Switch1(config-if)#exit
18Switch1(config)#exit
19Switch1#
6.2.5. 观察Switch1的VLAN信息
在Switch1上查看划分的vlan信息:
6.2.6. 设置计算机的IP地址
为PC0~PC3配置IP地址,如下表所示。
设备 |
IP地址 |
子网掩码 |
|---|---|---|
PC0 |
192.168.2.11 |
255.255.255.0 |
PC1 |
192.168.3.12 |
255.255.255.0 |
PC2 |
192.168.2.13 |
255.255.255.0 |
PC3 |
192.168.3.14 |
255.255.255.0 |
单击PC0图标,在弹出的窗口中,选择Desktop选项卡,点击“IP Configuration”图标。
在弹出的窗口中选择“Interface”栏,设置该端口的IP地址和子网掩码,如下图所示。
可参照PC0的配置方式来配置PC1、PC2和PC3的IP地址。
6.2.7. 观察同一VLAN和不同VLAN的连通情况
单击PC0,在Desktop选项卡中,单击“Command Prompt”选项,则可进入命令行模式。
重要
实验测试
PC0和PC2属于同一VLAN,用PC0 ping PC2的IP地址192.168.2.13,看看是否相通?
PC1和PC3没有配置VLAN,用PC1 ping PC3的IP地址192.168.3.14,看看是否相通?
6.3. 进入交换机配置vlan3接口ip并观察连通性
6.3.1. 配置Switch0的VLAN 3
在Switch0交换机上的系统视图下使用下列命令进行配置:
1Switch0>enable
2Switch0#configure terminal
3
4Switch0(config)#vlan 3 //创建vlan 3
5Switch0(config-vlan)#exit
6Switch0(config)#
7
8Switch0(config)#interface f0/12
9Switch0(config-if)#switchport access vlan 3 //将f0/12端口划分给vlan 3
10Switch0(config-if)#exit
11Switch0(config)#exit
12Switch0#
6.3.2. 观察Switch0的VLAN信息
在Switch0上使用“show vlan”命令查看VLAN的信息。
6.3.3. 配置Switch1的VLAN 3
在Switch1交换机上的系统视图下使用下列命令进行配置:
1Switch1>enable
2Switch1#configure terminal
3
4Switch1(config)#vlan 3 //创建vlan 3
5Switch1(config-vlan)#exit
6Switch1(config)#
7
8Switch1(config)#interface f0/14
9Switch1(config-if)#switchport access vlan 3 //将f0/14端口划分给vlan 3
10Switch1(config-if)#exit
11Switch1(config)#exit
12Switch1#
6.3.4. 观察Switch1的VLAN信息
在Switch1上使用“show vlan”命令查看VLAN的信息。
6.3.5. 观察同一VLAN 3的连通情况
验证测试:在PC1上ping PC3验证连通性,还是没有ping通。
备注
由于VLAN技术的隔离,网络设备都处于不连通状态。
6.4. 配置接口trunk模式并验证连通性
6.4.1. 配置Switch0和Switch1的trunk端口
将Switch0与Switch1的f0/4接口模式配置为trunk,使得所有VLAN都可以通过。 在Switch0交换机下使用下列命令进行配置:
1Switch0(config)#interface f0/4 //进入f0/4接口
2Switch0(config-if)#no switchport access vlan // 删除端口下的vlan配置
3Switch0(config-if)#switchport mode trunk //把端口的连接类型设置为trunk模式
4Switch0(config-if)#switchport trunk allowed vlan 2,3 // 允许Trunk接口模式下vlan2,3的数据通过
5Switch0(config-if)#exit
6Switch0(config)#exit
7Switch0#
备注
Switch0(config-if)#switchport trunk allowed vlan 2,3
这条命令用于设置trunk端口的允许列表。如果没有设置允许列表,当只将端口设置成trunk模式(switchport mode trunk),即默认所有VLAN都能通过。
使用show running-config命令查看配置命令
在SW1交换机下使用下列命令进行配置:
1Switch1(config)#interface f0/4 //进入f0/4接口
2Switch1(config-if)#no switchport access vlan
3Switch1(config-if)#switchport mode trunk //把端口的连接类型设置为trunk模式
4Switch1(config-if)#switchport trunk allowed vlan 2,3
5Switch1(config-if)#exit
6Switch1(config)#exit
7Switch1#
使用show running-config命令查看配置命令
6.4.2. 观察VLAN 3的连通情况
在PC1上使用ping PC3命令测试连通性,如图:
6.4.3. 观察同一VLAN和不同VLAN的连通情况
在PC0上使用ping PC2命令测试连通性,在PC0上使用ping PC3命令测试连通性,如图:
完成trunk模式配置后,PC0和PC2互通,PC1和PC3互通,PC0和PC3不连通。注意,保存好你的组网图,并填写实验报告。
提示
如果实验结果不对,请参照下列方法来 调试和排错
检查交换机与交换机之间的端口是否配置为Trunk模式。
检查各端口的VLAN是否正确。
检查PC机的IP地址是否正确。
一般来说,交换机等设备都具有自适应性,即支持直通线和交叉线混用,但在使用Cisco Packet Tracer模拟器软件时,要注意直通线和交叉线的区别,二者不能混用。
注意
思考题
下图中Switch0的Fa0/1和Fa0/4属于同一个VLAN 2,Switch1的Fa0/1和Fa0/4属于同一个VLAN 3,这四个端口都是access口,试验结果PC0和PC1能互通,请问属于不同VLAN中的PC0和PC1为什么也能通,当把Switch0的Fa0/4和Switch1的Fa0/4改成trunk模式(其pvid==1,默认值)反而不通?请分析其原因,并写入实验报告中。
7. 实验提交
本实验提交 实验报告(详见课程群) 。