APN6技术白皮书
Copyright © 2024 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
TCP/IP协议栈的分层和解耦设计理念在早期网络标准化发展过程中起到极其重要的作用,但随着网络和应用的不断发展,完全解耦的设计不再适用,网络感知应用,应用驱动网络的需求越来越迫切。例如:
· 网络运营商打造“智能管道”的诉求:网络运营商凭借多年建设的完善网络基础设施,在网络服务领域具有先天优势,但随着互联网厂商各种OTT业务(Over-the-top media service,越过网络运营商的互联网业务)的发展,对运营商传统的语音、短信和视频类业务造成极大冲击,网络运营商却只能沦为承载业务的“管道”。为了打破这种局面,近年来,网络运营商加速构建云服务,打造自有应用,通过升级和改造基础网络设施,实现网络感知应用的“智能管道”,从而为用户提供更精准且差异化的网络服务。
· 行业网络中关键业务的保障:例如,在办公网络中,视频会议需要网络重点保障,视频和语音业务不能出现卡顿,延迟也不能过大。而不同的行业,不同办公网络场景中视频和语音业务使用的应用可能各不相同,网络保障业务时必须要识别出应用才可能进一步进行业务质量保障。
· 特殊业务明确的SLA(Service Level Agreement,服务级别协议)需求:在自动驾驶、工业控制和远程控制等业务场景中,业务对网络有明确的SLA需求,例如,要求时延不超过50ms、抖动不超过1ms。应用需要先将对网络质量的需求传递给网络,才能驱动网络进行智能路径选择和实时业务质量监控。
正是这些新需求的出现,凸显了网络感知应用、应用驱动网络必要性。
APN6(Application-aware IPv6 Networking,应用感知型IPv6网络)是一种新型的网络架构。它利用IPv6报文的扩展报文头来携带应用信息,使网络可以识别应用,并且感知应用对网络的需求,进而为不同的应用业务提供精准且差异化的网络服务。其中,应用信息目前包括两类:
· APN ID:应用的标识,APN6网络的IPv6报文中必须携带该信息。
· APN Parameters:应用对网络质量的需求信息,例如带宽要求、时延要求、抖动要求和丢包率要求等。APN6网络的IPv6报文中可以不携带该信息。
APN6的核心思想是借助IPv6扩展头部中携带的APN ID和APN Parameters,将原本位于TCP/IP协议栈不同层次、相互解耦的网络和应用信息重新耦合。
· 对于网络而言,设备通过解析IPv6报文的DOH(Destination Option Header,目的选项扩展头)扩展头部感知应用信息。
· 对于应用而言,IPv6报文的可编程空间是面向应用开放的,应用可以自主定义其中的APN ID和APN Parameters等参数。
APN6的优势和价值主要包括以下几个方面:
· 应用信息简单直接。
· 可扩展性强。
· 兼容各类IPv6+新技术。
传统的应用报文中缺少应用对网络质量的需求信息,应用信息的标识也不明确,通常通过以下两种手段来实现应用或者用户业务流识别:
· 借助ACL规则由设备解析报文的五元组等信息来识别报文所属的应用和用户。这种方式需要消耗大量硬件ACL资源,且不能满足识别海量应用的需求。
· 部署DPI(Deep Packet Inspection,深度报文检测)功能通过对IP数据包的内容进行分析,依据数据特征字的查找或者业务的行为统计来判断相关业务流的类型。这种方式需要额外的运维开销,并且会带来安全和隐私方面的问题。
如图1所示,相较于传统的ACL规则来识别报文所属的应用和用户,APN6将应用信息直接封装在IPv6的报文头中,设备无需解析和匹配报文中的五元组等字段信息,仅需检索IPv6扩展报文头即可得到应用标识和应用对网络质量的需求等信息,从而简化运维部署,减少硬件ACL资源消耗。另一方面,APN6不需要分析IP数据包中载荷,避免信息被泄露问题。因此,APN6这种网络架构更加直接,适合网络感知应用的需求。
图1 传统的ACL规则识别应用和APN6标识应用对比图
IPv6的扩展报文头提供了可编程空间,可以根据需求在IPv6扩展报文头中携带更为丰富的APN6应用信息,扩展性极强。
如图2所示,IETF草案draft-li-apn-ipv6-encap中描述了可以用于携带应用信息的位置包括IPv6的扩展报文头中HBH(Hop-by-Hop Options Header,逐跳选项扩展报文头)、目的选项报文头DOH(Destination Options Header)和路由报文头SRH(Segment Routing Header),这些扩展报文头都提供了可编程空间,均可以扩展为携带应用信息。
目前,H3C的设备将APN6的应用信息携带在DOH中。
图2 IPv6的扩展报文头中可提供可编程空间示意图
近年来不断涌现出一批新网络技术来实现各种网络需求,例如SRv6网络切片、确定性网络、SRv6 SFC、iFIT等技术。APN6和这些网络新技术完全兼容,结合这些技术,可以实现更加精细化的网络服务。如图3所示,APN6结合SRv6网络切片技术,为不同应用提供专属切片网络,保证业务独享资源;APN6结合iFIT技术提供应用级别的实时性能策略、故障界定和可视化运维等。
图3 APN6网络中SRv6网络切片技术和iFIT应用示例
本章将基于IETF的draft-li-apn-framework和draft-li-apn-header等草案介绍APN6的网络架构、APN ID标识的生成和报文封装格式以及APN6中应用报文的转发策略等基本原理。
如图4所示,网络中APN6区域(APN6 Domain)是指携带了应用信息的报文所经过的所有网络设备的集合,在APN6区域中包括以下几种设备角色:
· APN-Edge:APN6边缘设备,用于接入应用终端或应用服务器。应用终端或应用服务器不具备为报文添加应用信息的能力时,APN-Edge可以通过QoS策略根据报文的五元组、外层SVLAN或内层C-VLAN等信息来标记报文的应用信息。当携带了应用信息的报文离开APN6区域时,APN6边缘设备用于删除报文中应用信息。
· APN-Head:APN6头端节点,APN-Head到APN-Endpoint之间应具备一组满足不同SLA需求的隧道。APN-Head可以根据报文的应用信息,将流量引入到满足应用SLA需求的隧道中。APN-Edge和APN-Head的功能可以在同一设备上实现。
· APN-Midpoint:APN6中间节点,APN-Midpoint为应用报文提供转发服务,并支持根据报文携带的应用信息提供iFIT、SRv6 SFC等增值服务。
· APN-Endpoint:APN6尾节点,解封装应用报文的外层隧道封装。如果应用信息被复制到外层隧道封装中,则应用信息同时会被APN6尾节点解封装,如果应用信息的携带位置不在外层隧道封装中,则APN6尾节点可以继续转发携带应用信息的IPv6报文。APN-Edge和APN-Endpoint的功能可以在同一设备上实现。
· APN-Controller:APN6网络的控制器,主要用于统一规划和维护APN ID、APN Parameters等信息,定义并下发APN ID相关的转发策略和标记策略。
¡ 对于APN-Edge,APN-Controller下发APN ID的标记策略,建立应用报文的五元组、外层SVLAN或内层C-VLAN等信息和APN ID的映射关系。
¡ 对于APN-Head,APN-Controller下发APN ID的转发策略,建立转发路径和携带APN ID的报文之间的映射关系,从而将指定APN ID的报文引入到合适的转发路径中转发。
图4 APN6的网络架构及设备角色示意图
如图4所示,在APN6的网络架构中,根据应用信息生成的方式可将APN6的网络分为两种类型:
· 应用端方案:包括APN ID和APN Parameters的应用信息由应用终端或应用服务器生成,并封装在报文中。应用端方案要求终端设备可以感知不同应用,并且网络和应用由同一个组织管理和规划,网络设备可以信任应用端生成的应用信息。
· 网络侧方案:包括APN ID和APN Parameters的应用信息由网络中APN6边缘设备生成,通过APN6边缘设备感知识别报文类型,并为报文封装应用信息。这种方案无需应用端支持,直接由网络运营商和行业网络管理者统一规划部署,比较方便。
APN6应用信息的选项字段称为APN Header,根据draft-li-apn-header草案定义,APN Header位于IPv6的DOH(Destination Option Header,目的选项扩展头)中。应用信息的详细的报文结构如图5所示。
需要注意的是携带APN ID等信息的DOH扩展报文头在IPv6报文头封装时,位于SRH之后,如果与iFIT功能配合使用时,则IPv6报文的封装中可能存在两个封装位置不同的DOH头。位于SRH之后的DOH扩展头仅能被目的节点解析,转发路径上的其他节点不能读取分析该DOH头。
应用信息的报文结构中包括:
· Next Header:8bits,用来标识DOH的下一个报文头的类型。
· Hdr Ext Len:8bits,表示以8个字节为单位的DOH头的长度,不包括第一个8字节。
· Option Type:8bits,应用信息的选项类型(即APN Header的选项类型值),目前取值为0x13。
· Opt Data Len:8bits,应用信息的选项长度,即APN Header部分的长度。
· APN Header:可变长度,包含了APN ID和APN Parameters等详细应用信息。
APN Header包括如下字段:
· APN-ID-Type:8bits,APN ID的类型,当前设计了3类APN ID。
¡ 取值为1时,表示Type 1 APN ID,APN ID占4个字节。
¡ 取值为2时,表示Type 2 APN ID,APN ID占8个字节。
¡ 取值为3时,表示Type 3 APN ID,APN ID占16个字节。
· Flags:8bits,当前未定义。
· APN-Para-Type:16bits,表示APN Parameters中包含了哪些网络性能需求参数,例如带宽、时延、抖动、丢包率等。
· APN ID:长度可变,APN标识信息,由三部分组成:
¡ APP-Group-ID:应用组的标识。
¡ User-Group-ID:用户组的标识
¡ Reserved:预留字段。
· Intent(Optional):32bits可选部分,表示应用向网络提出的意图需求。
· APN-Para(Optional):32bits可选部分,表示具体的网络性能需求参数。每个参数都可以使用4个字节。
目前H3C采用APN ID实例引用APN ID模板的方式来灵活地定义一个具体的APN ID值,其中,
· APN ID模板:用于灵活地规划APN ID。如图6所示,APN ID模板定义了APN ID的总长度(当前仅支持64bit)、APP-Group-ID的最大长度x bit和User-Group-ID的最大长度y bit。Reserved字段的长度等于APN ID的总长度减去APP-Group-ID最大长度再减去User-Group-ID部分的最大长度。APN ID模板还将APP-Group-ID和User-Group-ID进一步细分,在APN ID模板中定义了名称(field name)不同、长度不一的块(field),这些块按照索引(index)从小到大的顺序填充到APP-Group-ID和User-Group-ID字段中:
¡ 填充到APP-Group-ID字段中的块称为APP-Group-ID块,可以认为是某个应用或业务的标识。一个APN ID可以标识多个应用或业务。
¡ 填充到User-Group-ID字段中的块称为User-Group-ID块,可以认为是某个用户的标识。一个APN ID可以标识属于多个用户。
图6 APN ID模板的示意图
· APN ID实例:通过引用APN ID模板,并且为APN ID模板中APP-Group-ID块和User-Group-ID块赋值,生成一个具体的APN ID值。同一个APN ID模板可以被多个APN ID实例引用,根据赋值的差异形成不同的APN ID值。因此,APN ID模板是用于规划APN ID的结构体。
一个具体的APN ID值的生成如图3所示,APN ID模板templatex总长度为64bit,APP-Group-ID最大长度是32bit,User-Group-ID最大长度是16bit,Reserved字段长度为16bit,APN ID模板中定义了:
· 索引值为1,长度为8bit,名称为fieldname1的APP-Group-ID块。
· 索引值为2,长度为4bit,名称为fieldname2的APP-Group-ID块。
· 索引值为1,长度为4bit,名称为fieldname4的User-Group-ID块。
当APN ID实例引用该APN ID模板后:
· 为APP-Group-ID块fieldname1赋值为103,转换为十六进制为0x67。
· 为APP-Group-ID块fieldname2赋值为3,转换为十六进制为0x3。
· 为User-Group-ID块fieldname4赋值为10,转换为十六进制为0xa。
图7 一个具体的APN ID值的生成示意图
基于APN ID引流需要先将业务流量引入到SRv6 TE Policy组中转发,在该SRv6 TE Policy组中建立APN ID和SRv6 TE Policy或SRv6 BE的映射关系,当流量在SRv6 TE Policy组转发时,会查找与流量报文携带的APN ID匹配的SRv6 TE Policy或SRv6 BE策略,并按照匹配的SRv6 TE Policy的路径或SRv6 BE方式转发。
如图4所示,基于APN ID引流需要完成如下配置准备:
· 在设备A上配置一个尾节点为设备H,Endpoint为5::5的SRv6 TE Policy组,该SRv6 TE Policy组的Group ID为111。
· 在设备A上配置两条从设备A到设备H的SRv6 TE Policy 1和SRv6 TE Policy 2,这两个SRv6 TE Policy与SRv6 TE Policy组111的Endpoint相同,因此,SRv6 TE Policy 1和SRv6 TE Policy 2属于该SRv6 TE Policy组。SRv6 TE Policy 1和SRv6 TE Policy 2的转发路径不同,网络质量也不尽相同的。
· 在设备A上配置QoS策略,并将QoS策略应用到设备A连接私网VPN 1的接口入方向,根据私网报文的五元组或VLAN等信息为私网报文标记和封装应用信息。
图8 基于APN ID转发流量的工作原理示意图
以IPv6 L3VPN over SRv6 TE Policy组网为例,基于APN ID引流到指定的转发路径的工作流程如下:
(1) 在SRv6 TE Policy组111中指定转发类型为基于APN ID转发,并建立APN ID和转发策略的映射关系,目前支持的映射关系包括:
¡ APN ID和Color属性映射:设备A将携带指定APN ID的报文引入到Color属性对应的SRv6 TE Policy中转发。图中,APN ID实例a和SRv6 TE Policy 1建立映射关系,APN ID实例b和SRv6 TE Policy 2建立映射关系,详细的转发流程请参见“2. 携带APN ID的报文转发”。
¡ APN ID和SRv6 BE转发方式映射:设备将携带指定APN ID的报文通过SRv6 BE方式转发。此时,设备A为报文封装新的IPv6报文头,IPv6报文头的目的地址为SRv6 TE Policy组的尾节点为VPN分配的SID,设备A通过查IPv6路由表将报文从出接口转发。
(2) 设备A上配置隧道策略,将私网路由2::2/128和SRv6 TE Policy组111绑定。当接收到去往私网路由2::2/128的流量时,设备A将流量引入SRv6 TE Policy组中转发。设备A将根据流量报文携带的APN ID选择对应的转发方式。
基于APN ID转发报文时,与SRv6 BE方式转发相比,SRv6 TE Policy转发方式具有可控的路径和更高的可靠性,并可以结合iFIT测量手段检测端到端固定转发路径的网络质量,因此,一般规划时,将SRv6 TE Policy隧道作为关键应用业务的转发方式。SRv6 BE方式转发则作为非关键业务或者无SLA需求的业务的转发方式。当指定SRv6 TE Policy隧道路径故障时,SRv6 BE方式转发可以用于流量逃生。
如图5所示,设备A实现了APN6边缘设备和APN6头端节点的功能,设备D实现了APN6边缘设备和APN6尾节点的功能。设备B和设备C均实现了APN6中间节点的功能。
以携带APN ID的报文在SRv6 TE Policy隧道中转发为例,报文转发流程为:
图9 基于APN ID的报文转发流程
(1) CE 1向CE 2发送私网业务报文,报文的目的地址为2::2。CE 1根据路由表将私网报文转发到设备A。
(2) 设备A从绑定VPN 1的私网接口接收到私网报文后,根据QoS策略为符合流分类规则的报文添加DOH扩展头,并增加APN ID实例a的标识,取值为0x1。设备A再查询VPN 1的私网路由表,发现2::2/128私网路由下一跳为设备D的Loopback0口地址5::5,且标识私网的End.DT6 SID为D2。
(3) 设备A根据私网路由绑定的隧道策略将流量引入SRv6 TE Policy组中转发。在SRv6 TE Policy组中,APN ID 0x1的报文将被引入到SRv6 TE Policy AtoD中转发。设备A根据SRv6 TE Policy AtoD为报文封装新的IPv6报文头和SRH头,并将携带APN ID 0x1的DOH扩展头调整到新的IPv6报文头中。SRH头携带的SID列表为{D2,D1,C1,B1}。其中,D2为私网的End.DT6 SID,D1为设备D的End SID,C1为设备C的End SID,B1为设备B的End SID。此时,SL=3,IPv6报文头的目的地址为SRH[3],即B1。设备A根据IPv6路由表将封装后的报文转发给设备B。
(4) 设备B接收到报文后,发现目的地址为Local SID,检查SRH中SL不为0,则将SL减1,并根据SRH修改IPv6报文头的目的地址为SRH[2],即C1,设备B将报文发送给设备C。
(5) 设备C接收到报文后,发现目的地址为Local SID,检查SRH中SL不为0,则将SL减1,并根据SRH修改IPv6报文头的目的地址为SRH[1],即D1,设备C将报文发送给设备D。
(6) 设备D接收到报文后,发现目的地址为Local SID,检查SRH中SL不为0,则将SL减1,并根据SRH修改IPv6报文头的目的地址为SRH[0],即D2,D2仍为设备D的Local SID,设备D将根据End.DT6 SID的动作,解封装报文,删除报文的DOH和SRH,并查询VPN 1私网路由表将原始报文发送给设备CE 2。
在APN6网络中,同一个VPN中存在多个分支站点,该VPN的多种业务流量通过不同APN ID标识。在这种场景下,通过部署基于APN ID的流量隔离,可以实现对VPN中两个站点间特定APN ID标识的业务流量隔离,而其他业务流量则正常转发。
· APN隔离组(APN Isolate Group):将某些隧道或接口关联特定APN隔离组可以限制流量向该APN隔离组中的隧道或接口转发。APN隔离组可以标识VPN实例中从一个分支站点向另一个分支站点转发流量的出接口或隧道。
· APN隔离策略(APN Isolate Policy):通过定义APN隔离规则来建立APN ID实例和APN隔离组的关联关系,并禁止匹配到APN隔离规则的特定业务流量向APN隔离组标识的接口或隧道转发。
如图6所示,在IP L3VPN over SRv6或EVPN L3VPN over SRv6网络中存在VPN实例VPNA,PE 1设备的直连接口Interface A和Interface B均绑定了VPN实例VPNA,分别连接了两个不同的分支站点Branch A和Branch B,PE 1和PE 2之间通过SRv6隧道互通,PE 2连接了VPNA的分支站点Branch C。VPNA中存在两种业务流量分别使用APN ID实例X和Y来标识。
(1) 建立APN隔离组B和绑定了VPNA实例的私网接口Interface B的关联关系,即直接在Interface B接口下引用APN隔离组B。
(2) 在VPN实例VPNA中应用APN隔离策略,其中定义的APN隔离规则为禁止APN ID Y标识的流量向APN隔离组B标识的接口Interface B转发。
(3) 当PE 1接收到VPNA的私网业务报文时,先获取报文携带的APN ID,再查找流量的出接口或隧道,如果报文的APN ID和出接口匹配到APN隔离规则,则流量被禁止向出接口转发。否则,流量可以正常转发。因此,图中APN ID Y标识的流量无法从出接口Interface B转发,从而隔离了Branch A和Branch B之间APN ID Y标识的流量,以及Branch C和Branch B之间APN ID Y标识的流量。
当前仅绑定了VPN实例的私网接口可以和APN隔离组建立关联关系,在未绑定VPN实例的接口下应用APN隔离组,隔离特定APN ID流量的作用并不会生效。
图10 禁止APN ID标识的流量向接口转发的示意图
如图7所示,在IP L3VPN over SRv6或EVPN L3VPN over SRv6网络中存在VPN实例VPNA,PE 1设备的直连接口Interface A和Interface B均绑定了VPN实例VPNA,分别连接了两个不同的分支站点Branch A和Branch B,PE 1和PE 2之间通过SRv6隧道互通,PE 2连接了VPNA的分支站点Branch C。VPNA中存在两种业务流量分别使用APN ID实例X和Y来标识。
(1) 对端PE 2从SRv6 Locator段中为Branch C的VPNA的私网路由分配SRv6 SID,并发布给PE 1。PE 1上去往Branch C的VPNA私网路由迭代到SRv6隧道中转发。
(2) PE 1上定义APN隔离组A和SRv6 Locator段、VPN实例VPNA三者之间的映射关系。如果PE 1发往PE 2的VPNA私网报文所携带的SRv6 SID与定义的SRv6 Locator段匹配,则形成APN隔离组A和SRv6隧道的关联关系。
(3) 在VPN实例VPNA中应用APN隔离策略,其中定义的APN隔离规则为禁止APN ID Y标识的流量向APN隔离组A标识的SRv6隧道转发。
(4) 当PE 1接收到VPNA的私网业务报文时,先获取报文携带的APN ID,再查找流量出方向接口或隧道,如果报文的APN ID和隧道匹配到APN隔离规则,则流量被禁止向SRv6隧道转发。否则,流量可以正常转发。因此,图中APN ID Y标识的流量无法通过PE 1去往PE 2的SRv6隧道转发,从而隔离了Branch A和Branch C之间APN ID Y标识的流量。
图11 禁止APN ID标识的流量向隧道转发示意图
draft-zhang-apn-acceleration-usecase针对时延敏感的游戏业务提出APN6的应用解决方案。通常情况下,多人在线的竞技类游戏时延要求低于30ms,在一些重大竞技赛事中,游戏时延甚至要求低于10ms。用户的游戏终端需要通过网络运营商设备连接到国内游戏运营厂商的出口加速路由,再通过国际POP节点接入海外的数据服务器。这个数据转发流程很长,而且传统网络运营商不能为游戏用户提供稳定低时延的接入服务。
如图8所示,网络运营商和游戏运营商可以合作部署APN6网络,在用户接入设备上精准识别特定游戏的数据报文,并且为游戏用户提供稳定低时延的加速隧道,从而极大提升用户的游戏体验,并拓展网络运营商增值业务范畴。
图12 游戏加速业务中APN6的应用示意图
游戏加速业务中应用APN6可以带来如下价值:
· 对于游戏用户:获得稳定的加速时延,提升游戏体验。
· 对于运营商:拓展增值业务范畴,创造新的营收点。
· 对于游戏运营厂商:提升用户留存度和游戏的满意度。
位于不同城市的企业分支站点通过云专线接入云服务,而云专线需要穿越多个自治域,自治域由不同的人员管理。由于自治域之间无法共享路由信息,因此,统一的端到端路径规划变得困难。这对于云专线中的关键业务质量保证是一项挑战。
如图9所示,通过在网络中部署APN6,企业可以在边缘CPE直接为关键业务报文封装APN ID等应用信息。这样,在不同自治域中设备都可以获取关键业务报文的应用信息。
图13 SDWAN云专线中APN6的应用示意图
SDWAN云专线中应用APN6可以为企业客户带来如下价值:
· 减轻CPE压力:CPE设备无需部署DPI(Deep Packet Inspection,深度报文检测)来检测报文的应用类型。
· 精准应用级别的网络运维:结合iFIT测量可以从无数流量中精准捕捉到关键业务的应用流量,针对关键业务的应用流量实施测量和监控。
· 精准应用级别的网络质量保障:在不同AS域内,设备都可以根据应用信息将关键业务的应用流量引流到特定转发路径中转发,保障网络质量。
· draft-li-apn-framework
· draft-li-apn-header
· draft-zhang-apn-acceleration-usecase
· draft-yang-apn-sd-wan-usecase