华为DCN网络:微分段和业务链

1. 微分段

主要用于控制东西向流量

1.1 微分段简介

微分段(Microsegmentation),也称为基于精细分组的安全隔离,是指将数据中心网络中的服务器按照一定的原则进行分组,然后基于分组来部署流量控制策略,从而达到简化运维、安全管控的目的。

在数据中心网络中,随着数据存储以及应用的增多、网络内部流量的增大,企业面临的安全性风险也在不断增加。传统技术中可以通过划分业务子网、配置ACL等方式,来实现业务之间的隔离,但是存在如下问题:

  • 通过VLAN、VNI等方式划分业务子网实现的业务隔离,不能实现子网内不同服务器之间的隔离。同时,当不同子网共用同一个网关设备时,由于在网关设备上存在到各子网之间的路由信息,也无法实现不同子网内不同服务器之间的隔离。
  • 通过配置ACL规则可以实现不同服务器之间的隔离。但是数据中心网络中,服务器的数量非常庞大,因此需要部署海量的ACL规则,配置维护相当复杂,且网络设备的ACL资源有限,不能满足客户的需求。

微分段提供了比子网粒度更细的分组规则(比如IP地址或IP段),只需按照规则将VXLAN网络中的服务器划分为不同的分组,然后基于分组来部署流量控制策略,就可以实现服务器与服务器之间的业务隔离。

分段粒度更细,可基于IP地址、IP网段、MAC地址、VM名、容器、操作系统等来进行分段。
分段将网络按照一定的规则划分为若干个逻辑的"段(Segment)",不同段之间相互隔离,从而实现数据报文仅能在约定的节点之间相互发送。

微分段是一种精细分组的安全隔离技术,通过将数据中心业务单元按照一定规则进行分组,然后在分组间部署策略来实现流量控制。

微分段可以提供更细粒度、更灵活的分组方式,可以进一步细化安全域的大小,实现更精细的业务隔离,提升网络安全性。

通过微分段特性,可以在VXLAN网络中实现不同服务器之间的业务隔离,确保了用户对网络的安全管控。同时,其配置和维护简单,可以降低用户的配置和维护成本。

基本概念-EPG

EPG:End Point Group,端节点组

基于IP地址、MAC地址、VM名、应用等分组策略,对服务器、虚拟机等承载业务的实体进行的分组。

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

  1. 未知EPG分组成员:不属于任何EPG分组的服务器。
  2. EPG分组成员:属于某一EPG分组的服务器。
  3. EPG分组的组内成员:属于同一个EPG分组的服务器。
  4. 不同EPG分组的成员:属于不同EPG分组的服务器。

基本概念-GPG

GBP:Group-Based Policy,基于组的策略

基于EPG分组的流量控制策略,可基于EPG分组+协议号+端口号配置,规定了EPG分组内部、EPG分组之间、以及EPG分组和未知分组之间的策略。

微分段只支持在VXLAN分布式三层网关环境中使用

1.2 微分段应用

默认策略

  • 未知EPG分组成员的默认访问控制策略为permit,即允许未知EPG分组成员之间相互访问,同时也允许未知EPG分组成员与已知EPG分组成员之间相互访问。
  • EPG分组成员的默认访问控制策略为deny,即EPG分组的组间成员不能互相访问。

对于不同的CE交换机型号,EPG分组内成员之间的默认访问控制策略存在差异。

应用场景

  • 可以使用微分段将不同的服务器或VM划分为不同的EPG分组,然后制定各分组之间的GBP访问策略,就可以实现不同业务节点之间的流量控制。
  • 微分段既可以通过CE交换机本身实现,也可以通过CE交换机与iMaster NCE-Fabric控制器配合使用,对于后者,由控制器完成EPG分组以及GBP策略的配置,并通过NETCONF接口将配置下发给CE交换机。

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

1.2.1 本地转发应用

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

❶ VTEP1收到Host1发送给Host2的报文后,从报文中获取源IP地址(192.168.10.1)和目的IP地址(192.168.20.2)。
❷ VTEP1根据源IP地址(192.168.10.1),按照最长匹配原则查找TCAM表项,获取源端Host1所属的EPG组号(EPG1)。
❸ VTEP1根据目的IP地址(192.168.20.2)查找路由表信息,发现目的端Host2也连接在VTEP1下面,报文只需进行本地转发。因此,VTEP1根据目的IP地址(192.168.20.2),按照最长匹配原则查找TCAM表项,获取目的端Host2所属的EPG组号(EPG2)。
❹ VTEP1根据源端Host1所属的组号(EPG1)和目的端Host2所属的组号(EPG2),查找TCAM表项,获取这两个组之间的GBP策略,并按照GBP策略对报文进行流量控制。

1.2.2 跨设备转发

在分布式VXLAN网络中,Leaf1、Leaf2为VXLAN隧道的端点(VTEP1和VTEP2),其下分别连接了服务器Host1、Host3。此时,Host1和Host3之间的互访流量需要通过VXLAN隧道进行跨设备转发。其中,Host1属于EPG1,Host3属于EPG3。

❶ VTEP1收到Host1发送给Host3的报文后,从报文中获取源IP地址(192.168.10.1)和目的IP地址(192.168.30.3)。
❷ VTEP1根据源IP地址(192.168.10.1),按照最长匹配原则查找TCAM表项,获取源端Host1所属的EPG组号(EPG1)。
❸ VTEP1根据目的IP地址(192.168.30.3)查找路由表信息,发现目的端Host3连接在对端VTEP2下面,报文需进行VXLAN封装后,经由VXLAN隧道进行跨设备转发。在进行VXLAN封装时,VTEP1将VXLAN报文头中的G标志位置1,并将源端Host1所属的EPG组号(EPG1)封装在VXLAN报文头的Group Policy ID字段中,然后把经过VXLAN封装的报文发送给对端VTEP2。
❹ VTEP2收到VTEP1发送的VXLAN报文后,对VXLAN报文进行解封装,发现其中的G标志位置1,则从Group Policy ID字段中获取源端Host1的EGP组号(EPG1)。
❺ VTEP2根据VXLAN报文的内层目的IP地址(192.168.30.3),按照最长匹配原则查找TCAM表项,获取目的端Host3所属的EPG组号(EPG3)。
❻ VTEP2根据源端Host1所属的组号(EPG1)和目的端Host3所属的组号(EPG3),查找TCAM表项,获取这两个组之间的GBP策略,并按照GBP策略对报文进行流量控制。

2. 业务链

业务链是一种给应用层提供有序服务的技术。
通过定义业务链路径,可以使匹配的流量依次经过指定的VAS设备(如防火墙、负载均衡、深度检测、入侵防御等),从而依次获取相应的增值服务。

使用业务链有助于使用同一个网络,对不同的业务提供差异化的增值服务。

结合iMaster NCE-Fabric控制器,可简单快速实现业务链的自动编排。

2.1 基本概念

SFC域:一个包含了SFC设备的区域。

EPG:一组具有相同特征的业务单元集合。SFC定义了一对EPG间的业务链,包含业务链路径和业务链策略。

分类器SC(Service Classifier):位于SFC域的边界入口,报文进入SFC域后会首先进行流量分类。

服务节点SF(Service Function):例如防火墙、负载均衡器等增值服务设备。

业务链转发节点SFF(Service Function Forwarder):将从网络中收到的报文转发到SFF关联的若干个SF上。

业务链路径SFP(Service Function Path):根据配置计算出的一条报文路径。

应用场景

  1. 外部网络与数据中心网络间的安全防护是网络安全的核心内容之一,通过业务链的定义将外部不同的南北向访问流量灵活引流到不同的服务节点上,实现内外网的地址转换、安全过滤等功能
  2. 当不同安全等级之间的业务单元要相互访问的时候,可以根据用户需求灵活定义东西向访问流量依次经过资源池中的服务节点来进行安全防护

2.2 SFC编排

2.2.1 PBR

PBR是一种依据用户制定的策略进行路由选择的机制。策略路由的操作对象是数据包,在路由表已经产生的情况下,不按照路由表进行转发,而是根据配置的具体策略来改变数据包转发路径。策略路由通过在流行为中配置重定向实现,只对接口入方向的报文生效。配置策略路由后,设备按照策略路由指定的下一跳进行转发。

PBR的操作对象是数据包,通过在流行为中配置重定向实现,对接口入方向的报文或从VXLAN隧道过来的报文生效,设备按照PBR指定的下一跳转发相关流量。

控制器向SC节点下发过滤和重定向策略,选择性的将业务流量进行重定向,PBR方式不改变VM1发往VM2的业务报文。

控制器向SFF1节点下发隧道侧和用户侧过滤和重定向策略,SFF1节点选择性将业务流量牵引至SF1、SF2。

控制器向SFF2节点下发隧道侧过滤和重定向策略,SFF2节点选择性将业务流量牵引至SF3,最后将业务报文转发给VM2。

2.2.2 NSH

通过在VXLAN报文中插入NSH头部来实现业务链功能,这使得业务链路径上的各个节点能够相互传递信息,有了这些信息整个服务链可以对数据做动态灵活的策略处理。

通过NSH头部中携带的元数据,报文在服务节点上解析时,不需要进行封装/解封装操作即可知道报文携带的信息,这样提高了报文解析效率,从而提高转发性能。

根据NSH SFC中的SF是否支持NSH,将NSH的引流模型分为两类:NSH-Aware和NSH-Unaware两类。

NSH-Aware SF

能够识别收到的NSH头部,先去掉NSH头部并对报文进行正常的处理。处理完后,再加上NSH头并将对应SI(Service Index,业务功能索引,代表某个VAS设备)减1后再送出去。因此在整个SFC域中传输的报文,每经过一个SF,SI值会减1,通过携带的SFP信息(SPI,SI)就可以标识出报文经过的SF设备。此时:

  • 在SC下发过滤和重定向策略,将对应流量引入业务链。
  • 在SC和SFF节点配置NSH业务路径转发表,指导对应流量按指定路径进行转发。
  • 在关联最后一跳SF的SFF节点配置SFC终结值,此时SFF需要去掉NSH头部,离开SFC转发域,把报文发到网络中继续传输。

NSH-Unaware SF

不识别NSH报文,需要在关联NSH-Unaware SF的SFF上下发NSH-Proxy配置,即删除NSH封装信息后再发给NSH-Unaware SF处理。此时:

  • 需要在SC节点和连接SF的SFF上配置过滤和重定向策略,将流量引入或者重新引入业务链。
  • 在SC和SFF节点配置NSH业务路径转发表,指导对应流量按指定路径进行转发。
  • 在关联SF的SFF节点配置NSH-Proxy,删除NSH封装后再发送给SF节点。

如果最后一跳SF为NSH-Unaware,不需要再在对应SFF上配置NSH SFC终结值

支持配置NSH的逃生路径,即NSH业务链中有多个SF的情况下,当其中某个SF设备故障或链路故障时,可按照预先配置的逃生路径,将流量沿着逃生路径指定的SF继续转发,当故障的SF恢复后,流量自动恢复。
SPI:Service Path Identifier,业务链路径编号,标识一条业务链,SFF根据SPI确定具体的业务链,根据SI确定转发给该业务链上的具体SF。

NSH实现

2.3 NSH配置举例

分类器的配置

powershell 复制代码
[SwitchA] service-chain enable
[SwitchA] service-chain service-path 100				# 配置转发行为,SPI号是100
[SwitchA-service-chain-100] service-index 5 next-hop sff vtep 1.1.1.1 vni 5010
[SwitchA] acl 3001
[SwitchA-acl4-advance-3001] rule permit ip source 10.1.1.2 24 destination 30.1.1.1 24		#匹配流量
[SwitchA] traffic classifier nsh type and
[SwitchA-classifier-nsh] if-match acl 3001
[SwitchA] traffic behavior nsh_1
[SwitchA-behavior-nsh_1] redirect service-path 100 service-index 5   # 设置SPI和SI
[SwitchA] traffic policy nsh_2
[SwitchA-trafficpolicy-nsh_2] classifier nsh behavior nsh_1
[SwitchA] interface vbdif 10
[SwitchA-Vbdif10] traffic-policy nsh_2 inbound

转发器的配置

powershell 复制代码
[SwitchB] service-chain enable
[SwitchB] service-chain service-path 100
[SwitchB-service-chain-100] service-index 5 next-hop sf remote-ip 20.1.1.2 vpn-instance nsh
[SwitchB-service-chain-100] service-index 4 path-terminal vpn-instance nsh		# 数据包再回到转发器时,终结掉NSH,查路由表进行转发
相关推荐
音徽编程1 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
ClkLog-开源埋点用户分析1 小时前
ClkLog企业版(CDP)预售开启,更有鸿蒙SDK前来助力
华为·开源·开源软件·harmonyos
mg6681 小时前
鸿蒙系统的优势 开发 环境搭建 开发小示例
华为·harmonyos
模拟IC攻城狮2 小时前
华为海思招聘-芯片与器件设计工程师-模拟芯片方向- 机试题-真题套题题目——共8套(每套四十题)
嵌入式硬件·华为·硬件架构·芯片
lqj_本人2 小时前
鸿蒙next选择 Flutter 开发跨平台应用的原因
flutter·华为·harmonyos
幺零九零零2 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
TangKenny2 小时前
计算网络信号
java·算法·华为
23zhgjx-NanKon3 小时前
华为eNSP:QinQ
网络·安全·华为
23zhgjx-NanKon3 小时前
华为eNSP:mux-vlan
网络·安全·华为
点点滴滴的记录3 小时前
RPC核心实现原理
网络·网络协议·rpc