前言
?以太网是一种基于CSMA/CD的数据网络通信技术 , 其特征是共享通信介质 。当主机数目较多时会导致安全隐患、广播泛滥、性能显著下降甚至造成网络不可用 。
?在这种情况下出现了VLAN (Virtual Local Area Network)技术解决以上问题 。
?在本课程中,将介绍VLAN技术的相关概念,介绍不同二层接口的工作原理,并且会介绍VLAN的应用及其数据转发原理和相关配置 。
传统以太网的问题
?广播域:?如图是一个典型的交换网络,网络中只有终端计算机和交换机 。在这样的网络中,如果某一台计算机发送了一个广播帧 , 由于交换机对广播帧执行泛洪操作,结果所有其他的计算机都会收到这个广播帧 。?把广播帧所能到达的整个访问范围称为二层广播域,简称广播域 (Broadcast Domain) 。显然,一个交换网络其实就是一个广播域 。?网络安全问题和垃圾流量问题:?如图:如果PC1向PC2发送了一个单播帧 。此时SW1、SW3、SW7的MAC地址表中存在关于PC2的MAC地址表项 , 但SW2和SW5不存在关于PC2的MAC地址表项 。那么,SW1和SW3将对该单播帧执行点对点的转发操作 , SW7将对该单播帧执行丢弃操作,SW2和SW5将对该单播帧执行泛洪操作 。最后的结果是,PC2虽然收到了该单播?。?但网络中的很多其他非目的主机,同样收到了不该接收的数据帧 。?显然,广播域越大,网络安全问题和垃圾流量问题就越严重 。
?在典型交换网络中,当某台主机发送一个广播帧或未知单播帧时,该数据帧会被泛洪,甚至传递到整个广播域 。?广播域越大,产生的网络安全问题、垃圾流量问题,就越严重 。
虚拟局域网 (VLAN, Virtual LAN)
?为了解决广播域带来的问题 , 人们引入了VLAN (Virtual Local Area Network),即虚拟局域网技术:?通过在交换机上部署VLAN,可以将一个规模较大的广播域在逻辑上划分成若干个不同的、规模较小的广播域 , 由此可以有效地提升网络的安全性 , 同时减少垃圾流量,节约网络资源 。?VLAN的特点:?一个VLAN就是一个广播域,所以在同一个VLAN内部,计算机可以直接进行二层通信;而不同VLAN内的计算机 , 无法直接进行二层通信,只能进行三层通信来传递信息,即广播报文被限制在一个VLAN内 。?VLAN的划分不受地域的限制 。?VLAN的好处:?灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组 , 同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活 。?限制广播域:广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力 。?增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信 。?提高了网络的健壮性:故障被限制在一个VLAN内,本VLAN内的故障不会影响其他VLAN的正常工作 。?注:二层,即数据链路层 。
虚拟局域网VLAN可以隔离广播域 。特点:
不受地域限制 。
同一VLAN内的设备才能直接进行二层通信 。
如何实现VLAN
?Switch1与Switch2同属一个企业,该企业统一规划了网络中的VLAN 。其中VLAN10用于A部门,VLAN20用于B部门 。A、B部门的员工在Switch1和Switch2上都有接入 。
?PC1发出的数据经过Switch1和Switch2之间的链路到达了Switch2 。如果不加处理,后者无法判断该数据所属的VLAN,也不知道应该将这个数据输出到本地哪个VLAN中 。
VLAN标签 (VLAN Tag)
?交换机如何识别接收到的数据帧属于哪个VLAN?
?如图所示,SW1识别出某个帧是属于哪个VLAN后,会在这个帧的特定位置上添加一个标签 。这个标签明确地标明了这个帧是属于哪个VLAN的 。其他交换机(如SW2)收到这个带标签的数据帧后,就能轻而易举地直接根据标签信息识别出这个帧属于哪个VLAN 。?IEEE 802.1Q定义了这种带标签的数据帧的格式 。满足这种格式的数据帧称为IEEE 802.1Q数据?。?也称VLAN数据帧 。
VLAN标签:?要使交换机能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段 。
?IEEE 802.1Q协议规定,在以太网数据帧中加入4个字节的VLAN标签,又称VLAN Tag,简称Tag 。
VLAN数据帧
?在一个VLAN交换网络中 , 以太网帧主要有以下两种形式:?有标记?。═agged?。篒EEE 802.1Q协议规定 , 在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag)的数据帧 。?无标记?。║ntagged?。涸嫉摹⑽醇尤?字节VLAN标签的数据帧 。?VLAN数据帧中的主要字段:?TPID:2字节,Tag Protocol Identifier(标签协议标识符),表示数据帧类型 。?取值为0x8100时表示IEEE 802.1Q的VLAN数据帧 。如果不支持802.1Q的设备收到这样的帧,会将其丢弃 。?各设备厂商可以自定义该字段的值 。当邻居设备将TPID值配置为非0x8100时,为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致 。?PRI:3 bit,Priority,表示数据帧的优先级,用于QoS 。?取值范围为0~7,值越大优先级越高 。当网络阻塞时,交换机优先发送优先级高的数据帧 。
VLAN的实现?Switch1和Switch2之间的链路要承载多个VLAN的数据,需要一种基于VLAN的数据“标记”手段,以便对不同VLAN的数据帧进行区分 。
?IEEE 802.1Q标准(也被称为Dot1Q)定义了该“标记”方法 。该标准对传统的以太网数据帧进行修改 , 在帧头中插入802.1Q Tag , 而在该Tag中 , 便可以写入VLAN信息 。
VLAN的划分方式
整个网络是如何划分VLAN的?
VLAN 10
VLAN 20
基于接口
GE0/0/1,GE0/0/3
GE0/0/2,GE0/0/4
基于MAC地址
MAC 1 , MAC 3
MAC 2,MAC 4
基于IP子网划分
10.0.1.*
10.0.2.*
基于协议划分
IP
IPv6
基于策略
10.0.1.* + GE0/0/1+ MAC 1
10.0.2.* + GE0/0/2 + MAC 2
基于接口的VLAN划分
?划分原则:?将VLAN ID配置到交换机的物理接口上 , 从某一个物理接口进入交换机的、由终端计算机发送的Untagged数据帧都被划分到该接口的VLAN ID所表明的那个VLAN 。?特点:?这种划分原则简单而直观 , 实现容易 , 是目前实际的网络应用中最为广泛的划分VLAN的方式 。?当计算机接入交换机的端口发生了变化时,该计算机发送的帧的VLAN归属可能会发生变化 。?缺省VLAN,PVID (Port VLAN ID)?每个交换机的接口都应该配置一个PVID,到达这个端口的Untagged帧将一律被交换机划分到PVID所指代的VLAN 。?默认情况下,PVID的值为1 。
基于接口的VLAN划分?原理
?根据交换机的接口来划分VLAN 。
?网络管理员预先给交换机的每个接口配置不同的PVID,将该接口划入PVID对应的VLAN 。
?当一个数据帧进入交换机时,如果没有带VLAN标签,该数据帧就会被打上接口指定PVID的Tag,然后数据帧将在指定PVID中传输 。
?缺省VLAN,PVID
?Port VLAN ID , 是接口上的缺省VLAN 。
?取值:1~4094 。
基于MAC地址的VLAN划分
SW1的MAC地址与VLAN表
VLAN ID
MAC 1
10
MAC 2
10
……
……
?划分原则:?交换机内部建立并维护了一个MAC地址与VLAN ID的对应表 。当交换机接收到计算机发送的Untagged帧时,交换机将分析帧中的源MAC地址 , 然后查询MAC地址与VLAN ID的对应表,并根据对应关系把这个帧划分到相应的VLAN中 。?特点:?这种划分实现稍微复杂,但灵活性得到了提高 。?当计算机接入交换机的端口发生了变化时,该计算机发送的帧的VLAN归属不会发生变化(因为计算机的MAC地址没有变) 。?但这种类型的VLAN划分安全性不是很高,因为恶意计算机很容易伪造MAC地址 。
基于MAC地址的VLAN划分?原理
?根据数据帧的源MAC地址来划分VLAN 。
?网络管理员预先配置MAC地址和VLAN ID映射关系表 。
?当交换机收到的是Untagged帧时,就依据该表给数据帧添加指定VLAN的Tag,然后数据帧将在指定VLAN中传输 。
?映射表
?记录了MAC地址和VLAN ID的关联情况 。
以太网二层接口类型
接口类型
?Access接口
交换机上常用来连接用户PC、服务器等终端设备的接口 。Access接口所连接的这些设备的网卡往往只收发无标记帧 。Access接口只能加入一个VLAN 。
?Trunk接口
Trunk接口允许多个VLAN的数据帧通过 , 这些数据帧通过802.1Q Tag实现区分 。Trunk接口常用于交换机之间的互联,也用于连接路由器、防火墙等设备的子接口 。
?Hybrid接口
Hybrid接口与Trunk接口类似,也允许多个VLAN的数据帧通过,这些数据帧通过802.1Q Tag实现区分 。用户可以灵活指定Hybrid接口在发送某个(或某些)VLAN的数据帧时是否携带Tag 。
Access接口
?上文已经介绍了交换机如何识别数据帧属于哪个VLAN以及VLAN的划分方式,那交换机对于Untagged帧和Tagged帧又是如何处理的呢??Access接口特点:?仅允许VLAN ID与接口PVID相同的数据帧通过 。?Access接口接收数据?。?当Access接口从链路上收到一个Untagged帧 , 交换机会在这个帧中添加上VID为PVID的Tag,然后对得到的Tagged帧进行转发操作(泛洪、转发、丢弃) 。?当Access接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否与PVID相同 。如果相同,则对这个Tagged帧进行转发操作;如果不同 , 则直接丢弃这个Tagged帧 。?Access接口发送数据?。?当一个Tagged帧从本交换机的其他接口到达一个Access接口后,交换机会检查这个帧的Tag中的VID是否与PVID相同:?如果相同,则将这个Tagged帧的Tag进行剥离 , 然后将得到的Untagged帧从链路上发送出去;?如果不同,则直接丢弃这个Tagged帧 。
Trunk接口?对于Trunk接口,除了要配置PVID外 , 还必须配置允许通过的VLAN ID列表,其中VLAN 1是默认存在的 。?Trunk接口特点:?Trunk接口仅允许VLAN ID在允许通过列表中的数据帧通过 。?Trunk接口可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag) 。?Trunk接口接收数据?。?当Trunk接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag , 然后查看PVID是否在允许通过的VLAN ID列表中 。如果在,则对得到的Tagged帧进行转发操作;如果不在,则直接丢弃得到的Tagged帧 。?当Trunk接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否在允许通过的VLAN ID列表中 。如果在,则对这个Tagged帧进行转发操作;如果不在 , 则直接丢弃这个Tagged帧 。?Trunk接口发送数据?。?当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后,如果这个帧的Tag中的VID不在允许通过的VLAN ID列表中,则该Tagged帧会被直接丢弃 。?当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后 , 如果这个帧的Tag中的VID在允许通过的VLAN ID列表中,则会比较该Tag中的VID是否与接口的PVID相同:?如果相同 , 则交换机会对这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去;?如果不同 , 则交换机不会对这个Tagged帧的Tag进行剥离,而是直接将它从链路上发送出去 。
Access接口与Trunk接口举例?请描述主机之间数据访问的全流程 。
SW1与SW2的Trunk接口
VLAN ID
1
10
20
?在本例中,SW1和SW2连接主机的接口为Access接口,PVID如图所示 。SW1和SW2互连的接口为Trunk接口,PVID都为1,此Trunk接口的允许通过的VLAN ID列表也如图所示 。?请描述主机之间数据互访的全流程 。
Hybrid接口?对于Hybrid接口,除了要配置PVID外,还存在两个允许通过的VLAN ID列表,一个是Untagged VLAN ID列表,另一个是Tagged VLAN ID列表,其中VLAN 1默认在Untagged VLAN列表中 。这两个允许通过列表中的所有VLAN的帧都是允许通过这个Hybrid接口的 。?Hybrid接口特点:?Hybrid接口仅允许VLAN ID在允许通过列表中的数据帧通过 。?Hybrid接口可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag、某些VLAN的帧不带Tag 。?与Trunk最主要的区别就是,能够支持多个VLAN的数据?。?不带标签通过 。?Hybrid接口接收数据?。?当Hybrid接口从链路上收到一个Untagged帧 , 交换机会在这个帧中添加上VID为PVID的Tag,然后查看PVID是否在Untagged或Tagged VLAN ID列表中 。如果在,则对得到的Tagged帧进行转发操作;如果不在,则直接丢弃得到的Tagged帧 。?当Hybrid接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否在Untagged或Tagged VLAN ID列表中 。如果在,则对这个Tagged帧进行转发操作;如果不在,则直接丢弃这个Tagged帧 。?Hybrid接口发送数据?。?当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID既不在Untagged VLAN ID列表中,也不在Tagged VLAN ID列表中,则该Tagged帧会被直接丢弃 。?当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID在Untagged VLAN ID列表中 , 则交换机会对这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去 。?当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID在Tagged VLAN ID列表中,则交换机不会对这个Tagged帧的Tag进行剥离,而是直接将它从链路上发送出去 。
Hybrid接口举例?请描述主机访问服务器的全流程 。
?在本例中,SW1和SW2连接主机的接口以及互连的接口均为Hybrid接口 , PVID如图所示,Hybrid接口的允许通过的VLAN ID列表也如图所示 。?请描述两个主机互访服务器的全流程 。
交换机1的允许通过列表交换机2的允许通过列表
小结
【vlan是什么? VLAN基本原理】