01-SRv6 SFC配置
本章节下载: 01-SRv6 SFC配置 (430.95 KB)
目 录
1.3.1 服务链静态代理(Static SR Proxy SFC)
1.3.2 服务链伪代理(Masquerading SR Proxy SFC)
1.3.3 SF感知型的服务链(SRv6-aware Service)
为了满足用户业务安全、稳定等需求,数据报文在网络中传递时,往往需要按照业务逻辑依次经过各种服务节点,例如防火墙(Firewall)、入侵防御系统(Intrusion Prevention System)、应用加速器和地址转换(Network Address Translation)等。SRv6 SFC(Service Function Chain,服务链)是一种通过在原始报文中添加SRv6路径信息来引导报文按照指定的路径依次经过应用层服务设备的技术。SRv6 SFC技术可以很方便地满足上述需求。
如图1-1所示,SRv6 SFC服务链网络用于将租户的特定业务报文引导到指定的应用服务节点进行处理,并转发到目的地。
图1-1 SRv6 SFC典型组网示意图
SRv6 SFC服务链网络包括以下角色:
· SC(Service Classifier,业务分类节点):位于SRv6 SFC服务链网络边缘,是服务链路径的源节点。SC可以采用不同的引流方式,将业务数据引入SRv6 TE Policy隧道中进行转发。
· SF(Service Function,应用服务节点):为业务流量提供特定应用服务的节点。SF可以分为以下两类。
¡ SRv6-unaware SF:SF本身不能识别和处理SRv6报文,即不能解析和处理SRH扩展头中的信息,只能通过SFF节点作为SF的代理来处理SRv6报文,并将处理后的报文转发给SF,由SF来提供增值服务。这种方式的SRv6 SFC功能被称为SRv6-unaware Service。
¡ SRv6-aware SF:SF本身可以识别和处理SRv6报文,同时提供增值服务。这种方式的SRv6 SFC功能被称为SRv6-aware Service。
· SFF(Service Function Forwarder,服务链转发节点):SFF作为SF的服务链代理,根据SRv6封装信息,将收到的报文转发到SFF关联的若干SF上。SF处理报文后,将报文返回给SFF,SFF决定是否继续转发报文。在SRv6-aware Service场景中,SRv6-aware SF不需要借助服务链代理节点SFF来处理SRv6报文信息,因此,这种场景中SFF节点仅仅是SF上游SRv6的普通Endpoint节点。
服务链静态代理适用于SF不能识别SRv6报文的场景。由于SF不能识别SRv6报文,SFF需要将SRv6报文解封装后,把用户网络的原始数据报文转发给SF处理。SF处理完原始报文后,将其转发回SFF节点,由SFF决定是否继续在SRv6 SFC网络中转发报文。如果继续在SRv6 SFC网络中转发,则SFF节点需要根据手工配置的SID列表为处理后的业务报文重新封装SRv6头部。服务链静态代理支持内层报文类型为IPv4或IPv6。服务链静态代理支持双归保护和Bypass保护功能。
为了实现服务链静态代理报文转发,在SFF上引入一种新的SRv6 SID类型——End.AS SID。End.AS SID用于标识SRv6 SFC服务链网络中的某个应用服务节点。End.AS SID对应的转发动作是:
· 报文从转发节点SFF发送到应用服务节点SF之前,SFF先解封装报文,然后根据End.AS SID关联的出接口转发报文。
· 报文从应用服务节点SF到转发节点SFF之后,SFF根据报文的入接口或者入接口和VLAN关联的End.AS SID及其配置,重新封装报文。
服务链伪代理适用于SF能够识别SRv6报文的场景。由于SF能够识别SRv6报文, SFF将SRv6报文直接转发给SF处理。SF完成应用服务处理后,不处理SRv6的SRH头部信息,直接将报文转发回SFF节点,SFF按照正常SRv6转发流程处理报文。服务链伪代理目前支持的内层报文类型为IPv4、IPv6和以太网报文。服务链伪代理不支持双归保护和Bypass保护功能。
为了实现服务链伪代理报文转发,在SFF上引入一种SRv6 SID类型——End.AM SID。End.AM SID用于标识SRv6 SFC服务链网络中的某个应用服务节点。End.AM SID对应的转发动作是:
· 报文从转发节点SFF发送到应用服务节点SF之前,SFF先将SRv6报文的目的地址修改为SRH中第一个SID值即SRH[0],然后根据End.AM SID关联的出接口转发。
· 报文从应用服务节点SF到转发节点SFF之后,SFF恢复SRv6报文目的地址为SRH[SL],按照正常SRv6报文转发流程进行报文转发。
SRv6-aware Service场景中由于SF本身可以识别和处理SRv6报文,SF应用服务节点以及SFF都可以作为普通的SRv6 Endpoint节点。报文从SFF转发到SF节点按照普通的SRv6报文处理流程即可。为了实现SRv6-aware Service场景业务,在SF上可以配置一种SRv6 SID类型——End.AN SID。End.AN SID用于标识SRv6 SFC服务链网络中的某个应用服务节点,并且与vSystem绑定。End.AN SID对应的转发动作是将SRv6报文转交给应用服务节点上指定的vSystem处理,处理完成后将SL减1,更新IPv6目的地址为SRH[SL],并查FIB表继续转发报文。
由于End.AN SID转发流程与普通SRv6报文转发流程并无差异,本文不作赘述。
图1-2 SRv6 SFC服务链静态代理的报文转发流程
如图1-2所示,以IPv4 L3VPN over SRv6-TE组网为例,SRv6 SFC服务链静态代理的报文转发过程如下:
(1) 源节点SC收到用户网络原始IPv4报文后,可以将流量引入SRv6 TE Policy中。SC根据SRv6 TE Policy进行SRv6报文封装,此时IPv6报文的目的地址是SFF的End.AS SID,SRH头部包括SRv6 TE Policy的路径信息和尾节点的End.DT4 SID。
(2) SFF收到报文以后,通过查找Local SID表发现目的地址为本地End.AS SID,记录当前SL值,并执行End.AS SID对应指令,即解封装报文,去除IPv6报文头部后将原始报文通过配置的出接口发送到SF进行处理。
(3) SF处理完报文以后,将报文发回给SFF。
(4) SFF根据报文的入接口(SFF上与SF相连的接收IPv4报文的接口)或入接口和VLAN,查找配置信息,然后依据配置的SID list重新封装SRv6报文,封装后报文SRH中SID list与源节点SC上SRv6 TE Policy路径一致,SRH中的SL值为记录的SL值减1。此时SRv6报文目的地址是本地End.AS SID的下一个SID(即Device C的End SID)。SFF根据报文的目的IPv6地址,查找IPv6路由表转发报文。
(5) Device C接收到报文以后,通过查找Local SID表发现目的地址为本地End SID,按SRv6转发流程处理报文。目的地址替换为D1(即尾节点的End SID),SL-1,查找IPv6路由表转发报文。
(6) 尾节点接收到报文以后,通过查找Local SID表发现目的地址D1为本地SID,将目的地址替换为D2(即尾节点的End.DT4 SID),SL-1变为0。尾节点执行End.DT4 SID对应指令,即解封装SRv6报文,并将原始报文转发到对应VPN或公网。
图1-3 SRv6 SFC服务链伪代理的报文转发流程
如图1-3所示,以IPv4 L3VPN over SRv6-TE组网为例,SRv6 SFC服务链伪代理报文转发过程如下:
(1) 源节点SC收到用户网络原始报文后,将流量引入SRv6 TE Policy中。SC根据SRv6 TE Policy进行SRv6报文封装,此时SRv6报文的目的地址是SFF的End.AM SID,SRH头部包括SRv6 TE Policy的路径信息和尾节点的End.DT4 SID。
(2) SFF收到报文以后,通过查找Local SID表发现目的地址为End.AM SID,将SRv6报文的目的地址替换为SRH SID列表中的最后一个SID,即尾节点的End.DT4 SID,同时将SL减1,并将报文从End.AM SID绑定的出接口发送到SF进行处理。
(3) SF处理完报文以后,不修改SRv6报文信息,把报文发回给SFF。
(4) 如果报文的入接口(SFF上与SF相连的接收报文的接口)或入接口和VLAN绑定了End.AM SID,则SFF根据SRH中的SL值替换SRv6报文的目的地址。此时,SL值为2,因此,将SRv6报文目的地址替换为C(本地End.AM SID的下一个SID,即Device C的End SID),SFF根据报文的目的IPv6地址,查找IPv6路由表转发报文。
(5) Device C接收到报文后,通过查找Local SID表发现目的地址为本地End SID,按SRv6转发流程处理报文。目的地址替换为D1(即尾节点的End SID),SL-1,查找IPv6路由表转发报文。
(6) 尾节点接收到报文以后,通过查找Local SID表发现目的地址D1为本地End SID,将目的地址替换为D2(即尾节点的End.DT4 SID),SL-1变为0。尾节点执行End.DT4 SID对应指令,即解封装SRv6报文,并将原始报文转发到对应VPN或公网。
在SRv6 SFC服务链中,本设备作为SF。
SRv6 SFC目前只能用于IP/EVPN L3VPN over SRv6网络。
SRv6 SFC服务链静态代理支持处理内层协议类型为IPv4和IPv6的报文。
SRv6 SFC服务链伪代理支持处理内层协议类型为IPv4、IPv6和以太网报文。
SRv6 SFC服务链伪代理场景中,如果同一台SFF上配置了多个End.AM SID用来分别连接不同的SF,则需要在SFF上执行undo ipv6 fast-forwarding load-sharing命令,否则SRv6报文会在SFF设备内部形成环路。
在配置SRv6 SFC功能前需要完成以下任务:
· 规划SFC域中各设备角色,各设备之间部署IGP实现IPv6地址互通和SRv6 SID通告。
· 规划SFC显式路径和SRv6 TE Policy路径信息。
· 根据业务需要,在SC和尾节点上配置VPN实例,并将VPN实例与接口绑定。
(1) 进入系统视图。
system-view
(2) 开启SRv6功能,并进入SRv6视图。
segment-routing ipv6
(3) 配置分配End.AN SID的Locator段,并进入SRv6 Locator视图。
locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]
(4) 配置End.AN Opcode,并进入End.AN服务链视图。
opcode {opcode | hex hex-opcode } end-an vsys vsys-name
可在任意视图下执行以下命令,显示SRv6 SFC服务链静态代理的转发表项信息:
表1-1 显示SRv6 SFC信息
|
操作 |
命令 |
|
显示SRv6 SFC服务链静态代理的转发信息 |
display segment-routing ipv6 sfc forwarding [ locator locator-name [ opcode operation-code ] ] [ nid-value ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
