VLAN(Virtual Local Area Network,虚拟局域网)技术的出现,主要为了解决交换机在进行局域网互联时无法限制广播的问题。这种技术可以把一个物理局域网划分成多个虚拟局域网——VLAN,每个VLAN就是一个广播域,VLAN内的主机之间通信就和在一个LAN内一样,而VLAN间的主机则不能直接互通,这样,广播数据帧被限制在一个VLAN内。

VLAN技术简介

广播风暴

wKioL1aPWg6wCNgRAAGbmSrzNBE724.jpg

    在交换式以太网出现后,同一个交换机下不同的端口处于不同的冲突域,交换式以太网的效率大大增加。但是,在交换式以太网中,由于交换机所有的端口处于一个广播域内,导致一台计算机发出的广播帧,局域网中所有的计算机都能够接收到,使局域网中的有限网络资源被无用的广播信息所占用。

    上图中,四台终端主机发出的广播帧在整个局域网中广播,假如每台主机的广播帧流量是100kbps,则四台主机达到400kbps;如果链路是100Mbps带宽,则广播帧占用带宽达到0.4%。但如果网络内主机达到400台,则广播流量将达到40Mbps,占用带宽达到40%,网络上到处充斥着广播流,网络带宽资源被极大的浪费。另外,过多的广播流量会造成网络设备及主机的CPU负担过重,系统反应变慢甚至死机。

    如何降低广播域的范围,提升局域网的性能,是急需解决的问题。

用路由器来隔离广播

wKioL1aPZOHDXro8AAFm8Glq0bo337.jpg

    路由器的各个接口处于独立的广播域中,终端主机发出的广播帧在接口被终止。所以,在局域网中使用路由器能够隔离广播,减小广播范围。

    但是,路由器的价格比交换机要高,使用路由器提高了局域网的部署成本。另外,大部分中低端路由器使用软件转发,转发性能不高,容易在网络中造成性能瓶颈。所以,在局域网中使用路由器来隔离广播是一个高成本、低性能的方案。

用VLAN隔离广播  

wKioL1aPZcGDi7T4AAG7Mb9HSK4371.jpg

    VLAN技术的出现,就是为了解决交换机在进行局域网互连时无法限制广播的问题。这种技术可以把一个LAN划分多个逻辑的LAN ——VLAN,每个VLAN是一个广播域,不同VLAN间的设备不能直接互通,只能通过路由器等三层设备而互通。这样,广播数据帧被限制在一个VLAN内。

    目前,绝大多数以太网交换机都能够支持VLAN。使用VLAN来减少广播域的范围,减少LAN内的广播流量,是高效率、低成本的方案。

VLAN的优点

wKioL1aPZtPQFkuVAAGwVvkSyVs587.jpg

    VLAN 的划分不受物理位置的限制。不在同一物理位置范围的主机可以属于同一个VLAN:一个VLAN包含的用户可以连接在同一个交换机,也可以跨越交换机,甚至可以跨越路由器。

    VLAN技术的优点如下:

  • 有效控制广播域范围:广播域被限制在一个VLAN内,广播流量仅在VLAN中传播,节省了带宽,提高了网络处理能力。

  • 增强局域网的安全性:不同VLAN内的报文在传输时时相互隔离的,即一个VLAN 内的用户不能喝其它VLAN内的用户直接通信,如果不同VLAN要进行通信,则需要通过路由器或三层交换机等设备。

  • 灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。

VLAN类型

基于端口的VLAN

wKiom1aPaQ-h34OcAAF67Un2zxE917.jpg

    基于端口的VLAN是最简单、最有效的VLAN划分方法,它按照端口来定义VLAN成员。将指定端口加入到指定VLAN中之后,该端口就可以转发指定VLAN的数据帧。

    上图中,交换机端口E1/0/1和E1/0/2被划分到VLAN10中,端口E1/0/3和E1/0/4被划分到VLAN20中,则PCA和PCB处于VLAN10中,可以互通;PCC和PCD处于VLAN20中,可以互通。但PCA和PCC处于不同VLAN,它们之间不能互通。

基于MAC地址的VLAN

wKioL1aPavLwwQjqAAFvxRRH8XY738.jpg

    这种划分VLAN的方法是根据每个主机的MAC地址来划分。交换机维护一张VLAN映射表,这个VLAN表记录MAC地址和VLAN的对应关系。这种划分VLAN的方法其最大优点就是当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,所以可以认为这种根据MAC地址的划分方法是基于用户的VLAN。

    这种方法的缺点是初始配置时,所有的用户的MAC地址都需要收集,并逐个配置,如果用户很多,配置的工作量是很大的。此外这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,这样就无法限制广播帧。

基于协议的VLAN

wKiom1aPeePRcWmXAAF1Ps8LDxs413.jpg

    基于协议的VLAN是根据端口接收到的报文所属的协议(族)类型来给报文分配不同的VLAN ID。可用来划分VLAN的协议族有IP、IPX。

    交换机从端口接收到以太网帧后,会根据帧中所封装的协议类型来确定报文所属的VLAN,然后将数据帧自动划分到指定的VLAN中传输。

    此特性主要用于将网络中提供的协议类型与VLAN相绑定,方便管理和维护。

基于子网的VLAN

wKiom1aPes6BDnxoAAF2WsnkjEk203.jpg

    基于IP子网的VLAN是根据报文源IP地址及子网掩码作为依据来进行划分的。设备从端口接收到报文后,根据报文中的源IP地址,找到与现有VLAN的对应关系,然后自动划分到指定VLAN中转发。

    此特性主要用于将特定网段或IP地址发出的数据在指定的VLAN中传送。

VLAN技术原理

VLAN标签

wKioL1aPe7ijDv_1AAHA_gcW-CU813.jpg

    我们知道,以太网交换机根据MAC地址表来转发数据帧。MAC地址表中包含了端口和端口所连接终端主机MAC地址的映射关系。交换机从端口接收到以太网帧后,通过查看MAC地址表来决定从哪一个端口转发出去。如果端口收到的是广播帧,则交换机把广播帧从除源端口外的所有端口转发出去。

    在VLAN技术中,通过给以太网帧附加一个标签(Tag)来标记这个以太网帧能够在哪个VLAN中传播。这样,交换机在转发数据帧时,不仅要查找MAC地址来决定转发到哪个端口,还要检查端口上的VLAN标签是否匹配。

    在上图中,交换机给主机PCA和PCB发来的以太网附加了VLAN10的标签,给PCC和PCD发来的以太网帧附加VLAN20的标签,并在MAC地址表中增加关于VLAN标签的记录。这样,交换机在进行MAC地址表查找转发操作时,会查看VLAN标识是否匹配;如果不匹配,则交换机不会从端口转发出去。这样相当于用VLAN标签把MAC地址表里的表项区分开来,只有相同VLAN标签的端口之间能够互相转发数据帧。

    IEEE在802.1Q中定义了在以太网帧中所附加标签的格式。

802.1Q帧格式

wKioL1aUt7axVshdAAEFtJbSdyY498.jpg

    在传统的以太网帧中增加了4个字节的802.1Q标签后,成为带有VLAN标签的帧(Tagged Frame)。而传统的不携带802.1Q标签的数据帧称为未打标签的帧(untagged Frame)。

    802.1Q标签头包含了2个字节的标签协议标识(TPID)和2个字节的标签控制信息(TCI)。

    TPID(Tag Protocol Indentifer)是IEEE定义的新的类型,表明这是一个封装了802.1Q标签的帧。TPID包含了一个固定的值0x8100。

    TCI(Tag control Information)包含的是帧的控制信息,它包含了下面的一些元素:

  • Priority:这3位指明数据帧的优先级。一共有8种优先级,0-7。

  • CFI(Canonical Fromat Indicator):CFI值为0说明是规范格式,1为非规范格式。

  • 它被用在令牌环/源路由FDDI介质访问方法中来封装帧中所带地址的比特次序信息。

  • VLAN ID (VLAN Identifier):共12比特,指明VLAN的编号。VLAN编号一共4096个,每个支持802.1Q协议的交换机发送出来的数据帧都会包含这个域,以指明自己属于哪一个VLAN。

    单交换机VLAN标签操作

wKiom1aUuefQnyjwAAHNme6Vp-Q593.jpg

    交换机根据数据帧中的标签来判定数据帧属于哪一个VLAN,那么标签是从哪里来的呢?VLAN标签是由交换机端口在数据帧进入交换机时添加的。这样做的好处是,VLAN对终端主机是透明的,终端主机不需要知道网络中VLAN是如何划分的,也不需要识别带有802.1Q标签的以太网帧,所有的相关事情由交换机负责。

    当终端主机发出的以太网帧到达交换机端口时,交换机检查端口所属的VLAN,然后给进入端口的帧打相应的802.1Q标签。端口所属的VLAN称为端口默认VLAN,又称为PVID(Port VLAN ID)。

    同样,为保持VLAN技术对主机透明,交换机负责剥离出端口的以太网帧的802.1Q标签。

Access链路类型端口

wKiom1aUu0Pw66PNAAHFIErDBoU892.jpg

    这种只允许默认VLAN的以太网帧通过的端口称为Access链路类型端口。Access端口在收到以太网帧后打VLAN标签,转发出端口时剥离VLAN标签,对终端主机透明,所以通常用来连接不需要识别802.1Q协议的设备,如终端主机、路由器等。

跨交换机VLAN标签操作

wKiom1aUu_GjBKcqAAGrPuf_fDA122.jpg

    VLAN技术的很重要的功能是在网络中构建虚拟工作组,划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围。通过在网络中实施跨交换机的VLAN,能够实现虚拟工作组。

    VLAN跨越交换机时,需要交换机之间传递的以太网数据帧带有802.1Q标签。这样,数据帧所属的VLAN信息才不会丢失。

    在上图中,PCA和PCB所发出的数据帧分别打有VLAN10和VLAN20的标签,SWA的端口E1/0/24负责对这些带802.1Q标签的数据帧进行转发,并不对其中的标签进行剥离操作。

Trunk链路类型端口

wKioL1aUvb7QGxE6AAIXYqwpZNg476.jpg

    允许多个VLAN帧通过的端口称为Trunk链路类型端口。Trunk端口可以接收和发送多个VLAN的数据帧,且在接收和发送过程中不对帧中的标签进行任何操作。

    不过,默认VLAN帧是一个例外。在发送帧时,Trunk端口要剥离默认VLAN帧中的标签;同样,交换机从Trunk端口收到不带标签的帧时,要打上默认VLAN标签。

    Trunk端口一般用于在交换机之间互连。

    图示为PCA至PCC、PCB至PCD的标签操作过程。PCA发出以太网帧,到达SWA的E1/0/1端口,端口的默认VLAN是10,所以以太网帧被打上VLAN10标签;E1/0/24端口时Trunk端口,VLAN10标签的帧从端口发送至SWB;SWB从帧中的标签得知它属于VLAN10,于是转发至端口E1/0/1,经剥离标签后到达PCC。PCB发出的帧在E1/0/2端口上被打上VLAN20的标签;E1/0/24端口时Trunk端口且默认VLAN是20,所以数据帧被剥离标签后转发;当未带标签的数据帧到达SWB的E1/0/24端口,端口给它打上VLAN20的标签在转发到端口E1/0/2,端口E1/0/2剥离标签后转发至PCD。

Hybrid链路类型端口

wKioL1aUwCeQUyCeAAI6jQYwS4w693.jpg

    除了Access链路类型和Trunk链路类型端口外,交换机还支持第三种链路类型端口,称为Hybrid链路类型端口。Hybrid端口可以接收和发送多个VLAN的数据帧,同时还能够指定对任何VLAN帧进行剥离标签操作。

    当网络中大部分主机之间需要隔离,但这些隔离的主机又需要与另一台互通时,可以使用Hybrid端口。

    在上图中,PCA发出的以太网帧进入端口时打上VLAN10的标签,在到达连接PCC的端口时,端口根据设定(Untag:10,20,30)将数据帧中的标签剥离后发送给PCC,所以PCA与PCC能够通信;同理,PCB也能与PCC通信。但PCA发出的以太网帧到达连接PCB的端口时,端口上设定(Untag:20,30)表明只对VLAN20、VLAN30的数据帧转发且剥离标签,而不允许VLAN10的帧通过,所以PCA与PCB不能互通。

VLAN的基本配置

wKiom1aW-vSzYJaDAAEvLzw1meA855.jpg

    默认情况下,交换机只有VLAN1,所有的端口都属于VLAN1且是Access链路类型端口。进行VLAN配置的基本步骤如下。

    第1步:在系统视图下创建VLAN并进入VLAN视图。配置命令为:

    vlan vlan-id

    第2步:在VLAN视图下将指定端口加入到VLAN中。配置命令为:

    port interface-list

配置Trunk端口

wKiom1aW--3yy56kAAIMr3wTBi8635.jpg

    Trunk端口能够允许多个VLAN的数据帧通过,通常用于在交换机之间互连。配置某个端口成为Trunk端口的步骤如下。

    第1步:在以太网端口视图下指定端口链路类型为Trunk。配置命令为:

    port link-type trunk

    第2步:默认情况下,Trunk端口只允许默认VLAN即VLAN1的数据帧通过。所以,需要在以太网端口视图下指定哪些VLAN帧能够通过当前Trunk端口。配置命令为:

    port trunk permit vlan {vlan-id-list|all}

    第3步:必要时,可以在以太网端口视图下设定Trunk端口的默认VLAN。配置命令为:

    port trunk pvid vlan vlan-id

注意

    默认情况下,Trunk端口的默认VLAN是VLAN1。可以根据实际进行修改默认VLAN,以保证两端交换机的默认VLAN相同为原则,否则会发生同一VLAN内的主机跨交换机不能够通信的情况。


配置Hybrid端口

wKioL1aW_mXR0DlzAAISexfCUXE903.jpg

    在某些情况下,需要用到Hybrid端口。Hybrid端口也能够允许多个VLAN帧通过,并且还可以指定哪些VLAN数据帧被剥离标签。配置某个端口成为Hybrid端口的步骤如下。

    第1步:在以太网端口视图下指定端口链路类型为Hybrid。配置命令为:

    port link-type Hybrid

    第2步:默认情况下,所有Hybrid端口只允许VLAN1通过。所以,需要在以太网端口视图下指定哪些VLAN数据帧能够通过Hybrid端口,并指定是否剥离标签。配置命令为:

    port Hybrid vlan vlan-id-list {tagged|untagged}

    第3步:在以太网端口视图下设定Hybrid端口的默认VLAN。配置命令为:

    port Hybrid pvid vlan vlan-id


注意

    Trunk端口不能直接被设置为Hybrid端口。只能先设为Access端口,再设置为Hybrid端口。


VLAN配置实例

    wKiom1aXAACyRQRVAAId50954PA360.jpg

    上图是VLAN的基本配置示例。图中PCA与PCC属于VLAN10,PCB与PCD属于VLAN20,交换机之间使用Trunk端口相连,端口的默认VLAN是VLAN1。

    配置SWA:

        [SWA]vlan 10

        [SWA-vlan10]port Ethernet1/0/1

        [SWA]vlan 20

        [SWA-vlan20]port Ethernet1/0/2

        [SWA]interface Ethernet10/24

        [SWA-Ethernet1/0/24]port link-type trunk

        [SWA-Ethernet1/0/24]port trunk permit vlan 10 20

    配置SWB:

        [SWB]vlan 10

        [SWB-vlan10]port Ethernet1/0/1

        [SWB]vlan 20

        [SWB-vlan20]port Ethernet1/0/2

        [SWB]interface Ethernet10/24

        [SWB-Ethernet1/0/24]port link-type trunk

        [SWB-Ethernet1/0/24]port trunk permit vlan 10 20

    配置完成后,PCA与PCC能够互通,PCB与PCD能够互通;但PCA与PCB,PCC与PCD之间不能够互通。

VLAN显示及维护

wKiom1aXAe_SW2mgAAIDsEoHjTI827.jpg

    在任意视图下可以使用display vlan命令来查看交换机当前启用的VLAN。

    display vlan

    由图中可以看到,目前交换机上有VLAN1、VLAN2、VLAN10存在,VALN1是默认VLAN。

    如果要查看某个具体VLAN所包含的端口,可以使用display vlan vlan-id命令。

    display vlan vlan-id

    由图中可以看到,VLAN2中包含了Ethernet1/0/1、Ethernet1/0/3和Ethernet1/0/4等3个端口,且VLAN数据帧离开这些端口时需要剥离标签。

    如果要查看具体端口的VLAN信息,可以使用display interface命令。

    display interface interface-type interface-number

    由图中可知,端口Ethernet1/0/1的端口链路类型为Access,默认VLAN(Pvid)VLAN1。如果是TrunkHybrid端口,则还会显示哪些VLAN帧是携带标签通过,哪些VLAN帧需要剥离标签。