华为VLAN技术原理.docx
《华为VLAN技术原理.docx》由会员分享,可在线阅读,更多相关《华为VLAN技术原理.docx(48页珍藏版)》请在冰豆网上搜索。
华为VLAN技术原理
VLAN技术原理
传统的局域网使用的是HUB,HUB只有一根总线,一根总线就是一个冲突域。
所以传统的局域网是一个扁平的网络,一个局域网属于同一个冲突域。
任何一台主机发出的报文都会被同一冲突域中的所有其它机器接收到。
后来,组网时使用网桥(二层交换机)代替集线器(HUB),每个端口可以看成是一根单独的总线,冲突域缩小到每个端口,使得网络发送单播报文的效率大大提高,极大地提高了二层网络的性能。
假如一台主机发出广播报文,设备仍然可以接收到该广播信息,我们通常把广播报文所能传输的范围称之为广播域,网桥在传递广播报文的时候依然要将广播报文复制多份,发送到网络的各个角落。
随着网络规模的扩大,网络中的广播报文越来越多,广播报文占用的网络资源越来越多,严重影响网络性能,这就是所谓的广播风暴的问题。
由于网桥二层网络工作原理的限制,网桥对广播风暴的问题无能为力。
为了提高网络的效率,一般需要将网络进行分段:
把一个大的广播域划分成几个小的广播域。
过去往往通过路由器对LAN进行分段。
图中用路由器替换上一图中的中心节点交换机,使得广播报文的发送范围大大减小。
这种方案解决了广播风暴的问题,但是用路由器是在网络层上分段将网络隔离,网络规划复杂,组网方式不灵活,并且大大增加了管理维护的难度。
作为替代的LAN分段方法,虚拟局域网被引入到网络解决方案中来,用于解决大型的二层网络环境面临的问题。
虚拟局域网(VLAN——VirtualLocalAreaNetwork)逻辑上把网络资源和网络用户按照一定的原则进行划分,把一个物理上实际的网络划分成多个小的逻辑的网络。
这些小的逻辑的网络形成各自的广播域,也就是虚拟局域网VLAN。
图中都使用一个中心交换机,但是左右各属于不同的VLAN,形成各自的广播域,广播报文不能跨越这些广播域传送。
虚拟局域网将一组位于不同物理网段上的用户在逻辑上划分成一个局域网内,在功能和操作上与传统LAN基本相同,可以提供一定范围内终端系统的互联。
VLAN与传统的LAN相比,具有以下优势:
限制广播包,提高带宽的利用率:
有效地解决了广播风暴带来的性能下降问题。
一个VLAN形成一个小的广播域,同一个VLAN成员都在由所属VLAN确定的广播域内,那么,当一个数据包没有路由时,交换机只会将此数据包发送到所有属于该VLAN的其他端口,而不是所有的交换机的端口,这样,就将数据包限制到了一个VLAN内。
在一定程度上可以节省带宽;
减少移动和改变的代价:
即所说的动态管理网络,也就是当一个用户从一个位置移动到另一个位置时,他的网络属性不需要重新配置,而是动态的完成,这种动态管理网络给网络管理者和使用者都带来了极大的好处,一个用户,无论他到哪里,他都能不做任何修改地接入网络,这种前景是非常美好的。
当然,并不是所有的VLAN定义方法都能做到这一点;
创建虚拟工作组:
使用VLAN的最终目标就是建立虚拟工作组模型,例如,在企业网中,同一个部门的就好像在同一个LAN上一样,很容易的互相访问,交流信息,同时,所有的广播包也都限制在该虚拟LAN上,而不影响其他VLAN的人。
一个人如果从一个办公地点换到另外一个地点,而他仍然在该部门,那么,该用户的配置无须改变;同时,如果一个人虽然办公地点没有变,但他更换了部门,那么,只需网络管理员更改一下该用户的配置即可。
这个功能的目标就是建立一个动态的组织环境,当然,这只是一个理想的目标,要实现它,还需要一些其他方面的支持。
用户不受到物理设备的限制,VLAN用户可以处于网络中的任何地方,VLAN对用户的应用不产生影响;
增强通讯的安全性:
一个VLAN的数据包不会发送到另一个VLAN,这样,其他VLAN用户的网络上是收不到任何该VLAN的数据包,确保了该VLAN的信息不会被其他VLAN的人窃听,从而实现了信息的保密;
增强网络的健壮性:
当网络规模增大时,部分网络出现问题往往会影响整个网络,引入VLAN之后,可以将一些网络故障限制在一个VLAN之内。
由于VLAN是逻辑上对网络进行划分,组网方案灵活,配置管理简单,降低了管理维护的成本。
这种划分VLAN的方法是根据以太网交换机的端口来划分,比如交换机的1~4端口为VLANA,5~17为VLANB,18~24为VLANC。
当然,这些属于同一VLAN的端口可以不连续,如何配置,由管理员决定。
图中端口1和端口7被指定属于VLAN5,端口2和端口10被指定属于VLAN10。
主机A和主机C连接在端口1、7上,因此它们就属于VLAN5;同理,主机B和主机D属于VLAN10。
如果有多个交换机的话,例如,可以指定交换机1的1~6端口和交换机2的1~4端口为同一VLAN,即同一VLAN可以跨越数个以太网交换机,根据端口划分是目前定义VLAN的最常用的方法。
这种划分的方法的优点是定义VLAN成员时非常简单,只要将所有的端口都指定一下就可以了。
它的缺点是如果VLANA的用户离开了原来的端口,到了一个新的交换机的某个端口,那么就必须重新定义。
这种划分VLAN的方法是根据每个主机的MAC地址来划分,即对所有主机都根据它的MAC地址配置主机属于哪个VLAN;交换机维护一张VLAN映射表,这个VLAN表记录MAC地址和VLAN的对应关系。
这种划分VLAN的方法的最大优点就是当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,所以,可以认为这种根据MAC地址的划分方法是基于用户的VLAN。
这种方法的缺点是初始化时,所有的用户都必须进行配置,如果用户很多,配置的工作量是很大的。
此外这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,这样就无法限制广播包。
另外,对于使用笔记本电脑的用户来说,他们的网卡可能经常更换,这样,VLAN就必须不停的配置。
13
这种情况是根据二层数据帧中协议字段进行VLAN的划分。
通过二层数据中协议字段,可以判断出上层运行的网络协议,如IP协议或者是IPX协议。
如果一个物理网络中既有IP网络又有IPX等多种协议运行的时候,可以采用这种VLAN的划分方法。
这种类型的VLAN在实际应用中用的很少。
VLAN的划分方法—基于子网的VLAN
基于IP子网的VLAN根据报文中的IP地址决定报文属于哪个VLAN:
同一个IP子网的所有报文属于同一个VLAN。
这样,可以将同一个IP子网中的用户被划分在一个VLAN内。
上图表明交换机如何根据IP地址来划分VLAN:
主机A、主机C的都属于IP子网1.1.1.x,根据VLAN表的定义,它们因此属于VLAN5;同理,主机B、主机D属于VLAN10。
如果主机C修改自己的IP地址,变成1.1.2.9,那么主机C就不再属于VLAN5,而是属于VLAN10了。
利用IP子网定义VLAN有以下几点优势:
这种方式可以按传输协议划分网段。
这对于希望针对具体应用的服务来组织用户的网络管理者来说是非常有诱惑力的。
用户可以在网络内部自由移动而不用重新配置自己的工作站,尤其是使用TCP/IP的用户。
这种方法的缺点是效率,因为检查每一个数据包的网络层地址是很费时的。
同时由于一个端口也可能存在多个VLAN的成员,对广播报文也无法有效抑制。
小结
VLAN的优点?
VLAN的划分方法?
1.VLAN的优点?
答:
隔离广播域,抑制广播报文.
减少移动和改变的代价
创建虚拟工作组,超越传统网络的工作方式
增强通讯的安全性
增强网络的健壮性
2.VLAN的划分方法?
答:
VLAN的划分方法主要有基于端口,基于MAC地址,基于三层协议以及基于Subnet的划分方法。
而目前最为常用的就是基于端口的方法。
VLAN信息可以跨越多台交换机被转递到相关的交换机中。
如上图的所有VLAN-3的数据都能通过中间的过渡交换机实现通信,同样VLAN-5的数据也可以相互转递。
接入链路指的是用于连接主机和交换机的链路。
通常情况下主机并不需要知道自己属于哪些VLAN,主机的硬件也不一定支持带有VLAN标记的帧。
主机要求发送和接收的帧都是没有打上标记的帧。
接入链路属于某一个特定的端口,这个端口属于一个并且只能是一个VLAN。
这个端口不能直接接收其它VLAN的信息,也不能直接向其它VLAN发送信息。
不同VLAN的信息必须通过三层路由处理才能转发到这个端口上。
干道链路是可以承载多个不同VLAN数据的链路。
干道链路通常用于交换机间的互连,或者用于交换机和路由器之间的连接。
干道链路的英文叫做“trunklink”。
数据帧在干道链路上传输的时候,交换机必须用一种方法来识别数据帧是属于哪个VLAN的。
IEEE802.1Q定义了VLAN帧格式,所有在干道链路上传输的帧都是打上标记的帧(taggedframe)。
通过这些标记,交换机就可以确定哪些帧分别属于哪个VLAN。
和接入链路不同,干道链路是用来在不同的设备之间(如交换机和路由器之间、交换机和交换机之间)承载VLAN数据的,因此干道链路是不属于任何一个具体的VLAN的。
通过配置,干道链路可以承载所有的VLAN数据,也可以配置为只能传输指定的VLAN的数据。
干道链路虽然不属于任何一个具体的VLAN,但是可以给干道链路配置一个pvid(portVLANID)。
当干道链路不论因为什么原因,trunk链路上出现了没有带标记的帧,交换机就给这个帧增加带有pvid的VLAN标记,然后进行处理。
Hybrid端口与Trunk端口的不同之处在于hybrid端口可以允许多个VLAN的报文不打标签,而trunk端口只允许缺省VLAN的报文不打标签。
在同一个交换机上hybrid端口和trunk端口不能并存。
端口缺省的模式为Access端口,缺省所有端口都属于VLAN1,VLAN1为缺省VLAN,既不能创建也不能删除。
所有以802.1q为标准的交换机出厂时所有端口都是Access端口并属于VLAN-1,因此也会把VLAN-1称之为默认VLAN。
这里有一个新术语叫PVID,全称叫PortVLANID,表示端口所属的VLAN,在Access端口里PVID的数值就代表该端口所属的VLAN,如:
PVID=100,即该端口被划分到VLAN100。
Trunk端口负责在交换机与交换机之间传递多个VLAN的数据帧,具体允许传递哪些VLAN的数据帧可以通过命令“porttrunkpermitvlan[VID]”来实现。
这里有条命令“porttrunkpvidvlan[VID]”具体作用是为改变Trunk端口的PVID值,Trunk端口PVID值的意义与Access端口PVID的意义有点不一样,在Access里表示端口所属的VLAN,但在Trunk里却表示默认VLAN的值。
1999年,IEEE颁布了用以标准化VLAN实现方案的802.1Q协议标准草案.
IEEE802.1Q是虚拟桥接局域网的正式标准,定义了VLAN帧格式,这个格式统一了标识VLAN的方法,有利于保证不同厂家设备配置的VLAN可以互通。
这四个字节的802.1Q标签头包含了2个字节的标签协议标识(TPID)和2个字节的标签控制信息(TCI)。
TPID(TagProtocolIdentifier)是IEEE定义的新的类型,表明这是一个加了802.1Q标签的帧。
TPID包含了一个固定的值0x8100。
TCI是包含的是帧的控制信息,它包含了下面的一些元素:
Priority:
这3位指明帧的优先级。
一共有8种优先级,0-7。
IEEE802.1Q标准使用这三位信息。
CanonicalFormatIndicator(CFI):
CFI值为0说明是规范格式,1为非规范格式。
它被用在令牌环/源路由FDDI介质访问方法中来指示封装帧中所带地址的比特次序信息。
VLANIdentified(VLANID):
这是一个12位的域,指明VLAN的ID,从0到4095,共4096个,每个支持802.1Q协议的交换机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN。
在一个交换网络环境中,以太网的帧有两种格式:
有些帧是没有加上这四个字节标志的,称为未标记的帧(ungtaggedframe),有些帧加上了这四个字节的标志,称为带有标记的帧(taggedframe)。
当Access端口收到帧时
如果该帧不包含802.1Qtagheader,将打上端口的PVID;如果该帧包含802.1Qtagheader,交换机不作处理,直接丢弃。
当Access端口发送帧时
剥离802.1Qtagheader,发出的帧为普通以太网帧
当Trunk端口收到帧时
如果该帧不包含802.1Qtagheader,将打上端口的PVID;如果该帧包含802.1Qtagheader,则不改变。
当Trunk端口发送帧时
当该帧的VLANID与端口的PVID不同时,直接透传;当该帧的VLANID与端口的PVID相同时,则剥离802.1Qtagheader
30
Hybird端口收到帧时的动作与Trunk端口相同;
Hybird端口发出帧时首先判断VLAN在本端口的属性。
用“disinterface”可看到该端口对哪些VLAN是untag,哪些VLAN是tag,如果是untag则剥离802.1Qtagheader再发送,如果是tag则直接透传。
图中表示一个局域网环境,网络中有两台交换机,并且配置了两个VLAN。
主机和交换机之间的链路是接入链路,交换机之间通过干道链路互相连接。
对于主机来说,它是不需要知道VLAN的存在的。
主机发出的报文都是untagged的报文;交换机接收到这样的报文之后,根据配置规则(如端口信息)判断出报文所属VLAN进行处理。
如果报文需要通过另外一台交换机发送,则该报文必须通过干道链路传输到另外一台交换机上。
为了保证其它交换机正确处理报文的VLAN信息,在干道链路上发送的报文都带上了VLAN标记。
当交换机最终确定报文发送端口后,将报文发送给主机之前,将VLAN的标记从以太网帧中删除,这样主机接收到的报文都是不带VLAN的标记的以太网帧。
所以,一般情况下,干道链路上传送的都是TaggedFrame,接入链路上传送的都是UntaggedFrame。
这样做的最终结果是:
网络中配置的VLAN可以被所有的交换机正确处理,而主机不需要了解VLAN信息。
SVL:
SharedVLANlearning,共享式VLAN学习。
在这种方式下,MAC地址在整张表中是唯一的,一个MAC地址在地址表中只能有一条记录,一个MAC只能被学习到一个端口上。
IVL:
IndependentVLANlearning,独立式VLAN学习。
在这种方式下,MAC地址表在逻辑上可以被看成根据VLAN信息分成了很多张表,一个MAC地址可学习到不同VLAN对应的“地址表”上。
小结
VLAN的端口分类有多少种?
VLAN数据帧与标准以太网数据帧有什么区别?
当Trunk端口收到一个没有打标签的数据帧时会怎么办?
1.VLAN的端口分类有多少种?
答:
当前VRP支持三种,分别为:
Access-Link、Trunk-Link以及Hybrid-Link
2.VLAN数据帧与标准以太网数据帧有什么区别?
答:
VLAN数据帧我们也称为802.1q数据帧,这种数据帧与标准的以太网数据帧最主要的区别在于多出4个字节的802.1q标签,以标识VLAN的信息。
3.当Trunk端口收到一个没有打标签的数据帧时会怎么办?
答:
如果收到不包含802.1q标签的数据帧,将打上802.1q标签,并且VID为Trunk的PVID。
要了解GVRP,就不得不提到GARP。
GARP全称是通用属性注册协议(GenericAttributeRegistrationProtocol),它为处于同一个交换网内的交换成员之间提供了分发、传播、注册某种信息的手段。
如VLAN、多播组地址等。
通过GARP机制,一个GARP成员上的配置信息会迅速传播到整个交换网。
GARP本身仅仅是一个协议规范,不作为一个实体在交换机中存在。
遵循GARP协议的应用实体称为GARP应用,目前主要的GARP应用为GVRP和GMRP。
当GARP应用实体存在于交换机的某个端口上时,每个端口对应一个GARP应用实体。
通过GARP机制,一个GARP成员上的配置信息会迅速传播到整个交换网。
GARP成员可以是终端工作站或网桥,GARP成员通过声明或回收声明通知其他的GARP成员注册或注销自己的属性信息,并根据其他GARP成员的声明或回收声明注册或注销对方的属性信息。
GARP成员之间的信息交换借助于消息完成,GARP的消息类型有五种,分别为JoinIn、Leave、Empty、JoinEmpty和LeaveAll。
当一个GARP应用实体希望注册某属性信息时,将对外发送JoinIn消息。
当一个GARP应用实体希望注销某属性信息时,将对外发送Leave消息。
每个GARP应用实体启动后,将同时启动LeaveAll定时器,当超时后将对外发送LeaveAll消息。
JoinEmpty消息与Leave消息配合确保消息的注销或重新注册。
通过消息交互,所有待注册的属性信息传播到同一交换网的所有交换机上。
GARP应用实体的协议数据报文都有特定的目的MAC地址,在支持GARP特性的交换机中,接收到GARP应用实体的报文时,根据MAC地址加以区分后,交由不同的应用处理(如GVRP或GMRP)。
为了实现前面讲的协议功能,必须有一个GARP框架(architecture)来保证属性的正确注册和传递。
IEEE802.1D中提出的GARP框架被广泛的采用,如上图所示。
单终端站点产生声明信息并被传播到交换网的网桥上,并且网桥上的端口同样会产生新的声明信息向外传播。
属性值会被传播到整个交换网,但最终在网桥端口的注册方向只指向一个方向(接收声明的对端)
Note—假设这里不考虑STP
不同地点的多站点在声明相同的属性时,所有站点注册该属性,并且属性也会在网桥的一个或多外端口上注册。
属性注册的方向在两个或多个声明的站点之间。
GARP只是一个属性注册协议的载体,通过协议来配置什么属性,只要将报文的内容映射成不同的属性即可,这就衍生出来了GMRP(GARPMulticastRegistrationPortocol)和GVRP(GARPVlanRegistrationProtocol)。
41
SWA上有VLAN2,SWB上只有VLAN1,SWC上也有VLAN2。
三台交换机通过TRUNK链路连接在一起。
为了使SWA和SWC上VLAN2的端口能够实现二层互通,我们就必须在SWB上添加VLAN2。
配置SWB上的VLAN有两种方法:
系统管理员手动添加、交换机自动根据网络结构添加。
显然,对于上面的组网情况手动添加是很简单的一件事情,但是如果组网情况复杂到系统管理员也无法短时间内完全了解网络的拓扑结构,或者是整个网络的VLAN太多,那么只能通过交换机自身的机制来完成配置工作,这正是通过GVRP来完成自动注册的。
GVRP是VLAN注册协议,英文全称是GARPVLANRegistrationProtocol。
GVRP基于GARP的工作机制,是GARP的一种应用,维护交换机中的VLAN动态注册信息并传播该信息到其他的交换机中。
所有支持GVRP特性的交换机能够接收来自其它交换机的VLAN注册信息,并动态更新本地的VLAN注册信息,包括当前的VLAN成员、这些VLAN成员可以通过哪个端口到达等。
而且所有支持GVRP特性的交换机能够将本地的VLAN注册信息向其他交换机传播,以便使同一交换网内所有支持GVRP特性的设备的VLAN信息达成一致。
GVRP传播的VLAN注册信息包括本地手工配置的静态注册信息和来自其它Switch的动态注册信息。
对GVRP特性的支持使得不同的交换机上的VLAN信息可以由协议动态维护和更新,用户只需要对少数交换机进行VLAN配置即可应用到整个交换网络,无需耗费大量时间进行拓朴分析和配置管理,协议会自动根据网络中VLAN的配置情况,动态地传播VLAN信息并配置在相应的端口上。
根据VLAN注册信息,交换机了解到干道链路对端有哪些VLAN,自动配置干道链路,只允许对端交换机需要的VLAN在干道链路上传输。
当GVRP在交换机上启动的时候,每个启动GVRP的Trunk端口对应一个GVRP应用实体。
GVRP实体之间的VLAN信息的注册,注销通过具有特定MAC地址的报文交互来实现。
二层组播地址:
01-80-C2-00-00-21
gvrp命令用来开启GVRP。
undogvrp命令用来将GVRP恢复为缺省模式,即关闭GVRP。
缺省情况下,GVRP处于关闭状态。
在系统视图下,执行本命令是开启/关闭全局GVRP。
在以太网端口视图下,执行本命令是开启/关闭端口GVRP。
需要注意的是:
在开启端口GVRP之前,必须先开启全局GVRP。
如果全局GVRP处于关闭状态,则端口GVRP处于关闭状态,并且交换机不允许用户改变端口GVRP的状态。
开启/关闭端口GVRP必须在Trunk端口操作。
Trunk端口上使能GVRP后,交换机不允许用户改变端口的Trunk类型为其他类型。
SWA、SWB、SWC都启动GVRP,之间的连接都是Trunk连接,且连接的端口上也启动了GVRP。
如果SWA和SWC上都存在VLAN10的话,但是SWB上不存在VLAN10,他们之间如何通讯呢?
首先,在SWA上创建VLAN10,从port1发送VLAN10的注册报文,port2上就注册了VLAN10,即将port2加入到VLAN10中,同时通过port3传播VLAN注册报文。
值得注意的是,此时port3只是传播了VLAN10的注册报文,它本身并没有接收到注册报文,自然也就没有加入到VLAN10中。
port4接收到从port3发送来的注册报文,同样,将port4加入VLAN10中。
此时,我们看到的结果是,除了port3之外,链路上所有的端口都加入到了VLAN10中,而且SWB中也添加了动态VLAN10。
从SWA发送的VLAN10内的报文,到了port3也会被丢弃。
在SWC上也创建VLAN10,与前面描述的相同,port3上自然注册上VLAN10,这样SWA和SWC之间的VLAN10的报文就能畅通无阻的传送了。
从前面的描述不难发现,无论SWA和SWC之间存在多少台交换机,只要都启动GVRP协议,那么在需要通讯的两端(SWA、SWC)都创建VLAN,就能完成所有交换机的VLAN的动态配置。
另外需要提出的是,GVRP中VLAN属性的操作是基于端口的,而且只有接收到报文的端口才进行VLAN属性的操作,这一条,适用于所有的GARP协议。
NORMAL———允许在该聚合端口动态创建、注册和注销VLAN。
FIXED———允许手工创建和注册VLAN,并且防止VLAN的注销和在其它trunk端口注册此端口所知的VLAN。
FORBIDDEN———注销除VLAN1之外的所有VLAN,并且禁止在该端口上创建和注册任何其它VLAN。
gvrpregistration命令用来设置GVRP注册类型。
undogvrpregistration命令用来恢复GVRP注册类型为缺省值。
缺省情况下,注册类型为normal。
需要注意的是,该命令必须在Trunk端口操作。
默认