基于非对称VLAN的端口隔离技术研究与应用
2015-12-02林初建张四海王海英
林初建, 张四海, 王海英, 冯 雷, 赵 君
(南开大学信息化建设与管理办公室,天津 300071)
0 引 言
高校校园网作为信息化的基础设施,是高校教学科研的重要支撑平台之一.高校校园网复杂的结构、庞大的规模和密集活跃的用户群体,使之面临多重安全隐患.从局域网接入角度出发,存在如下几种较有代表性的安全威胁.
0.1 以太网环境中的ARP攻击
在局域网中,网络攻击者利用ARP协议固有的漏洞,通过发送伪造的ARP广播报文,伪装出目标主机的MAC地址,从而达到劫持用户流量或泛洪攻击的目的.[1]
0.2 IPOE和PPPOE面临的安全隐患
校园网基础架构趋于扁平化,宽带远程接入服务器BRAS逐渐部署到网络核心,用户接入也相应的由静态分配IP地址方式向IPOE或PPPOE演变.IPOE基于DHCP分配地址的方式和PPPOE连接建立的过程,仍无法规避同一广播域中私设DHCP或PPPOE服务器造成的网关欺骗和流量劫持问题.
0.3 接入端环路造成的广播风暴
高校校园网用户较为活跃,其使用网络的行为难以全面管控,错误连接局域网设备造成环路的情况时有发生.环路带来的广播风暴会导致同一个广播域中的所有终端无法正常使用网络,甚至会影响到网关所在的三层设备的转发性能,进而影响到整个网络.
0.4 计算机病毒在局域网内的渗透
在网络边界部署的入侵防御系统的安全措施,无法阻止计算机病毒在局域网内部的渗透,在局域网内部缺乏隔离的情况下,单个终端设备所感染的计算机病毒往往呈爆炸趋势,迅速蔓延全网[2].
以上安全威胁的共同原因在于,众多终端设备处于同一个广播域中,无法避免广播报文引起的网络安全攻击.VLAN作为一种隔离广播域的技术,可以隔离接入网络的终端设备的广播报文,本文将在研究VLAN技术原理的基础上,基于非对称VLAN模型,实现网络交换机端口的隔离,把接入终端设备隔离到单一的广播域中,规避因为众多终端存在于同一广播域引起的网络安全问题.
1 VLAN技术原理与非对称VLAN模型
1.1 VLAN技术原理
VLAN技术根据特定的策略,把物理上形成的局域网(Local Area Network,LAN)划分成不同的逻辑子网,把数据链路层广播报文隔离在逻辑子网之内,形成各自的广播域,每个逻辑子网就是一个“虚拟的局域网(Virtual LAN)”[3].每个接入至支持VLAN的交换机的终端设备,都属于一个特定的VLAN,不同VLAN中的终端设备无法直接通过数据链路层通信[4].VLAN技术有效限制了广播报文的传输范围,一定程度上抑制了广播风暴,提高了网络的安全性,大量应用于高校、企业以及住宅小区等园区网络.
IEEE802.1Q是目前最广泛应用的VLAN国际标准,它定义了一种新的以太网帧格式以及一系列在桥接局域网中支持VLAN的机制.通过静态配置或动态学习的方式,支持IEEE802.1Q的交换机可以把一些端口的集合指派为某一VLAN的成员,交换机根据报文中携带的VLAN标记,决定报文的VLAN归属并转发至对应的端口.
1.1.1 IEEE802.1Q帧格式
IEEE802.1Q在标准以太网帧的“源地址”字段与“类型/长度”字段之间,封装了一个长度为4字节的标记头部(Tag Header),其中最低12位作为报文的VLAN标识符(VLAN Identifier,VID),用于标识报文的归属VLAN,如图1所示[5].封装了VLAN标记头部的报文称为标记帧(Tagged Frame),没有封装VLAN标记头部的报文称为无标记帧(Untagged Frame).
1.1.2 报文在交换机中的转发过程
网络交换机等“VLAN识别”(VLAN-aware)设备根据报文封装的VLAN标记头部确定报文的归属VLAN,基于过滤数据库(Filtering Database,FDB)对接收到的报文进行过滤和转发.交换机对报文的转发主要由三个阶段来完成:入口过滤(Ingress Filtering)、转发过程(Forwarding)以及出口处理(Egress),如图2所示.
图1 标准以太网帧、IEEE802.1Q标记帧和IEEE802.1Q标记头部
图2 报文在交换机中的转发流程
(1)入口过滤
支持IEEE802.1Q的交换机基于端口的入口规则,来匹配报文中的VLAN标记头部,对接收到的报文进行过滤和归类,确定报文的归属VLAN.当接收到的报文为标记帧时,如果端口配置的VLAN和报文标记头部中的VID相匹配,则保持报文的标记头部不变,由转发进程继续处理报文,否则丢弃报文.对于接收到的无标记帧,交换机的每个端口均分配一个本征VLAN标识符(Port VID,PVID)用于VLAN归类,把端口PVID作为VID为报文封装VLAN标记头部,然后由转发进程继续处理.经过入口规则的过滤之后,所有的报文都封装了VLAN标记头部,与特定的VLAN建立起关联.
(2)报文转发
转发进程通过查询FDB表项确定如何处理接收到的报文,FDB包含了MAC、端口及所属VLAN的VID、出口标记控制(Egress Tag Control,ETC)等映射关系以及端口的状态,决定了报文转发的目的端口和格式.交换机的FDB表项可以通过管理员手动静态维护或者动态学习得到.如果交换机无法匹配到报文目的MAC地址,则以广播方式转发报文到对应的VLAN或者全部端口.在转发的过程中,在进行出口处理之前,报文格式保持为标记帧.
(3)出口处理
VLAN标记帧无法被接入终端等“非VLAN识别”(VLAN-unaware)设备接收,在报文转发出交换机端口之前,还需要根据端口接入的终端设备和网络对IEEE802.1Q标准的支持与否,确定转发的报文格式.交换机根据发送端口配置的ETC值,来判断要发送的报文格式.如ETC值为“TAG”,发送标记帧,如ETC值为“UNTAG”,则删除报文的VLAN标记头部,发送无标记帧.
综上所述,VLAN在交换机中的工作机制,实际上是基于报文中的IEEE802.1Q标记头部,通过匹配FDB的过滤规则,对报文进行分类过滤、封装/删除标记头部和转发的过程.图3为VLAN的一般工作模式.
图3 VLAN的一般工作模式
1.1.3 交换机端口类型与报文处理模式
对应于不同的报文处理方式,交换机端口可配置为接入(access)、中继(trunk)、混杂(hybrid)等不同的链路类型.
(1)接入(access)类型
配置为“接入类型”的交换机端口只允许接收无标记帧,每个端口都只属于一个本征VLAN.当端口接收到无标记帧时,则把端口PVID封装到VLAN标记头部,当接收到标记帧时,则丢弃该报文;当端口向外发送报文时,则删除报文的VLAN标记头部,如图4所示.“接入”端口通常用于终端设备或其它非VLAN识别设备“接入”至交换机.
图4 access端口报文处理方式
(2)中继(trunk)类型
配置为“中继类型”的交换机端口,能够同时发送和接收多个VLAN的标记帧,并且能够发送和接收本征VLAN的无标记帧报文,如图5所示.与“接入”端口相同,“中继”端口上接收到的无标记帧均视为属于端口本征VLAN.“中继”端口接收到标记帧时,如果报文VLAN标记头部中的VID和端口所属VLAN匹配,则继续转发报文,否则丢弃报文.“中继”端口发送报文时,除了删除端口本征VLAN报文中的标记头部,其余VLAN的报文均保持标记头部不变.“中继”端口一般用于交换机之间的级联,以“中继”分布在不同地理位置的逻辑子网的报文.
图5 trunk端口报文处理方式
(3)混杂(hybrid)类型
“混杂类型”的交换机端口,能够根据具体的端口过滤规则设置,接收和发送多个特定VLAN的无标记帧和标记帧,如图6所示.“混杂”端口可以针对不同VLAN设置报文是否封装标记头部,为不同VLAN的报文执行不同的处理流程.“混杂”端口和“中继”端口的相同之处在于,当端口接收到无标记帧时,均视为属于端口本征VLAN,并均以无标记帧格式转发属于本征VLAN的报文.不同之处在于,“混杂”端口支持发送多个VLAN的标记帧之外,还可以根据特定配置,为本征VLAN之外的特定VLAN发送无标记帧格式的报文,而“中继”端口只支持发送端口本征VLAN的无标记帧格式报文[6].“混杂”端口既可以用于终端设备的接入,可以用于交换机之间的级联.
图6 hybrid端口报文处理方式
1.2 非对称VLAN模型
通过对VLAN技术原理的探讨,我们可以发现,通常只有在同一个VLAN中的终端设备,才可以直接发生通信,也就是使用同一个的VID来发送和接收报文.然而,在某些情形下,我们可以使用两个不同的VID来实现数据的传输,一个VID用于本端向对端发送数据,而另一个则用于对端向本端发送数据.“多网段嵌套服务器(Multi-netted Server)”模型,就是这样一种“非对称”的VLAN模型,如图7所示.
在“多网段嵌套服务器”模型中,假设服务器和客户端均为非VLAN识别设备,只能接收和发送无标记帧;并假设交换机端口的入口分类规则为IEEE802.1Q标准规定的基于端口的VLAN分类方式,并且通过静态配置FDB来达到指定特定的VLAN成员端口集和无标记端口集的目的.
模型为端口配置不同(非对称)的VLAN接收和发送报文,客户端A、B和服务器可以分别互访,但是客户端A和客户端B之间无法传输数据.
图7 多网段嵌套服务器模型
在本模型中,客户端A向交换机端口1发送无标记帧,交换机以PVID100把报文封装为VLAN100的标记帧,转发到归属于VLAN100的服务器所在端口3,并且以无标记帧的报文格式发送给服务器.而服务器端的无标记帧发送给端口3时,交换机以PVID300把报文封装为VLAN300的标记帧,转发到归属于VLAN300的客户端A.客户端B和服务器之间的数据传输过程相同.交换机端口1、3之间和端口2、3之间虽然分别归属于不同的VLAN,但相互之间实现了数据传输.而端口1和2接收到无标记帧后,分别封装为VLAN100和VLAN200的标记帧,因为端口1和2配置为只允许以无标记帧的格式发送VLAN300的报文,因此无法转发彼此端口接收到的报文,不同端口下的客户端之间无法通过数据链路层进行数据传输,这就实现了端口的隔离.
2 交换机端口隔离的配置
2.1 配置分析
根据“多网段嵌套服务器”模型,可以把服务器所在端口作为上行端口和网络核心三层接口通信,客户端所在端口作为下行端口用于终端设备的接入,为交换机不同的端口指定不同PVID,以实现接入终端之间的相互隔离.
可以看到,模型中的端口需要支持以无标记帧格式发送本征VLAN之外的报文,因此需配置为“混杂类型”.在实际部署环境中,交换机除了转发终端设备的用户数据之外,还要传输交换机本身的管理数据,管理数据通过管理VLAN转发,这需要适当修改模型中上行端口的配置,使之支持发送多个VLAN的报文.由于上、下行端口的PVID分别属于不同VLAN,为了实现数据转发,必须共享属于不同VLAN的MAC地址,这需要交换机支持SVL学习方式.通常二层接入交换机支持SVL学习方式,这跟在二层接入交换机上实现端口隔离的需求正好契合.
2.2 交换机配置
鉴于主流厂商交换机配置命令和步骤大同小异,本文不再针对具体型号的设备进行配置,而是以伪命令方式给出配置并加以注释.配置中的尖括号及内容代表VID.
2.2.1 全局配置
2.2.2 上行端口配置
2.2.3 下行端口配置
以上配置基于非对称VLAN模型实现了接入交换机的端口隔离,在具体部署环境中,还会存在群组汇聚交换机,其下行端口可以同样配置,与核心设备三层接口对接的上行端口根据实际情况,有时需要把用户数据也封装为标记帧,但从原理上说并没有不同,因此不再赘述.
3 结束语
非对称VLAN模型对交换机端口的隔离,从根本上解决了终端设备广播报文引起的安全威胁和网络攻击,与在交换机设备上启用额外的报文过滤等高级功能相比,更具优势和普适性.首先,从系统性能上来讲,非对称VLAN模型实现了终端设备在数据链路层面的完全隔离,不再局限于针对具体上层协议来防护网络攻击,也无需分析具体协议额外占用交换机系统性能.从网络管理角度来讲,避免了为交换机配置各种额外功能的复杂度,简化了网络管理.最后,不必更换早期部署的设备以支持ARP防护和DHCP Snooping等高级功能,延长了原有设备的生命周期,保护投资,绿色环保.基于非对称VLAN模型的端口隔离技术,可以普遍应用于校园网用户终端接入和服务器部署环境.
[1] 张文.针对ARP和PPPOE的攻击与检测技术研究[D].成都:四川师范大学,2013.
[2] 赵继伟.局域网安全及病毒防范[J].计算机光盘软件与应用,2013,22:146-148.
[3] 甘育裕,徐明明.以太网交换机中基于端口的VLAN实现[J].中国有线电视,2005,21:2077-2080.
[4] 肖军弼.虚拟局域网(VLAN)技术研究与实现[D].青岛:石油大学,2004.
[5] 李德水.基于IEEE802.1Q帧标记的VLAN实现原理[J].信息技术.2006,10:69-70.
[6] 崔晓红.二层交换机hybrid端口模式的应用[J].农业网络信息.2008,7:101-106.