关键词:Isolate-user-vlan,Secondary VLAN
摘 要:Isolate-user-vlan采用二层VLAN结构:Isolate-user-vlan和Secondary VLAN。上行设备只识别Isolate-user-vlan,而不必关心Isolate-user-vlan中包含的Secondary VLAN,从而节省了VLAN资源,简化了网络配置。本文介绍了Isolate-user-vlan的技术原理以及组网应用。
缩略语:
缩略语 |
英文全名 |
中文解释 |
VLAN |
Virtual Local Area Network |
虚拟局域网 |
ARP |
Address Resolution Protocol |
地址解析协议 |
目 录
1 概述
1.1 产生背景
1.2 技术优点及应用场景
2 Isolate-user-vlan实现机制
2.1 相关术语
2.2 Isolate-user-vlan技术原理
2.2.1 Isolate-user-vlan配置同步
2.2.2 Isolate-user-vlan的MAC地址同步
2.3 Isolate-user-vlan的报文转发
2.4 应用限制
3 典型组网应用
3.1 组网图
3.2 组网环境
1 概述
1.1 产生背景
在园区网中,基于用户安全和管理计费等方面的考虑,运营商一般要求接入用户互相二层隔离。VLAN是天然的隔离手段,于是很自然的想法是每个用户一个VLAN。如图1所示,Switch B和Switch C上分别接入三个用户,如果给每个用户划分一个VLAN,则需要占用Device A上的六个VLAN资源。
图1 扁平的网络组网图
根据IEEE 802.1Q协议规定,设备最大可使用VLAN资源为4094个。对于核心层设备来说,如果每个用户一个VLAN,4094个VLAN远远不够。为解决VLAN资源紧缺的问题,Isolate-user-vlan应运而生。
支持Isolate-user-vlan功能后,可以将图1中的用户所在的VLAN(VLAN 10~15)配置为Secondary VLAN,将VLAN 2和VLAN 3配置为Isolate-user-vlan(如图2)。这样,Device A上只需配置VLAN 2和VLAN 3,节省了四个VLAN资源。
图2 Isolate-user-vlan功能示意图
1.2 技术优点及应用场景
Isolate-user-vlan采用分层结构:上行的Isolate-user-vlan和下行的Secondary VLAN。对上行设备来说只需识别Isolate-user-vlan,而不必关心Isolate-user-vlan中的Secondary VLAN,从而节省了上行设备的VLAN资源。同时,将接入用户划入不同的Secondary VLAN,可以实现用户之间二层报文的隔离。
IIsolate-user-vlan主要应用在在园区网或企业网接入中,实现二层报文隔离的同时节省VLAN资源。
2 Isolate-user-vlan实现机制
2.1 相关术语
l Isolate-user-vlan:上行设备感知的用户VLAN,它并不是用户的真正VLAN。
l Secondary VLAN:用户真正属于的VLAN。
l 上行端口:和上行设备相连的端口,负责和上行设备通信。上行端口的缺省VLAN ID必须配置为isolate-user-vlan的VLAN ID,否则该端口无法转发来自Secondary VLAN的报文。
l 下行端口:和用户相连的端口,负责和终端通信。下行端口的缺省VLAN ID必须配置为Secondary VLAN的VLAN ID,否则该端口无法转发来自Isolate-user-vlan的报文。
2.2 Isolate-user-vlan技术原理
Isolate-user-vlan技术是如何屏蔽Secondary VLAN信息、节省VLAN资源的呢?实现这个功能,要求:
l 来自不同Secondary VLAN的报文,能够通过上行端口发送给上行设备,而且不能携带Secondary VLAN信息。
l 来自Isolate-user-vlan的报文,能够通过下行端口发送给用户,而且不能携带Isolate-user-vlan信息。
我们知道,Isolate-user-vlan和Secondary VLAN采用不同的VLAN编号,各自包含了不同的端口,通常不同VLAN之间的报文是二层互相隔离的,要达到以上要求,需要两方面的配合:
(1) 在本设备上需要进行配置同步和MAC地址同步处理。详细介绍请参见2.2.1 和2.2.2 。
(2) 上行设备需要进行必须的配置:
l 创建VLAN:VLAN ID等于Isolate-user-vlan的VLAN ID。
l 配置入端口参数:将端口类型设置为Hybrid,将端口缺省VLAN值设置为Isolate-user-vlan ID,配置端口允许缺省VLAN的报文以untagged方式通过。
2.2.1 Isolate-user-vlan配置同步
配置Isolate-user-vlan功能后,系统会自动对Isolate-user-vlan和Secondary VLAN所包含的端口进行配置同步:
l 对于上行端口,会将端口类型修改为Hybrid,并允许来自Secondary VLAN的报文以untagged方式通过。而上行设备的入端口通过手工配置已经将端口的缺省VLAN值设置为Isolate-user-vlan ID,所以,当上行设备收到这样的报文后,均认为这些报文来自Isolate-user-vlan,并给它们添加tag,tag中的VLAN ID等于Isolate-user-vlan ID。从而,屏蔽了Secondary VLAN信息。
l 对于下行端口,会将端口类型修改为Hybrid,并允许来自Isolate-user-vlan的报文以untagged方式通过。
如图3所示的组网中,端口默认都为Access口,端口Ethernet1/2属于VLAN 2、端口Ethernet1/3属于VLAN 3、端口Ethernet1/5属于VLAN 5,端口的相关属性如表1所示。然后配置VLAN 5为Isolate-user-vlan,VLAN 2、3、4均为Secondary VLAN。配置同步后,端口的相关属性改变了,具体信息如表2所示。
图3 Isolate-user-vlan配置同步组网图
表1 配置同步前端口的相关属性
端口 |
类型 |
端口缺省VLAN |
允许通过的VLAN |
Eth1/5 |
Access |
5 |
只允许VLAN 5的报文通过 |
Eth1/2 |
Access |
2 |
只允许VLAN 2的报文通过 |
Eth1/3 |
Access |
3 |
只允许VLAN 3的报文通过 |
表2 配置同步后端口的相关属性
端口 |
类型 |
端口缺省VLAN |
Isolate-user-vlan角色 |
允许通过的VLAN |
Eth1/5 |
Hybrid |
5 |
Isolate-user-vlan |
允许VLAN 2、VLAN 3、VLAN 5的报文以untagged方式通过 |
Eth1/2 |
Hybrid |
2 |
Secondary VLAN |
允许VLAN 2、VLAN 5的报文以untagged方式通过 |
Eth1/3 |
Hybrid |
3 |
Secondary VLAN |
允许VLAN 3、VLAN 5的报文以untagged方式通过 |
2.2.2 Isolate-user-vlan的MAC地址同步
通过配置同步,来自Secondary VLAN的报文能以untagged方式从上行端口发送出去,来自Isolate-user-vlan的报文能以untagged方式从下行端口发送出去。这些报文是如何找到相应的出接口的呢?
通过MAC地址学习,如图3所示的组网中Switch会生成并维护一张MAC地址表(如表3所示)。如果Device给Host 2发送报文(源MAC为mac_a,目的MAC为mac_2);Switch会给报文添加tag,VLAN ID为5(即端口的缺省VLAN ID);然后以“mac_2+VLAN 5”为条件去查询MAC地址表。由于找不到相应的表项,该报文会在VLAN 5内广播,并最终从Eth1/2、Eth1/3发送出去。
同理,每次上行和下行的报文都需要广播才能到达目的地。当Secondary VLAN和Isolate-user-vlan包含的端口较多时,这样的处理方式会占用大量的带宽资源,也不安全(广播报文容易被截获和侦听)。通过MAC地址同步机制可以解决这个问题。
Isolate-user-vlan的MAC地址同步机制为:
l Secondary VLAN到Isolate-user-vlan的同步,即下行端口在Secondary VLAN内学习到的动态MAC地址都同步至Isolate-user-vlan内。
l Isolate-user-vlan到Secondary VLAN的同步,即上行端口在Isolate-user-vlan学习到的动态MAC地址同步到所有的Secondary VLAN内。
当Isolate-user-vlan下面配置了很多Secondary VLAN,MAC地址同步后,将导致MAC地址表过于庞大,进而影响设备的转发性能。同时考虑到用户的下行流量要远远大于上行流量,下行流量需要进行单播,上行流量可以进行广播,所以, Secondary VLAN到Isolate-user-vlan的同步所有产品均支持,而Isolate-user-vlan到Secondary VLAN的同步部分产品不支持。
如图3所示的组网中,MAC地址同步后生成的MAC表项如表4所示。
表3 同步前的MAC地址转发表
目的MAC |
VLAN |
出端口 |
mac_2 |
2 |
Eth1/2 |
mac_3 |
3 |
Eth1/3 |
mac_a |
5 |
Eth1/5 |
表4 同步后的MAC地址转发表
目的MAC |
VLAN |
出端口 |
mac_2 |
2 |
Eth1/2 |
mac_2 |
5 |
Eth1/2 |
mac_3 |
3 |
Eth1/3 |
mac_3 |
5 |
Eth1/3 |
mac_a |
5 |
Eth1/5 |
mac_a |
2 |
Eth1/5 |
mac_a |
3 |
Eth1/5 |
2.3 Isolate-user-vlan的报文转发
下面通过图3中Host 2的报文流程来阐述Isolate-user-vlan的实现机制。
(1) Host 2第一次发出单播上行报文,报文为untagged报文,源MAC地址为mac_2,目的MAC地址为mac_a。
(2) Switch通过下行端口Ethernet1/2收到报文,给报文打上端口缺省VLAN的标签2,并学习MAC地址,记录MAC地址表项(mac_2+VLAN2+Eth1/2)(表示目的MAC地址为mac_2,VLAN标签为2的报文,出接口为Ethernet1/2)。
(3) 根据MAC地址同步原则,该MAC地址同时同步学习到VLAN 5内,设备同时记录MAC地址表项(mac_2+VLAN5+Eth1/2)。
(4) 由于Switch当前没有mac_a的MAC表项,因此设备在VLAN 2内广播该报文。
(5) 由于配置同步,Ethernet1/5端口允许VLAN 2的报文以untagged方式通过,所以报文去掉tag后通过Ethernet1/5发送出去。
(6) Device A收到报文后进行响应。
(7) Switch通过上行端口Ethernet1/5收到报文,给报文打上端口缺省VLAN的标签5,并学习MAC地址,记录MAC地址表项(mac_a+VLAN5+Eth1/5)。通过MAC地址同步,又生成两条MAC地址表项(mac_a+VLAN2+Eth1/5)和(mac_a+VLAN3+Eth1/5)。
(8) Switch以“mac_2+VLAN 5”为条件去查询MAC地址表,找到出接口Ethernet1/2,并将报文去掉tag后发送给Host 2。
从而实现了Host 2和Device之间的报文交互。
2.4 应用限制
对于Secondary VLAN之间的互通,需要在上行设备上配置本地ARP代理,会较大地增加三层设备的负担。
3 典型组网应用
3.1 组网图
图4 Isolate-user-vlan应用组网图
3.2 组网环境
小区内有大量用户且用户支持不同的业务(如视频、语音、数据等),为了保证用户安全以及区分不同业务流,使用VLAN技术对用户的二层报文进行隔离。但因为设备VLAN资源有限,因而可以在接入交换机上配置Isolate-user-vlan功能,以节省Device的VLAN资源。同时将多个端口配置为Isolate-user-vlan的上行端口,并结合ACL和QoS配置,以便让不同的上行端口传输不同的业务,简化网络管理。