基于VxLAN的网络分组策略研究与分析
2021-01-19孙兵
孙 兵
(华为技术有限公司,江苏 南京 210012)
0 引 言
企业网络,终端由原来的有线连接接入、向WiFi无线连接演进,终端类型由PC机向便携机、PAD和智能手机扩展,办公地点由固定场所办公到移动办公和在家远程办公拓展,接入终端设备归属由公司资产到个人资产,企业网络由办公网向物联网延伸。企业网络终端接入连接无线化、移动化、物联化,接入终端类型丰富、接入地点多样,导致传统基于IP地址ACL、VLAN的网络策略控制方式不能适应新的网络场景变化,因为终端的IP地址和VLAN会变化,传统的网络策略会随之变化,这样给企业IT运维人员的网络策略管理带来很大的复杂度。因此,迫切需要一种更加简单高效、与网络拓扑和IP /VLAN等网络自身分配规划无关的策略控制方案。
1 基于VxLAN的网络分组策略方案
1.1 方案概述
新一代网络策略控制方案的目标是设计一种能够满足无论用户身处何地、使用哪个IP地址,都可以保证该用户获得相同的网络访问权限的技术解决方案。用户从认证设备接入时,会关联映射一个安全组(又称策略组),用以设置该用户的安全策略;当该用户从其他设备(非认证点)其他地点接入网络,会执行相同的安全策略。该解决方案中的一项关键技术是,需要将用户与安全组的关联映射信息同步到其他设备上。同步方法有如下几种:
(1)SDN方案的控制器Controller全局同步;
(2)通过专用协议在设备之间进行扩散同步(带外方式);
(3)通过用户流量报文将安全组信息携带到其他设备(带内方式)。
上述方案前两种需要额外增加同步机制和协议,第一种方案在Controller和网络设备之间增加同步机制,第二种方案在网络设备之间增加机制,方案复杂度相对高,且网络规模大、设备数量多,同步机制本身的性能和网络带宽开销会是问题。第三种方案不需要增加设备间额外的同步机制,仅仅在正常的用户业务流量报文中增加安全组字段,沿途策略点设备进行解析识别和策略执行处理即可。该文设计的技术方案属于上述第三种方案,由VxLAN报文头携带安全组通过网络扩散到不同的网元设备中。
文献[1-8]主要介绍传统网络策略的关键技术,仍然基于IP五元组来定义网络策略,并结合集中策略管理和QOS联动形成增值业务。文献[9]中IETF定义了VxLan协议报文头部包含的策略组ID格式,可作为文中方案的详细实现参考。文献[10-15]重点论述了网络策略集中管理的架构,包括SDN方案架构等,解决网络策略跨设备同步的问题。
1.2 方案场景
基于VxLAN的网络分组策略方案场景如图1所示。
图1 基于VxLAN的网络业务策略应用场景
(1)用户认证通过网关设备认证上线,网关携带用户ID向控制器请求认证结果,控制器分配用户ID与安全组ID的映射关系,并下发至用户认证网关设备。
(2)用户在网关设备通过认证,用户终端访问报文经由网关设备时,在VxLAN头部打上安全组ID标识Group Policy ID,然后转发出去,访问相应的用户业务。
(3)沿途VxLAN网关设备会解析报文中VxLAN头部携带的安全组Group Policy ID信息,根据安全组查询访问策略,实施安全组间的网络访问控制。
该方案可以在企业网络中实现与IP地址、MAC地址、VLAN等网络属性无关的网络访问策略控制,替代的是使用安全组间的访问策略来控制,例如企业普通员工组不能访问人力资产组的信息资产,只有财务组员工才能访问财务数据库服务器,等等。
安全组策略方案中,能够做到不关心用户终端的IP地址/VLAN、接入位置、接入方式(有线/无线/VPN等),因此网络规划变化(IP网段或VLAN变化)或者接入位置接入方式发生变化(用户出差、在家远程办公等),都不需要更改原先的安全组间策略配置,这相对传统基于IP五元组的ACL控制方式有着极大的优势。此外安全组方案模型中,用户ID与安全组ID是多对一映射模型,例如财务组包含100个员工、HR组包括200个员工,因此经过汇聚后的组间策略数量规模会大大减少,降低企业IT人员的网络访问策略日常管理维护复杂度。
1.3 方案原理
(1)方案架构。
图2 基于VxLAN的网络业务策略组网架构
图2为典型Spine-Leaf架构VxLAN组网,可使用集中式或分布式网关。Spine节点的设备使用设备间集群技术增加可靠性。Leaf设备作为VxLAN二层网关,用于传统网络与VxLAN网络的二层互通。Spine设备作为VxLAN三层网关,负责不同网段的VxLAN网络之间的通信,以及不同网段的VxLAN网络与非VxLAN网络之间的通信。
VxLAN携带用户访问策略,通过VNI(VxLAN network identifier)携带安全组/策略组ID,接入交换机类似数据中心中的TOR(top of rack)设备,作为VxLAN网关的VTEP(VxLAN tunnel endpoint),且是VxLAN二层网关。汇聚/核心交换机作为VxLAN三层网关。
二层广播抑制问题,对于ARP的广播请求报文,通过SDN Controller代理应答的方式进行处理。流程如下:
(a)SDN Controller在用户上线认证时缓存其{IP,MAC}映射关系,生成ARP缓存表。
(b)二层网关收到ARP请求报文,直接上送SDN Controller处理。
(c)SDN Controller向该接入设备下发对应的ARP表项,如果Controller上ARP表项则进行广播处理。
(d)SDN Controller也可以选择将ARP广播报文修改为单播报文发给被请求设备,这样可保证整个ARP请求/应答链路上的设备都能使用ARP报文实现其他功能。
(e)ARP报文上送和下发可使用SDN OpenFlow协议。
通过在相同VNI之间建立VxLAN隧道实现相同安全组内用户互访;不同VNI之间的互访原本存在VxLAN三层网关上实现,可在三层网关引入安全组间策略,即利用源VNI和目的VNI之间的组间策略进行网络隔离或放行策略控制。
(2)方案流程。
基于VxLAN的网络分组策略方案流程如图3所示。
图3 基于VxLAN的网络业务策略方案流程时序图
(a)控制器根据管理员配置,生成安全组与VNI的映射关系,依据安全组间策略生成VNI之间的互访策略,并将VNI互访策略下发到策略执行点。
(b)控制器与认证点设备交互,完成对接入用户的认证,依据认证结果将用户划分到对应的安全组。认证点建议使用接入交换机,这样便于直接获取用户终端接入的物理端口。
(c)控制器根据用户所属安全组,向接入设备下发{Port,VNI}映射关系,接入设备依据该映射关系在对应端口上配置VNI,保证接入用户的所有流量都走该VNI标识的VxLAN隧道。
(d)控制器完成所有设备的ARP代答,实现对ARP的广播抑制。控制器上的ARP缓存表在用户认证过程中获取和下发。
(3)相同网段用户的安全组互访。
相同网段用户的安全组互访策略如图4所示。
图4 相同网段用户的安全组互访策略
(a)VxLAN网络中,不同VNI的流量二层不互通,所以在接入设备就保证了不同安全组用户之间的隔离。
(b)Site A中两个相同网段的用户A1和A3,属于同一安全组,使用相同的VNI,在NVE1设备上实现互通。
(c)Site B中B2和Site E中E2也是同一安全组中相同网段的用户,B2和E2使用相同的VNI,VTEP2和VTEP6之间建立VxLAN隧道实现互通,网关只为该隧道提供三层转发通道。
(d)Site C中两个不同安全组的用户,使用不同的VNI接入NVE3,即使用同一网段也无法互通。
(4)不同网段用户的安全组互访。
不同网段用户的安全组互访策略如图5所示。
图5 不同网段用户的安全组互访策略
(a)VxLAN网络中,不同VNI的流量经过三层网关互通,VxLAN网络与非VxLAN网络也是通过三层网关互通。三层网关上VxLAN报文处理流程:先剥离外层VxLAN封装,依据原始报文走三层流量转发,重新进行VxLAN封装发出。
(b)在三层网关上执行安全组间策略,控制器提前向三层网关设备下发VNI之间的访问策略,VxLAN报文在处理流程中,需判断源VNI与目的VNI的访问策略,如允许访问则正常转发,否则丢弃报文。源VNI在报文头部中已携带,目的VNI通过报文内层头部目的IP查找获得。
(c)Site A中两个相同网段的用户A1和A3,属于同一安全组,使用相同的VNI,在网关上实现互通。
(d)Site B中B2和Site E中E2分属不同安全组,网段也不同,通过三层网关转发实现不同VNI之间互通,VNI之间的策略需预设为允许互通。
(e)Site C中两个不同安全组的用户,分属不同安全组,在三层网关转发时依据VNI之间策略,不允许互通。
(5)用户移动接入与QOS策略。
当用户接入位置发生变化时,需要重新上线认证,原端口与VNI的绑定关系删除,Controller为新接入端口下发{Port,VNI}映射关系,新端口绑定VNI。策略执行点设备不感知用户接入位置的变化。用户所属安全组不变,其VNI不变,该用户的权限也没有发生变化。Controller通过QOS策略保证VIP安全组的优先级,为VIP安全组对应的VNI下发QOS策略。VIP用户在接入Leaf节点时,根据VNI的QOS策略,修改内外层IP头部的DSCP,保证VIP用户在整网中优先级。
三层网关除了执行不同VNI之间的组间策略,也可以执行不同VNI之间的访问速率控制策略。例如限制Guest-VNI用户访问Internet-VNI的速率。
1.4 方案效果评估
以某大型企业为例(50+分支机构,15万员工接入,6000+物理服务器、每服务器运行20个虚拟机)来评估方案应用效果。
该企业原始用户和业务访问策略需求如下:
(1)企业终端类型分为PC、IP Phone、TC云终端、打印机、物联终端;用户类型分为研发、市场、财务、人力资源、访客;
(2)用户/终端认证前策略:只能访问指定的认证服务器、客户端软件下载服务器,不允许用户/终端间互访;
(3)PC策略:允许基于角色(研发、市场、财务、人力资源)的服务器业务资源访问,同一角色内用户间可以互访,跨角色访问受控(默认禁止跨角色访问);
(4)TC云终端策略:允许TC间互访(TC的IP语音业务)、TC只能访问服务器桌面云VM资源、TC不能访问其他业务服务器VM资源;
(5)IP Phone策略:允许IP Phone间互访(IP语音业务)、IP Phone不允许访问除了语音业务之外的服务器VM业务资源;
(6)打印机策略:不允许互访、只能访问ePrint打印服务器;
(7)访客用户策略:只允许访问Internet,不能访问服务器所有企业业务资源,禁止访客间终端互访。
该企业的上述策略需求,长期以来通过基于IP网段/IP地址的ACL技术方案来实施控制,因为涉及到50+分支机构,每个机构又有多个办公楼、多个用户网关,每个机构又有多种类型终端和用户接入,IP网段之间的互访策略关系非常复杂,经与企业IT运维人员现场调研核实,实际有4万多条ACL网络访问策略数量。分支机构随着办公楼宇基建扩展、人员扩充,网络规划调整和网络IP网段变更时有发生,按照当前基于ACL的网络策略模型及方案,会要求IT运维人员能够在4万多条已有的ACL策略中进行精准变更,这个ACL策略变更难度和复杂度都非常高,对日常网络运维是个巨大挑战。IT运维人员坦言,实际操作中已有的ACL策略根本不敢改变,害怕对已有业务产生影响,往往是网络变化时会新增ACL策略,这样长期累积下来就会导致大量实际无用的僵尸ACL策略存在,无人敢问津,不仅仅网络策略管理维护难,也存在网络安全隐患(僵尸ACL策略被恶意利用)。
通过与该企业IT运维工程师交流,评估应用文中所述分组策略方案,将企业IT的终端分为PC/TC/IP hone/打印机/访客Guest几个组,PC上用户进一步按照研发、市场、财务、人力资源分成四个组,服务器侧VM同时匹配终端和用户类型进行相应分组。经过细化分析设计、考虑后续业务扩展,给该企业总共设计16个安全策略组,定义组间互访策略(Permit/Deny),并预留后续可能部署的组间访问速率限制,策略总数目会降低在512个以内。因为是按照终端/用户/业务类型分组来定义网络访问策略,与IP网段/IP地址无关,因此无论企业分支机构和总部的物理网络/IP网段如何变化,都不需要变更512条以内的既定组间访问策略。该方案的实际应用价值获得该企业IT运维工程师的高度认可。
1.5 企业园区网络引入VxLAN策略面临的问题
典型园区组网普遍采用三层网络架构,有线无线业务共存,存在总部与分支互访、远程VPN用户接入等场景。无线接入的AP与接入交换机的互连,SSL VPN设备与出口路由器的互连,都可归属同一模式:单端口上多用户多业务流量混合承载。
VxLAN组网中,报文进入VxLAN隧道的方式使用二层子接口,进一步通过VLAN关联。Spine-Leaf架构VxLAN原本针对数据中心网络场景设计,网络为VM提供服务,Leaf节点下面一般直接连接VM或者Open switch,这些设备可以通过Port或VLAN来区分,因此使用三种二层子接口方式接入VLAN即可满足数据中心网络场景。
园区网络单端口上多用户流量混合,如用VLAN识别不同用户,则可以正常接入VxLAN,但需要接入设备具备基于VLAN区分用户的能力,在用户认证过程中与Controller交互,为不同安全组用户下发不同功能VLAN。另外一种更有效的方法是直接根据用户ID来映射VNI,即认证过程中Controller维护{用户ID,VNI}的映射关系。
2 结束语
以IP网络接入的终端数量类型和承载的业务等发生变化,传统ACL网络策略模型和方案面临的重大挑战作为问题输入,研究分析给出网络分组策略方案。用户和策略分组(安全组)映射关系的网络级传播同步机制是方案的关键,系统分析策略分组传播的几种备选方案,给出性能和通过效率高的带内同步方案(基于VxLAN的带内同步安全组),详细分析方案架构、安全组映射和同步流程,结合VxLAN实际部署给出技术参考方案分析和设计。