1. VLAN基本概念
1.1 概述
拓扑描述
- 交换机S1和交换机S2放置在不同的地点。每台交换机分别连接2台计算机,他们分别属于2个不同的VLAN。在图中,一个虚线框内表示一个VLAN。
- 缺省情况下,VLAN 2和VLAN3之间不能实现互通,从而使广播报文限制在了一个VLAN内。
- 随着网络中计算机的数量越来越多,传统的以太网开始面临冲突严重,广播泛滥以及安全性无法保障等各种问题。
- VLAN(Virtual Local Aera Network)即虚拟局域网,是将一个物理的局域网逻辑上划分成多个广播域的技术。通过在交换机上配置VLAN,可以实现在同一个VLAN内的用户可以进行二层互访,而不同VLAN间的用户被二层隔离,这样既能够隔离广播域,又能够提升网络的安全性。
- VLAN的中文名为“虚拟局域网”。虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能,部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第三层,一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的网络设备来完成的。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点:网络设备的移动,添加和修改的管理开销减少,可以控制广播活动。
1.2 传统以太网的问题
- 传统以太网随着主机数量的增加,共享网络中的冲突会越来越严重,交换网络中的广播也会越来越多,导致数据传输效率低下。
1.3 VLAN技术的特点
VLAN特点:
- 限制广播域:广播域被限制在一个VLAN内,从而节省了带宽、提高了网络处理能力。
- 增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能与其它VLAN内的用户直接通信。
- 提高了网络的健壮性:故障被限制在一个VLAN内,在VLAN内的故障不会影响其它VLAN的正常工作。
- 灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。
1.4 VLAN帧格式
- 交换机内部的数据包一律携带Tag,这意味着,只要交换机端口接收了该帧,即使该帧原来没有Tag,都会为该帧打上相应的Tag。
- 传统的数据包转发,交换机查看数据包的MAC地址,根据MAC地址表转发,在配置了VLAN的传统以太网环境中,当交换机从PC处接收了一个原始的数据包,会在源MAC地址与Type字段当中插入4Byte的802.1Q字段来表示VLAN Tag。
IEEE 802.1Q
- IEEE 802.1Q是虚拟桥接局域网的正式标准,对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag。
802.1Q Tag各字段含义:
- TPID:长度为2字节,表示帧类型。取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
- PRI:Priority,长度为3比特,表示帧的优先级,取值范围为0~7,值越大优先级越高。一般情况下,当交换机部署Qos时,优先发送优先级高的数据帧。(即所谓的802.1p)
- CFI:Canonical Format Indicator,长度为1比特,表示MAC地址是否是经典格式。
- CFI为0说明是经典格式,CFI为1表示为非经典格式。
- 用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。
VID:VLAN ID,长度为12比特,表示该帧所属的VLAN。(范围为0~4095)
每台支持802.1Q协议的交换机都可以发送包含VLAN ID的数据包,以指明自己属于哪一个VLAN。因此,在一个VLAN交换网络中,以太网帧有以下两种形式:
- 有标记帧(Tagged frame):加入了4字节的802.1Q Tag的帧
- 无标记帧(untagged frame):原始的、未加入4字节802.1Q Tag的帧
使用802.1Q Tag的优缺点:
- 缺点就是破坏了原始以太帧以及需要重新计算FCS,思科的ISL是直接封装头和尾
- 优点是Dot1q是公有协议,ISL是思科私有协议,802.1Q支持4096个VLAN(可用1~4094)
- 打破了802.1Q的以太帧帧长:1518+4=1522
VLAN有效值:
- 在802.1Q报文中,使用12bit可以标识4096个VLAN-id,其中:
- VLAN0:当接口启用了Eth-Trunk,则此接口属于VLAN0
- VLAN1:缺省VLAN,默认所有端口位于此VLAN中
- VLAN4095:全FFF位,作为预留值
- VLAN2-4094:可用作VLAN-id使用
1.5 链路类型
VLAN中有以下两种链路类型:
- 接入链路(Access Link):常用于连接用户主机和交换机的链路。通常情况下,主机并不需要知道自己属于哪个VLAN,主机硬件通常也不能识别带有VLAN标记的帧。因此,主机发送和接收的帧都是untagged帧。
- 干道链路(Trunk Link):常用作连接交换机与交换机或交换机与路由器之间的链路。干道链路可以承载多个不同VLAN数据,数据帧在干道链路传输时,干道链路的两端设备需要能够识别数据帧属于哪个VLAN,所以在干道链路上,一般传输的帧都是Tagged帧。
拓扑描述:
- 对于主机来说,它不需要知道VLAN的存在。主机发出的是Untagged报文。
- 交换设备接收到报文后,根据配置规则(如端口信息)判断报文所属的VLAN后,再进行处理。
- 如果报文需要通过另一台交换机转发,则该报文必须通过干道链路传输到对端交换设备上。为了保证其它交换设备能够正确处理报文中的VLAN信息,在干道链路上传输的报文一般均打上了VLAN标记。
- 当交换设备最终确定报文出端口后,将报文发送给主机前,需要将VLAN标记从帧中删除,这样主机接收到的报文都是不带VLAN标记的以太网帧。
1.6 PVID
- PVID表示端口在缺省情况下所属的VLAN
- 缺省情况下,交换机每个端口的PVID是1
1.7 本征VLAN
- 本征VLAN,是指交换机与交换机之间的Trunk端口或Hybrid接口配置相同的缺省VLAN,当Trunk端口接收到一个从Access端口发送过来的数据包,并且Access的VLAN id和Trunk端口的缺省VLAN一致时,会直接发送数据包,当对端收到一个没有Tag的数据包,会打上端口缺省的Tag送往端口,提高了效率,默认本征VLAN为1。
修改缺省本征VLAN命令:
[Huawei-GigabitEthernet0/0/1]port trunk pvid vlan 10
- 当PC机所处的VLAN和Trunk链路的本征VLAN相同时,数据包从Trunk链路中发出是不携带VLAN Tag的。
1.8 端口类型
端口类型:
- Access端口是交换机上用来连接用户主机的端口,它只能连接接入链路,有如下特点:
- 仅仅允许唯一的VLAN ID通过本端口,这个VLAN ID与端口的PVID(Port Default VLAN ID,端口缺省的VLAN ID)相同。
- 如果该端口收到的对端设备发送的帧是untagged(不带VLAN标签),交换机将强制加上该端口的PVID。
- Access端口发往对端设备的以太网帧永远是不带标签的帧。
- Trunk端口是交换机上用来和其它交换机连接的端口,它只能连接干道链路,有以下特点:
- Trunk端口允许多个VLAN的帧(带Tag标记)通过。
- 如果从Trunk端口发送的帧带Tag,且Tag与端口缺省的VLALN ID相同,则交换机会剥掉该帧中的Tag标记。仅在这种情况下,Trunk端口发送的帧不带Tag。
- 如果该Trunk端口发送的帧带Tag,但是与端口缺省的VLAN ID不同,则交换机对该帧不做任何动作,直接发送带Tag的帧。
- Hybrid端口是交换机上既可以连接用户主机,又可以连接其它交换机的端口。
- Hybrid端口既可以连接接入链路又可以连接干道链路。
- Hybrid端口允许多个VLAN的帧通过,并可以在出端口方向将某些VLAN帧的Tag剥掉。
1.8.1 Access接口
- Access端口在收到数据后会添加VLAN Tag,VLAN ID和端口的PVID相同
- Access端口在转发数据前会移除VLAN Tag。
- Access端口是交换机上用来连接用户主机的端口,它只能连接接入链路,有如下特点:
- 仅仅允许唯一的VLAN ID通过本端口,这个VLAN ID与端口的PVID相同。
- 如果该端口收到的对端设备发送的帧是untag,交换机将强制加上该端口的PVID
- Access端口发往对端设备的以太帧永远是不带标签的帧。
Access端口处理**VLAN帧的过程如下:**
(1)收到一个二层数据帧。
(2)判断帧是否有VLAN Tag。
- 没有Tag,则标记上Access端口上的PVID,进行下一步处理。
- 有Tag,则比较帧的VLAN Tag和端口的PVID,两者一致则进行下一步处理,否则丢弃帧
(3)二层交换机根据帧的目的MAC地址和VLANID查找VLAN配置信息决定从哪个端口把帧发送出去
(4)交换机根据查找到的出接口发送数据帧。
- 当数据帧从Access端口发出时,交换机先剥离帧的VLAN Tag,然后再发送出去。
- 当数据帧从Trunk端口发出时,直接发送帧。
- 当数据帧从Hybrid端口发出时,交换机判断VLAN在本端口的属性是Untag还是Tag。如果是Untag,先剥离帧的VLAN Tag,再发送,如果是Tag,直接发出帧。
1.8.2 Trunk接口
- 当Trunk端口收到帧时,如果该帧不包含Tag,将打上端口的PVID,如果该帧包含Tag,则不改变。
- 当Trunk端口发送帧时,该帧的VLAN ID在Trunk的允许发送列表中:若与端口的PVID相同,则剥离Tag发送,若与端口的PVID不同时,则直接发送。
- Trunk端口是交换机上用来和其它交换机连接的端口,它只能连接干道链路。有如下特点
- Trunk端口允许多个VLAN的帧(带Tag标记)通过。
- 如果从Trunk端口发送的帧带有Tag,且Tag与端口缺省的VLAN ID相同,则交换机会剥离掉该帧中的Tag标记。仅在这种情况下,Trunk端口发送的帧不带Tag。
- 如果从Trunk端口发送的帧带Tag,但是与端口缺省的VLAN ID不同,则交换机对该帧不做任何动作,直接发送带Tag的帧。
Trunk端口处理**VLAN帧的过程如下:**
(1)收到一个二层帧。
(2)判断帧是否有VLAN Tag。
- 没有Tag,则标记上Trunk端口上的PVID,进行下一步处理。
- 有Tag,则判断该Trunk端口是否允许该VLAN帧进入。允许则进行下一步处理,否则丢弃帧
(3)二层交换机根据帧的目的MAC地址和VLANID查找VLAN配置信息决定从哪个端口把帧发送出去
(4)交换机根据查到的出接口发送数据帧。
- 当数据帧从Access端口发出时,交换机先剥离帧的VLAN Tag,然后再发送出去。
- 当数据帧从Trunk端口发出时,直接发送帧。
- 当数据帧从Hybrid端口发出时,交换机判断VLAN在本端口的属性是Untag还是Tag。如果是Untag,先剥离帧的VLAN Tag,再发送,如果是Tag,直接发送帧。
1.8.3 Hybrid接口
- Hybrid接口既可以连接主机,又可以连接交换机
- Hybrid接口可以以Tag或Untag方式加入VLAN。
- Hybrid接口是交换机上既可以连接用户主机,又可以连接其它交换机的端口:
- Hybrid接口既可以连接接入链路又可以连接干道链路
- Hybrid接口允许多个VLAN的帧通过,并可以在出接口方向将某些VLAN帧的Tag剥掉。
Hybrid接口处理**VLAN帧的过程如下:**
(1)收到一个二层帧。
(2)判断帧是否带有VLAN Tag。
- 没有Tag,则标记上Hybrid接口上的PVID,进行下一步处理。
- 有Tag,则判断该Hybrid端口是否允许该VLAN帧进入,允许则进行下一步处理,否则丢弃帧
(3)二层交换机根据帧的目的MAC地址和VLANID查找VLAN配置信息决定从哪个端口把帧发送出去
(4)交换机根据查找到的出接口发送数据帧。
- 当数据帧从Access端口发出时,交换机先剥离帧的VLAN Tag,然后再发送出去。
- 当数据帧从Trunk端口发出时,直接发送帧。
- 当数据帧从Hybrid端口发出时,交换机判断VLAN在本端口的属性是Untag还是Tag。如果是Untag,先剥离帧的VLAN Tag,再发送,如果是Tag,直接发出帧。
1.9 VLAN划分方法
• 基于端口的VLAN划分,其二层端口类型为Access,其它的情况二层端口类型必须配置为hybrid
1.9.1 基于端口划分VLAN
- 根据交换设备的端口编号来划分VLAN。
- 网络管理员给交换机的每个端口配置不同的PVID,即一个端口缺省属于的VLAN。
- 当一个数据帧进入交换机端口时,如果没有带VLAN标**签,且该端口上配置了PVID,那么,该数据帧就会被打上端口的PVID**。
- 如果进入的帧已经带有**VLAN 标签,那么交换机不会再**增加VLAN 标签,对VLAN 帧的处理由端口类型决定。
基于端口划分VLAN配置命令:
[Huawei]int GigabitEthernet 0/0/1 //进入接口视图
[Huawei-GigabitEthernet0/0/1]port link-type access //配置接口类型为Access
[Huawei-GigabitEthernet0/0/1]port default vlan 10 //将接口PVID配置为10
1.9.2 基于MAC地址划分VLAN
- 根据计算机网卡的MAC地址来划分VLAN。
- 网络管理员成功配置MAC地址和VLAN ID映射关系表,如果交换机收到的是untagged(不带VLAN标签)帧,则依据该表添加VLAN ID。
基于MAC划分VLAN配置命令:
[Huawei]vlan 20 //进入VLAN20
[Huawei-vlan20]mac-vlan mac-address 5489-9841-58A8 //绑定MAC地址
[Huawei]int GigabitEthernet 0/0/1 //进入接口视图
[Huawei-GigabitEthernet0/0/1]port link-type access //接口类型配置为Access
[Huawei-GigabitEthernet0/0/1]mac-vlan enable //开启基于MAC的VLAN划分
配置命令:
将LSW1和LSW2的G0/0/1端口设置为Trunk,允许VLAN10和VLAN20通过
LSW1:
[Huawei]Vlan 10
[Huawei-Vlan10]mac-Vlan mac-address 0000-0000-0001
[Huawei]Vlan 20
[Huawei-Vlan10]mac-Vlan mac-address 0000-0000-0002
[Huawei]inter g0/0/2
[Huawei-GigabitEthernet0/0/2]mac-Vlan enable
[Huawei-GigabitEthernet0/0/2]port hybrid untagged Vlan 10
(由于mac-vlan只会对不打标签的数据帧进行打标,所以不配置PVID)
[Huawei]inter g0/0/3
[Huawei-GigabitEthernet0/0/3]mac-Vlan enable
[Huawei-GigabitEthernet0/0/3]port hybrid untagged Vlan 20
根据发送数据包得到源MAC地址封装标签,当收到一个数据包时,查看Tag,当Tag和映射表中去往MAC的Tag相同,删除标签,发送给主机,如果不同,直接丢弃。
1.9.3 基于IP子网划分VLAN
- 如果交换设备收到的是untagged帧,交换设备根据报文中的IP地址信息,确定添加的VLAN ID
基于IP网段划分VLAN配置命令:
[Huawei]vlan 10
[Huawei-vlan10]ip-subnet-vlan “1” ip 192.168.1.0 24 (“1”是编号,不是VLAN)
[Huawei]int GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type access
[Huawei-GigabitEthernet0/0/1]ip-subnet-vlan enable
1.9.4 基于协议划分VLAN
- 根据接口接收到的报文所属的协议(族)类型及封装格式来给报文分配不同的VLAN ID。网络管理员需要配置以太网帧中的协议域和VLAN ID的映射关系表,如果收到的是untagged(不带VLAN标签)帧,则依据该表添加VLAN ID。
- 目前,支持划分VLAN的协议有IPV4、IPV6、IPX、AppleTalk(AT),封装格式有Ethernet II、802.3 raw、802.2 LLC、802.2 SNAP。
基于协议划分VLAN配置命令:
[Huawei]vlan 10
[Huawei-vlan10]protocol-vlan ipv4
[Huawei]int GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type access
[Huawei-GigabitEthernet0/0/1]protocol-vlan vlan 10 0
1.9.5 基于匹配策略划分VLAN
- 基于MAC地址、IP地址、接口组合策略划分VLAN是指在交换机上配置终端的MAC地址和IP地址,并与VLAN关联。只有符合条件的终端才能加入指定VLAN。符合策略的终端加入指定VLAN后,严禁修改IP地址或MAC地址,否则会导致终端从指定VLAN中退出。
VLAN的划分可以基于策略进行划分,定义一系列策略,符合策略便属于同一VLAN,策略内容包含如下:
- MAC地址(必选)
- IP地址(必选)
- 接口ID
- 优先级
基于策略划分VLAN配置命令:
[Huawei]vlan 100(必须使用Hybrid的接口才能绑定到策略)
[Huawei-vlan100]policy-vlan mac-address 1111-2222-3333 ip 192.168.1.1 interface GigabitEthernet 0/0/2
1.10 VLAN划分匹配优先级
1.11 Voice VLAN应用
- 通过配置Voice VLAN可以区分语音流量和业务流量,使语音流量优于业务流量,从而为语音流量提供服务保证。
配置Voice VLAN:
[SWB]vlan 2
[SWB-GigabitEthernet0/0/1]voice-vlan 2 enable
[SWB-GigabitEthernet0/0/1]voice-vlan mode auto
[SWB-GigabitEthernet0/0/1]voice-vlan mode auto
2. VLAN通信原理
2.1 VLAN基本通信原理
2.2 VLAN内跨设备通信
拓扑描述:
- 为了让S1和S2之间的链路既支持VLAN2内的用户通信又支持VLAN3内的用户通信,需要配置连接端口同时加入两个VLAN。即应配置S1的以太网端口Port2和S2的以太网端口Port1同时加入VLAN2和VLAN3.
- 当用户主机PC1发送数据给用户主机PC2时,数据帧的发送过程如下:
2.3 VLAN间通信原理(1)
拓扑描述
- R1为支持配置子接口的三层设备,S1为二层交换设备。LAN通过S1的以太网接口(交换式以太网接口)与S1的以太网接口(路由式以太网接口)相连:
- 在R1与S1相连的以太网接口上创建2个子接口,并配置802.1Q封装与VLAN2和VLAN3分别对应。
- 配置子接口的IP地址,保证两个子接口对应的IP地址路由可通。
- 将S1与R1相连的以太网接口类型配置为Trunk或Hybrid类型,允许VLAN2和VLAN3的帧通过。
- 将用户设备的缺省网关设置为所属VLAN对应子接口的IP地址。
PC1和PC2的通信过程如下:
- PC1将PC2的IP地址和自己所在网段进行比较,发现主机C和自己不在同一个子网。
- PC1发送ARP请求给自己的网关R1,请求网关的MAC地址。
- R1收到该ARP请求后,返回ARP应答报文,报文中源MAC地址为VLAN2对应子接口的MAC地址。
- PC1学习到网关的MAC地址。
- PC1向网关发送目的MAC为R1的VLAN2子接口MAC地址,目的IP为PC2的IP地址的报文。
- R1收到该报文后进行三层转发,发现PC1的IP地址为直连路由,报文将通过VLAN3关联的子接口进行转发。
- R1作为VLAN3内主机的网关,向VLAN3内发送一个ARP广播,请求PC2的MAC地址。
- PC2收到网关发送的ARP广播后,对此请求进行ARP应答。
- 网关收到PC2的应答后,就把PC1的报文发送给PC2。PC1与PC2之间交互的报文都先发送给网关,由路由器R1做三层路由。
2.4 VLAN间通信原理(2)
- 为了保证第一次数据流通过路由表正常转发,路由表中必须有正确的路由表项。因此必须在三层交换机上部署三层接口并部署路由协议,实现三层路由可达。VLANIF接口由此而产生。
拓扑描述
- 在交换机上划分了2个VLAN:VLAN2和VLAN3。可通过如下配置实现VLAN间互通。
- 在S1上创建2个VLANIF接口并配置VLANIF接口的IP地址,保证两个VLANIF接口对应的IP地址路由可通。
- 将用户设备的缺省网关设置为所属VLAN对应VLANIF接口的IP地址。
PC1和PC2的通信过程如下:
- PC1将PC2的IP地址和自己所在网段比较,发现PC2和自己不在同一个子网。
- PC1发送ARP请求给自己的网关S1,请求网关的MAC地址。
- S1收到该ARP请求后,返回ARP应答报文,报文中源MAC地址为VLANIF2的MAC地址。
- PC1学习到网关的MAC地址。
- PC1向网关发送目的MAC为VLANIF2接口MAC地址,目的IP为PC2的IP地址的报文。
- S1收到该报文后进行三层转发,发现PC2的IP地址为直连路由,报文将通过VLANIF3接口进行转发。
- S1作为VLAN3内主机的网关,向VLAN3内发送一个ARP广播,请求PC2的MAC地址。
- PC2收到网关发送的ARP广播后,对此应答进行ARP应答。
- 网关收到PC2的应答后,就把PC1的报文发送给CP2。PC1之后要发给PC2的报文将由交换机S1做三层交换。
3.VLAN聚合(Super VLAN)
3.1 基本概念
VLAN Aggregation(VLAN聚合,也称Super VLAN)技术就是在一个物理网络中,用多个VLAN隔离广播域,使不同的VLAN属于同一个子网。
Super-VLAN:和通常意义上的VLAN不同,它只建立三层接口,与该子网对应,而且不包含物理端口。可以把它看作一个逻辑的三层概念——若干Sub-VLAN的集合。
Sub-VLAN:只包含物理端口,用于隔离广播域的VLAN,不能建立三层VLAN接口。它与外部的三层交换是靠Super-VLAN的三层接口来实现的。
一个Super-VLAN可以包含一个或多个保持着不同广播域的Sub-VLAN。Sub-VLAN不再占用一个独立的子网网段。在同一个Super-VLAN中,无论主机属于哪一个Sub-VLAN,它的IP地址都在Super-VLAN对应的子网网段内。
基础配置:
首先先创建一个主VLAN和其他的子VLAN
vlan batch 10 20 创建子VLAN
vlan 100 创建主VLAN
aggregate-vlan 将VLAN100设置为Super-VLAN
access-vlan 10 20 将vlan10和20设置为sub-vlan
再去vlan100创建SVI当两个VLAN的网关
3.2 Sub-VLAN间三层通信
拓扑描述
- Super-VLAN(VLAN10)包含Sub-VALN(VLAN2和VLAN3)
- 上述拓扑假设S1已经开启了Sub-VLAN间的ARP Proxy功能,通信过程如下:
- PC1将PC2的IP地址(1.1.1.20)和自己所在网段1.1.1.0/24 进行比较,发现PC2和自己在同一个子网,但是PC1的ARP表中无PC2的对应表项。
- PC1发送ARP广播,请求PC2的MAC地址。
- PC2并不在VLAN2的广播域内,无法接收到PC1的这个ARP请求。
- 由于网关上使能Sub-VLAN间的ARP Proxy,当网关收到PC1的ARP请求后,开始在路由表中查找,发现ARP请求中的PC2的IP地址(1.1.1.20)为直连接口路由,则网关向所有其他Sub-VLAN接口发送一个ARP广播,请求PC2的MAC地址。
- PC2收到网关发送的ARP广播后,对此请求进行ARP应答。
- 网关收到PC2的应答后,就把自己的MAC地址当作PC2的MAC地址回应给PC1。
- 网关和PC1的ARP表项中都存在PC2的对应表项。
- PC1之后要发给B的报文都先发送给网关,由网关做三层转发。
开启Sub-ARP代理命令:
[Huawei-Vlanif100]arp-proxy inter-sub-vlan-proxy enable
3.3 Sub-VLAN与外部网络的二层通信
拓扑描述
- 从PC1侧Port1进入设备S1的帧会被打上VLAN2的Tag,在设备S1中这个Tag不会因为VLAN2是VLAN10的Sub-VLAN而变为VLAN10的Tag。该数据帧从Trunk类型的接口Port3出去时,依然是携带VLAN2的Tag。设备S1本身不会发出VLAN10的报文。就算其他设备有VLAN10的报文发送到该设备上,这些报文也会因为设备**S1上没有VLAN10对应物理端口而被丢弃**。
- Super-VLAN中是不存在物理端口的,这种限制是强制的,表现在:
- 如果先配置了Super-VLAN,再配置Trunk接口时,Trunk的VLAN allowed表项里就自动滤除了Super VLAN。
- 如果先配好了Trunk端口,并允许所有VLAN通过,则在此设备上将无法配置Super-VLAN。本质原因是有物理端口的VLAN都**不能被配置为Super VLAN**。而允许所有VLAN通过的Trunk端口是所有VLAN的tagged端口,当然任何VLAN 都不能被配置为Super VLAN。
- 对于设备S1而言,有效的VLAN只有VLAN2和VLAN3,所有的数据帧都在这两个VLAN中转发的。
3.4 Sub-VLAN与外部网络的三层通信
拓扑描述
- S2上配置了Super-VLAN 4,Sub-VLAN 2和Sub-VLAN 3,并配置一个普通的VLAN10;Switch2上配置两个普通的VLAN 10和VLAN 20。假设Super-VLAN 4中的Sub-VLAN 2下的主机PC1想访问与S1相连的主机PC3;假设S2上已配置了去往1.1.3.0/24网段的路由,Switch1上已配置了去往1.1.1.0/24网段的路由:
- PC1将PC3的IP地址(1.1.3.2)和自己所在网段1.1.1.0/24进行比较,发现PC3和自己不在同一个子网。
- PC1发送ARP请求给自己的网关,请求网关的MAC地址。
- S2收到该ARP请求后,查找Sub-VLAN和Super-VLAN的对应关系,从Sub-VLAN 2发送ARP应答给PC1。ARP应答报文中的源MAC地址为Super-VLAN 4对应的VLANIF4的MAC地址。
- PC1学习到网关的MAC地址。
- PC1向网关发送目的MAC为Super-VLAN 4对应的VLANIF4的MAC、目的IP为1.1.3.2的报文。
- S2收到该报文后进行三层转发,下一跳地址为1.1.2.2,出接口为VLANIF10,把报文发送给S1。
- S1收到该报文后进行三层转发,通过直连出接口VLANIF20,把报文发送给PC3。
- PC3的回应报文,在Switch2上进行三层转发到达Switch1。
- Switch1收到该报文后进行三层转发,通过super-VLAN,把报文发送给PC1。
4. MUX VLAN
- MUX VLAN分为Principal VLAN和Subordinate VLAN,SubordinateVLAN又分为Separate VLAN和Group VLAN:
- Principal VLAN:所属端口为Principal Port,Principal Port可以和MUX VLAN内的所有端口进行通信。
- Subordinate VLAN
- Separate VLAN:所属端口为Separate Port,Separate Port只能和Principal Port进行通信,和其他类型的端口实现完全隔离。每个Separate VLAN必须绑定一个Principal VLAN。
- Group VLAN:所属端口为Group Port,Group Port可以和Principal Port进行通信,在同一组内的端口也可互相通信,但不能和其他组端口或Separate Port 通信。每个Group VLAN必须绑定一个Principal VLAN。
拓扑描述
- 根据MUX VLAN特性,企业可以用Principal Port连接企业服务器,Separate Port连接企业客户,Group Port连接企业员工。这样就能够实现企业客户,企业员工都能够访问企业服务器,而企业员工内部可以通信,企业客户间不能通信,企业客户和企业员工之间不能互访的目的。
主VLAN不能启用VLANIF,隔离型VLAN只能配置一个
MUX VLAN配置命令
[Huawei]vlan batch 10 20 30
[Huawei]vlan 10
[Huawei-vlan10]mux-vlan
[Huawei-vlan10]subordinate group 20
[Huawei-vlan10]subordinate separate 30
[Huawei]int GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type access
[Huawei-GigabitEthernet0/0/1]port default vlan 10
[Huawei-GigabitEthernet0/0/1]port mux-vlan enable
[Huawei]int GigabitEthernet 0/0/2
[Huawei-GigabitEthernet0/0/2]port link-type access
[Huawei-GigabitEthernet0/0/2]port default vlan 20
[Huawei-GigabitEthernet0/0/2]port mux-vlan enable
[Huawei]int GigabitEthernet 0/0/3
[Huawei-GigabitEthernet0/0/3]port link-type access
[Huawei-GigabitEthernet0/0/3]port default vlan 30
[Huawei-GigabitEthernet0/0/3]port mux-vlan enable
[Huawei]display mux-vlan
- 配置了如上命令实现的效果是VLAN20和VLAN30的主机可以和VLAN10的主机相互通信,VLAN20内的用户可以互相通信,不能与VLAN30的用户通信,VLAN30内的用户不可以相互通信,也不可以和VLAN20用户通信。
5.端口隔离
- 端口隔离是交换机端口之间的一种访问控制安全控制机制。
如图要实现不同端口接入的PC之间不能互访(PC属于相同的VLAN),而所有的PC都能够通过上行的交换机访问网络,可以通过配置端口GE3/0/1,GE3/0/2,GE3/0/3之间端口隔离,GE5/0/0和端口GE3/0/1,GE3/0/2,GE3/0/3之间不隔离,来实现此安全控制需求。
MUX VLAN可以配置VLAN内的用户间的相互隔离和互通
- 端口隔离则是物理层次上的隔离,是基于端口,配置端口隔离后,无论是哪个VLAN,两个端口间都不能通信
端口隔离配置命令:
[Huawei]port-isolate mode all
[Huawei]int GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port-isolate enable
[Huawei]int GigabitEthernet 0/0/2
[Huawei-GigabitEthernet0/0/1]port-isolate enable
6.VLAN Mapping
- VLAN Mapping也叫做VLAN Translation,可以实现在用户VLAN ID(私有VLAN)和运营商VLAN ID(业务VLAN)之间相互切换的一个功能。
VLAN Mapping原理
- VLAN Mapping发生在报文从入端口接收进来之后,从出端口转发出去之前。
- 当在端口配置了VLAN ID 映射后,端口在向外发送本地VLAN的帧时,将帧中的VLAN Tag替换成外部VLAN的VLAN Tag;在接收外部VLAN 的帧时,将帧中的VLAN Tag替换成本地VLAN的VLAN Tag,这样不同VLAN间就实现了互相通信。
- 如图所示,当在端口GE1/0/1上配置了VLAN100和VLAN10映射后,端口在向外发送VLAN100的帧时,将帧中的VLAN Tag 替换成VLAN10的VLAN Tag;在接收VLAN10的帧时,将帧中的VLAN Tag 替换成VLAN100 的VLAN Tag,这样VLAN100 和VLAN10 就实现了互相通信。
VLAN Mapping的配置:
[Huawei]int GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type trunk
[Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan xx(允许mapping后的VLAN)
[Huawei-GigabitEthernet0/0/1]qinq vlan-translation enable
[Huawei-GigabitEthernet0/0/1]port vlan-mapping vlan 1 to 10 map-vlan 100 把vlan1 to 10转换成VLAN100
7.VLAN间路由
- 部署了VLAN的传统交换机不能实现不同VLAN间的二层报文转发,因此必须引入路由技术来实现不同VLAN间的通。VLAN路由可以通过二层交换机配合路由器来实现,也可以通过三层交换机来实现。
7.1 VLAN路由——每个VLAN一个物理连接
LSW配置:
AR1配置:[LSW]vlan batch 10 20
[LSW]int GigabitEthernet 0/0/2
[LSW-GigabitEthernet0/0/2]port link-type access
[LSW-GigabitEthernet0/0/2]port default vlan 10
[LSW]int GigabitEthernet 0/0/3
[LSW-GigabitEthernet0/0/3]port link-type access
[LSW-GigabitEthernet0/0/3]port default vlan 20
[LSW]int GigabitEthernet 0/0/1
[LSW-GigabitEthernet0/0/2]port link-type access
[LSW-GigabitEthernet0/0/2]port default vlan 10
[LSW]int GigabitEthernet 0/0/4
[LSW-GigabitEthernet0/0/2]port link-type access
[LSW-GigabitEthernet0/0/2]port default vlan 20
[AR1]int GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]ip address 192.168.1.254 24
[AR1]int GigabitEthernet 0/0/1
[AR1-GigabitEthernet0/0/0]ip address 192.168.2.254 24
7.2 VLAN路由——单臂路由
LSW1配置:
<LSW1>system view 进入系统视图
[LSW1]vlan batch 10 20 创建VLAN 10和20
[LSW1]interface g0/0/2 进入接口g/0/0/2
[LSW1]port link-type access 设置接口类型为access
[LSW1]port default vlan 10 设置接口分发进VLAN 10
[LSW1]interface g0/0/3 进入接口g/0/0/3
[LSW1]port link-type access 设置接口类型为Access
[LSW1]port default vlan 20 设置接口分发进VLAN 20
[LSW1]interface g0/0/1 进入接口g0/0/1
[LSW1]port link-type trunk 设置接口类型为trunk
[LSW1]port trunk allow-pass vlan 10 20 设置trunk链路允许VLAN 10和20的流量通过
AR1配置:
<AR1>system view 进入系统视图
[AR1]int GigabitEthernet 0/0/0.1 进入子接口g/0/0/0.1
[AR1]dot1q termination vid 10 子接口0/0/0.1与VLAN 10绑定
[AR1]ip address 192.168.1.254 24 设置子接口IP地址,此接口为vlan的网关
[AR1]arp broadcast enable 开启子接口的ARP广播功能
[AR1]int GigabitEthernet 0/0/0.2 进入子接口g/0/0/0.2
[AR1]dot1q termination vid 20 子接口0/0/0.1与VLAN 20绑定
[AR1]ip address 192.168.1.254 24 设置子接口IP地址,此接口为vlan的网关
[AR1]arp broadcast enable 开启子接口的ARP广播功能
7.3 VLAN路由——三层交换
LSW1配置:
[LSW1]vlan batch 10 20
[LSW1]int GigabitEthernet 0/0/1
[LSW1-GigabitEthernet0/0/1]port link-type access
[LSW1-GigabitEthernet0/0/1]port default vlan 10
[LSW1]int GigabitEthernet 0/0/2
[LSW1-GigabitEthernet0/0/2]port link-type access
[LSW1-GigabitEthernet0/0/2]port default vlan 20
[LSW1]int Vlanif 10
[LSW1-Vlanif10]ip address 192.168.1.254 24
[LSW1]int Vlanif 20
[LSW1-Vlanif20]ip address 192.168.2.254 24
8. QinQ
QinQ协议在用户私网VLAN Tag之外封装公网VLAN Tag,在公网中报文只根据公网VLAN Tag传播。QinQ为用户提供一种较为简单的二层VPN隧道。
什么是QinQ:基于802.1Q封装的隧道协议
报文封装双层VLAN Tag
QinQ优点:解决日益紧缺的公网VLAN ID资源问题
- 用户可以规划自己的私网VLAN ID
- 提供一种较为简单的二层VPN解决方案
- 使用户网络具有较高的独立性
- QinQ特别适用于以三层交换机为骨干的小型企业网或小规模城域网
8.1 QinQ基本原理
QinQ封装结构
- 如图所示,普通以太网帧中,没有VLAN Tag,802.1Q帧中在源地址和Type字段之间插入4B长度的VLAN Tag,QinQ封装在802.1Q VLAN Tag之前再插入一个4B长度的VLAN Tag,两个4B长度的VLAN Tag字段包含相同的内容。
字段含义
- TPID:Tag Protocol Identifier,2字节,固定取值,0x8100,是IEEE定义的新类型,表明这是一个携带802.1Q标签的帧。华为交换机外层Tag中TPID值缺省采用协议规定的0x8100,某些厂商的设备将QinQ报文外层Tag的TPID值设置为0x9100或0x9200。为了和这些设备兼容,华为交换机提供基于端口的QinQ报文TPID值可调功能。
- TCI:Tag Control Information,2字节。帧的控制信息,详细说明如下:
- Priority:3比特,指示以太网帧的优先级。一共有8种优先级,0-7,用于提供有差别的转发服务。(即所谓的802.1P)
- CFI:Canonical Format Indicator,1比特。用于令牌环/源路由FDDI介质访问中指示地址信息的比特次序信息,即先传送的是低特位还是高比特位。
- VLAN Identified:VLAN ID,12比特,取值从0到4095。
数据转发过程:
8.2 QinQ分类
基于端口的QinQ
- 配置了此功能的端口,设备会为从此端口进入的报文打上一层VLAN ID为端口PVID的外层VLAN tag。
- 基于端口的QinQ通过配置端口类型为dot1q-tunnel实现。
当端口类型为dot1q-tunnel时,该端口加入的VLAN不支持二层组播功能。
灵活QinQ灵活QinQ根据指定条件为入报文加一层S-VLAN tag。
- 指定条件:入报文外层VLAN的范围或VLAN+802.1P。
- 仅指定报文802.1P优先级时,不关注入报文外层VLAN的具体值,只要外层VLAN的802.1P优先级匹配就会打上S-VLAN tag。
通过在端口配置VLAN Stacking实现。
优势:相对基于端口的QinQ,灵活QinQ可以根据入报文的外层VLAN及802.1p来选择加或不加S-VLAN Tag,并且S-VLAN Tag可配置。
- 配置灵活QinQ时,需要配置端口加入S-VLAN的方式为untagged方式,报文下行时就能够剥掉S-VLAN Tag后再出设备。
- 接口类型为Hybrid或Trunk时,才能配置灵活QinQ
- Trunk类型端口只有在允许通过的VLAN与端口的PVID相同时,端口才以untagged方式加入VLAN,所以Trunk类型端口只能支持配置一条灵活QinQ。
端口学习MAC地址时,学习的是QinQ报文外层VLAN的MAC地址。
流策略可以在接口视图,VLAN视图和全局视图下配置,不同视图下的配置决定了流策略的不同作用范围
- 当流策略配置在VLAN视图,并且流分类指定外层VLAN或者外层VLAN+802.1p时,只有入报文的外层VLAN ID与所配置的VLAN视图对应的VLAN ID相同时,流策略才会生效。
8.3 QinQ配置
业务环境
以此组网为例,介绍QinQ基本配置:
- 如图所示,LAN A、LAN B中SWA和SWD连接有VLAN200到VLAN300的私网用户。
- SWB连接SWA的接口Ethernet1/0/1、SWC连接SWD的接口Ethernet1/0/1为QinQ接入端口,属于VLAN3。
- SWA和SWD为用户侧交换机,上行Trunk端口Ethernet1/0/1将带有VLAN ID 200-300的帧发送给SWB和SWC。
基于端口的QinQ配置
灵活QinQ配置
注意需要先在接口上使能vlan转换功能:qinq vlan-translation enable
TPID配置实际配置时不用加0x
- 实现测试时,配置了之后 无法正常通信