一种基于VXLAN 的虚拟网络访问控制方法

2014-12-02 01:11卢志刚姜政伟刘宝旭
计算机工程 2014年8期
关键词:多播访问控制网关

卢志刚,姜政伟,刘宝旭

(中国科学院高能物理研究所计算中心,北京 100049)

1 概述

云计算作为一种新兴的IT 模式,以开放的标准和服务为基础,以互联网为中心,使互联网上的各种计算资源协同工作,共同组成数个庞大的数据中心和计算中心,为各类用户提供安全、快速、便捷的数据存储和网络计算等特定服务。由于各企业级用户向云计算模式转移的步伐越来越快,数据中心作为大量虚拟数据的存储地,已成为重要攻击目标,这种单点攻击所产生的危害程度远大于那些直接受攻击的对象。因此,在云计算发展过程中,与云计算相关的信息安全问题成为重中之重。

研究表明,云计算的安全挑战主要源于数据不在本地而在远端、计算资源和存储资源高度集中、边界模糊3 个方面[1-2]。云计算数据中心采用的服务器虚拟化技术使得虚拟网络与物理网络并存,如何对虚拟网络内部同一个VLAN 虚拟机间的流量进行防护成为一个难题。通过对部署在虚拟化平台上面的虚拟安全网关进行访问控制可实现面向某一个虚拟子网或者单台虚拟机的访问控制,是现有网络设备的有益补充和增强;同时,虚拟安全网关深入虚拟网络内部,覆盖物理安全设备无法获取的网络流量。由于在同一台服务器内部虚拟网络流量可以不出物理网卡进行通信,对物理安全设备而言不具备可视性,必须采用虚拟化的安全技术才可实现数据中心网络的全覆盖。因此,虚拟化网络的安全和访问控制是当前热门研究和发展课题之一。Kreeger 等人[3]提出使用控制协议,进行虚拟网络中由内到外的地址映射,消除网络中的洪泛问题。IEEE 的802.1Qbg[4]和DMTF[5]标准定义的端口配置文件自动迁移(AMPP),防止虚拟机迁移导致的安全策略变更。Elmeleegy[6-7]等人提出使用代理的方法对虚拟网络中的ARP 和DHCP 的广播流量进行抑制,抑制同一个数据中心内虚拟网络IP多播消耗资源过多的问题。Nakagawa 等人提出在路由上使用OpenFlow[8-9]对虚拟网络流量进行转发和控制。

上述研究在虚拟网络访问控制方面具有重要的意义,给本文研究提供的了借鉴和参考,但云计算中存在的跨数据中心的二层虚拟网络访问控制的问题,仍然无法解决。为此,本文给出一种利用虚拟可扩展局域网(Virtual eXtensible Local Area Network,VXLAN)技术进行隧道内虚拟网络访问控制的方法,以实现跨数据中心虚拟机间的访问控制与不同租户或者业务之间的相互隔离。

2 虚拟可扩展局域网

随着IT 组织向云计算和虚拟化的模式转移,很多人逐渐发现目前的数据中心网络连接体系结构是一个限制因素,包括:

(1)缺乏灵活性:VLAN 和交换边界既不灵活,也不易延展。随着需求的增减,计算和存储资源需要在无重大运行开销的情况下进行分配。

(2)容错操作效率低:高可用性技术(例如VMware Fault Tolerance)在第2 层网络上最有效,但是创建和管理该体系结构在操作上却十分困难,尤其是在大规模操作时更是如此。

(3)VLAN 和IP 地址管理的局限性:IP 地址的维护和VLAN 限制成为数据中心扩展的难题,特别是在隔离要求高的情况下更是如此。

为解决该难题,VMware 与领先的网络连接和电子设备供应商(包括Cisco Systems,Juniper)[10-11]合作,创建了VXLAN 技术。VXLAN 是一种在常用的网络和虚拟基础架构的顶层“浮动”虚拟域的方法。通过利用行业标准的以太网技术,在现有网络之上可以创建大量虚拟域,并且它们彼此之间以及与底层网络之间完全隔离。

3 隧道内虚拟网络访问控制方法

3.1 虚拟网络流量隔离

VXLAN 通过添加包头的方式封装原始框架来实现以太网框架隧道:Outer Ethernet,Outer IP,Outer UDP,VXLAN headers。Outer IP header 包含VTEP(虚拟隧道终端),位于VXLAN 的起源或终端。

在VXLAN 中,广播包被发往IP 多播组中,IP 多播组在VXLAN 中实现。为此,需要建立VXLAN VNI 和IP 多播组之间的映射。该映射在管理层完成,通过一个管理信道提供给各虚拟通道终端(VTEP)。使用该映射,VTEP 可以按需向上游交换机/路由器提供Join/Leave VXLAN 相关的IP 组播组IGMP 成员报告。IGMP 成员报告周期性地从VTEP发送到上游交换机/路由器中,保持成员的活动状态。路由器之间的组播路由协议,例如协议无关组播-稀疏模式(Protocol Independent Multicast-Sparse Mode,PIM-SM)用来建立高效的组播转发树。在PIM-SM 中,使用加入/裁剪消息将成员信息传送给汇聚点。

VXLAN 控制器是VXLAN 的管理层,同时也管理VTEP。VXLAN 控制器配置了VXLAN VNI 和IP多播组之间的映射。当VM 迁移到VTEP 时,VXLAN 控制器也配置将该VTEP 加入到IP 多播组。例如,VM1 被映射到VNI100,VTEP2。VNI100 被映射到IP 多播组202.38.128.216,然后VTEP2 发布IGMP 成员报告到上游路由器,加入IP 多播组202.38.128.216 (VNI100),上游路由器将VTEP2 添加到IP 多播组。此外,VTEP2 和路由器之间的网关检测IGMP 成员报告,并将VTEP2 注册到IP 多播组。

上游路由器每125 秒发送IGMP 成员查询,每个VTEP 利用所在的IP 多播组在10 s 内返回成员报告。在IP 多播组注册完后,VM1 完成迁移,虚拟机管理程序会发送一个ARP 广播包。该广播数据包被发送到IP 多播组。接收到该包后,VM 的MAC 和VTEP 的IP 关联关系就可以被发现。同时VTEP1 发送IGMP Leave 消息到上游路由器,向IP 多播组解除成员关系。对于Leave 消息,上游路由器发送特定IGMP 成员请求来验证是否有其他IP 多播组的VTEP。

图1 中展示了根据以上规则,当VM 迁移时,VXLAN 分段将网络流量进行隔离的实例,其中,实线表示实际物理连接;虚线表示虚拟域的逻辑划分和通信链接;L2 表示2 层的网络交换设备;GW 为虚拟网关。

VXLAN 网关1 处有2 个端口组(PG1 和PG2)。PG1 的VLAN100 以及PG2 的VLAN 100 与联结到VXLAN 网关2 的存储进行通信。为隔离用户或群组,将PG1 的VLAN100 映射VNI10,将PG2 的VLAN 100 映射VNI30。VXLAN 网关2 分别映射VNI10以及VNI30 到VLAN100 和VLAN 200 以实现流量 隔 离。在 VXLAN 网 关 1 处 将 VLAN1~VLAN99 映射VNI40,使用VLAN 处理操作的“通过”模式以保持C-tag(内部VLAN 标签)。Server-C(PG2)可使用位于用户处的VLAN 与Server-D通信。

图1 VXLAN 分段网络流量隔离

3.2 隧道访问控制流程

VXLAN 中的隧道访问控制节点VTEP 位于运行虚拟机的物理服务器虚拟机监视器上,它可放置在一个物理交换机上或物理服务器中。VTEP 将VNI分配给服务器上所运行的VM,VTEP 负责生成指定的VNI 字段与进行三层网络通信的数据包头信息。

VXLAN 隧道访问控制场景如图2 所示。

图2 VXLAN 隧道访问控制场景

具体的通信过程分为封装、传输与解包3 个过程:

(1)数据封装。服务器Server-A 中的虚拟机VM-A1 和另一个宿主机Server-C 中的虚拟机VM-D1进行通信时,首先发送一个普通的指向目标VM-D1的以太网帧。VM-A1 所在的物理主机上的VTEP 查找出该虚拟机对应的VNI,同时判断目标MAC 关联的VNI 是否与源虚拟机在同个VXLAN 段中。如果判断结果为真,VTEP 则在VM-A1 的原始MAC 帧之前加入如下的信息以封装成新的以太网帧:外部以太网头、外部IP 头、外部UDP 头与VXLAN 头信息,并进行发送。

(2)数据传输。封装后的数据,通过二层交换机进行交换转发,到达三层路由器时,以太网帧头被取下,目标IP 地址用于路由,最终到达远端对应的VTEP。

(3)数据验证与解包。对应于传统UDP 校验和的处理,目标VTEP 收到一个VXLAN 帧,其UDP 校验和是0 时,即需要进行解包,可以选择验证校验值,如果校验未通过,这个包必须被丢弃。

目标VTEP 收到数据帧后解包,先通过查看VXLAN 头信息中的I 位Flags 是不是为1 以验证VNI值的合法性。如果合法,这个帧的数据头被剥离,形成传统的以太网数据包,并转发给目标虚拟机,即目标虚拟机接收到的是一个普通的二层以太网帧。

在上述的数据封装、传输与验证、解包过程中,通信的虚拟机之间仍是进行传统的二层网络中的数据发送与接收,而不知道它们处于VXLAN 中,VNI与VXLAN 逻辑隧道封装、解包动作由VTEP 进行,对虚拟机透明。

3.3 IP 组播管理

使用OpenFlow 的IP 组播管理模型如图3 所示。模型包含VXLAN 控制器、用于VXLAN 网关的VTEP边缘交换机以及OpenFlow 交换机。VTEP 可以安置在hypervisor 处,或者安置在边缘交换机或路由器处。在模型中,本文在边缘交换机处部署VTEP。

图3 VXLAN 段IP 组播管理模型

OpenFlow 交换机提供由控制器管理的流表转发模式。流表包含一系列流条目(根据报头数值匹配数据包)、活动计数器,以及一系列匹配数据包应用的操作。交换机处理的所有数据包都是对照流表的。如果发现匹配,根据条目对数据包进行操作。例如,其操作可以是转发数据包到指定的输出端口。如果没有发现匹配,数据包通过安全通道转发至控制器处,控制器负责判定如何处理没有有效流条目的数据包。

在应用中,VXLAN 控制器管理VXLAN 段,并主动基于用户信息对IP 组播群配置流表。由于所有VXLAN 段的条目都是主动配置的,因此并不需要Packet-In 信息。对于IP 组播地址所需要的操作是转发数据包到一个或多个指定的端口处。但与全部转发不同的是,OpenFlow 操作不提供对于多个目的地端口的数据包转发。因此本文扩展了输出操作,引入了输出端口矢量。对于IP 组播地址的操作如下:

VXLAN 控制器在OpenFlow 协议中使用流修改信息对流表进行配置。这样的输出操作可以对应到ASIC 功能。在Layer2 交换中,IP 组播的流表是映射到MAC 地址表,传入数据包的目的地MAC 地址根据MAC 地址表进行对照。在路由器中,IP 组播流表是映射到IP 组播表,目的地IP 组播地址根据IP 组播表进行对照。

4 实验与结果分析

为验证上述方法的准确性和效率,本文构建如图4 所示的实验网络。由于在开发过程中对于传输的加密并没有进行严格定义,系统缺乏有效的安全机制,因此只在局域网内进行实验,但实验不需要考虑网络对于Client 与Server 数据传输的延迟,对性能分析不会造成太大影响。

图4 实验网络结构

在本文实验框架下,使用CloudSim[12]来仿真云计算平台,分析网络节点设备在加入VXLAN 协议解析和访问控制策略后性能的影响。它可以模拟云平台主要组件包括虚拟机、物理主机、网络设备等,可以模拟虚拟机的创建、迁移、资源分配与任务调度等行为,支持各个仿真实体之间的实时通信。

在CloudSim 中构建的简单云平台由1 个路由、9台物理主机组成,各物理主机中的虚拟机数量集为{3,8,7,8,5,9,10,12,7}。通过路由器策略的设置,每个VXLAN 之间的通信都需要通过路由进行转发,由此模拟跨数据中心的虚拟网络在互联网络上相互通信的过程。

VXLAN 虚拟网关实现在VM 上对VXLAN 协议的管理以及VTEP 的配置。VXLAN 虚拟网关中包含一个映射表,其作用是维护VM 的MAC 地址与VXLAN VNI 之间的映射和IP 组播关系。当虚拟机移动到另一个VTEP 中时,VXLAN 虚拟网关控制IP组播和MAC 广播,将新加入的VM 的MAC 地址与VNI 的映射加入到VTEP 中。

另一方面,使用高性能防火墙与VTEP 功能结合,作为VXLAN 网关,在防火墙内加入VXLAN 协议解析功能和VTEP 的映射策略,同时实现了VTEP 专用的VXLAN 策略控制器LeadsecManager,以及VXLAN 硬件防火墙与VXLAN 虚拟网关的策略映射与联动。

VXLAN 网关的VTEP 的VNI 映射策略如表1 所示。VXLAN 网关的输入帧可以是未加标签或已经加入VXLAN 标签的数据帧。网关中有4 种映射的政策:VLAN 映射,端口映射,PG 映射和MAC 地址的映射。VLAN 映射将VLAN ID 映射到VNI。端口映射将端口号映射到VNI,端口映射传递将未标记和标记的数据包直接使用透明模式进行传递。Pg 端口映射将端口组映射为VN,解决一个租户使用多个端口的问题。Mac 映射将源MAC 地址和VLAN ID 进行映射。

表1 VXLAN 网关映射策略

在网关内核中启用仿真VXLAN 的配置如下:

在实验过程中,对相互通信的2 个VM 之间通过IXIA 400T 插入140 Mb/s 的背景数据流,并根据VNI映射策略生成对应的VXLAN 协议数据帧。通过IXIA400T 发送和接收数据包,分析VTEP 与VXLAN虚拟网关解析VXLAN 协议的有效性和效率。

图5 分别展示了IXIA400T 每秒发送的字节数、包数以及VXLAN 网关解析协议帧的丢包数。

实验数据显示,在以IXIA 为背景产生大量数据传输时,加入VXLAN 协议解析和访问控制策略后,并没有造成网关处理效率的变化,没有发生背景流量丢包的现象。

在进行数据传输效率分析时,由于系统自身资源的不稳定性,硬件设备的不同,传输效率在测试过程中会出现一定的波动,例如系统服务的忽然启动,这些会造成额外的开销,对速率测试可能会产生影响。

图5 IXIA400T 实验结果

5 结束语

本文面向虚拟网络访问控制的实际需求,研究并实现云计算虚拟网络的访问控制方法,并对跨数据中心的虚拟机通信提供隧道访问技术,达到对不同安全域的虚拟流量相互隔离的目的。今后将在此基础上实现一个内核层的虚拟网关模块,并在相关网络边界设备上进行测试,丰富和增强边界网络设备对云计算虚拟网络的访问控制功能。

[1]冯登国,张 敏,张 妍,等.云计算安全研究[J].软件学报,2011,22(1):71-83.

[2]Vastbinder J.Proposed Security Assessment &Authorization for U.S.[EB/OL].(2010-11-25).http://www.infoq.com/news/2010/11/us-govt-cloudcomputing.

[3]Kreeger L,Dutt D,Narten T,et al.Network Virtualization Overlay Control Protocol Requirements[J].Internet Draft,2012,13(1):17-21.

[4]IEEE.P802.1Qbg/D2.2 Draft Standard for Local and Metro-politan Area Networks——Virtual Bridged Local Area Net-works——Amendment XX:Edge Virtual Bridging[EB/OL].(2012-06-05).http://www.ieee802.org/1/pages/802.1bg.html.

[5]DMTF.Virtual Networking Management White Paper[Z].2012.

[6]Satyanarayanan M,Gilbert B.Pervasive Personal Computing in an Internet Suspend/Resume System[J].IEEE Internet Computing,2010,11(2):16-25.

[7]Nakagawa Y,Hyoudou K.Automated Migration of Port Profile for Multi-level Switches [C]//Proc.of DCCaVES'11.[S.l.]:IEEE Press,2011:22-29.

[8]Nakagawa Y,Shimizu T.A Single-Chip,10-Gigabit Ethernet Switch LSI for Energy-efficient Blade Servers[C]//Proc.of GreenCom'10.[S.l.]:IEEE Press,2010:404-411.

[9]McKeown N,Anderson T.OpenFlow:Enabling Innovation in Campus Networks[C]//Proc.of SIGCOMM CCR'08.[S.l.]:IEEE Press,2008:69-74.

[10]Cisco.Nexus 3064 Switch Data Sheet[EB/OL].[2013-04-07].http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps11541/data_sheet_c78-651097.html.

[11]Juniper.QFX3500 Switch Datasheet[EB/OL].[2013-04-07].http://www.juniper.net/us/en/products-services/switching/qfx-series/qfx3500/.

[12]CloudSim:A Framework For Modeling And Simulation of Cloud Computing Infrastructures And Services[EB/OL].[2013-04-07].http://www.cloudbus.org/cloudsim/.

猜你喜欢
多播访问控制网关
胖树拓扑中高效实用的定制多播路由算法
用于超大Infiniband网络的负载均衡多播路由
InfiniBand中面向有限多播表条目数的多播路由算法
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计