【红宝书】微分段介绍

1 微分段的由来

如图1-1所示,在传统的数据中心里,普遍认为数据中心网络内部的流量是安全的,数据中心网络外部的流量是不安全的。因此,需要在数据中心网络内、外部的边界设备上部署防火墙,通过将流入数据中心网络内部的流量(即南北向流量)引导到防火墙上进行分析,以确保只有授权用户才能访问数据中心网络内部的资源。这种在边界设备上对流量进行安全分析的技术,也称为边界安全技术。

图1-1 传统数据中心的安全方案

随着复杂的第三方攻击的产生,传统的边界安全技术也不再固若金汤。一旦攻击者冲破边界防护,那么数据中心内部的安全将受到严重威胁,攻击者可以随意攻击数据中心内部的服务。同时,随着数据中心的不断发展,数据存储、WEB应用的不断扩大,数据中心网络内部的流量(即东西向流量)也在不断增加。因此,在新一代的数据中心网络中,需要基于“零信任”的原则,对所有流量进行分析,并重点考虑数据中心网络内部的安全保护。

那么,是否可以把传统的用于分析南北向流量的边界安全技术,移植到数据中心网络内部,用于东西向流量的分析呢?

答案是否定的。这是因为,传统的边界安全技术,主要通过划分业务子网、配置ACL等方式,对网络流量进行隔离。但是这种技术存在如下问题:

通过VLAN、VNI等方式划分业务子网实现的业务隔离,是基于子网的(即子网A与子网B之间进行隔离),其不能实现同一子网内不同服务器之间的隔离。同时,当不同子网共用同一个网关设备时,由于在网关设备上存在到各子网之间的路由信息,因此这种情况下,也无法实现不同子网内不同服务器之间的隔离。

通过配置ACL规则可以实现不同服务器之间的隔离。但是数据中心网络中,服务器的数量非常庞大,若要实现服务器之间的隔离,则需要部署海量的ACL规则,配置维护相当复杂。同时,网络设备的ACL资源有限,不能满足客户部署海量ACL规则的需求。

虚拟化技术的发展使得安全的边界难以界定。数据中心网络中,逻辑网络拓扑根据业务的需求随时可变,传统的基于物理边界防护的安全架构无法对其进行有效的安全防护。

那么,在数据中心网络内部,可以通过什么技术来对东西向流量进行分析,从而达到安全隔离保护的目的呢?这就有请我们的主角——微分段闪亮登场!

2 微分段的定义

微分段,从字面上可以拆分为“微”和“分段”两部分。

“分段”是指将网络按照一定的分组规则划分为若干个子网络,不同子网络之间相互隔离,从而实现数据报文仅能在约定的节点之间相互发送,而不是将所有数据报文发送给所有节点。

“微分段”是相对于“物理网络分段”而言的。物理网络分段是基于广播域VLAN/VNI来实现子网划分,即属于不同VLAN/VNI的设备之间相互隔离,属于同一VLAN/VNI的设备之间可以互通。与物理网络分段相比,微分段的分段粒度更细,它可以基于IP地址、IP网段、MAC地址、VM名、容器、操作系统等来实现子网划分,即属于相同VLAN的不同设备之间也能实现相互隔离。

如图2-1所示,VM1、VM2、VM3、VM4属于同一个广播域VNI 10,其中,VM1和VM3属于同一安全分区,VM2和VM4属于另一个安全分区。

在物理网络分段的情况下,VM1和VM4因为属于同一广播域,因此它们之间可以相互通信,即属于同一广播域、不同安全分区的设备之间也可以通信。

在微分段的情况下,VM1和VM4虽然属于同一广播域,但他们的安全分区不同,因此相互之间不可以通信,即属于同一广播域、不同安全分区的设备之间相互隔离。

图2-1 物理网络分段与微分段的对比

从上面可以看出,微分段提供了比VLAN/VNI粒度更细的分组规则,它将数据中心网络内部的服务器按照一定的规则进行分组,然后基于分组来部署流量控制策略,就可以实现服务器与服务器之间的业务隔离。同时,通过在网络中部署控制器,由控制器部署微分段的相关功能,从而达到简化运维、安全管控的目的。

因此,微分段也称为基于精细分组的安全隔离。

说明:

CE系列交换机支持微分段功能的设备款型、各款型支持的微分段分组规则以及控制策略等,请参看产品手册。

3 微分段的原理

3.1 微分段的转发模型

CE系列交换机使用GBP模型在VXLAN网络上实现微分段。

图3-1 GBP模型

如图3-1所示,GBP模型由EPG和GBP组成:

EPG(End Point Group)

EPG是基于IP地址、IP网段、MAC地址、VM名、容器、操作系统等分组策略,对终结点(服务器)进行的分组。同一个EPG分组下,可以包含多个服务器。

用户对网络中的服务器进行EPG分组后,按照所属EPG分组不同,服务器可以分成以下几类:

- EPG分组的组内成员:属于同一个EPG分组的服务器(如图3-1中的VM1、VM2)。

- EPG分组的组间成员:属于不同EPG分组的服务器(如图3-1中的VM1、VM4)。

- 未知EPG分组成员:不属于任何EPG分组的服务器(如图3-1中的VM3)。

- EPG分组成员:属于任一EPG分组的服务器(如图3-1中的VM1、VM2、VM4、VM5)。其又可以细分为“EPG分组的组内成员”和“EPG分组的组间成员”。

GBP(Group Based Policy)

GBP是基于EPG分组+协议号+端口号的流量控制策略,它规定了EPG分组内部、EPG分组之间的流量控制策略。

CE系列交换机的默认GBP策略如下,用户可以根据需要修改默认GBP策略,也可以为不同的EPG分组指定各自的GBP策略。

- 未知EPG分组成员的默认访问控制策略为permit,即允许未知EPG分组成员之间相互访问。

- EPG分组成员的默认访问控制策略为deny,即所有EPG成员(包括EPG分组的组内成员、EPG分组的组间成员)都不能相互访问。

- EPG分组的组内成员的默认访问控制策略为none,即不对EPG分组的组内成员进行访问控制。此时,设备按照EPG分组成员的默认访问控制策略对EPG分组的组内成员进行访问控制。

当EPG分组的组内成员的默认访问控制策略不为none时,EPG分组的组内成员按照配置的默认访问控制策略进行相互访问。

3.2 微分段的工作机制

CE系列交换机的微分段特性是应用在VXLAN网络中的,它在报文的目的VTEP上按照GBP策略的要求对报文进行流量控制。因此,若需要对双向流量进行控制,则需要在源VTEP和目的VTEP上都部署微分段功能。

说明:

CE系列交换机的V200R003C00版本的微分段特性仅对IPv4的三层已知单播流量生效。

下面以分布式VXLAN网络为例,介绍三层报文在VXLAN网络中进行本地转发以及三层报文在VXLAN网络中进行跨设备转发的微分段工作机制。微分段在集中式VXLAN网络中的工作机制与之类似,不再赘述。

3.2.1 三层报文在VXLAN网络中进行本地转发

如图3-2所示,在分布式VXLAN网络中,Leaf1为VXLAN隧道的端点(VTEP1),其下连接了两个服务器VM1和VM2。此时,VM1和VM2之间的互访流量只需在Leaf1上进行本地转发。其中,VM1属于EPG1,VM2属于EPG2。

图3-2 三层报文在VXLAN网络中进行本地转发

下面以VM1访问VM2为例,介绍三层报文在VXLAN网络中进行本地转发时,微分段的工作机制。

VTEP1收到VM1发送给VM2的报文后,从报文中获取源IP地址(192.168.10.1)和目的IP地址(192.168.20.2)。

VTEP1根据源IP地址(192.168.10.1),按照最长匹配原则查找TCAM表项,获取源端VM1所属的EPG组号(EPG1)。

VTEP1根据目的IP地址(192.168.20.2)查找路由表信息,发现目的端VM2也连接在VTEP1下面,报文只需进行本地转发。因此,VTEP1根据目的IP地址(192.168.20.2),按照最长匹配原则查找TCAM表项,获取目的端VM2所属的EPG组号(EPG2)。

VTEP1根据源端VM1所属的组号(EPG1)和目的端VM2所属的组号(EPG2),查找TCAM表项,获取这两个组之间的GBP策略,并按照GBP策略对报文进行流量控制。例如,若这两个组之间的GBP策略是deny,则将报文丢弃。

3.2.2 三层报文在VXLAN网络中进行跨设备转发

前面有介绍到,CE系列交换机的微分段特性是在报文的目的VTEP上按照GBP策略的要求对报文进行流量控制。在本地转发的场景下,源VM和目的VM在同一设备上,EPG分组信息很容易获取。但是,在跨设备的转发场景下,源VM和目的VM不在同一设备上,那它们的EPG分组信息是如何传递的呢?奥秘就藏在VXLAN的报文头中。

图3-3 VXLAN报文头中的微分段信息

如图3-3所示,源端VTEP通过VXLAN报文头中的G标志位和Group Policy ID字段向目的VTEP传递微分段信息:

G标志位:该位默认为0。当此位置为1时,表示VXLAN报文头中通过Group Policy ID字段携带源端服务器所属的EPG组号。

Group Policy ID字段:当G标志位为1时,表示该字段中的值为源端服务器所属的EPG组号。

图3-4 三层报文在VXLAN网络中进行跨设备转发

下面以图3-4 中VM1访问VM3为例,介绍三层报文在VXLAN网络中进行跨设备转发时,微分段的工作机制。

VTEP1收到VM1发送给VM3的报文后,从报文中获取源IP地址(192.168.10.1)和目的IP地址(192.168.30.3)。

VTEP1根据源IP地址(192.168.10.1),按照最长匹配原则查找TCAM表项,获取源端VM1所属的EPG组号(EPG1)。

VTEP1根据目的IP地址(192.168.30.3)查找路由表信息,发现目的端VM3连接在对端VTEP2下面,报文需进行VXLAN封装后,经由VXLAN隧道进行跨设备转发。

在进行VXLAN封装时,VTEP1将VXLAN报文头中的G标志位置1,并将源端VM1所属的EPG组号(EPG1)封装在VXLAN报文头的Group Policy ID字段中,然后把经过VXLAN封装的报文发送给对端VTEP2。

VTEP2收到VTEP1发送的VXLAN报文后,对VXLAN报文进行解封装,发现其中的G标志位置1,则从Group Policy ID字段中获取源端VM1的EGP组号(EPG1)。

VTEP2根据VXLAN报文的内层目的IP地址(192.168.30.3),按照最长匹配原则查找TCAM表项,获取目的端VM3所属的EPG组号(EPG3)。

VTEP2根据源端VM1所属的组号(EPG1)和目的端VM3所属的组号(EPG3),查找TCAM表项,获取这两个组之间的GBP策略,并按照GBP策略对报文进行流量控制。例如,若这两个组之间的GBP策略是deny,则将报文丢弃。

4 微分段的应用

4.1 单机方式

单机方式是指网络中没有云平台、AC-DCN控制器等管理面,所有配置通过命令行方式在CE系列交换机上进行部署。

组网需求

如图4-1所示,数据中心的企业内部拥有虚拟服务器VM1和VM2、物理服务器、数据库Server。现要求如下:

VM1、VM2、物理服务器可以访问数据库Server。

VM1和物理服务器、VM2和物理服务器不能互访。

VM1和VM2可以互访。

图4-1 单机方式组网

配置步骤

1. 在Leaf1和Leaf2上使用BGP EVPN方式部署VXLAN分布式网关,其中VM1、VM2、物理服务器、数据库Server都属于VPN1。部署成功后,VM1、VM2、物理服务器、数据库Server之间可以相互通信。(VXLAN网络基本配置,略)

2. 使能微分段功能。

# 配置Leaf1。Leaf2的配置与Leaf1相同,这里不再赘述。

[~Leaf1] traffic-segment enable

[*Leaf1] commit

3. 配置微分段默认策略。

# 配置Leaf1。Leaf2的配置与Leaf1相同,这里不再赘述。

[~Leaf1] traffic-segment unknown-segment permit // 配置未知EPG分组成员的默认访问控制策略为permit,此为缺省配置

[*Leaf1] traffic-segment default-policy deny // 配置EPG分组成员的默认访问控制策略为deny,此为缺省配

[*Leaf1] traffic-segment same-segment permit // 配置EPG分组的组内成员的默认访问控制策略为permit

[*Leaf1] commit

4. 配置EPG分组并指定GBP策略。

# 在Leaf1上将VM1、VM2加入分组EPG1中,将物理服务器加入分组EPG2中,将数据库Sever加入分组EPG3中。Leaf2的配置与Leaf1相同,这里不再赘述。

[~Leaf1] traffic-segment segment-id 32768 segment-name EPG1

[*Leaf1-traffic-segment-32768] segment-member ip 192.168.10.1 32 vpn-instance vpn1

[*Leaf1-traffic-segment-32768] segment-member ip 192.168.20.1 32 vpn-instance vpn1

[*Leaf1-traffic-segment-32768] quit

[*Leaf1] traffic-segment segment-id 32769 segment-name EPG2

[*Leaf1-traffic-segment-32769] segment-member ip 192.168.30.1 32 vpn-instance vpn1

[*Leaf1-traffic-segment-32769] quit

[*Leaf1] traffic-segment segment-id 32770 segment-name EPG3

[*Leaf1-traffic-segment-32770] segment-member ip 192.168.40.1 32 vpn-instance vpn1

[*Leaf1-traffic-segment-32770] quit

[*Leaf1] commit

# 在Leaf1上指定GBP策略。Leaf2的配置与Leaf1相同,这里不再赘述。

[~Leaf1] traffic classifier EPG1-EPG2 type or // 配置EPG1、EPG2互访流量的匹配规则

[*Leaf1-classifier-EPG1-EPG2] if-match source-segment EPG1 destination-segment EPG2

[*Leaf1-classifier-EPG1-EPG2] if-match source-segment EPG2 destination-segment EPG1

[*Leaf1-classifier-EPG1-EPG2] quit

[*Leaf1] commit

[~Leaf1] traffic classifier EPG1-EPG3 type or // 配置EPG1、EPG3互访流量的匹配规则

[*Leaf1-classifier-EPG1-EPG3] if-match source-segment EPG1 destination-segment EPG3

[*Leaf1-classifier-EPG1-EPG3] if-match source-segment EPG3 destination-segment EPG1

[*Leaf1-classifier-EPG1-EPG3] quit

[*Leaf1] commit

[~Leaf1] traffic classifier EPG2-EPG3 type or // 配置EPG2、EPG3互访流量的匹配规则

[*Leaf1-classifier-EPG2-EPG3] if-match source-segment EPG2 destination-segment EPG3

[*Leaf1-classifier-EPG2-EPG3] if-match source-segment EPG3 destination-segment EPG2

[*Leaf1-classifier-EPG2-EPG3] quit

[*Leaf1] commit

[~Leaf1] traffic behavior EPG1-EPG2 // 配置EPG1、EPG2互访流量的行为

[*Leaf1-behavior-EPG1-EPG2] deny

[*Leaf1-behavior-EPG1-EPG2] quit

[*Leaf1] commit

[~Leaf1] traffic behavior EPG1-EPG3 // 配置EPG1、EPG3互访流量的行为

[*Leaf1-behavior-EPG1-EPG3] permit

[*Leaf1-behavior-EPG1-EPG3] quit

[*Leaf1] commit

[~Leaf1] traffic behavior EPG2-EPG3 // 配置EPG2、EPG3互访流量的行为

[*Leaf1-behavior-EPG2-EPG3] permit

[*Leaf1-behavior-EPG2-EPG3] quit

[*Leaf1] commit

[~Leaf1] traffic policy GBP // 配置EPG分组互访流量的策略

[*Leaf1-trafficpolicy-GBP] classifier EPG1-EPG2 behavior EPG1-EPG2

[*Leaf1-trafficpolicy-GBP] classifier EPG1-EPG3 behavior EPG1-EPG3

[*Leaf1-trafficpolicy-GBP] classifier EPG2-EPG3 behavior EPG2-EPG3

[*Leaf1-trafficpolicy-GBP] quit

[*Leaf1] commit

[~Leaf1] traffic-policy GBP global inbound // 全局入方向应用GBP策略

[*Leaf1] commit

结果验证

使用测试仪的4个端口分别模拟VM1、VM2、物理服务器、数据库Server,其对应关系如下:

测试仪端口

设备

1. 测试仪的端口1和端口4互相打流、端口2和端口4互相打流、端口3和端口4互相打流,流量都能通,说明VM1、VM2、物理服务器可以访问数据库Server。

2. 测试仪的端口1和端口3互相打流、端口2和端口3互相打流,流量都不通,说明VM1和物理服务器、VM2和物理服务器不能互访。

3. 测试仪的端口1和端口2互相打流,流量能通,说明VM1和VM2可以互访。

4.2 AC-DCN控制器方式

控制器方式是指网络中存在云平台、AC-DCN控制器等管理面,所有配置通过云平台、AC-DCN控制器与CE系列交换机之间的API接口完成业务部署。

图4-2 控制器方式组网

按照是否存在云平台,又可以细分为云平台对接方式和控制器自主编排方式。云平台对接方式一般用于云网一体化场景,控制器自主编排方式一般用于网络虚拟化场景。

两种方式的实现技术以及原理大体一致,区别在于EPG分组信息、GBP策略的下发方式不同:云平台对接方式由云平台下发,控制器自主编排方式由AC-DCN控制器下发。

4.2.1 云平台对接方式

在云平台在控制器方式中:

云平台,作为微分段的管理面,负责提供EPG分组信息、GBP策略的部署。

云平台通过与AC-DCN控制器之间REST API接口,将相关的配置信息下发给AC-DCN控制器。

AC-DCN控制器,作为微分段的管理面,负责提供基于应用分组的微分段隔离抽象。

AC-DCN控制器上拥有云平台对应的GBP和Neutron插件,它接收到云平台下发的信息后,完成neutron模型的转换以及GBP模型的映射,并通过与CE系列交换机之间的Netconf API接口,将转换、映射后的EPG分组信息、GBP策略下发给CE系列交换机。

CE系列交换机,作为微分段的数据面,负责根据AC-DCN控制器下发的EPG分组信息以及GBP策略对报文进行匹配转发处理。

4.2.2 控制器自主编排方式

控制器自主编排方式是指不依赖云平台,由AC-DCN控制器对数据中心业务进行微分段分组策略控制,从而形成的一种不依赖于云平台的微分段端到端解决方案。

在控制器自主编排方式中:

AC-DCN控制器,作为微分段的管理面,负责提供微分段抽象编排模型。

AC-DCN控制器通过与CE系列交换机之间的Netconf API接口,将用户在GUI页面上配置的EPG分组信息、GBP策略下发给CE系列交换机。

CE系列交换机,作为微分段的数据面,负责根据AC-DCN控制器下发的EPG分组信息以及GBP策略对报文进行匹配转发处理。

5 总结

微分段在VXLAN网络中实现不同服务器之间的业务隔离,确保了用户对网络的安全管控,提升了数据中心内部流量的安全性。

同时,在SDN网络中通过对接云平台、AC-DCN控制器管理面,可以极大的降低用户的配置和维护成本。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171221B0MXFC00?refer=cp_1026

扫码关注云+社区