实验8虚拟局域网讲解.docx
《实验8虚拟局域网讲解.docx》由会员分享,可在线阅读,更多相关《实验8虚拟局域网讲解.docx(22页珍藏版)》请在冰豆网上搜索。
![实验8虚拟局域网讲解.docx](https://file1.bdocx.com/fileroot1/2023-5/31/914df63c-9ac5-41ac-9420-9335724088f1/914df63c-9ac5-41ac-9420-9335724088f11.gif)
实验8虚拟局域网讲解
实验8虚拟局域网
8.1实验目的
1、了解虚拟局域网的概念和作用。
2、掌握在一台交换机上划分VLAN的方法和跨交换机VLAN的配置方法。
3、掌握VLAN数据帧的格式、添加和删除VLAN标记的过程。
8.2实验内容
1、使用二层交换机进行组网,按拓扑图上的设备信息及地址信息对设备做基本的配置。
在一台交换机上划分VLAN,用Ping命令测试在同一VLAN和不同VLAN中设备连通情况。
2、配置Trunk端口,用Ping命令测试在同一VLAN和不同VLAN中设备的连通情况。
8.3实验原理
1、VLAN概述
VLAN(VirtualLocalAreaNetwork)又称虚拟局域网,是指在交换局域网的基础上,采用网络管理软件构建的可跨越不同网段、不同网络的端到端的逻辑网络。
一个VLAN组成一个逻辑子网,即一个逻辑广播域,它可以覆盖多个网络设备,允许处于不同地理位置的网络用户加入到一个逻辑子网中。
VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第3层,VLAN之间的通信是通过第3层的路由器来完成的。
在此让我们先复习一下广播域的概念。
广播域,指的是广播帧(目标MAC地址全部为1)所能传递到的范围,亦即能够直接通信的范围。
严格地说,并不仅仅是广播帧,多播帧(MulticastFrame)和目标不明的单播帧(UnknownUnicastFrame)也能在同一个广播域中畅行无阻。
本来,二层交换机只能构建单一的广播域,不过使用VLAN功能后,它能够将网络分割成多个广播域。
那么,为什么需要分割广播域呢?
那是因为,如果仅有一个广播域,有可能会影响到网络整体的传输性能。
具体原因,请参看如图1加深理解。
图1
图中,是一个由5台二层交换机(交换机1~5)连接了大量客户机构成的网络。
假设这时,计算机A需要与计算机B通信。
在基于以太网的通信中,必须在数据帧中指定目标MAC地址才能正常通信,因此计算机A必须先广播“ARP请求(ARPRequest)信息”,来尝试获取计算机B的MAC地址。
交换机1收到广播帧(ARP请求)后,会将它转发给除接收端口外的其他所有端口,也就是Flooding了。
接着,交换机2收到广播帧后也会Flooding。
交换机3、4、5也还会Flooding。
最终ARP请求会被转发到同一网络中的所有客户机上。
请大家注意一下,这个ARP请求原本是为了获得计算机B的MAC地址而发出的。
也就是说:
只要计算机B能收到就万事大吉了。
可是事实上,数据帧却传遍整个网络,导致所有的计算机都收到了它。
如此一来,一方面广播信息消耗了网络整体的带宽,另一方面,收到广播信息的计算机还要消耗一部分CPU时间来对它进行处理。
造成了网络带宽和CPU运算能力的大量无谓消耗。
VLAN的好处主要有三个:
(1)端口的分隔。
即便在同一个交换机上,处于不同VLAN的端口也是不能通信的。
这样一个物理的交换机可以当作多个逻辑的交换机使用。
(2)网络的安全。
不同VLAN不能直接通信,杜绝了广播信息的不安全性。
(3)灵活的管理。
更改用户所属的网络不必换端口和连线,只更改软件配置就可以了。
2、VLAN的划分方法
VLAN的划分可以是事先固定的、也可以是根据所连的计算机而动态改变设定。
前者被称为“静态VLAN”、后者自然就是“动态VLAN”了。
(1)静态VLAN
静态VLAN又被称为基于端口的VLAN(PortBasedVLAN)。
顾名思义,就是明确指定各端口属于哪个VLAN的设定方法。
图2
由于需要一个个端口地指定,因此当网络中的计算机数目超过一定数字(比如数百台)后,设定操作就会变得烦杂无比。
并且,客户机每次变更所连端口,都必须同时更改该端口所属VLAN的设定——这显然不适合那些需要频繁改变拓补结构的网络。
我们现在所实现的VLAN配置都是基于端口的配置,因为我们只是支持二层交换,端口数目有限一般为4和8个端口,并且只是对于一台交换机的配置,手动配置换算较为方便。
(2)动态VLAN
另一方面,动态VLAN则是根据每个端口所连的计算机,随时改变端口所属的VLAN。
这就可以避免上述的更改设定之类的操作。
动态VLAN可以大致分为3类:
●基于MAC地址的VLAN(MACBasedVLAN)
●基于子网的VLAN(SubnetBasedVLAN)
●基于用户的VLAN(UserBasedVLAN)
其间的差异,主要在于根据OSI参照模型哪一层的信息决定端口所属的VLAN。
基于MAC地址的VLAN,就是通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属。
假定有一个MAC地址“A”被交换机设定为属于VLAN“10”,那么不论MAC地址为“A”的这台计算机连在交换机哪个端口,该端口都会被划分到VLAN10中去。
计算机连在端口1时,端口1属于VLAN10;而计算机连在端口2时,则是端口2属于VLAN10。
由于是基于MAC地址决定所属VLAN的,因此可以理解为这是一种在OSI的第二层设定访问链接的办法。
但是,基于MAC地址的VLAN,在设定时必须调查所连接的所有计算机的MAC地址并加以登录。
而且如果计算机交换了网卡,还是需要更改设定。
图3
基于子网的VLAN,则是通过所连计算机的IP地址,来决定端口所属VLAN的。
不像基于MAC地址的VLAN,即使计算机因为交换了网卡或是其他原因导致MAC地址改变,只要它的IP地址不变,就仍可以加入原先设定的VLAN。
图4
因此,与基于MAC地址的VLAN相比,能够更为简便地改变网络结构。
IP地址是OSI参照模型中第三层的信息,所以我们可以理解为基于子网的VLAN是一种在OSI的第三层设定访问链接的方法。
一般路由器与三层交换机都使用基于子网的方法划分VLAN。
基于用户的VLAN,则是根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个VLAN。
这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows域中使用的用户名。
这些用户名信息,属于OSI第四层以上的信息。
总的来说,决定端口所属VLAN时利用的信息在OSI中的层面越高,就越适于构建灵活多变的网络。
3、VLAN帧结构
在交换机的汇聚链接上,可以通过对数据帧附加VLAN信息,构建跨越多台交换机的VLAN。
附加VLAN信息的方法,最具有代表性的有:
●IEEE802.1Q
●ISL
现在就让我们看看这两种协议分别如何对数据帧附加VLAN信息。
(1)IEEE802.1Q
IEEE802.1Q,俗称“DotOneQ”,是经过IEEE认证的对数据帧附加VLAN识别信息的协议。
在此,请大家先回忆一下以太网数据帧的标准格式。
IEEE802.1Q所附加的VLAN识别信息,位于数据帧中“发送源MAC地址”与“类别域(TypeField)”之间。
具体内容为2字节的TPID和2字节的TCI,共计4字节。
在数据帧中添加了4字节的内容,那么CRC值自然也会有所变化。
这时数据帧上的CRC是插入TPID、TCI后,对包括它们在内的整个数据帧重新计算后所得的值。
基于IEEE802.1Q附加的VLAN信息,就像在传递物品时附加的标签。
因此,它也被称作“标签型VLAN(TaggingVLAN)”。
图5
1.TPID(TagProtocolIdentifier,也就是EtherType)
是IEEE定义的新的类型,表明这是一个加了802.1Q标签的帧。
TPID包含了一个固定的值0x8100。
2.TCI(TagControlInformation)
包括用户优先级(UserPriority)、规范格式指示器(CanonicalFormatIndicator)和VLANID。
①UserPriority:
该字段为3-bit,用于定义用户优先级,总共有8个(2的3次方)优先级别。
IEEE802.1P为3比特的用户优先级位定义了操作。
最高优先级为7,应用于关键性网络流量,如路由选择信息协议(RIP)和开放最短路径优先(OSPF)协议的路由表更新。
优先级6和5主要用于延迟敏感(delay-sensitive)应用程序,如交互式视频和语音。
优先级4到1主要用于受控负载(controlled-load)应用程序,如流式多媒体(streamingmultimedia)和关键性业务流量(business-criticaltraffic)-例如,SAP数据-以及“losseligible”流量。
优先级0是缺省值,并在没有设置其它优先级值的情况下自动启用。
②CFI:
CFI值为0说明是规范格式,1为非规范格式。
它被用在令牌环/源路由FDDI介质访问方法中来指示封装帧中所带地址的比特次序信息。
③VID:
该字段为12-bit,VLANID是对VLAN的识别字段,在标准802.1Q中常被使用。
支持4096(2的12次方)VLAN的识别。
在4096可能的VID中,VID=0用于识别帧优先级。
4095(FFF)作为预留值,所以VLAN配置的最大可能值为4094。
所以有效的VLANID范围一般为1-4094。
(2)ISL(InterSwitchLink)
ISL,是Cisco产品支持的一种与IEEE802.1Q类似的、用于在汇聚链路上附加VLAN信息的协议。
使用ISL后,每个数据帧头部都会被附加26字节的“ISL包头(ISLHeader)”,并且在帧尾带上通过对包括ISL包头在内的整个数据帧进行计算后得到的4字节CRC值。
换而言之,就是总共增加了30字节的信息。
在使用ISL的环境下,当数据帧离开汇聚链路时,只要简单地去除ISL包头和新CRC就可以了。
由于原先的数据帧及其CRC都被完整保留,因此无需重新计算
图6
∙DA―40位组播目的地址。
包括一个广播地址0X01000C0000或者是0X03000C0000。
∙Type―各种封装帧(Ethernet(0000)、TokenRing(0001)、FDDI(0010)和ATM(0011))的4位描述符。
∙User―Type字段使用的4位描述符扩展或定义Ethernet优先级。
该二进制值从最低优先级开始0到最高优先级3。
∙SA―传输Catalyst交换机中使用的48位源MAC地址。
∙LEN―16位帧长描述符减去DA、type、user、SA、LEN和CRC字段。
∙AAAA03―标准SNAP802.2LLC头。
∙HAS―SA的前3字节(厂商的ID或组织唯一ID)。
∙VLAN―15位VLANID。
低10位用于1024VLAN。
∙BPDU―1位描述符,识别帧是否是生成树网桥协议数据单元(BPDU)。
如果封装帧为思科发现协议(CDP)帧,也需设置该字段。
∙INDEX―16位描述符,识别传输端口ID。
用于诊断差错。
∙RES―16位预留字段,应用于其它信息,如令牌环和分布式光纤数据接口帧(FDDI),帧校验(FC)字段。
∙ISL帧最大为1548bytes,iSL包头26+1518+4=1548
ISL有如用ISL包头和新CRC将原数据帧整个包裹起来,因此也被称为“封装型VLAN(EncapsulatedVLAN)”。
需要注意的是,不论是IEEE802.1Q的“TaggingVLAN”,还是ISL的“EncapsulatedVLAN”,都不是很严密的称谓。
不同的书籍与参考资料中,上述词语有可能被混合使用,因此需要大家在学习时格外注意。
并且由于ISL是Cisco独有的协议,因此只能用于Cisco网络设备之间的互联。
IEEE802.Q和ISL的异同:
相同点:
都是显式标记,即帧被显式标记了VLAN的信息。
不同点:
IEEE802.1Q是公有的标记方式,ISL是Cisco私有的,ISL采用外部标记的方法,802.1Q采用内部标记的方法,ISL标记的长度为30字节,802.1Q标记的长度为4字节。
4、交换机的端口类型:
交换机的端口,可以分为以下两种:
●访问链接(AccessLink)
●汇聚链接(TrunkLink)
(1)Access端口
Access即用户接入端口,该类型端口只能属于1个VLAN,一般用于连接计算机的端口。
收端口:
收到untaggedframe,加上端口的PVID和defaultpriority再进行交换转发;对于taggedframe不论VID=PVID还是VID\=PVID则有的厂家是直接丢弃,而有的厂家是能够接收VID=PVID的TAG包。
一般Access端口只接收untaggedframe,部分产品可能接收taggedframe,我们的REOP、ES011、E4114等都接收VID=PVID的TAG端口包。
发报文:
对于VID=PVID的taggedframe去除标签并进行转发。
对于VID\=PVID的数据包丢弃不进行转发,untaggedframe则无此情况。
而我们的REOP、ES011、E4114则对于VID=PVID或VID\=PVID的taggedframe都进行转发处理。
注:
所说的删除标签是指删除4字节的VLAN标签,并且CRC经过重新计算。
(2)Trunk端口
当需要设置跨越多台交换机的VLAN时则需要设置TRUNK功能。
在规划企业级网络时,很有可能会遇到隶属于同一部门的用户分散在同一座建筑物中的不同楼层的情况,这时可能就需要考虑到如何跨越多台交换机设置VLAN的问题了。
假设有如下图所示的网络,且需要将不同楼层的A、C和B、D设置为同一个VLAN。
图7
这时最关键的就是“交换机1和交换机2该如何连接才好呢?
”最简单的方法,自然是在交换机1和交换机2上各设一个红、蓝VLAN专用的接口并互联了。
图8
但是,这个办法从扩展性和管理效率来看都不好。
例如,在现有网络基础上再新建VLAN时,为了让这个VLAN能够互通,就需要在交换机间连接新的网线。
建筑物楼层间的纵向布线是比较麻烦的,一般不能由基层管理人员随意进行。
并且,VLAN越多,楼层间(严格地说是交换机间)互联所需的端口也越来越多,交换机端口的利用效率低是对资源的一种浪费、也限制了网络的扩展。
为了避免这种低效率的连接方式,人们想办法让交换机间互联的网线集中到一根上,这时使用的就是汇聚链接(TrunkLink)。
所谓Trunking即汇聚端口,该类型端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,一般用于交换机之间或交换机与路由器之间连接的端口;
另外由于Trunk端口属于多个VLAN,所以需要设置缺省VLANID即PVID(portvlanID)。
缺省情况下,Trunk端口的PVID为VLAN1。
如果设置了端口的PVID,当端口接收到不带VLANTag的报文后,则加上端口的PVID并将报文转发到属于缺省VLAN的端口;当端口发送带有VLANTag的报文时,如果该报文的VLANID与端口缺省的VLANID相同,则系统将去掉报文的VLANTag,然后再发送该报文。
8.4实验设备
S2960G(两台)、主机(4台)、直连线(5条)
8.5实验组网
实验测试拓扑结构分别如图9,图10所示,图中各设备地址的配置分别如表1,2所示。
图9
图10
表1VLAN基本配置设备信息
设备名
接口
IP信息
IP地址
网关
Switch0
VLAN1
192.168.1.2/24
192.168.1.1/24
PC-PTPC0
RJ45
192.168.1.11/24
192.168.1.1/24
PC-PTPC1
RJ45
192.168.1.12/24
192.168.1.1/24
PC-PTPC3
RJ45
192.168.2.11/24
192.168.2.1/24
PC-PTPC4
RJ45
192.168.2.12/24
192.168.2.1/24
表2Trunk端口配置设备信息
设备名
接口
IP信息
IP地址
网关
Switch0
VLAN1
192.168.1.2/24
192.168.1.1/24
Switch1
VLAN1
192.168.1.3/24
192.168.1.1/24
PC-PTPC0
RJ45
192.168.1.11/24
192.168.1.1/24
PC-PTPC1
RJ45
192.168.2.11/24
192.168.2.1/24
PC-PTPC3
RJ45
192.168.1.12/24
192.168.1.1/24
PC-PTPC4
RJ45
192.168.2.12/24
192.168.2.1/24
8.6实验步骤
1、单一交换机VLAN的划分
(1)按照图9所示,用实验软件画出该拓扑图。
(2)按照表9-1配置交换机名及各设备的IP信息,交换机的配置过程如下:
Switch#configterminal
Switch(config)#hostnameSwitchA
SwitchA(config)#interfacevlan1
SwitchA(config-if)#ipaddress192.168.1.2255.255.255.0
SwitchA(config-if)#noshutdown
SwitchA(config-if)#exit
SwitchA(config)#vlan10//创建VLAN
SwitchA(config-vlan)#exit
SwitchA(config)#vlan20//创建VLAN
SwitchA(config-vlan)#exit
SwitchA(config)#interfacerangefastEthernet0/1-2//配置连续端口
SwitchA(config-if-range)#switchportmodeaccess//配置端口为Access端口
SwitchA(config-if-range)#switchportaccessvlan10//将端口加入VLAN10中
SwitchA(config-if-range)#exit
SwitchA(config)#interfacerangefastEthernet0/3-4//配置连续端口
SwitchA(config-if-range)#switchportmodeaccess//配置端口为Access端口
SwitchA(config-if-range)#switchportaccessvlan20//将端口加入VLAN10中
SwitchA(config-if-range)#end
SwitchA#showvlan
观察VLAN信息表,检查实验所需要的VLAN及各VLAN所对应的端口是否正确。
想一想:
此时4台PC之间能Ping通吗?
为什么?
如果再添加1台PC命名为PC4,使它在默认VLAN中,该PC能和上述4台PC机ping通么?
如果建立VLAN30,使PC4属于VLAN30,怎样把它从VLAN30中移除,然后删掉VLAN30,需要添加那些命令?
(3)PC0、PC1属于VLAN10,PC2、PC3属于VLAN20,现在对同一VLAN之间的设备进行测试(如PC0pingPC1)和不同VLAN之间的设备进行测试(如PC0pingPC3),详细的测试结果如表9-3所示。
表3单一交换机的各VLAN配置测试结果
所用命令
结果
同一网段
PC0→PC1
Ping192.168.1.12
连通
PC2→PC3
Ping192.168.2.12
连通
不同网段
PC0→PC2
Ping192.168.2.11
Requesttimedout
PC0→PC3
Ping192.168.2.12
Requesttimedout
PC1→PC2
Ping192.168.2.11
Requesttimedout
PC1→PC3
Ping192.168.2.12
Requesttimedout
PC0→SwitchA
Ping192.168.1.2
连通
PC3→SwitchA
Ping192.168.1.2
连通
PC4→PC0
Ping192.168.1.11
Requesttimedout
PC4→PC3
Ping192.168.2.11
连通
2、跨交换机实现相同VLAN的互通(采用Trunk配置)
(1)按照图10所示,用实验软件画出拓扑图。
(2)按照表2配置交换机的名称及PC的IP信息,交换机的配置过程分为以下两种。
交换机A:
Switch#configterminal
Switch(config)#hostnameSwitchA
SwitchA(config)#interfacevlan1
SwitchA(config-if)#ipaddress192.168.1.2255.255.255.0
SwitchA(config-if)#noshutdown
SwitchA(config-if)#exit
SwitchA(config)#vlan10//创建VLAN
SwitchA(config-vlan)#exit
SwitchA(config)#vlan20//创建VLAN
SwitchA(config-vlan)#exit
SwitchA(config)#interfacefastEthernet0/1//进入端口模式
SwitchA(config-if)#switchportmodeaccess//配置端口为Access端口
SwitchA(config-if)#switchportaccessvlan10//将端口加入VLAN10中
SwitchA(config-if-range)#exit
SwitchA(config)#interfacerangefastEthernet0/2////进入端口模式
SwitchA(config-if)#switchportmodeaccess//配置端口为Access端口
SwitchA(config-if)#switchportaccessvlan20//将端口加入VLAN10中
SwitchA(config-if)#exit
SwitchA(config)#interfacefastEthernet0/24//进入端口模式
SwitchA(config-if)#switchportmodetrunk//配置端口为干道模式
SwitchA(config-if)#switchporttrunkallowedvlanall//允许所有的VLAN通过
SwitchA(config-if)#end
SwitchA#showvlan
交换机B:
Switch#configterminal
Switc