• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

14-SDWAN配置指导

目录

01-SDWAN配置

本章节下载 01-SDWAN配置  (980.05 KB)

01-SDWAN配置

  录

1 SDWAN概述

1.1 SDWAN简介

1.2 SDWAN网络模型

1.3 SDWAN报文封装格式

1.3.1 控制报文格式

1.3.2 数据报文格式

1.4 BGP扩展

1.4.1 BGP IPv4 Tnl-Encap-Ext地址族

1.4.2 EVPN路由

1.5 通道建立

1.5.2 控制通道

1.5.3 数据通道

1.5.4 SDWAN扩展隧道

1.6 路由信息发布

1.7 报文转发

1.8 IPsec保护SDWAN隧道

1.9 穿越NAT建立SDWAN隧道

1.9.2 控制通道建立

1.9.3 数据通道建立

1.10 基于WAAS和QUIC动态优化SDWAN传输质量

2 配置SDWAN

2.1 SDWAN配置任务简介

2.2 配置站点信息和设备标识

2.2.1 配置设备所属的站点

2.2.2 配置设备在SDWAN网络的标识

2.3 配置SDWAN client

2.4 配置SDWAN server

2.5 配置SDWAN隧道

2.6 配置BGP发布IPv4 Tnl-encap-ext路由

2.6.1 配置限制和指导

2.6.2 开启BGP发布IPv4 Tnl-encap-ext路由能力

2.6.3 配置BGP IPv4 Tnl-encap-ext路由

2.6.4 维护BGP会话

2.7 配置通过IP前缀路由发布站点VPN路由

2.7.1 CPE配置

2.7.2 RR配置

2.7.3 通过Priority-Color属性实现流量逃生以及负载分担

2.7.4 配置IP前缀路由仅通过Priority-Color扩展团体属性迭代下一跳

2.8 配置SDWAN网络穿越EVPN VXLAN网络

2.9 配置SDWAN网络与EVPN L3VPN over SRv6网络互联

2.10 配置NAT转换后的公网IP地址和公网端口号

2.11 Hub-Spoke组网中简化QoS业务配置

2.12 SDWAN网络中应用QoS自适应模板

2.13 配置基于WAAS和QUIC动态优化SDWAN传输质量

2.13.1 功能简介

2.13.2 配置通过QoS策略将SDWAN隧道上的流量引入WAAS实例

2.13.3 配置WAAS引用QUIC策略

2.13.4 配置WAAS的链路质量阈值和优化动作

2.14 SDWAN显示和维护

2.14.1 显示SDWAN状态

2.14.2 显示和维护TTE相关信息

2.14.3 显示BGP路由相关信息

2.14.4 显示SDWAN隧道相关的QoS信息

2.15 SDWAN配置举例

2.15.1 穿越NAT建立SDWAN隧道配置举例

2.15.2 按需建立SDWAN隧道配置举例

 


1 SDWAN概述

1.1  SDWAN简介

SDWAN(Software Defined Wide Area Network,软件定义广域网)是将SDN技术应用到广域网的一种VPN技术。控制平面通过SSL/MP-BGP通告TTE(Transport Tunnel Endpoint,传输隧道端点)信息,实现不同站点间SDWAN隧道的建立,并通过MP-BGP在不同站点间发布私网路由;数据平面采用UDP封装转发数据报文,通过IPsec等安全机制来确保数据的安全传输,为分散在广阔地理范围内的企业网络、数据中心等提供安全可靠的互联服务。

1.2  SDWAN网络模型

图1-1 SDWAN网络模型示意图

 

图1-1所示,SDWAN的典型网络模型包含如下部分:

·     CPE(Customer Provided Edge,用户提供的网络边缘):用户网络的边缘设备。

·     RR(Route Reflector,路由反射器):用于在CPE之间反射TTE信息和私网路由等。

·     TN(Transport Network,传输网络):由运营商提供的广域接入网络,用于连接不同的分支站点。TN主要包括运营商专线网络和Internet公用网络等,它是构建SDWAN Overlay网络的基础。传输网络可以通过TN ID或传输网络的名称来标识。

·     RD(Routing Domain,路由域):由彼此之间路由可达的不同传输网络构成的区域。只能在位于同一个路由域内的CPE之间或CPE与RR之间建立SDWAN隧道。

·     组ID:用于在相同路由域内更细化和灵活地控制SDWAN隧道的建立。在同一个路由域内,只有具有相同组ID和传输网络的CPE之间或CPE与RR之间才可以建立SDWAN隧道。

·     Site ID:站点ID,用来唯一标识SDWAN网络中的分支站点,通常以一串数字形式呈现。Site ID由网络控制器统一自动分配。

·     Device ID:设备ID,是支持SDWAN功能的设备(SDWAN设备)在站点内的唯一标识。一个站点通常包含一台或两台SDWAN设备。

·     SDWAN隧道:SDWAN设备之间的点到多点逻辑通道。不同站点之间通过SDWAN隧道传输数据报文等,实现不同站点之间的互联。

·     SSL(Secure Sockets Layer,安全套接字层)连接:在SDWAN网络中,CPE与RR之间建立SSL连接,通过该连接交互TTE信息,实现控制通道的建立。

·     TTE(Transport Tunnel Endpoint,传输隧道端点):SDWAN设备接入传输网的连接点和SDWAN隧道的端点。设备的TTE信息主要包括Site ID、TN ID、Private IP Address、Public IP Address和隧道的封装类型等。

·     TTE连接:两个TTE之间的点到点逻辑连接。通常一个SDWAN隧道上建立多个TTE连接。

1.3  SDWAN报文封装格式

SDWAN报文分为控制报文和数据报文。

·     控制报文用于在SDWAN网络中通告TTE信息、EVPN路由和本端NAT转换后的Public IP等。NAT的详细介绍,请参见“穿越NAT建立SDWAN隧道

·     数据报文用于转发用户的报文。

1.3.1  控制报文格式

图1-2所示,SDWAN控制报文封装格式为:在数据部分外添加16字节SDWAN头、8字节UDP头和20字节IP头;如需对报文进行安全保护,则还会封装IPsec头。其中,UDP头的目的端口号为SDWAN UDP端口号(缺省为4799)。SDWAN头主要包括如下部分:

·     Type:表示报文的类型,长度为8比特。取值为1时,表示SDWAN控制报文;为2时,表示SDWAN数据报文。

·     Sub Type:表示控制报文的子类型,长度为8比特。取值为1时,表示NAT地址探测请求报文。

·     Version:表示SDWAN协议报文号,目前取值固定为0。

·     Reserved:保留字段,取值固定为0。

·     Length:表示SDWAN头的长度,长度为16比特。

·     Local TTE ID:标识一个本地TTE,长度为32比特。

·     Remote TTE ID:标识一个远端TTE,长度为32比特。

图1-2 SDWAN控制报文封装示意图

 

1.3.2  数据报文格式

图1-3所示,SDWAN数据报文封装格式为:在原始数据报文外添加12字节SDWAN头、8字节UDP头和20字节IP头;如需对报文进行安全保护,则还会封装IPsec头。其中,UDP头的目的端口号为SDWAN UDP端口号(缺省为4799)。SDWAN头主要包括如下部分:

·     Type:表示报文的类型,长度为8比特。取值为1时,表示SDWAN控制报文;为2时,表示SDWAN数据报文。

·     Protocol:表示内层数据报文的类型,长度为8比特。取值为1时,表示IPv4报文;为2时,表示IPv6报文;取值为3时,表示QUIC over IPv4报文;;取值为4时,表示QUIC over IPv6报文。

·     Length:表示SDWAN头的长度,长度为16比特。

·     VN ID:表示SDWAN数据报文所属的VPN实例的VN ID,长度为32比特。若报文属于公网实例,则本字段为全0。

·     Flow ID:表示SDWAN数据报文所属的流ID,长度为32比特。可以通过remark flow-id命令对报文标记流ID。若未对报文标记流ID,则取值为全0。关于remark flow-id命令的详细介绍,请参见“ACL和QoS命令”中的“QoS”。

图1-3 SDWAN数据报文封装示意图

 

1.4  BGP扩展

1.4.1  BGP IPv4 Tnl-Encap-Ext地址族

为了支持SDWAN,BGP定义了新的地址族——BGP IPv4 Tnl-Encap-Ext地址族。该地址族为IPv4地址族的子地址族,SAFI(Subsequent Address Family Identifier,子地址族标识符)为74。该地址族下交换的路由,称为IPv4 Tnl-encap-ext路由。IPv4 Tnl-encap-ext路由可以在路径属性MP_REACH_NLRI(Multiprotocol Reachable NLRI,多协议可达NLRI)中,携带如下两类信息:

·     TTE信息:Site ID、TN ID、Public IP、Private IP和Tunnel Encapsulation等。该信息用来在CPE之间建立数据通道。

·     SaaS访问路径质量信息:包括Delay、Jitter、Loss和CQI等。该信息用于在智能选路场景下,为不同的应用选择最佳访问路径。

·     TTE的WAAS相关信息:该信息用于传递本端设备的WAAS优化动作。当前,WAAS支持的优化动作为通知SDWAN模块建立QUIC连接。需要注意的是,只有当SDWAN隧道的两端设备均支持该WAAS优化动作时,设备才会在检测到SDWAN隧道链路质量下降时,自动为SDWAN隧道建立QUIC连接,以提升传输质量。关于SDWAN隧道建立QUIC连接的详细机制和应用场景,请参见“基于WAAS和QUIC动态优化SDWAN传输质量”。

图1-4 IPv4 Tnl-encap-ext路由的MP_REACH_NLRI属性示意图

 

图1-4所示,IPv4 Tnl-encap-ext路由的MP_REACH_NLRI属性包含如下字段:

·     Flags:BGP属性标记位,取值为0x90,表示该属性为包含了完整信息的可选非传递属性。

·     Type Code:BGP属性类型,取值为14。

·     Length:MP_REACH_NLRI属性的长度。

·     AFI:地址族标识符,取值为1,表示IPv4地址族。

·     SAFI:子地址族标识符,取值为74,表示IPv4 Tnl-Encap-Ext地址族。

·     Next hop network address:下一跳IP地址。

·     Number of SNPAs:下面字段中SNPA(Subnetwork Point of Attachment,子网连接点)的数量,取值为0,表示属性中不包含SNPA。

·     NLRI:网络层可达性信息。

MP_REACH_NLRI属性的网络层可达性信息包含如下字段:

·     NLRI Type:NLRI信息类型。取值1表示携带的是TTE信息,取值2表示携带的是SaaS访问路径质量信息,取值3表示携带的是IPv6 TTE信息,取值为4表示携带的是QoS TTE信息,取值为5表示额外本地TTE信息,取值为6表示WAAS TTE信息。

·     NLRI Length:NLRI的长度。

·     Protocol:NLRI信息使用的协议栈,取值为2,表示IPv4协议。

·     Prefix Type:NLRI的前缀类型,取值为1。

·     Prefix Length:NLRI的前缀长度。

·     Prefix:NLRI的前缀信息。TTE信息的内容为TTE ID,SaaS访问路径质量信息的内容为站点ID和设备ID。

·     Data Type:NLRI的数据部分类型,取值为2。

·     Data Length:NLRI的数据部分长度。

·     Data:NLRI的数据部分。本字段携带了TTE信息或SaaS访问路径质量信息的具体内容。

1.4.2  EVPN路由

在SDWAN支持多VPN实例场景中,CPE将VPN实例中的私网路由信息以EVPN IP前缀路由的形式发布给其他CPE。为支持SDWAN,EVPN路由进行了如下扩展:

·     在TUNNEL_ENCAPSULATION_ATTRIBUTE属性中,新增加了一种SDWAN封装类型。IP前缀路由携带了SDWAN封装后,只能在使能了发送SDWAN封装EVPN路由能力的设备之间转发。

·     IP前缀路由的NLRI字段携带了VN ID,用来区分属于不同VPN实例的私网路由。

1.5  通道建立

图1-5所示,SDWAN网络包含控制通道和数据通道两种类型的通道。

图1-5 SDWAN网络隧道示意图

 

1.5.2  控制通道

控制通道是指RR和CPE之间发布TTE信息和私网路由的通道。具体的建立过程为:

(1)     CPE与RR之间建立SSL连接(控制通道),其中CPE作为SSL的客户端,称为SDWAN client;RR作为SSL的服务器端,称为SDWAN server。

(2)     CPE与RR之间互相发送TTE信息。

(3)     CPE与RR收到对端发送的TTE信息后,比较TTE信息中携带的路由域。若路由域相同,则建立到达对端的SDWAN隧道(控制通道);若路由域不同,则不建立SDWAN隧道。

说明

如果配置将传输网络的ID作为SDWAN隧道建立的限制条件,则除了路由域相同外,还需要传输网络的ID相同,才可以建立SDWAN隧道。

 

(4)     完成SDWAN隧道建立后,CPE、RR自动在本地添加到达对端Systerm IP的UNR(User network route,用户网络路由)路由。

(5)     CPE、RR之间基于Systerm IP建立IPv4 Tnl-Encap-Ext地址族下的BGP连接(控制通道)。

1.5.3  数据通道

数据通道是指CPE之间转发数据报文的通道。具体的建立过程为:

(1)     CPE通过IPv4 Tnl-encap-ext路由向RR发送TTE信息。

(2)     RR将TTE信息反射给其他CPE。

(3)     CPE收到由RR反射的TTE信息后,保存这些TTE信息。

(4)     CPE将从本地站点学习到的VPN路由信息通过SDWAN封装的IP前缀路由发送给RR。

(5)     RR将接收到的IP前缀路由反射给其他CPE。

(6)     CPE接收到RR反射的IP前缀路由后,根据路由的下一跳地址在本地保存的TTE信息中进行查找,将查找到的TTE信息中的路由域、组ID与本地路由域、组ID进行对比:

¡     若路由域和组ID均相同,则建立与该TTE的连接,并建立该TTE连接的SDWAN隧道。

¡     若路由域或组ID存在不同,则不建立TTE连接与SDWAN隧道。

说明

如果配置将传输网络的ID作为SDWAN隧道建立的限制条件,则除了路由域和组ID相同外,还需要传输网络的ID相同,才可以建立SDWAN隧道。

 

为了保证数据安全传输,可以对数据报文进行IPsec加密。

如果RR对IP前缀路由进行全反射,会使得同一路由域内任意两台CPE间均建立SDWAN隧道。在该网络中,理论上所有站点都能实现互访,存在数据安全隐患;且路由域中的设备数量过多也会对设备性能和网络带宽带来巨大压力。

针对上述问题,网络管理员可以在RR上设置针对IPv4 Tnl-encap-ext路由或SDWAN封装的IP前缀路由的出口策略,使得RR有选择性地将TTE信息以及IP前缀路由只反射给部分CPE。这样只有接收到了TTE信息以及IP前缀路由的CPE之间会建立SDWAN隧道,未接收到TTE信息或IP前缀路由的CPE之间不会建立SDWAN隧道,以实现按需建立SDWAN隧道。按需建立SDWAN隧道可以节约设备资源,并且不建立隧道的租户间无法通信,从而实现了租户隔离。

1.5.4  SDWAN扩展隧道

1. 简介

在RIR-SDWAN协同选路组网中,CPE设备之间建立选路协同关系后,会将TTE连接信息和RIR的链路质量信息同步到对端设备上,保障智能选路功能为业务流量选择最优链路进行转发。当选择的最优链路位于对端设备上时,本端设备会通过SDWAN扩展隧道将业务流量转发到对端设备上,再由对端设备对业务流量进行转发。

2. 报文封装格式

图1-6所示,SDWAN扩展隧道的数据报文封装格式为:在数据部分外添加24字节SDWAN扩展头、GRE头和20字节IP头。SDWAN扩展头主要包括如下部分:

·     Type:表示报文的类型,长度为8比特。取值为1时,表示控制报文;为2时,表示数据报文。

·     Sub Type:表示报文的子类型,长度为8比特。取值为1时,表示BFD报文。

·     Protocol:表示原报文的协议类型,长度为8比特。取值为AF_INET时,表示IPv4报文;取值为AF_INET6时,表示IPv6报文。

·     Version:表示内层报文版本号,目前取值固定为0。

·     Length:表示SDWAN扩展头的长度,长度为16比特。

·     Reserved:保留字段,取值固定为0。

·     VN ID:表示报文所属的VPN实例的VN ID,长度为32比特。若报文属于公网实例,则本字段为全0。

·     Flow ID:表示报文所属的流ID,长度为32比特。

·     Local TTE ID:本端TTE ID,长度为32比特。

·     Remote TTE ID:远端TTE ID,长度为32比特。

图1-6 SDWAN扩展隧道数据报文封装格式示意图

 

图1-7所示,SDWAN扩展隧道的控制报文封装格式为:在数据部分外添加8字节SDWAN扩展头、GRE头和20字节IP头。目前,控制报文主要是指用于检测SDWAN扩展隧道的BFD控制报文。SDWAN扩展头主要包括如下部分:

图1-7 SDWAN扩展隧道控制报文封装格式示意图

 

3. 报文转发

图1-8 报文转发示意图

 

图1-8所示,CPE 1与CPE 2建立选路协同关系,并将TTE连接信息和RIR的链路质量信息同步到对端设备上。当CPE 1从本地站点接收到访问中心站点的业务流量,且CPE 1通过智能选路功能选择出的最优链路为CPE 2设备上的链路时,CPE 1设备会对业务流量进行封装。先在数据部分外添加24字节SDWAN扩展头(其中Local TTE ID为TTE 2,Remote TTE ID为TTE 4)、GRE头和20字节IP头,然后将封装后的数据报文通过扩展隧道转发到CPE 2。CPE 2解封装报文,根据SDWAN扩展头中Local TTE ID和Remote TTE ID获取转发该数据报文的TTE连接,然后对解封装后的报文进行SDWAN封装,封装的SDWAN报文头中的VN ID和Flow ID即为从SDWAN扩展头中获取的VN ID和Flow ID,然后通过TTE连接将报文转发给RR。

1.6  路由信息发布

图1-9所示,在SDWAN网络中,站点间的路由发布过程包含三部分:本地站点向CPE发布VPN路由、CPE之间发布路由、CPE向本地站点发布VPN路由。完成这三部分后,站点之间将建立可达路由。

图1-9 路由信息发布示意图

 

2. 本地站点向本端CPE发布路由

本地站点使用静态路由、RIP、OSPF、IS-IS、EBGP或IBGP,将本站点的VPN路由发布给本端CPE。本地站点发布给CPE的是标准的IPv4路由。

3. 本端CPE与远端CPE之间发布路由

CPE从本地站点学到VPN路由信息后,将其存放到VPN实例的路由表中。CPE为这些标准的IPv4路由增加RD和Export Target属性,通过BGP EVPN的IP前缀路由发布给RR,该路由的下一跳地址为本端CPE的System IP。RR将收到的IP前缀路由反射给远端CPE。远端CPE收到RR反射的IP前缀路由后,将IP前缀路由的Export Target属性与自己维护的VPN实例的Import Target属性进行匹配。如果远端CPE上某个VPN实例的Import Target属性与路由的Export Target属性中存在相同的属性值,则接收该IP前缀路由并将其添加到VPN路由表中。

4. 远端CPE向远端站点发布路由

与本地站点向CPE发布路由信息相同,远端站点可以通过多种方式从远端CPE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS、EBGP和IBGP。

1.7  报文转发

在SDWAN网络中,CPE设备收到用户站点发送的报文后,根据目的IP查找路由表获取报文的出接口和下一跳信息。不同出接口的转发方式不同:

·     若出接口为CPE的本地接口,则根据转发表将报文从出接口直接转发给下一跳。

·     若出接口为SDWAN隧道接口,则:

a.     根据转发表的下一跳地址,获取下一跳地址的TTE ID。

b.     根据本端和下一跳的TTE ID获取对应TTE连接的信息。

c.     根据该TTE连接信息对报文进行SDWAN封装,封装的SDWAN头中携带数据报文所属VPN实例的VN ID。不同VPN的报文可能迭代到同一条SDWAN隧道上,通过SDWAN头携带的VN ID,可以区分不同的VPN实例,如图1-10所示。

d.     通过SDWAN隧道指定的物理出接口将报文转发出去。

e.     远端CPE接收并解封装SDWAN报文后,根据VN ID在对应的VPN实例中查找路由表转发该报文。

图1-10 SDWAN隧道转发报文示意图

 

1.8  IPsec保护SDWAN隧道

为了保障SDWAN隧道传输数据的机密性和完整性,设备支持通过IPsec为SDWAN报文提供安全保护。为此,IPsec进行了如下扩展:

·     支持SDWAN方式的IPsec安全框架。

·     支持通信对等体之间的多个SDWAN隧道共用一对IPsec SA。

有关IPsec的详细介绍,请参见“安全配置指导”中的“IPsec”。

1.9  穿越NAT建立SDWAN隧道

图1-11所示,在SDWAN网络中,为了节省IP地址资源,分支站点的用户经常会使用私网IP地址。通过NAT将私网IP地址转换为公网IP地址后,该站点的用户才能访问其他站点。CPE发出的报文在经过NAT设备后,IP地址会发生变化。如果无法获取NAT转换后的IP地址,则CPE与CPE/RR之间无法建立SDWAN通道。为了解决此问题,需要在SDWAN组网中部署STUN(Session Traversal Utilities for NAT,NAT环境下的会话传输)功能或在CPE/RR上配置NAT转换后的公网IP地址和公网端口号。关于STUN的详细介绍,请参见“NAT与IPv6过渡技术配置指导”中的“STUN”。

STUN采用C/S模式,由STUN客户端(STUN client)和STUN服务器(STUN server)组成。在SDWAN网络中,通常将CPE部署为STUN客户端,将RR部署为STUN服务器。客户端通过与服务器进行报文交互,能够发现网络中是否存在NAT设备,并确定经过NAT设备转换后的IP地址和端口号。STUN客户端探测到转换后的IP地址和端口号后,采用该IP地址与其他CPE建立SDWAN隧道;若CPE之间无法直接建立数据通道,则需要通过在公网中部署NAT transfer(NAT传输)设备来实现互通。

图1-11 穿越NAT建立SDWAN隧道示意图

 

图1-12 部署NAT transfer的SDWAN隧道示意图

 

部署NAT transfer的SDWAN组网如图1-12所示。下面以该组网为例,说明穿越NAT建立SDWAN隧道的过程。

1.9.2  控制通道建立

(1)     ‍STUN client与STUN server之间交互STUN协议报文,STUN client探测到本端NAT类型、Public IP地址(即访问STUN server时NAT转换后的Public IP)和端口号。

(2)     SDWAN client与SDWAN server之间建立SSL连接,然后互相发送TTE信息(包含STUN探测到的NAT类型、Public IP等)。

(3)     CPE 1、CPE 2和NAT transfer收到RR的TTE信息后,比较TTE信息中的路由域与本地是否相同。若路由域相同,则建立到达RR的SDWAN隧道,使用RR的TTE信息中Public IP作为隧道的目的IP;若路由域不同,则不建立SDWAN隧道。

(4)     RR收到CPE 1、CPE 2和NAT transfer的TTE信息后,比较TTE信息中的路由域与本地是否相同。若路由域相同,则分别建立到达CPE 1、CPE 2和NAT transfer的SDWAN隧道。

NAT transfer部署在公网中,则RR建立到达Public IP地址的SDWAN隧道。该Public IP地址为NAT transfer的TTE信息中的Public IP。

若CPE 1、CPE 2的TTE信息中NAT类型为完全锥型NAT,则RR建立到达Public IP地址的SDWAN隧道。该Public IP地址为CPE的TTE信息中的Public IP。

若CPE 1、CPE 2的TTE信息中NAT类型为对端口限制锥型NAT、限制锥型NAT或对称NAT,则RR无法通过TTE信息中的Public IP访问CPE 1、CPE 2,所以RR无法按照当前获取的信息建立到达CPE 1、CPE 2的SDWAN隧道。需要按照如下步骤建立SDWAN隧道。

a.     ‍CPE 1、CPE 2设备通过CPE到RR的SDWAN隧道周期性地发送SDWAN控制报文。

b.     RR将接收到的SDWAN控制报文的外层源IP地址作为Public IP地址,建立到达CPE 1、CPE 2的Public IP地址的SDWAN隧道。

(5)     完成SDWAN隧道建立后,CPE 1、CPE 2、NAT transfer和RR在设备上添加到达对端Systerm IP的UNR(User network route,用户网络路由)路由。

(6)     CPE 1、CPE 2、NAT transfer和RR之间基于Systerm IP建立IPv4 Tnl-Encap-Ext地址族下的BGP连接(控制通道)。

1.9.3  数据通道建立

(1)     ‍CPE 1、CPE 2、NAT transfer与RR建立BGP连接(控制通道)后,CPE 1、CPE 2、NAT transfer通过IPv4 Tnl-encap-ext路由向RR发送TTE信息,由RR将TTE信息反射到其他BGP邻居。

(2)     CPE之间通过比较NAT类型,判断能否直接建立数据通道,如表1-1所示。

a.     ‍若CPE之间可以直接建立数据通道,建立过程请参见“控制通道建立”。

b.     若CPE之间无法直接建立数据通道,则需要通过在网络中部署NAT transfer设备来实现互通。CPE与NAT transfer之间建立数据通道,CPE之间的数据转发需要先通过数据通道转发到NAT transfer设备,再由NAT transfer设备通过数据通道转发到其他CPE,从而实现CPE之间的互通。CPE与NAT transfer之间建立数据通道的过程与CPE与RR之间建立SDWAN隧道的过程相同,具体参见“控制通道建立”。

表1-1 SDWAN网络中的NAT类型组合

CPE 1的NAT类型

CPE 2的NAT类型

CPE之间是否可以直接建立隧道

是否需要部署NAT transfer实现CPE互通

无NAT

完全锥型NAT

×

无NAT

端口限制锥型NAT/限制锥型NAT

×

无NAT

对称NAT

×

无NAT

未知类型NAT

×

无NAT

静态NAT

×

完全锥型NAT

完全锥型NAT

×

完全锥型NAT

端口限制锥型NAT/限制锥型NAT

×

完全锥型NAT

对称NAT

×

完全锥型NAT

未知类型NAT

×

完全锥型NAT

静态NAT

×

端口限制锥型NAT/限制锥型NAT

端口限制锥型NAT/限制锥型NAT

×

端口限制锥型NAT/限制锥型NAT

对称NAT

×

端口限制锥型NAT/限制锥型NAT

未知类型NAT

×

端口限制锥型NAT/限制锥型NAT

静态NAT

×

对称NAT

对称NAT

×

对称NAT

未知类型NAT

×

对称NAT

静态NAT

×

未知类型NAT

未知类型NAT

×

 

1.10  基于WAAS和QUIC动态优化SDWAN传输质量

1. 功能简介

在企业部署SDWAN的广域网环境中,依赖互联网链路(如MPLS或公网)的跨地域通信常面临丢包、时延和抖动等问题,导致视频会议卡顿、云端应用响应缓慢等业务体验下降。通过本功能,当WAAS基于iNQA检测到SDWAN隧道的传输质量(如丢包率、时延)低于预设阈值时,可自动启用QUIC(Quick UDP Internet Connections,快速UDP互联网连接)协议封装。利用QUIC的多路复用、前向纠错(FEC)及0-RTT快速连接等能力,可以实现在劣质链路上提供接近专线的传输效果。本功能尤其适用于通过低成本互联网链路保障高优先级业务(如VoIP、实时数据库同步)稳定性的场景,助力企业以经济高效的方式实现广域网性能与可靠性的双重提升。

2. 工作机制

图1-13所示,SDWAN基于WAAS和QUIC优化广域网流量转发的过程为:

(1)     流量分类与重定向

CPE设备通过预定义的QoS策略(如基于应用类型、DSCP标记等)识别需进行WAAS优化的流量(如实时视频、数据库同步流量),并将其重定向至WAAS实例,以便通过WAAS对流量转发进行优化。

(2)     链路质量动态感知与QUIC连接建立

WAAS通过iNQA模块监测SDWAN隧道的关键指标(丢包率、延迟、抖动)。当链路质量劣化时,iNQA检测到某一个指标超过预设阈值,WAAS立即通知SDWAN建立QUIC连接,即基于SDWAN隧道的QUIC连接(QUIC over SDWAN隧道)。

(3)     数据封装与转发

QUIC连接建立后,CPE将为匹配QoS策略的流量添加QUIC封装,之后再为其添加SDWAN头,通过SDWAN隧道来转发QUIC报文。这样,就可以通过QUIC来提高SDWAN隧道上数据传输的质量。

(4)     动态回退与资源释放

当SDWAN隧道的链路质量恢复正常时,iNQA检测到所有链路指标都低于预设的阈值,则WAAS通知SDWAN断开QUIC连接,业务流量恢复到直接添加SDWAN头转发,释放QUIC占用的计算与带宽资源,实现按需优化的资源调度。

图1-13 SDWAN基于WAAS和QUIC优化广域网流量转发流程图

 

 


2 配置SDWAN

2.1  SDWAN配置任务简介

SDWAN配置任务如下:

(1)     配置站点信息和设备标识

a.     配置设备所属的站点

b.     配置设备在SDWAN网络的标识

(2)     配置SDWAN client与server

a.     配置SDWAN client

b.     配置SDWAN server

(3)     (可选)配置IPsec保护SDWAN隧道

配置方法请参见“安全配置指导”中的“IPsec”。

(4)     (可选)配置穿越NAT建立SDWAN隧道

配置方法请参见“三层技术-IP业务配置指导”中的“NAT”

(5)     配置SDWAN隧道

(6)     配置BGP发布IPv4 Tnl-encap-ext路由

(7)     配置通过IP前缀路由发布站点VPN路由

¡     CPE配置

¡     RR配置

¡     (可选)通过Priority-Color属性实现流量逃生以及负载分担

¡     (可选)配置IP前缀路由仅通过Priority-Color扩展团体属性迭代下一跳

(8)     (可选)配置SDWAN网络与异构网络互通

¡     配置SDWAN网络穿越EVPN VXLAN网络

¡     配置SDWAN网络与EVPN L3VPN over SRv6网络互联

(9)     (可选)配置NAT转换后的公网IP地址和公网端口号

(10)     (可选)Hub-Spoke组网中简化QoS业务配置

(11)     (可选)SDWAN网络中应用QoS自适应模板

(12)     (可选)配置基于WAAS和QUIC动态优化SDWAN传输质量

2.2  配置站点信息和设备标识

2.2.1  配置设备所属的站点

1. 功能简介

站点ID是站点在SDWAN网络中的唯一标识。

站点名称可以描述站点的位置、功能等,方便用户更好地识别站点在SDWAN网络中的作用。站点名称不是站点的唯一标识,不同的设备可以配置相同的站点名称。

2. 配置限制和指导

不同的站点角色在SDWAN网络中的作用不同,站点角色变更会导致SDWAN隧道震荡,从而对业务产生影响,建议在网络部署前规划好设备角色。

3. 配置步骤

(1)     ‍进入系统视图。

system-view

(2)     配置设备所属站点的站点ID。

sdwan site-id site-id

缺省情况下,未配置设备的站点ID。

(3)     配置设备所属站点的站点名称。

sdwan site-name site-name

缺省情况下,未配置设备的站点名称。

(4)     配置设备所属站点的角色。

sdwan site-role { cpe | nat-transfer | rr } *

缺省情况下,未配置站点的角色。

同一个站点内所有支持SDWAN功能的设备上必须配置相同的站点角色。

2.2.2  配置设备在SDWAN网络的标识

1. 功能简介

设备的ID是设备在站点内的唯一标识。

设备的系统IP是本设备与其他设备建立BGP会话时使用的IP地址。

2. 配置步骤

(1)     ‍进入系统视图。

system-view

(2)     配置设备的ID。

sdwan device-id device-id

缺省情况下,未配置设备的ID。

(3)     配置设备的IPv4系统IP。

sdwan system-ip interface-type interface-number

缺省情况下,未配置设备的IPv4系统IP。

设备的系统IP必须在SDWAN网络中唯一。

配置设备的系统IP时,只有指定的接口为配置了IPv4地址的LoopBack接口时,本配置才生效。

2.3  配置SDWAN client

1. 功能简介

在SDWAN网络中,CPE/NAT transfer与RR之间通过SSL连接互相发送TTE信息。其中CPE/NAT transfer作为SDWAN client,RR作为SDWAN server。

通过本功能在CPE/NAT transfer上指定与RR建立SSL连接时引用的SSL客户端策略后,CPE/NAT transfer将采用该策略与RR建立SSL连接。SSL连接建立成功后,CPE/NAT transfer将自身的TTE信息发送给RR,RR将自身的TTE信息发送给CPE/NAT transfer设备,完成TTE信息的交互,以便在CPE/NAT transfer与RR之间建立SDWAN隧道。

2. 配置限制和指导

一个SSL连接只能引用一个SSL客户端策略。多次执行sdwan ssl-client-policy命令,最后一次执行的命令生效。但新的策略仅对修改配置后新创建的SSL连接生效。

3. 配置准备

配置本功能前需要先完成SSL客户端策略配置。关于SSL客户端策略的详细介绍,请参见“安全配置指导”中的“SSL”。

4. 配置步骤

(1)     ‍进入系统视图。

system-view

(2)     在CPE上指定SDWAN server的信息。

sdwan server system-ip system-ip-address ip { ip ipv4-address | ipv6 ipv6-address } [ port port-number ] [ vpn-instance vpn-instance-name ]

缺省情况下,CPE上未指定SDWAN server的信息。

(3)     在CPE上指定与RR(SDWAN server)建立SSL连接时引用的SSL客户端策略。

sdwan ssl-client-policy policy-name

缺省情况下,未指定与RR(SDWAN server)建立SSL连接时引用的SSL客户端策略。

2.4  配置SDWAN server

1. 功能简介

执行本配置后,RR将与CPE/NAT transfer建立SSL连接,并通过SSL连接将自身的TTE信息发送给CPE/NAT transfer设备。CPE/NAT transfer也通过SSL连接将自身的TTE信息发送给RR。完成TTE信息的交互后,RR与CPE/NAT transfer将根据TTE信息建立SDWAN隧道。

SSL连接有以下两种建立方式:

·     简便方式:RR上无需配置SSL服务器端策略,RR使用自签名证书(RR自己生成的证书,无需从CA获取)、各SSL参数的缺省值与CPE/NAT transfer建立SSL连接。这种方式简化了配置,但是存在安全隐患。

·     安全方式:设备需要配置SSL服务器端策略、PKI域等。这种方式配置复杂,但是具有更高的安全性。

2. 配置限制和指导

一个SSL连接只能引用一个SSL服务器端策略。重复执行sdwan ssl-server-policy命令修改SSL连接引用的SSL服务器端策略后,修改后的策略不会生效。只有先执行undo sdwan server enable命令,再执行sdwan server enable命令,新的策略才会生效。

3. 配置准备

如果采用安全方式建立SSL连接,则需要先完成SSL服务器端策略配置。关于SSL服务器端策略的详细介绍,请参见“安全配置指导”中的“SSL”。

4. 配置步骤

(1)     ‍进入系统视图。

system-view

(2)     在RR设备上开启SDWAN server服务。

sdwan server enable

缺省情况下,RR设备上的SDWAN server服务处于关闭状态。

(3)     在RR上配置SDWAN server服务的TCP端口号。

sdwan server port port-number

缺省情况下,SDWAN server服务的TCP端口号为2004。

(4)     (可选)在RR上指定与CPE(SDWAN client)之间建立SSL连接时引用的SSL服务器端策略。

sdwan ssl-server-policy policy-name

缺省情况下,未指定与CPE之间建立SSL连接时引用的SSL服务器端策略。

2.5  配置SDWAN隧道

1. 功能简介

当本端SDWAN隧道建立完成后,设备会通过该隧道上建立的所有TTE连接按照指定的时间间隔向对端发送Keepalive请求报文。

·     如果本端在发送Keepalive请求报文的时间间隔内收到对端发送的Keepalive应答报文,则认为本端与对端的TTE连接可达。

·     如果本端未在发送Keepalive请求报文的时间间隔内收到对端发送的Keepalive应答报文,则本端会尝试重新发送Keepalive请求报文。若在发送Keepalive请求报文的时间间隔×允许未收到Keepalive应答报文的最大连续次数时间内没有收到Keepalive应答报文,则认为本端与对端的TTE连接不可达,将不再使用该TTE连接转发报文。

2. 配置限制和指导

关于隧道的详细介绍及Tunnel接口下的更多配置命令,请参见“三层技术-IP业务配置指导”中的“隧道”。

系统视图和Tunnel接口视图下均可以配置SDWAN报文采用UDP封装时的源UDP端口号。系统视图的配置对所有Tunnel接口都有效,而Tunnel接口视图下的配置只对当前Tunnel接口有效。对于一个Tunnel接口来说,优先采用该Tunnel接口视图下的配置,只有该Tunnel接口下未进行配置时,才采用系统视图的配置。

3. 配置步骤

(1)     ‍进入系统视图。

system-view

(2)     (可选)配置全局SDWAN报文采用UDP封装时的源UDP端口号。

sdwan encapsulation global-udp-port port-number

缺省情况下,全局SDWAN报文的源UDP端口号为4799。

(3)     创建模式为UDP封装的SDWAN Tunnel接口,并进入Tunnel接口视图。

(IPv4网络)

interface tunnel tunnel-number mode sdwan udp

(IPv6网络)

interface tunnel tunnel-number mode sdwan udp ipv6

在隧道的两端应配置相同的隧道模式,否则会造成报文传输失败。

(4)     指定发送隧道报文时的物理出接口。

tunnel out-interface out-interface-type out-interface-number

缺省情况下,未指定发送隧道报文的出接口,如果存在多条等价路径,随机选择一个出接口发送隧道报文。

(5)     配置SDWAN隧道接口的接口ID。

sdwan interface-id interface-id

缺省情况下,未配置SDWAN隧道接口的接口ID。

(6)     (可选)配置SDWAN报文采用UDP封装时的源UDP端口号。

sdwan encapsulation udp-port port-number

缺省情况下,SDWAN报文的源UDP端口号与全局配置的源UDP端口号保持一致。

(7)     配置SDWAN隧道的路由域。

sdwan routing-domain domain-name id domain-id

缺省情况下,未配置SDWAN隧道的路由域。

(8)     配置SDWAN隧道使用的传输网络。

sdwan transport-network network-name id network-id [ restrict ]

缺省情况下,未配置SDWAN隧道使用的传输网络。

(9)     配置隧道的源端地址。请选择其中一项进行配置。

¡     直接指定隧道的源端地址。

(IPv4网络)

source ipv4-address

(IPv6网络)

source ipv6-address

指定的地址将作为封装后SDWAN报文的源IP地址。

¡     指定隧道的源接口。

source interface-type interface-number

采用指定接口的IP地址作为封装后SDWAN报文的源IP地址。

缺省情况下,未设置SDWAN隧道的源端地址。

(10)     (可选)配置SDWAN隧道发送Keepalive请求报文的时间间隔和允许未收到Keepalive应答报文的最大连续次数。

sdwan keepalive interval interval [ retry retries ]

缺省情况下,SDWAN隧道发送Keepalive请求报文的时间间隔为10秒,允许未收到Keepalive应答报文的最大连续次数为3次。

在应用智能选路的SDWAN组网中,建议将发送Keepalive请求报文的时间间隔配置为1~5秒。

2.6  配置BGP发布IPv4 Tnl-encap-ext路由

2.6.1  配置限制和指导

BGP相关命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。

2.6.2  开启BGP发布IPv4 Tnl-encap-ext路由能力

(1)     进入系统视图。

system-view

(2)     启动BGP实例,并进入BGP实例视图。

bgp as-number [ instance instance-name ]

缺省情况下,没有运行BGP,不存在BGP实例。

(3)     将CPE或RR配置为对等体。

peer { group-name | ipv4-address [ mask-length ] } as-number as-number

(4)     创建BGP IPv4 Tnl-encap-ext地址族,并进入BGP IPv4 Tnl-encap-ext地址族视图。

address-family ipv4 tnl-encap-ext

(5)     使能与指定对等体/对等体组交换IPv4 Tnl-encap-ext路由信息的能力。

peer { group-name | ipv4-address [ mask-length ] } enable

缺省情况下,不能与等体/对等体组交换IPv4 Tnl-encap-ext路由信息。

2.6.3  配置BGP IPv4 Tnl-encap-ext路由

1. 控制BGP IPv4 Tnl-encap-ext路由的发布和接收

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4 Tnl-encap-ext地址族视图。

address-family ipv4 tnl-encap-ext

(4)     对发布给对等体/对等体组的路由或来自对等体/对等体组的路由应用路由策略。

peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }

缺省情况下,没有为对等体/对等体组指定路由策略。

(5)     设置允许从指定对等体/对等体组收到的路由数量。

peer { group-name | ipv4-address [ mask-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *

缺省情况下,不限制从对等体/对等体组接收的路由数量。

2. 配置BGP IPv4 Tnl-encap-ext路由属性

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4 Tnl-encap-ext地址族视图。

address-family ipv4 tnl-encap-ext

(4)     配置路由的NEXT_HOP属性,请选择其中一项进行配置。

¡     向对等体/对等体组发布路由时,将下一跳属性修改为自身的地址。

peer { group-name | ipv4-address [ mask-length ] } next-hop-local

¡     向对等体/对等体组发布路由时,不修改路由的下一跳属性。

peer { group-name | ipv4-address [ mask-length ] } next-hop-invariable

缺省情况下,设备向EBGP对等体/对等体组发布的所有路由时,都将下一跳属性修改为自身的地址;向IBGP对等体/对等体组发布EBGP路由时,不修改下一跳属性。

peer next-hop-local命令与peer next-hop-invariable命令互斥。

(5)     为从指定对等体/对等体组接收的路由分配首选值。

peer { group-name | ipv4-address [ mask-length ] } preferred-value value

缺省情况下,从对等体/对等体组接收的路由的首选值为0。

(6)     配置对于从对等体/对等体组接收的BGP消息,允许本地AS号在该消息的AS_PATH属性中出现,并配置允许出现的次数。

peer { group-name | ipv4-address [ mask-length ] } allow-as-loop [ number ]

缺省情况下,不允许本地AS号在接收消息的AS_PATH属性中出现。

(7)     配置设备将BGP路由的MED属性传递给指定的EBGP对等体/对等体组。

peer { group-name | ipv4-address [ mask-length ] } transmit-med-to-ebgp

缺省情况下,设备无法将收到的BGP路由中的MED属性传递给任何EBGP对等体。

3. 配置BGP路由反射

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4 Tnl-encap-ext地址族视图。

address-family ipv4 tnl-encap-ext

(4)     配置RR作为路由反射器,CPE或NAT设备作为路由反射器的客户机。

peer { group-name | ipv4-address [ mask-length ] } reflect-client

缺省情况下,没有配置路由反射器及其客户机。

(5)     (可选)允许路由反射器在客户机之间反射IPv4 Tnl-encap-ext路由。

reflect between-clients

缺省情况下,允许路由反射器在客户机之间反射IPv4 Tnl-encap-ext路由。

(6)     (可选)配置路由反射器的集群ID。

reflector cluster-id { cluster-id | ipv4-address }

缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。

4. 配置团体属性

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv4 Tnl-encap-ext地址族视图。

address-family ipv4 tnl-encap-ext

(4)     配置向对等体/对等体组发布团体属性。

peer { group-name | ipv4-address [ mask-length ] } advertise-community

缺省情况下,不向对等体/对等体组发布团体属性。

(5)     配置向对等体/对等体组发布扩展团体属性。

peer { group-name | ipv4-address [ mask-length ] } advertise-ext-community

缺省情况下,不向对等体/对等体组发布扩展团体属性。

2.6.4  维护BGP会话

请在用户视图下执行如下命令,复位或软复位BGP会话。

·     复位Tnl-encap-ext地址族下的BGP会话。

reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all |external | group group-name | internal } ipv4 tnl-encap-ext

·     手工对Tnl-encap-ext地址族下的BGP会话进行软复位。

refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } ipv4 tnl-encap-ext

2.7  配置通过IP前缀路由发布站点VPN路由

2.7.1  CPE配置

1. 功能简介

在SDWAN网络中,CPE之间通过IP前缀路由发布站点VPN路由,因此需要在CPE上开启发布SDWAN封装的EVPN路由的能力。

在SDWAN网络支持不同VPN实例的多租户场景下,CPE通常需要完成以下配置:

·     在VPN实例IPv4地址族视图下开启EVPN通告SDWAN路由功能,将VPN路由表中的VPN路由作为EVPN的IP前缀路由发布,该路由携带的封装类型为SDWAN封装。

·     在VPN实例视图下配置VPN实例的VN ID,VPN路由作为IP前缀路由发布时,会携带对应VPN实例下的VN ID,以区分不同租户的报文,实现租户之间的隔离。

·     在BGP EVPN地址族视图下配置向RR发布SDWAN封装的EVPN路由。

2. 配置限制和指导

在CPE上,evpn sdwan routing-enable命令和peer advertise encap-type sdwan命令需要配合使用。否则,CPE无法将VPN实例下的路由信息发布给RR。

3. 配置步骤

(1)     ‍进入系统视图。

system-view

(2)     进入VPN实例视图。

ip vpn-instance vpn-instance-name

(3)     配置VPN实例的VN ID。

sdwan vn-id vn-id

缺省情况下,未配置VPN实例的VN ID。

(4)     进入VPN实例IPv4地址族视图或VPN实例IPv6地址族视图。

¡     进入VPN实例IPv4地址族视图。

address-family ipv4

¡     进入VPN实例IPv6地址族视图。

address-family ipv6

(5)     开启EVPN通告SDWAN路由功能。

evpn sdwan routing-enable

缺省情况下,EVPN通告SDWAN路由功能处于关闭状态。

(6)     退回系统视图。

quit

quit

(7)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(8)     进入BGP EVPN地址族视图。

address-family l2vpn evpn

(9)     配置向RR发布SDWAN封装的EVPN路由。

peer { group name | ipv4-address [ mask-length ] } advertise encap-type sdwan

缺省情况下,设备不向对等体/对等体组发布SDWAN封装的EVPN路由。

2.7.2  RR配置

1. 功能简介

在SDWAN网络中,RR通常作为路由反射器在CPE之间传递站点VPN路由,因此需要在RR上开启向CPE发布SDWAN封装的EVPN路由的能力。

2. 配置步骤

(1)     ‍进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP EVPN地址族视图。

address-family l2vpn evpn

(4)     配置BGP路由反射。

a.     ‍配置本机作为路由反射器,CPE作为路由反射器的客户机。

peer { group-name | ipv4-address [ mask-length ] } reflect-client

缺省情况下,没有配置路由反射器及其客户机。

b.     (可选)允许路由反射器在客户机之间反射EVPN路由。

reflect between-clients

缺省情况下,允许路由反射器在客户机之间反射EVPN路由。

c.     (可选)配置路由反射器的集群ID。

reflector cluster-id { cluster-id | ipv4-address }

缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。

d.     (可选)配置路由反射器对反射的EVPN路由进行过滤。

rr-filter ext-comm-list-number

缺省情况下,路由反射器不会对反射的EVPN路由进行过滤。

e.     (可选)允许路由反射器反射路由时修改路由属性。

reflect change-path-attribute

缺省情况下,不允许路由反射器反射路由时修改路由属性。

(5)     配置向CPE发布SDWAN封装的EVPN路由。

peer { group name | ipv4-address [ mask-length ] } advertise encap-type sdwan

缺省情况下,设备不向对等体/对等体组发布SDWAN封装的EVPN路由。

2.7.3  通过Priority-Color属性实现流量逃生以及负载分担

1. Priority-Color扩展团体属性简介

Priority-Color扩展团体属性是BGP路由的一种扩展团体属性,只能用于SDWAN封装的EVPN路由。在SDWAN网络中,通过添加Priority-Color扩展团体属性,可以为EVPN路由增加备份路径,实现SDWAN网络中数据流量通道故障时的流量逃生。

Priority-Color扩展团体属性的格式为优先级:Site ID:Device ID或优先级:Site ID。其中,优先级的数值决定了备份路径的优先级,该数值越小,优先级越高;Site ID和Device ID标识了SDWAN网络中的一个或多个逃生站点(即SDWAN设备)。

2. Priority-Color扩展团体属性的作用机制

IP前缀路由中未携带Priority-Color扩展团体属性时,只能在BGP-VPN实例路由表和VPN实例IP路由表中添加一条路由,路由的下一跳即为IP前缀路由的下一跳。当这个下一跳不可达时,IP前缀路由也将失效,到达该IP前缀的流量转发将中断。

IP前缀路由携带Priority-Color扩展团体属性后,能够在BGP-VPN实例路由表中添加一条主路由,和多条备路由。如果Priority-Color扩展团体属性中包含Device ID,则设备根据每一个Priority-Color扩展团体属性生成一条备路由;如果Priority-Color扩展团体属性中不包含Device ID,则设备根据Site ID对应站点中的每一台SDWAN设备生成一条备路由。主备路由的前缀相同,备路由添加到VPN实例IP路由表时,下一跳为Priority-Color扩展团体属性中Site ID和Device ID代表设备的System IP。

主路由正常可达时,该路由会被添加到VPN实例IP路由表中。主路由失效时,备路由中最优的一条会被添加到VPN实例IP路由表中。判断最优路由的条件是:

(1)     ‍根据生成备路由的Priority-Color扩展团体属性的优先级值进行判断,优先级数值越小,优先级越高。

(2)     如果多条备路由优先级值相同,则下一跳IP地址最小的备路由为最优。

如果在BGP-VPN IPv4单播地址族/BGP-VPN IPv6单播地址族下,设备通过balance命令开启了BGP负载分担,则无论主路由是否失效,优先级值相同的多条最优路由都可以被添加到VPN实例的IP路由表中,以实现SDWAN数据流量的负载分担。有关BGP负载分担的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。

在形成负载分担的过程中,主路由的优先级值视为0。例如,在开启了负载分担后,主路由正常可达时,主路由和多条优先级值为0的备路由均可以被添加到VPN实例的IP路由表中;主路由失效后,VPN实例IP路由表中的主路由不再参与负载分担,由其他优先级值为0的备路由形成负载分担。如果不存在优先级值为0的备路由,则主路由正常可达时,仅主路由被添加到VPN实例IP路由表中,不形成负载分担;主路由失效后,多条优先级数值最小且相同的备路由被添加到VPN实例IP路由表中,并且形成负载分担。

3. Priority-Color扩展团体属性应用举例

图2-1所示,在SDWAN网络中,CPE 1、CPE 2和CPE 3均通过RR反射BGP路由,并且两两之间均建立了SDWAN隧道。

图2-1 Priority-Color扩展团体属性应用场景图

 

CPE 2向RR发布本地站点的IP前缀路由。RR在向CPE 1反射这些路由时,可以使用路由策略为EVPN路由携带Priority-Color扩展团体属性,Priority-Color扩展团体属性中的Site ID和Device ID为逃生站点CPE 3的Site ID和Device ID。CPE 1接收到这些IP前缀路由后,会将这些路由添加到BGP-VPN实例的路由表中,并为每个IP前缀生成主备两条路由:

·     一条迭代到CPE 1与CPE 2之间SDWAN隧道的主路由。

·     一条迭代到CPE 1与CPE 3之间SDWAN隧道的备路由。

CPE 1和CPE 2之间的路径正常时,主路由将被添加到CPE 1的VPN实例IP路由表中。CPE 1接收到发往CPE 2所连站点的流量后,将会迭代到CPE 1与CPE 2之间的SDWAN隧道进行转发。CPE 1和CPE 2之间的路径出现故障时,主路由失效,备路由将被优选并添加到CPE 1的VPN实例IP路由表中,CPE 1接收到发往CPE 2所连站点的流量后,将会迭代到CPE 1与CPE 3之间的SDWAN隧道进行转发,经过CPE 3发往CPE 2,以实现流量逃生。

CPE 1和CPE 2之间的流量需要借助CPE 3的绕行路径进行负载分担时,可以在RR上将Priority-Color扩展团体属性的优先级配置为0,并在CPE 1上配置BGP路由的负载分担条数大于等于2。CPE 1接收到发往CPE 2所连站点的流量后,将会同时在CPE 1与CPE 2之间的SDWAN隧道、CPE 1与CPE 3之间的SDWAN隧道上进行负载分担转发。

4. 配置限制和指导

如需通过Priority-Color扩展团体属性实现负载分担,必须要在CPE设备的BGP-VPN IPv4单播地址族视图或BGP-VPN IPv6单播地址族视图下配置balance命令。有关balance命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。

5. 配置RR

(1)     ‍进入系统视图。

system-view

(2)     创建路由策略,并进入该路由策略视图。

route-policy route-policy-name { deny | permit } node node-number

(3)     (可选)配置if-match子句。

有关if-match子句的配置,请参见“三层技术-IP路由配置指导”中的“路由策略”。

(4)     配置BGP路由的Priority-Color扩展团体属性。

apply extcommunity priority-color priority-color&<1-32> [ additive ]

缺省情况下,未配置BGP路由的Priority-Color扩展团体属性。

(5)     退回系统视图。

quit

(6)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(7)     进入BGP EVPN地址族视图。

address-family l2vpn evpn

(8)     应用本配置中创建的路由策略,为EVPN路由添加Priority-Color扩展团体属性。

peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } route-policy route-policy-name { export | import }

缺省情况下,没有为对等体/对等体组指定路由策略。

2.7.4  配置IP前缀路由仅通过Priority-Color扩展团体属性迭代下一跳

1. 功能简介

缺省情况下,在BGP路由迭代的角度上,设备接收到携带了Priority-Color扩展团体属性的IP前缀路由后会同时通过路由的NEXT_HOP属性和Priority-Color扩展团体属性进行下一跳迭代。迭代的过程是:

·     NEXT_HOP属性的地址通常为远端CPE的System IP,设备根据该地址查找到对应的TTE连接,查找到的TTE连接对应的SDWAN隧道接口,即为IP前缀路由的下一跳迭代到的下一跳出接口。

·     每一个Priority-Color扩展团体属性中均携带了远端CPE的Site ID信息,或同时携带了远端CPE的Site ID以及Device ID信息。设备根据这些信息查找到对应的TTE连接,并查找到这些TTE连接对应的SDWAN隧道接口。这些SDWAN隧道接口即为根据Priority-Color扩展团体属性迭代到的下一跳出接口。

设备接收到匹配IP前缀路由的报文后,对报文的转发方式为:

·     如果未配置BGP路由的负载分担,则设备会通过根据IP前缀路由NEXT_HOP属性迭代到的SDWAN隧道转发报文。在根据IP前缀路由NEXT_HOP属性迭代到的SDWAN隧道不可用时,设备才会通过根据Priority-Color扩展团体属性迭代到的SDWAN隧道转发报文。

·     如果配置了BGP路由的负载分担,则设备可以同时通过根据IP前缀路由NEXT_HOP属性迭代到的SDWAN隧道、以及根据Priority-Color扩展团体属性迭代到的多条SDWAN隧道对报文进行负载分担转发。

由于Priority-Color易于配置,可以实现SDWAN转发路径的灵活控制,如果网络管理员希望携带Priority-Color扩展团体属性的IP前缀路由不经过上述流程进行迭代,直接通过Priority-Color扩展团体属性进行下一跳迭代,可以配置本功能。配置本功能后,设备接收到匹配IP前缀路由的报文时,仅会通过根据Priority-Color扩展团体属性迭代到的SDWAN隧道转发报文,使得转发路径不受IP前缀路由NEXT_HOP属性的限制,用户只需要修改Priority-Color扩展团体属性的配置就可以控制转发路径,以便灵活实现负载分担。

2. 配置限制和指导

本功能仅对SDWAN封装、携带Priority-Color扩展团体属性的IP前缀路由生效。

3. 配置步骤

(1)     ‍进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP EVPN地址族视图。

address-family l2vpn evpn

(4)     配置SDWAN封装的IP前缀路由仅通过Priority-Color扩展团体属性进行下一跳迭代。

evpn-sdwan nexthop-recursive priority-color-only

缺省情况下,设备接收到携带Priority-Color扩展团体属性的IP前缀路由后,先通过路由的NEXT_HOP属性进行下一跳迭代,再通过Priority-Color扩展团体属性进行下一跳迭代。

2.8  配置SDWAN网络穿越EVPN VXLAN网络

1. 功能简介

图2-2所示,CPE 1和CPE 2处在不同的SDWAN网络中,ASBR 1和ASBR 2同时属于SDWAN网络以及EVPN VXLAN网络。Site 1和Site 2的租户之间相互间通信时,需要穿越运营商的EVPN VXLAN网络。

图2-2 SDWAN网络穿越EVPN VXLAN网络示意图

 

在SDWAN网络的边界设备ASBR 1和ASBR 2上,配置peer re-originated命令可以实现本功能。配置了peer re-originated命令时:

·     ASBR 1和 ASBR 2在接收到SDWAN封装的IP前缀路由后,会将路由的下一跳修改为本地地址,并额外将该IP前缀路由的封装修改为VXLAN封装,使得该IP前缀路由可以被EVPN VXLAN网络的对等体接收并转发。

·     ASBR 1和 ASBR 2在接收到VXLAN封装的IP前缀路由后,会将路由的下一跳修改为本地地址,并额外将该IP前缀路由的封装修改为SDWAN封装,使得该IP前缀路由可以被SDWAN网络的对等体接收并转发。

通过上述过程,站点内的私网路由信息就可以穿越SDWAN网络和EVPN VXLAN网络到达远端站点,从而实现站点间租户的互相通信。

2. 配置限制和指导

为指定对等体配置了peer re-originated命令后,从该对等体接收到的BGP路由在向其他对等体转发时便只能转发修改了路由信息后的路由,导致网络间的边界设备在接收到VXLAN封装的IP前缀路由后无法转发给EVPN VXLAN网络中的其他对等体。如需网络间的边界设备能够发送修改路由信息前的源IP前缀路由,请配置peer advertise original-route命令。有关peer advertise original-route命令的详细介绍,请参见“Segment Routing命令参考”中的“SRv6 VPN”。

3. 配置准备

请在ASBR设备上完成EVPN VXLAN的相关配置,使得ASBR能够与BGP对等体交互VXLAN封装的BGP EVPN路由,并能够完成VXLAN流量的二三层转发。有关EVPN VXLAN的详细配置,请参见“EVPN配置指导”中的“EVPN VXLAN”。

请在ASBR设备上完成SDWAN的相关配置,使得ASBR能够与同一路由域内的RR和CPE建立SDWAN隧道、交互BGP IPv4 Tnl-encap-ext路由以及通过SDWAN封装的IP前缀路由发布站点VPN路由。

4. 配置ASBR

(1)     ‍进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP EVPN地址族视图。

address-family l2vpn evpn

(4)     配置从RR以及EVPN VXLAN对等体接收到IP前缀路由后,修改路由的封装类型。

peer { group-name | ipv4-address [ mask-length ] } re-originated [ ip-prefix ] [ replace-rt ]

缺省情况下,设备不修改从对等体/对等体组接收到的EVPN路由的信息。

有关本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。

2.9  配置SDWAN网络与EVPN L3VPN over SRv6网络互联

1. 功能简介

图2-3所示,Site 1和Site 2的租户之间相互间通信时,需要穿越SDWAN网络和EVPN L3VPN over SRv6网络。CPE位于SDWAN网络中;ASBR同时属于SDWAN网络和EVPN L3VPN over SRv6网络;PE位于EVPN L3VPN over SRv6网络。

图2-3 SDWAN网络与EVPN L3VPN over SRv6网络互联

 

在SDWAN网络的边界设备ASBR上,配置peer re-originated命令可以实现SDWAN网络互联EVPN L3VPN over SRv6网络。配置了peer re-originated命令后:

·     ASBR在接收到SDWAN封装的IP前缀路由后,会将路由的下一跳修改为本地地址,并将该IP前缀路由的封装修改为SRv6封装,使得EVPN L3VPN over SRv6网络的PE可以接收并转发该IP前缀路由。

·     ASBR在接收到SRv6封装的IP前缀路由后,会将路由的下一跳修改为本地地址,并将该IP前缀路由的封装修改为SDWAN封装,使得SDWAN网络的CPE可以接收并转发该IP前缀路由。

通过上述过程,站点内的私网路由信息就可以穿越SDWAN网络和EVPN L3VPN over SRv6网络到达远端站点,从而实现站点间租户的互访。

2. 配置限制和指导

为指定对等体配置了peer re-originated命令后,从该对等体接收到的BGP路由在向其他对等体转发时,只能转发修改了路由信息后的路由,如需网络间的边界设备能够发送修改路由信息前的源IP前缀路由,请配置peer advertise original-route命令。有关peer advertise original-route命令的详细介绍,请参见“Segment Routing命令参考”中的“SRv6 VPN”。

在ASBR设备上,接收到的SRv6封装的IP前缀路由和SDWAN封装的IP前缀路由必须学习到同一个VPN实例的路由表中。

跨越SDWAN网络和EVPN L3VPN over SRv6网络互通的租户必须属于同一个VPN实例。

3. 配置准备

请在ASBR设备上完成EVPN L3VPN over SRv6网络的相关配置,使得ASBR能够与PE交互SRv6封装的BGP EVPN路由,完成SRv6报文的转发。有关EVPN L3VPN over SRv6的详细配置,请参见“Segement Routing配置指导”中的“EVPN L3VPN over SRv6”。

请在ASBR设备上完成SDWAN的相关配置,使得ASBR能够与同一路由域内的RR和CPE建立SDWAN隧道、交互BGP IPv4 Tnl-encap-ext路由以及通过SDWAN封装的IP前缀路由发布站点VPN路由。

4. 配置ASBR

(1)     ‍进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP EVPN地址族视图。

address-family l2vpn evpn

(4)     配置从CPE和PE接收到IP前缀路由后,修改路由的封装类型和路由信息。

peer { group-name | ipv4-address [ mask-length ] } re-originated [ ip-prefix ] [ replace-rt ]

缺省情况下,设备不修改从对等体/对等体组接收到的EVPN路由的信息。

有关本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。

2.10  配置NAT转换后的公网IP地址和公网端口号

1. 功能简介

在穿越NAT建立SDWAN隧道的场景中,通过STUN协议可以探测隧道的源IP地址和端口号(即SDWAN报文封装时的源UDP端口号)经过NAT转换后的公网IP地址和公网端口号。但是,运行STUN协议会占用一定的网络资源,且对设备具有一定的要求,需要CPE/RR设备支持STUN。

通过本命令,可以在不部署STUN协议的情况下,获取到NAT转换后的公网IP地址和端口号。

在不部署STUN的情况下,CPE/RR设备可以通过以下两种方式获取NAT转换后的公网IP地址和端口号:

·     若NAT设备上配置的是静态NAT转换,则可以通过在CPE/RR上配置sdwan nat-global-ip global-address [ global-port global-port ]sdwan nat-global-ipv6 global-address [ global-port global-port ]命令,手工指定NAT转换后的公网IP地址和公网端口号。

·     若NAT设备上配置的是动态NAT转换,则可以在CPE/RR上配置sdwan nat-global-ip dynamicsdwan nat-global-ipv6 dynamic命令,指定NAT转换类型为动态NAT,以便获取NAT转换后的公网IP地址和公网端口号。如果两个CPE上都配置了NAT转换类型为动态NAT,则这两个CPE之间无法建立SDWAN隧道。只有一个CPE上配置NAT转换类型为动态NAT,另一个CPE上手工指定NAT转换后的公网IP地址和公网端口号,才可以在这两个CPE之间建立SDWAN隧道。动态NAT通常应用于Hub-Spoke组网,在Spoke CPE上配置NAT转换类型为动态NAT,在Hub CPE(一般同时作为RR设备)上手工指定NAT转换后的公网IP地址和公网端口号,以便在Spoke CPE和Hub CPE之间建立SDWAN隧道,Spoke CPE之间通过Hub CPE通信。

图2-4所示,在此组网下,公网IP地址和公网端口号获取过程为:

a.     ‍RR和Spoke CPE之间建立SSL连接后,RR和Spoke CPE通过SSL连接交互TTE信息,并建立TTE连接。其中,RR发布的TTE信息中包括手工指定的NAT转换后公网IP地址和公网端口号;Spoke CPE发布的TTE信息中NAT类型为动态NAT,其中不包含NAT转换后公网IP地址和公网端口号。

b.     Spoke CPE从接收到的TTE信息中获取到RR的公网IP地址和公网端口号。Spoke CPE发送报文对TTE连接进行Keepalive探测。RR未获取到Spoke CPE的公网IP地址和公网端口号,不会对TTE连接进行Keepalive探测。

c.     RR接收到Spoke CPE发送的Keepalive探测报文后,从该报文中获取Spoke CPE的公网IP地址和公网端口号,更新Spoke CPE的TTE信息。同时,RR发送报文对TTE连接进行Keepalive探测,探测报文中包括Spoke CPE的公网IP地址和公网端口号。

d.     Spoke CPE接收到RR发送的Keepalive探测报文后,从该报文中获取自身的公网IP地址和公网端口号。

e.     RR和Spoke CPE均获取到完整的TTE信息后,通过SSL连接交互该TTE信息,并进行验证。如果验证通过,则建立SDWAN隧道。

图2-4 获取动态NAT转换后的公网IP地址和公网端口号示意图

 

2. 配置限制和指导

执行本功能后,会导致基于该Tunnel接口建立的TTE连接断开,并根据手工指定的NAT转换后的公网IP地址和公网端口号重新建立TTE连接。

在公网不能主动访问内网的场景下,不建议配置本功能。

通过本配置手工指定NAT转换后的公网IP地址和公网端口号时,需要确保配置的公网IP地址和公网端口号与NAT设备的配置一致,否则可能会导致通信失败。

如果两个CPE上都通过sdwan nat-global-ip dynamicsdwan nat-global-ipv6 dynamic命令配置NAT转换类型为动态NAT,则这两个CPE之间无法建立SDWAN隧道。

3. 配置步骤

(1)     ‍进入系统视图。

system-view

(2)     创建模式为UDP封装的SDWAN Tunnel接口,并进入Tunnel接口视图。

(IPv4网络)

interface tunnel tunnel-number mode sdwan udp

(IPv6网络)

interface tunnel tunnel-number mode sdwan udp ipv6

在隧道的两端应配置相同的隧道模式,否则会造成报文传输失败。

(3)     配置隧道的源IP地址和端口号经NAT转换后对应的公网IP地址和公网端口号。

(IPv4网络)

sdwan nat-global-ip { global-address [ global-port global-port ] | dynamic }

(IPv6网络)

sdwan nat-global-ipv6 { global-ipv6-address [ global-port global-port ] | dynamic }

缺省情况下,未配置NAT转换后对应的公网IP地址和公网端口号。

2.11  Hub-Spoke组网中简化QoS业务配置

1. 功能简介

在SDWAN场景的Hub-Spoke组网中存在大量Spoke设备,如果需要对Hub-Spoke间的每条SDWAN隧道配置限速等QoS策略,则每增加一个分支站点的Spoke设备,都需要在中心站点的Hub设备上手工配置并应用相应的QoS策略,大量配置命令重复且工作量较大。如果中心站点到各分支站点的SDWAN隧道的QoS策略相同,仅限速参数有差异,则可以通过在Spoke设备上配置本功能来简化Hub设备上的QoS策略配置。

在Spoke设备上配置本功能后,Hub-Spoke之间的数据通道建立过程中,Spoke设备会向对端Hub设备发送QoS TTE路由,该路由携带了本功能配置的User Profile名称以及流量限速值信息,假设本功能指定的User Profile名称为A,A将随TTE信息一并由BGP发布给对端Hub设备。对端Hub设备将与A名称相同的本地User Profile应用到Hub到Spoke的SDWAN隧道出方向上。如果对端Hub设备上不存在名称为A的User Profile,或者名称为A的User Profile中无任何配置则对SDWAN隧道无影响。

2. 配置准备

在配置本功能之前,需完成以下任务:

·     在Hub设备上创建需要应用的User Profile。

·     根据业务需求在上述User Profile下配置相应QoS策略、流量监管、流量整形、流量限速或优先队列。

关于User Profile的详细介绍,请参见“用户接入与认证配置指导”中的“User Profile”。

3. 配置限制和指导

上述配置准备中的User Profile如果存在某些QoS配置,且该QoS配置指定为入方向生效,则该QoS配置不生效。例如User Profile视图下配置了qos car命令且指定方向为inbound,则对于Hub到Spoke的SDWAN隧道,该User Profile视图下qos car命令不生效。

在对端Hub设备上的SDWAN隧道上应用的User Profile下需要执行qos lr outbound(user profile view)命令并指定peer-advertise-bandwidth参数,使对端Hub设备可以接受的Spoke设备上配置的SDWAN隧道的流量限速值。如果对端Hub设备未执行上述步骤,则Spoke设备配置的对端隧道出方向上应用的流量限速值不生效。关于qos lr outbound(user profile view)命令的详细介绍,请参见“ACL和QoS命令参考”中的“QoS”。

不建议基于SDWAN隧道粒度和Tunnel口粒度同时配置限速,流量监管,流量整形,队列调度等功能。

如果在Hub-Spoke间的SDWAN隧道应用了User Profile进行SDWAN隧道粒度的限速,同时在Hub的Tunnel接口上再配置流量限速LR或流量整形GTS等功能将不生效。

4. 配置步骤

(1)     ‍进入系统视图。

system-view

(2)     创建模式为UDP封装的SDWAN Tunnel接口,并进入Tunnel接口视图。

interface tunnel tunnel-number mode sdwan udp [ ipv6 ]

在隧道的两端应配置相同的隧道模式,否则会造成报文传输失败。

(3)     配置需要在对端隧道出方向上应用的User Profile。

qos apply user-profile profile-name downstream

缺省情况下,未配置在对端隧道出方向上应用的User Profile。关于本命令的详细介绍,请参见“ACL和QoS命令参考”中的“QoS”。

(4)     (可选)配置需要在对端隧道出方向上应用的流量限速值

qos bandwidth downstream bandwidth-value

缺省情况下,未配置需要在对端隧道出方向上应用的流量限速值。关于本命令的详细介绍,请参见“ACL和QoS命令参考”中的“QoS”。

2.12  SDWAN网络中应用QoS自适应模板

1. 功能简介

在SDWAN网络中,Hub-Spoke设备连接广域网的接口带宽通常是固定且有限的,网络实际的可用带宽通常会比承诺的带宽小。实际设备发送报文带宽未达到接口的承诺带宽上限时,SDWAN网络也可能因为拥塞产生丢包。例如,运营商为Hub和Spoke设备连接广域网的接口承诺带宽均为100Mbps。当多个Hub通过SDWAN隧道连接到单个Spoke的同一个入接口时,每个Hub设备的报文发送速率均超过50Mbps,却均未达到承诺带宽100Mbps。此时,Spoke设备入接口速率已超过100Mbps,因此,Spoke设备入接口发生拥塞,产生丢包。为了避免多Hub对一个Spoke组网场景下的广域网丢包,可以在Hub设备上配置QoS自适应模板来动态调整Hub和Spoke设备报文发送速率。

QoS自适应模板主要根据探测到的SDWAN隧道丢包率来调整Hub设备上SDWAN隧道的报文发送速率。

Hub设备通过在QoS自适应模板视图下执行track network-quality auto命令,自动启动iNQA可以测量得到SDWAN隧道的丢包率。在QoS自适应模板下执行loss-threshold命令来定义丢包率的上下限,执行rate-threshold命令定义报文发送速率的调整范围。以下为QoS自适应模板调整SDWAN隧道的报文发送速率的过程:

·     Hub设备SDWAN隧道降速过程:SDWAN隧道发送端未拥塞,但iNQA测量得到的SDWAN隧道丢包率超出loss-threshold命令定义的丢包率上限时,表示Spoke设备入接口可能发生拥塞。SDWAN隧道设备立即降低Hub设备上SDWAN隧道的报文发送速率,降低后的发送速率在rate-threshold命令定义报文发送速率的调整范围之内。如果iNQA再次测量到的丢包率仍超出丢包率上限,则进一步降低Hub设备上SDWAN隧道的报文发送速率,报文发送速率将无限接近rate-threshold命令定义的速率下限。直到测量到的丢包率不再超出丢包率上限。

·     Hub设备SDWAN隧道提速过程:当经过rate-increase interval命令定义的时间间隔T后,iNQA测量得到的SDWAN隧道丢包率低于loss-threshold命令定义的丢包率下限,并且报文在Hub设备上SDWAN隧道出方向拥塞时,表示报文在SDWAN隧道发送端拥塞,SDWAN隧道接收端未出现拥塞。因此,设备提升Hub设备上SDWAN隧道的报文发送速率,并且提升后的报文发送速率在rate-threshold命令定义报文发送速率的调整范围之内。如果再次经过时间间隔T,iNQA测量到的丢包率仍低于丢包率上限,并且报文在Hub设备上SDWAN隧道出方向拥塞,则进一步提升Hub设备上SDWAN隧道的报文发送速率,报文发送速率将无限接近rate-threshold命令定义的速率上限。直到测量到的丢包率不再超出丢包率上限。

·     其他情况下,Hub设备均保持当前SDWAN隧道的报文发送速率。

2. 配置限制和指导

本功能需要和iNQA的联动来实现丢包率测量,如果iNQA探测失败或者未执行track network-quality auto命令触发iNQA探测时,则取rate-threshold命令配置的速率上限作为报文发送速率。

动态获取报文发送速率上限时,当指定的发送速率下限大于等于从Spoke通告的带宽上限时,报文发送速率的上下限均等于Spoke通告的带宽值,此时SDWAN隧道发送速率固定不变无法起到调整报文发送速率的作用。因此,请合理指定报文发送速率的范围。

关于本功能命令的详细介绍,请参见“ACL和QoS命令参考”中的“QoS”。

3. 配置Hub设备

(1)     进入系统视图。

system-view

(2)     创建QoS自适应模板,并进入QoS自适应模板视图。

qos adapt-profile profile-name

(3)     配置QoS自适应模板的网络质量自动探测功能。

track network-quality auto

(4)     配置QoS自适应模板的丢包率范围。

loss-threshold lower lower-threshold-percent upper upper-threshold-percent

缺省情况下,QoS自适应模板丢包率范围为5%~10%。

(5)     配置QoS自适应模板的报文发送速率调整范围。

rate-threshold lower lower-threshold-value { upper upper-threshold-value | upper peer-advertised-bandwidth }

rate-threshold [ lower percent lower-threshold-percent ] upper peer-advertised-bandwidth

缺省情况下,未配置QoS自适应模板的报文发送速率调整范围。

Hub设备上SDWAN隧道的报文发送速率的上下限可以通过以下方式生成:

¡     静态指定:在Hub设备上执行rate-threshold命令并指定lower lower-threshold-valueupper upper-threshold-value参数来配置上下限的值。

¡     动态获取:通过在Hub设备上执行rate-threshold命令并指定upper peer-advertiszed-bandwidth参数。在对端Spoke设备上SDWAN隧道下执行qos bandwidth downstream命令指定限速带宽值,该限速带宽值通过BGP IPv4 Tnl-encap-ext路由通告给Hub设备,Hub设备以BGP IPv4 Tnl-encap-ext路由通告的限速带宽值作为报文发送上限。动态获取时,还可以指定lower percent参数来根据对端通告的限速带宽值设置报文发送速率的下限。

¡     混合方式:在Hub设备上执行rate-threshold命令,同时指定lower lower-threshold-valueupper peer-advertised-bandwidth参数,则报文发送速率的下限由静态指定,报文发送速率的上限由动态获取。

(6)     配置QoS自适应模板速率上调时的时间间隔。

rate-increase interval interval-value

缺省情况下,QoS自适应模板速率上调时的时间间隔为60秒。

(7)     退回系统视图。

quit

(8)     创建User Profile并进入相应的User Profile视图。

user-profile profile-name

(9)     配置User Profile的流量限速时,指定引用的QoS自适应模板。

qos lr outbound adapt-profile profile-name

(10)     (可选)配置User Profile的流量限速时,接受对端隧道接口发布的承诺信息速率。

qos lr outbound peer-advertise-bandwidth

(11)     (可选)配置SDWAN隧道通过iNQA进行链路质量探测的周期。

a.     退回系统视图。

quit

b.     配置链路质量探测的周期。

sdwan link-quality probe interval interval

缺省情况下,链路质量探测的周期为60秒。

若修改链路质量探测的周期,则设备将停止对所有SDWAN隧道进行质量探测,并以新设置的周期重新对SDWAN隧道进行链路质量探测。

4. 配置Spoke设备

(1)     进入系统视图。

system-view

(2)     创建模式为UDP封装的SDWAN Tunnel接口,并进入Tunnel接口视图。

interface tunnel tunnel-number mode sdwan udp [ ipv6 ]

在隧道的两端应配置相同的隧道模式,否则会造成报文传输失败。

(3)     配置需要在对端隧道出方向上应用的User Profile。

qos apply user-profile profile-name downstream

缺省情况下,未配置在对端隧道出方向上应用的User Profile。关于本命令的详细介绍,请参见“ACL和QoS命令参考”中的“QoS”。

(4)     (可选)配置需要在对端隧道出方向上应用的流量限速值

qos bandwidth downstream bandwidth-value

缺省情况下,未配置需要在对端隧道出方向上应用的流量限速值。关于本命令的详细介绍,请参见“ACL和QoS命令参考”中的“QoS”。

2.13  配置基于WAAS和QUIC动态优化SDWAN传输质量

2.13.1  功能简介

配置本功能后,WAAS基于iNQA模块实时检测SDWAN隧道性能指标(如丢包率、时延、抖动),当检测到隧道质量低于预设阈值时,自动触发端到端QUIC连接建立,通过QUIC协议的多路复用流传输、前向纠错及0-RTT快速握手特性,显著提升SDWAN隧道在劣化链路下的数据传输可靠性。本功能可以保障视频会议、实时数据库同步等高敏感业务在公网环境下的稳定传输,实现低成本、高韧性的广域网传输目标。

2.13.2  配置通过QoS策略将SDWAN隧道上的流量引入WAAS实例

1. 功能简介

在QoS策略中配置流量绑定WAAS实例动作,并在SDWAN隧道接口上引用该QoS策略后,即可实现将SDWAN隧道上匹配QoS策略的流量引入到WAAS实例,由WAAS实例对流量进行优化处理。

2. 配置限制和指导

流行为中绑定WAAS实例的QoS策略仅在SDWAN隧道接口的出方向生效。

QoS相关命令的详细介绍,请参见“ACL和QoS命令参考”中的“QoS策略”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建流分类,并进入类视图。

traffic classifier classifier-name [ operator { and | or } ]

(3)     定义匹配数据包的规则。

if-match [ not ] match-criteria

具体规则的介绍,请参见“ACL和QoS命令参考”中的“QoS”的if-match命令。

(4)     退回到系统视图。

quit

(5)     创建流行为,并进入流行为视图。

traffic behavior behavior-name

(6)     配置流量绑定WAAS实例动作。

bind waas-instance instance-name

(7)     退回到系统视图。

quit

(8)     创建QoS策略,并进入策略视图。

qos policy policy-name

(9)     配置QoS策略的CB(Classifier-Behavior)对。

classifier classifier-name behavior behavior-name

关于QoS策略的详细命令,请参见“ACL和QoS命令参考”中的“QoS”。

(10)     退回到系统视图。

quit

(11)     进入SDWAN隧道接口视图。

interface tunnel number mode sdwan udp [ ipv6 ]

(12)     在SDWAN隧道接口的出方向上应用QoS策略。

qos apply policy policy-name outbound

关于应用QoS策略的详细配置介绍,请参见“ACL和QoS配置指导”中的“QoS”。

2.13.3  配置WAAS引用QUIC策略

1. 功能简介

为了提高互联网链路流量的传输质量,可以选择使用QUIC协议进行流量传输。通过创建QUIC策略,并在策略下配置QUIC流量的拥塞控制算法、接收缓冲区大小、拥塞窗口大小等参数,实现对QUIC流量传输的优化处理。

QUIC流量的优化处理通过WAAS技术来实现。在系统视图下可以创建多个QUIC策略,并为每个策略单独配置参数。WAAS能够根据不同应用场景或网络条件,引用不同的QUIC策略,从而实现对各种流量的精确控制。

2. 配置限制和指导

QUIC策略相关命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IP性能优化”;WAAS相关命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“WAAS”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建QUIC策略,并进入QUIC策略视图。

quic profile profile-name

(3)     配置QUIC策略使用的拥塞控制算法。

congestion-method { bbrv1 | bbrv2 | bic | reno }

缺省情况下,QUIC策略使用的拥塞控制算法为Reno算法。

(4)     配置接收缓冲区大小。

receive-buffer buffer-size

缺省情况下,接收缓冲区大小为64KB。

(5)     配置初始拥塞窗口大小。

initial-congestion-window window-size

缺省情况下,初始拥塞窗口大小为32。

(6)     退回系统视图。

quit

(7)     配置WAAS引用QUIC策略模板。

waas quic-profile profile-name

缺省情况下,WAAS使用QUIC缺省优化参数。

2.13.4  配置WAAS的链路质量阈值和优化动作

1. 功能简介

在WAAS SLA视图下设置时延、抖动和丢包等链路质量阈值后,当WAAS通过iNQA判断链路质量劣化,即至少有一个链路质量参数的值超过SLA设置的阈值时,WAAS会执行WAAS实例下设置的优化动作。当前WAAS支持的优化动作为通知SDWAN模块建立QUIC连接。

2. 配置限制和指导

WAAS相关命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“WAAS”。

通过optimize sdwan-quic命令配置WAAS实例的优化动作后,设备会借助BGP的Tnl-encap-ext路由传递WAAS优化动作。当前,WAAS支持的优化动作为通知SDWAN模块建立QUIC连接。需要注意的是,只有当SDWAN隧道的两端设备均支持该WAAS优化动作时,设备才会在检测到SDWAN隧道链路质量下降时,自动为SDWAN隧道建立QUIC连接,以提升传输质量。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建WAAS SLA,并进入WAAS SLA视图。

waas sla-profile sla-profile-name

(3)     配置业务延迟阈值。

delay threshold threshold-value

缺省情况下,业务延迟阈值为10毫秒。

(4)     配置业务抖动阈值。

jitter threshold threshold-value

缺省情况下,业务抖动阈值为100毫秒。

(5)     配置业务丢包率阈值。

packet-loss threshold threshold-value

缺省情况下,业务丢包率阈值为10%。

(6)     退回系统视图。

quit

(7)     创建WAAS实例,并进入WAAS实例视图。

waas instance instance-name [ id id ]

(8)     引用WAAS SLA。

sla-profile sla-profile-name

缺省情况下,未引用WAAS SLA。

(9)     配置WAAS实例的优化动作。

optimize sdwan-quic

缺省情况下,未配置WAAS实例的优化动作。

2.14  SDWAN显示和维护

2.14.1  显示SDWAN状态

可在任意视图下执行以下命令:

·     在RR上显示SDWAN server的状态。

display sdwan server status

·     在CPE上显示SSL连接状态。

display sdwan peer-connection status [ system-ip system-ip-address ] [ ipv4 | ipv6 ]

2.14.2  显示和维护TTE相关信息

可在任意视图下执行以下命令:

·     显示站点的TTE信息。

display sdwan site-tte [ site-id site-id ] [ ipv4 | ipv6 ] [ verbose ]

·     显示设备上TTE连接的信息。

display sdwan tte connection [ site-id site-id [ device-id device-id [ interface-id interface-id ] ] | system-ip system-ip-address ] [ reachable | unreachable ] [ ipv4 | ipv6 ] [ collaboration | count | quic [ count ] ]

可在任意用户下执行以下命令,清除TTE连接信息:

reset sdwan tte connection interface interface-type interface-number [ site-id site-id device-id device-id interface-id interface-id ]

2.14.3  显示BGP路由相关信息

可在任意视图下执行以下命令:

·     显示BGP IPv4 tnl-encap-ext路由信息。

display bgp [ instance instance-name ] routing-table ipv4 tnl-encap-ext [ peer ipv4-address { advertised-routes | received-routes } [ { tnlencap-route route-length | tnlencap-prefix } [ verbose ] | statistics ] | [ route-type { tte | tte-ipv6 | tte-qos | saas-path } ] [ { tnlencap-route route-length | tnlencap-prefix } [ advertise-info | as-path | cluster-list | community | ext-community ] ] | statistics ]

display bgp [ instance instance-name ] routing-table ipv4 tnl-encap-ext peer ipv4-address { accepted-routes | not-accepted-routes }

display bgp [ instance instance-name ] routing-table ipv4 tnl-encap-ext [ statistics ] community [ community-number&<1-32> | aa:nn&<1-32> ] [ internet | no-advertise | no-export | no-export-subconfed ] [ whole-match ]

display bgp [ instance instance-name ] routing-table ipv4 tnl-encap-ext [ statistics ] community-list { basic-community-list-number | comm-list-name | adv-community-list-number } [ whole-match ]

display bgp [ instance instance-name ] routing-table ipv4 tnl-encap-ext [ statistics ] ext-community [ bandwidth link-bandwidth-value | color color | rt route-target | soo site-of-origin ]&<1-32> [ whole-match ]

·     显示指定的BGP-VPN实例路由表中,根据Priority-Color扩展团体属性生成的IPv4/IPv6单播路由信息。

display bgp [ instance instance-name ] routing-table { ipv4 | ipv6 } [ unicast ] vpn-instance vpn-instance-name system-ip

·     显示所有的BGP-VPN实例路由表中,根据Priority-Color扩展团体属性生成的IPv4/IPv6单播路由信息

display bgp [ instance instance-name ] routing-table { vpnv4 | vpnv6 } system-ip

2.14.4  显示SDWAN隧道相关的QoS信息

·     显示QoS自适应模板的配置信息自适应模板的配置信息。

display qos adapt-profile [ profile-name ]

·     显示SDWAN隧道上的限速配置情况和统计信息。

display qos lr sdwan tunnel number [ site-id site-id device-id device-id interface-id interface-id ]

·     显示指定的SDWAN隧道上QoS自适应模板动态调整发送报文速率的历史记录。

display qos lr adapt history sdwan tunnel number [ site-id site-id device-id device-id interface-id interface-id ]

·     清除SDWAN隧道上的限速配置的动态调整历史记录。

reset qos lr adapt history sdwan tunnel number [ site-id site-id device-id device-id interface-id interface-id ]

2.15  SDWAN配置举例

2.15.1  穿越NAT建立SDWAN隧道配置举例

1. 组网需求

站点网络通过CPE接入SDWAN网络,通过SDWAN实现不同站点网络跨越广域网互通。

在CPE与RR之间部署STUN功能,探测两者之间是否存在NAT设备以及NAT类型。其中CPE作为STUN客户端,RR作为STUN服务器。SDWAN client与SDWAN server之间建立SSL连接完成CPE与RR之间控制通道的建立。RR作为路由反射器,在CPE之间反射通过控制通道接收到的TTE信息和私网路由,完成CPE之间的数据通道的建立和私网路由的发布。通过配置IPsec功能,对SDWAN隧道上转发的报文进行安全保护。

站点网络1和站点网络4属于VPN 1,站点网络2和站点网络3属于VPN 2,通过VPN实现不同租户之间的隔离。

2. 组网图

图2-5 SDWAN网络组网图

 

设备

接口

IP地址

设备

接口

IP地址

CE 1

GE0/0/1

10.1.1.1/24

CE 2

GE0/0/2

10.1.2.1/24

CE 3

GE0/0/1

10.1.3.1/24

CE 4

GE0/0/2

10.1.4.1/24

CPE 1

Loop0

1.1.1.10/32

CPE 2

Loop0

1.1.1.30/32

 

GE0/0/1

10.1.1.2/24

 

GE0/0/1

10.1.3.2/24

 

GE0/0/2

10.1.2.2/24

 

GE0/0/2

10.1.4.2/24

 

GE0/0/3

11.1.1.1/24

 

GE0/0/3

14.1.1.1/24

 

GE0/0/4

12.1.1.1/24

 

GE0/0/4

13.1.1.1/24

STUN server

Loop0

6.6.6.1/32

RR

Loop0

1.1.1.20/32

 

Loop1

6.6.6.2/32

 

GE0/0/3

11.1.1.2/24

 

GE0/0/3

14.1.1.2/24

 

GE0/0/4

13.1.1.2/24

 

GE0/0/4

12.1.1.2/24

 

 

 

 

3. 配置步骤

(1)     配置各接口的IP地址。

按照图2-5配置各接口的IP地址和掩码,具体配置过程略。

(2)     配置OSPF协议发布接口所在网段的路由。CPE和RR无需发布Systerm IP所在接口的网段路由。

(3)     配置站点信息和设备信息。

# 配置CPE 1。

<CPE1> system-view

[CPE1] sdwan site-id 20

[CPE1] sdwan site-name beijing

[CPE1] sdwan site-role cpe

[CPE1] sdwan device-id 20

[CPE1] sdwan system-ip loopback0

[CPE1] sdwan encapsulation global-udp-port 3000

# 配置CPE 2。

<CPE2> system-view

[CPE2] sdwan site-id 30

[CPE2] sdwan site-name nanjing

[CPE2] sdwan site-role cpe

[CPE2] sdwan device-id 30

[CPE2] sdwan system-ip loopback0

[CPE2] sdwan encapsulation global-udp-port 3000

# 配置RR。

<RR> system-view

[RR] sdwan site-id 10

[RR] sdwan site-name shanghai

[RR] sdwan site-role rr

[RR] sdwan device-id 10

[RR] sdwan system-ip loopback0

[RR] sdwan encapsulation global-udp-port 3000

(4)     配置CPE(SDWAN client)与RR(SDWAN server)之间的SSL连接。

请根据组网需要选择一种方式进行SSL配置,本举例以安全方式进行举例:

¡     简便方式:RR上无需配置SSL服务器端策略,RR使用自签名证书(RR自己生成的证书,无需从CA获取)、各SSL参数的缺省值与CPE/NAT transfer建立SSL连接。这种方式简化了配置,但是存在安全隐患。

¡     安全方式:设备需要配置SSL服务器端策略、PKI域等配置。还需要通过FTP、TFTP等协议将证书文件传送到SDWAN server的存储介质中,并配置pki import命令将CA证书、本地证书导入到SDWAN server上指定的PKI域中。这种方式配置复杂,但是具有更高的安全性。

# 配置CPE 1。

[CPE1] ssl client-policy plc1

[CPE1-ssl-client-policy-plc1] prefer-cipher rsa_aes_256_cbc_sha

[CPE1-ssl-client-policy-plc1] undo server-verify enable

[CPE1-ssl-client-policy-plc1] quit

[CPE1] sdwan ssl-client-policy plc1

[CPE1] sdwan server system-ip 1.1.1.20 ip 11.1.1.2 port 1234

# 配置CPE 2。

[CPE2] ssl client-policy plc1

[CPE2-ssl-client-policy-plc1] prefer-cipher rsa_aes_256_cbc_sha

[CPE2-ssl-client-policy-plc1] undo server-verify enable

[CPE2-ssl-client-policy-plc1] quit

[CPE2] sdwan ssl-client-policy plc1

[CPE2] sdwan server system-ip 1.1.1.20 ip 13.1.1.2 port 1234

# 配置RR。

[RR] pki domain dm1

[RR-pki-domain-1] public-key rsa general name dm1 length 2048

[RR-pki-domain-1] undo crl check enable

[RR-pki-domain-1] quit

[RR] ssl server-policy plc1

[RR-ssl-server-policy-plcl] pki-domain dm1

[RR-ssl-server-policy-plcl] quit

[RR] sdwan server port 1234

[RR] sdwan ssl-server-policy plc1

[RR] sdwan server enable

(5)     配置CPE与RR之间的BGP连接,并配置在二者之间发布IPv4 Tnl-encap-ext路由。

# 配置CPE 1。

[CPE1] bgp 100

[CPE1-bgp-default] peer 1.1.1.20 as-number 100

[CPE1-bgp-default] peer 1.1.1.20 connect-interface Loopback0

[CPE1-bgp-default] address-family ipv4 tnl-encap-ext

[CPE1-bgp-default-ipv4] peer 1.1.1.20 enable

[CPE1-bgp-default-ipv4] quit

[CPE1-bgp-default] quit

# 配置CPE 2。

[CPE2] bgp 100

[CPE2-bgp-default] peer 1.1.1.20 as-number 100

[CPE2-bgp-default] peer 1.1.1.20 connect-interface Loopback0

[CPE2-bgp-default] address-family ipv4 tnl-encap-ext

[CPE2-bgp-default-ipv4] peer 1.1.1.20 enable

[CPE2-bgp-default-ipv4] quit

[CPE2-bgp-default] quit

# 配置RR。

[RR] bgp 100

[RR-bgp-default] peer 1.1.1.10 as-number 100

[RR-bgp-default] peer 1.1.1.10 connect-interface Loopback0

[RR-bgp-default] peer 1.1.1.30 as-number 100

[RR-bgp-default] peer 1.1.1.30 connect-interface Loopback0

[RR-bgp-default] address-family ipv4 tnl-encap-ext

[RR-bgp-default-ipv4] peer 1.1.1.10 enable

[RR-bgp-default-ipv4] peer 1.1.1.30 enable

[RR-bgp-default-ipv4] peer 1.1.1.10 reflect-client

[RR-bgp-default-ipv4] peer 1.1.1.30 reflect-client

[RR-bgp-default-ipv4] quit

[RR-bgp-default] quit

(6)     配置SDWAN隧道。

# 配置CPE 1。

[CPE1] interface tunnel 1 mode sdwan udp

[CPE1-Tunnel1] source gigabitethernet 0/0/3

[CPE1-Tunnel1] tunnel out-interface gigabitethernet 0/0/3

[CPE1-Tunnel1] sdwan routing-domain rda id 10

[CPE1-Tunnel1] sdwan transport-network tna id 10

[CPE1-Tunnel1] sdwan interface-id 35

[CPE1-Tunnel1] ip address unnumbered interface gigabitethernet 0/0/3

# 配置CPE 2。

[CPE2] interface tunnel 2 mode sdwan udp

[CPE2-Tunnel2] source gigabitethernet 0/0/4

[CPE2-Tunnel2] tunnel out-interface gigabitethernet 0/0/4

[CPE2-Tunnel2] sdwan routing-domain rda id 10

[CPE2-Tunnel2] sdwan transport-network tnb id 20

[CPE2-Tunnel2] sdwan interface-id 30

[CPE2-Tunnel2] ip address unnumbered interface gigabitethernet 0/0/4

# 配置RR。

[RR] interface tunnel 1 mode sdwan udp

[RR-Tunnel1] source  gigabitethernet 0/0/3

[RR-Tunnel1] tunnel out-interface gigabitethernet 0/0/3

[RR-Tunnel1] sdwan routing-domain rda id 10

[RR-Tunnel1] sdwan transport-network tna id 10

[RR-Tunnel1] sdwan interface-id 30

[RR-Tunnel1] ip address unnumbered interface gigabitethernet 0/0/3

[RR-Tunnel1] quit

[RR] interface tunnel 2 mode sdwan udp

[RR-Tunnel2] source gigabitethernet 0/0/4

[RR-Tunnel2] tunnel out-interface gigabitethernet 0/0/4

[RR-Tunnel2] sdwan routing-domain rda id 10

[RR-Tunnel2] sdwan transport-network tnb id 20

[RR-Tunnel2] sdwan interface-id 40

[RR-Tunnel2] ip address unnumbered interface gigabitethernet 0/0/4

[RR-Tunnel2] quit

(7)     配置STUN功能。

# 开启CPE 1上接口tunnel 1的STUN客户端功能,并设置STUN客户端连接的STUN服务器的IP和端口号。

[CPE1-Tunnel1] stun client destination-ip 6.6.6.1 destination-port 20000

[CPE1-Tunnel1] quit

# 开启CPE 2上接口tunnel 2的STUN客户端功能,并设置STUN客户端连接的STUN服务器的IP和端口号。

[CPE2-Tunnel2] stun client destination-ip 6.6.6.1 destination-port 20000

[CPE2-Tunnel2] quit

# 开启STUN服务器功能,并指定STUN服务器的IP地址和UDP端口号。

[STUN] stun server ip 6.6.6.1 port 20000 alternative-ip 6.6.6.2

(8)     配置IPsec保护SDWAN隧道。

# 配置CPE 1。

[CPE1] ipsec transform-set tran1

[CPE1-transform-set-tran1] encapsulation-mode transport

[CPE1-transform-set-tran1] esp encryption-algorithm 3des-cbc

[CPE1-transform-set-tran1] esp authentication-algorithm md5

[CPE1-transform-set-tran1] quit

[CPE1] ipsec profile prf1 sdwan

[CPE1-ipsec-profile-sdwan-prf1] transform-set tran1

[CPE1-ipsec-profile-sdwan-prf1] quit

[CPE1] interface tunnel 1

[CPE1-Tunnel1] tunnel protection ipsec profile prf1

# 配置CPE 2。

[CPE2] ipsec transform-set tran1

[CPE2-transform-set-tran1] encapsulation-mode transport

[CPE2-transform-set-tran1] esp encryption-algorithm 3des-cbc

[CPE2-transform-set-tran1] esp authentication-algorithm md5

[CPE2-transform-set-tran1] quit

[CPE2] ipsec profile prf1 sdwan

[CPE2-ipsec-profile-sdwan-prf1] transform-set tran1

[CPE2-ipsec-profile-sdwan-prf1] quit

[CPE2] interface tunnel 2

[CPE2-Tunnel2] tunnel protection ipsec profile prf1

# 配置RR。

[RR] ipsec transform-set tran1

[RR-transform-set-tran1] encapsulation-mode transport

[RR-transform-set-tran1] esp encryption-algorithm 3des-cbc

[RR-transform-set-tran1] esp authentication-algorithm md5

[RR-transform-set-tran1] quit

[RR] ipsec profile prf1 sdwan

[RR-ipsec-profile-sdwan-prf1] transform-set tran1

[RR-ipsec-profile-sdwan-prf1] quit

[RR] interface tunnel 1

[RR-Tunnel1] tunnel protection ipsec profile prf1

[RR-Tunnel1] quit

[RR] interface tunnel 2

[RR-Tunnel2] tunnel protection ipsec profile prf1

[RR-Tunnel2] quit

(9)     在CPE设备上配置VPN实例,将CE接入CPE

# 配置CPE 1。

[CPE1] ip vpn-instance vpn1

[CPE1-vpn-instance-vpn1] route-distinguisher 1:1

[CPE1-vpn-instance-vpn1] vpn-target 1:1 import-extcommunity

[CPE1-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity

[CPE1-vpn-instance-vpn1] sdwan vn-id 100

[CPE1-vpn-instance-vpn1] quit

[CPE1] ip vpn-instance vpn2

[CPE1-vpn-instance-vpn2] route-distinguisher 2:2

[CPE1-vpn-instance-vpn2] vpn-target 2:2 import-extcommunity

[CPE1-vpn-instance-vpn2] vpn-target 2:2 export-extcommunity

[CPE1-vpn-instance-vpn2] sdwan vn-id 200

[CPE1-vpn-instance-vpn2] quit

[CPE1] interface gigabitethernet 0/0/1

[CPE1-GigabitEthernet0/0/1] ip binding vpn-instance vpn1

[CPE1-GigabitEthernet0/0/1] quit

[CPE1] interface gigabitethernet 0/0/2

[CPE1-GigabitEthernet0/0/2] ip binding vpn-instance vpn2

[CPE1-GigabitEthernet0/0/2] quit

# 配置CPE 2。

[CPE2] ip vpn-instance vpn1

[CPE2-vpn-instance-vpn1] route-distinguisher 1:1

[CPE2-vpn-instance-vpn1] vpn-target 1:1 import-extcommunity

[CPE2-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity

[CPE2-vpn-instance-vpn1] sdwan vn-id 100

[CPE2-vpn-instance-vpn1] quit

[CPE2] ip vpn-instance vpn2

[CPE2-vpn-instance-vpn2] route-distinguisher 2:2

[CPE2-vpn-instance-vpn2] vpn-target 2:2 import-extcommunity

[CPE2-vpn-instance-vpn2] vpn-target 2:2 export-extcommunity

[CPE2-vpn-instance-vpn2] sdwan vn-id 200

[CPE2-vpn-instance-vpn2] quit

[CPE2] interface gigabitethernet 0/0/1

[CPE2-GigabitEthernet0/0/1] ip binding vpn-instance vpn2

[CPE2-GigabitEthernet0/0/1] quit

[CPE2] interface gigabitethernet 0/0/2

[CPE2-GigabitEthernet0/0/2] ip binding vpn-instance vpn1

[CPE2-GigabitEthernet0/0/2] quit

(10)     在CPE与CE之间建立EBGP对等体,引入VPN路由

# 配置CE 1。

<CE1> system-view

[CE1] bgp 200

[CE1-bgp-default] peer 10.1.1.2 as-number 100

[CE1-bgp-default] address-family ipv4 unicast

[CE1-bgp-default-ipv4] peer 10.1.1.2 enable

[CE1-bgp-default-ipv4] import-route direct

[CE1-bgp-default-ipv4] quit

[CE1-bgp-default] quit

# 配置CE 2。

<CE2> system-view

[CE2] bgp 300

[CE2-bgp-default] peer 10.1.2.2 as-number 100

[CE2-bgp-default] address-family ipv4 unicast

[CE2-bgp-default-ipv4] peer 10.1.2.2 enable

[CE2-bgp-default-ipv4] import-route direct

[CE2-bgp-default-ipv4] quit

[CE2-bgp-default] quit

# 配置CE 3。

<CE3> system-view

[CE3] bgp 400

[CE3-bgp-default] peer 10.1.3.2 as-number 100

[CE3-bgp-default] address-family ipv4 unicast

[CE3-bgp-default-ipv4] peer 10.1.3.2 enable

[CE3-bgp-default-ipv4] import-route direct

[CE3-bgp-default-ipv4] quit

[CE3-bgp-default] quit

# 配置CE 4。

<CE4> system-view

[CE4] bgp 500

[CE4-bgp-default] peer 10.1.4.2 as-number 100

[CE4-bgp-default] address-family ipv4 unicast

[CE4-bgp-default-ipv4] peer 10.1.4.2 enable

[CE4-bgp-default-ipv4] import-route direct

[CE4-bgp-default-ipv4] quit

[CE4-bgp-default] quit

# 配置CPE 1。

[CPE1] bgp 100

[CPE1-bgp-default] ip vpn-instance vpn1

[CPE1-bgp-default-vpn1] peer 10.1.1.1 as-number 200

[CPE1-bgp-default-vpn1] address-family ipv4 unicast

[CPE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable

[CPE1-bgp-default-ipv4-vpn1] import-route direct

[CPE1-bgp-default-ipv4-vpn1] quit

[CPE1-bgp-default-vpn1] quit

[CPE1-bgp-default] ip vpn-instance vpn2

[CPE1-bgp-default-vpn2] peer 10.1.2.1 as-number 300

[CPE1-bgp-default-vpn2] address-family ipv4 unicast

[CPE1-bgp-default-ipv4-vpn2] peer 10.1.2.1 enable

[CPE1-bgp-default-ipv4-vpn2] import-route direct

[CPE1-bgp-default-ipv4-vpn2] quit

[CPE1-bgp-default-vpn1] quit

[CPE1-bgp-default] quit

# 配置CPE 2。

[CPE2] bgp 100

[CPE2-bgp-default] ip vpn-instance vpn1

[CPE2-bgp-default-vpn1] peer 10.1.4.1 as-number 500

[CPE2-bgp-default-vpn1] address-family ipv4 unicast

[CPE2-bgp-default-ipv4-vpn1] peer 10.1.4.1 enable

[CPE2-bgp-default-ipv4-vpn1] import-route direct

[CPE2-bgp-default-ipv4-vpn1] quit

[CPE2-bgp-default-vpn1] quit

[CPE2-bgp-default] ip vpn-instance vpn2

[CPE2-bgp-default-vpn2] peer 10.1.3.1 as-number 400

[CPE2-bgp-default-vpn2] address-family ipv4 unicast

[CPE2-bgp-default-ipv4-vpn2] peer 10.1.3.1 enable

[CPE2-bgp-default-ipv4-vpn2] import-route direct

[CPE2-bgp-default-ipv4-vpn2] quit

[CPE2-bgp-default-vpn1] quit

[CPE2-bgp-default] quit

(11)     配置通过IP前缀路由发布站点的私网路由。

# CPE 1。

[CPE1] ip vpn-instance vpn1

[CPE1-vpn-instance-vpn1] address-family ipv4

[CPE1-vpn-ipv4-vpn1] evpn sdwan routing-enable

[CPE1-vpn-ipv4-vpn1] quit

[CPE1-vpn-instance-vpn1] quit

[CPE1] ip vpn-instance vpn2

[CPE1-vpn-instance-vpn2] address-family ipv4

[CPE1-vpn-ipv4-vpn2] evpn sdwan routing-enable

[CPE1-vpn-ipv4-vpn2] quit

[CPE1-vpn-instance-vpn2] quit

[CPE1] bgp 100

[CPE1-bgp-default] address-family l2vpn evpn

[CPE1-bgp-default-evpn] peer 1.1.1.20 enable

[CPE1-bgp-default-evpn] peer 1.1.1.20 advertise encap-type sdwan

[CPE1-bgp-default-evpn] quit

[CPE1-bgp-default] quit

# CPE 2。

[CPE2] ip vpn-instance vpn1

[CPE2-vpn-instance-vpn1] address-family ipv4

[CPE2-vpn-ipv4-vpn1] evpn sdwan routing-enable

[CPE2-vpn-ipv4-vpn1] quit

[CPE2-vpn-instance-vpn1] quit

[CPE2] ip vpn-instance vpn2

[CPE2-vpn-instance-vpn2] address-family ipv4

[CPE2-vpn-ipv4-vpn2] evpn sdwan routing-enable

[CPE2-vpn-ipv4-vpn2] quit

[CPE2-vpn-instance-vpn2] quit

[CPE2] bgp 100

[CPE2-bgp-default] address-family l2vpn evpn

[CPE2-bgp-default-evpn] peer 1.1.1.20 enable

[CPE2-bgp-default-evpn] peer 1.1.1.20 advertise encap-type sdwan

[CPE2-bgp-default-evpn] quit

[CPE2-bgp-default] quit

# RR。

[RR] bgp 100

[RR-bgp-default] address-family l2vpn evpn

[RR-bgp-default-evpn] undo policy vpn-target

[RR-bgp-default-evpn] peer 1.1.1.10 enable

[RR-bgp-default-evpn] peer 1.1.1.10 reflect-client

[RR-bgp-default-evpn] peer 1.1.1.10 advertise encap-type sdwan

[RR-bgp-default-evpn] peer 1.1.1.30 enable

[RR-bgp-default-evpn] peer 1.1.1.30 reflect-client

[RR-bgp-default-evpn] peer 1.1.1.30 advertise encap-type sdwan

4. 验证配置

# 以CPE 1为例,其他设备(CPE 2、RR)与此类似。查看设备上TTE连接的信息,可以看到CPE 1与RR、CPE 2分别建立了TTE连接。

[CPE1] display sdwan tte connection

Destination SiteID/DevID/IfID/SysIP: 10/10/30/1.1.1.20

Destination IP/port: 11.1.1.2/3000

Source SiteID/DevID/IfID/SysIP: 20/20/35/1.1.1.10

Source IP/port: 11.1.1.1/3000

Created at: 2024/07/19 16:11:41

Status: Reachable

State changed at: 2024/07/19 16:11:52

 

Destination SiteID/DevID/IfID/SysIP: 10/10/40/1.1.1.20

Destination IP/port: 13.2.1.1/3000

Source SiteID/DevID/IfID/SysIP: 20/20/35/1.1.1.10

Source IP/port: 11.1.1.1/3000

Created at: 2024/07/19 16:11:39

Status: Reachable

State changed at: 2024/07/19 16:11:39

 

Destination SiteID/DevID/IfID/SysIP: 30/30/20/1.1.1.30

Destination IP/port: 13.2.1.1/3000

Source SiteID/DevID/IfID/SysIP: 20/20/35/1.1.1.10

Source IP/port: 11.1.1.1/3000

Created at: 2024/07/19 16:11:39

Status: Reachable

State changed at: 2024/07/19 16:11:39

 

Number of connections: 3

# 以CPE 1为例,CPE 2设备与此类似。在设备上执行display ip routing-table vpn-instance命令,可以看到去往对端CE 4的路由。

[CPE1] display ip routing-table vpn-instance vpn1

 

Destinations : 14       Routes : 14

 

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0

10.1.1.0/24        Direct  0   0           10.1.1.1        GE0/0/1

10.1.1.2/32        Direct  0   0           127.0.0.1       InLoop0

10.1.1.255/32      Direct  0   0           10.1.1.1        GE0/0/1

10.1.2.0/24        Direct  0   0           10.1.2.1        GE0/0/2

10.1.2.2/32        Direct  0   0           127.0.0.1       InLoop0

10.1.2.255/32      Direct  0   0           10.1.2.1        GE0/0/2

10.1.4.1/24        BGP     255 0           1.1.1.30        Tun1

127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0

127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0

127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0

224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0

255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

# CE 1与CE 4之间可以互访,且CE 2和CE 3之间也可以互访。

2.15.2  按需建立SDWAN隧道配置举例

1. 组网需求

站点网络通过CPE接入SDWAN网络,通过SDWAN实现不同站点网络跨越广播域互通,且需要实现站点网络1内的用户可以和站点网络2及站点网络3内的用户互通,站点网络2内的用户不能和站点网络3内的用户互通。实现的方式为:

·     在SDWAN网络中,SDWAN client与SDWAN server之间建立SSL连接完成CPE与RR之间控制通道的建立。

·     RR作为路由反射器,通过出口策略,控制仅在CPE 1和CPE 2之间、CPE 1和CPE 3反射TTE信息和私网路由。RR在CPE 2和CPE 3之间仅反射TTE信息,不反射私网路由。

·     通过配置IPsec功能,对SDWAN隧道上转发的报文进行安全保护。

2. 组网图

图2-6 按需建立SDWAN隧道组网图

 

设备

接口

IP地址

设备

接口

IP地址

CE 1

GE0/0/1

10.1.1.1/24

CE 2

GE0/0/1

10.1.2.1/24

CE 3

GE0/0/1

10.1.3.1/24

CPE 2

Loop0

1.1.1.20/32

CPE 1

Loop0

1.1.1.10/32

 

GE0/0/1

10.1.2.2/24

 

GE0/0/1

10.1.1.2/24

 

GE0/0/2

12.1.1.2/24

 

GE0/0/2

11.1.1.2/24

RR

Loop0

1.1.1.100/32

CPE 3

Loop0

1.1.1.30/32

 

GE0/0/1

11.1.1.1/24

 

GE0/0/1

10.1.3.2/24

 

GE0/0/2

12.1.1.1/24

 

GE0/0/2

13.1.1.2/24

 

GE0/0/3

13.1.1.1/24

 

3. 配置准备

通过FTP、TFTP等协议将证书文件传送到SDWAN server的存储介质中,并配置pki import命令将CA证书、本地证书导入到SDWAN server上指定的PKI域中。

4. 配置步骤

(1)     配置各接口的IP地址。

按照图2-6配置各接口的IP地址和掩码,具体配置过程略。

(2)     配置OSPF协议发布SDWAN网络内接口所在网段的路由。CPE和RR无需发布Systerm IP所在接口的网段路由。

(3)     配置站点信息和设备信息。

# 配置CPE 1。

<CPE1> system-view

[CPE1] sdwan site-id 10

[CPE1] sdwan site-name beijing

[CPE1] sdwan site-role cpe

[CPE1] sdwan device-id 10

[CPE1] sdwan system-ip loopback0

[CPE1] sdwan encapsulation udp-port 3000

# 配置CPE 2。

<CPE2> system-view

[CPE2] sdwan site-id 20

[CPE2] sdwan site-name nanjing

[CPE2] sdwan site-role cpe

[CPE2] sdwan device-id 20

[CPE2] sdwan system-ip loopback0

[CPE2] sdwan encapsulation udp-port 3000

# 配置CPE 3。

<CPE3> system-view

[CPE3] sdwan site-id 30

[CPE3] sdwan site-name wuhan

[CPE3] sdwan site-role cpe

[CPE3] sdwan device-id 30

[CPE3] sdwan system-ip loopback0

[CPE3] sdwan encapsulation udp-port 3000

# 配置RR。

<RR> system-view

[RR] sdwan site-id 100

[RR] sdwan site-name shanghai

[RR] sdwan site-role rr

[RR] sdwan device-id 100

[RR] sdwan system-ip loopback0

[RR] sdwan encapsulation udp-port 3000

(4)     配置CPE(SDWAN client)与RR(SDWAN server)之间的SSL连接。

# 配置CPE 1。

[CPE1] ssl client-policy plc1

[CPE1-ssl-client-policy-plc1] prefer-cipher rsa_aes_256_cbc_sha

[CPE1-ssl-client-policy-plc1] undo server-verify enable

[CPE1-ssl-client-policy-plc1] quit

[CPE1] sdwan ssl-client-policy plc1

[CPE1] sdwan server system-ip 1.1.1.100 ip 11.1.1.1 port 1234

# 配置CPE 2。

[CPE2] ssl client-policy plc1

[CPE2-ssl-client-policy-plc1] prefer-cipher rsa_aes_256_cbc_sha

[CPE2-ssl-client-policy-plc1] undo server-verify enable

[CPE2-ssl-client-policy-plc1] quit

[CPE2] sdwan ssl-client-policy plc1

[CPE2] sdwan server system-ip 1.1.1.100 ip 12.1.1.1 port 1234

# 配置CPE 3。

[CPE3] ssl client-policy plc1

[CPE3-ssl-client-policy-plc1] prefer-cipher rsa_aes_256_cbc_sha

[CPE3-ssl-client-policy-plc1] undo server-verify enable

[CPE3-ssl-client-policy-plc1] quit

[CPE3] sdwan ssl-client-policy plc1

[CPE3] sdwan server system-ip 1.1.1.100 ip 13.1.1.1 port 1234

# 配置RR。

[RR] pki domain dm1

[RR-pki-domain-1] public-key rsa general name dm1 length 2048

[RR-pki-domain-1] undo crl check enable

[RR-pki-domain-1] quit

[RR] ssl server-policy plc1

[RR-ssl-server-policy-plcl] pki-domain dm1

[RR-ssl-server-policy-plcl] quit

[RR] sdwan server port 1234

[RR] sdwan ssl-server-policy plc1

[RR] sdwan server enable

(5)     配置CPE与RR之间的BGP连接,并配置在二者之间发布IPv4 Tnl-encap-ext路由。

# 配置CPE 1。

[CPE1] bgp 100

[CPE1-bgp-default] peer 1.1.1.100 as-number 100

[CPE1-bgp-default] peer 1.1.1.100 connect-interface Loopback0

[CPE1-bgp-default] address-family ipv4 tnl-encap-ext

[CPE1-bgp-default-ipv4] peer 1.1.1.100 enable

[CPE1-bgp-default-ipv4] quit

[CPE1-bgp-default] qui

# 配置CPE 2。

[CPE2] bgp 100

[CPE2-bgp-default] peer 1.1.1.100 as-number 100

[CPE2-bgp-default] peer 1.1.1.100 connect-interface Loopback0

[CPE2-bgp-default] address-family ipv4 tnl-encap-ext

[CPE2-bgp-default-ipv4] peer 1.1.1.100 enable

[CPE2-bgp-default-ipv4] quit

[CPE2-bgp-default] quit

# 配置CPE 3。

[CPE3] bgp 100

[CPE3-bgp-default] peer 1.1.1.100 as-number 100

[CPE3-bgp-default] peer 1.1.1.100 connect-interface Loopback0

[CPE3-bgp-default] address-family ipv4 tnl-encap-ext

[CPE3-bgp-default-ipv4] peer 1.1.1.100 enable

[CPE3-bgp-default-ipv4] quit

[CPE3-bgp-default] quit

# 配置RR。

[RR] bgp 100

[RR-bgp-default] peer 1.1.1.10 as-number 100

[RR-bgp-default] peer 1.1.1.10 connect-interface Loopback0

[RR-bgp-default] peer 1.1.1.20 as-number 100

[RR-bgp-default] peer 1.1.1.20 connect-interface Loopback0

[RR-bgp-default] peer 1.1.1.30 as-number 100

[RR-bgp-default] peer 1.1.1.30 connect-interface Loopback0

[RR-bgp-default] address-family ipv4 tnl-encap-ext

[RR-bgp-default-ipv4] peer 1.1.1.10 enable

[RR-bgp-default-ipv4] peer 1.1.1.20 enable

[RR-bgp-default-ipv4] peer 1.1.1.30 enable

[RR-bgp-default-ipv4] peer 1.1.1.10 reflect-client

[RR-bgp-default-ipv4] peer 1.1.1.20 reflect-client

[RR-bgp-default-ipv4] peer 1.1.1.30 reflect-client

[RR-bgp-default-ipv4] quit

[RR-bgp-default] quit

(6)     配置SDWAN隧道。

# 配置CPE 1。

[CPE1] interface tunnel 1 mode sdwan udp

[CPE1-Tunnel1] source gigabitethernet 0/0/2

[CPE1-Tunnel1] tunnel out-interface gigabitethernet 0/0/2

[CPE1-Tunnel1] sdwan routing-domain rda id 10

[CPE1-Tunnel1] sdwan transport-network tna id 10

[CPE1-Tunnel1] sdwan interface-id 10

[CPE1-Tunnel1] ip address unnumbered interface gigabitethernet 0/0/2

# 配置CPE 2。

[CPE2] interface tunnel 1 mode sdwan udp

[CPE2-Tunnel1] source gigabitethernet 0/0/2

[CPE2-Tunnel1] tunnel out-interface gigabitethernet 0/0/2

[CPE2-Tunnel1] sdwan routing-domain rda id 10

[CPE2-Tunnel1] sdwan transport-network tnb id 20

[CPE2-Tunnel1] sdwan interface-id 20

[CPE2-Tunnel1] ip address unnumbered interface gigabitethernet 0/0/2

# 配置CPE 3。

[CPE3] interface tunnel 1 mode sdwan udp

[CPE3-Tunnel1] source gigabitethernet 0/0/2

[CPE3-Tunnel1] tunnel out-interface gigabitethernet 0/0/2

[CPE3-Tunnel1] sdwan routing-domain rda id 10

[CPE3-Tunnel1] sdwan transport-network tnb id 30

[CPE3-Tunnel1] sdwan interface-id 30

[CPE3-Tunnel1] ip address unnumbered interface gigabitethernet 0/0/2

# 配置RR。

[RR] interface tunnel 1 mode sdwan udp

[RR-Tunnel1] source gigabitethernet 0/0/1

[RR-Tunnel1] tunnel out-interface gigabitethernet 0/0/1

[RR-Tunnel1] sdwan routing-domain rda id 10

[RR-Tunnel1] sdwan transport-network tna id 10

[RR-Tunnel1] sdwan interface-id 110

[RR-Tunnel1] ip address unnumbered interface gigabitethernet 0/0/1

[RR-Tunnel1] quit

[RR] interface tunnel 2 mode sdwan udp

[RR-Tunnel2] source gigabitethernet 0/0/2

[RR-Tunnel2] tunnel out-interface gigabitethernet 0/0/2

[RR-Tunnel2] sdwan routing-domain rda id 10

[RR-Tunnel2] sdwan transport-network tnb id 20

[RR-Tunnel2] sdwan interface-id 120

[RR-Tunnel2] ip address unnumbered interface gigabitethernet 0/0/2

[RR-Tunnel2] quit

[RR] interface tunnel 3 mode sdwan udp

[RR-Tunnel3] source gigabitethernet 0/0/3

[RR-Tunnel3] tunnel out-interface gigabitethernet 0/0/3

[RR-Tunnel3] sdwan routing-domain rda id 10

[RR-Tunnel3] sdwan transport-network tnb id 30

[RR-Tunnel3] sdwan interface-id 130

[RR-Tunnel3] ip address unnumbered interface gigabitethernet 0/0/3

[RR-Tunnel3] quit

(7)     配置IPsec保护SDWAN隧道。

# 配置CPE 1。

[CPE1] ipsec transform-set tran1

[CPE1-transform-set-tran1] encapsulation-mode transport

[CPE1-transform-set-tran1] esp encryption-algorithm 3des-cbc

[CPE1-transform-set-tran1] esp authentication-algorithm md5

[CPE1-transform-set-tran1] quit

[CPE1] ipsec profile prf1 sdwan

[CPE1-ipsec-profile-sdwan-prf1] transform-set tran1

[CPE1-ipsec-profile-sdwan-prf1] quit

[CPE1] interface tunnel 1

[CPE1-Tunnel1] tunnel protection ipsec profile prf1

# 配置CPE 2。

[CPE2] ipsec transform-set tran1

[CPE2-transform-set-tran1] encapsulation-mode transport

[CPE2-transform-set-tran1] esp encryption-algorithm 3des-cbc

[CPE2-transform-set-tran1] esp authentication-algorithm md5

[CPE2-transform-set-tran1] quit

[CPE2] ipsec profile prf1 sdwan

[CPE2-ipsec-profile-sdwan-prf1] transform-set tran1

[CPE2-ipsec-profile-sdwan-prf1] quit

[CPE2] interface tunnel 1

[CPE2-Tunnel1] tunnel protection ipsec profile prf1

# 配置CPE 3。

[CPE3] ipsec transform-set tran1

[CPE3-transform-set-tran1] encapsulation-mode transport

[CPE3-transform-set-tran1] esp encryption-algorithm 3des-cbc

[CPE3-transform-set-tran1] esp authentication-algorithm md5

[CPE3-transform-set-tran1] quit

[CPE3] ipsec profile prf1 sdwan

[CPE3-ipsec-profile-sdwan-prf1] transform-set tran1

[CPE3-ipsec-profile-sdwan-prf1] quit

[CPE3] interface tunnel 1

[CPE3-Tunnel1] tunnel protection ipsec profile prf1

# 配置RR。

[RR] ipsec transform-set tran1

[RR-transform-set-tran1] encapsulation-mode transport

[RR-transform-set-tran1] esp encryption-algorithm 3des-cbc

[RR-transform-set-tran1] esp authentication-algorithm md5

[RR-transform-set-tran1] quit

[RR] ipsec profile prf1 sdwan

[RR-ipsec-profile-sdwan-prf1] transform-set tran1

[RR-ipsec-profile-sdwan-prf1] quit

[RR] interface tunnel 1

[RR-Tunnel1] tunnel protection ipsec profile prf1

[RR-Tunnel1] quit

[RR] interface tunnel 2

[RR-Tunnel2] tunnel protection ipsec profile prf1

[RR-Tunnel2] quit

[RR] interface tunnel 3

[RR-Tunnel3] tunnel protection ipsec profile prf1

[RR-Tunnel3] quit

(8)     在CPE设备上配置VPN实例,将CE接入CPE

# 配置CPE 1。

[CPE1] ip vpn-instance vpn1

[CPE1-vpn-instance-vpn1] route-distinguisher 1:1

[CPE1-vpn-instance-vpn1] vpn-target 1:1 import-extcommunity

[CPE1-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity

[CPE1-vpn-instance-vpn1] sdwan vn-id 100

[CPE1-vpn-instance-vpn1] quit

[CPE1] interface gigabitethernet 0/0/1

[CPE1-GigabitEthernet0/0/1] ip binding vpn-instance vpn1

[CPE1-GigabitEthernet0/0/1] quit

# 配置CPE 2。

[CPE2] ip vpn-instance vpn1

[CPE2-vpn-instance-vpn1] route-distinguisher 1:1

[CPE2-vpn-instance-vpn1] vpn-target 1:1 import-extcommunity

[CPE2-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity

[CPE2-vpn-instance-vpn1] sdwan vn-id 100

[CPE2-vpn-instance-vpn1] quit

[CPE2] interface gigabitethernet 0/0/1

[CPE2-GigabitEthernet0/0/1] ip binding vpn-instance vpn1

[CPE2-GigabitEthernet0/0/1] quit

# 配置CPE 3。

[CPE3] ip vpn-instance vpn1

[CPE3-vpn-instance-vpn1] route-distinguisher 1:1

[CPE3-vpn-instance-vpn1] vpn-target 1:1 import-extcommunity

[CPE3-vpn-instance-vpn1] vpn-target 1:1 export-extcommunity

[CPE3-vpn-instance-vpn1] sdwan vn-id 100

[CPE3-vpn-instance-vpn1] quit

[CPE3] interface gigabitethernet 0/0/1

[CPE3-GigabitEthernet0/0/1] ip binding vpn-instance vpn1

[CPE3-GigabitEthernet0/0/1] quit

(9)     在CPE与CE之间建立EBGP对等体,引入VPN路由

# 配置CE 1。

<CE1> system-view

[CE1] bgp 200

[CE1-bgp-default] peer 10.1.1.2 as-number 100

[CE1-bgp-default] address-family ipv4 unicast

[CE1-bgp-default-ipv4] peer 10.1.1.2 enable

[CE1-bgp-default-ipv4] import-route direct

[CE1-bgp-default-ipv4] quit

[CE1-bgp-default] quit

# 配置CE 2。

<CE2> system-view

[CE2] bgp 300

[CE2-bgp-default] peer 10.1.2.2 as-number 100

[CE2-bgp-default] address-family ipv4 unicast

[CE2-bgp-default-ipv4] peer 10.1.2.2 enable

[CE2-bgp-default-ipv4] import-route direct

[CE2-bgp-default-ipv4] quit

[CE2-bgp-default] quit

# 配置CE 3。

<CE3> system-view

[CE3] bgp 400

[CE3-bgp-default] peer 10.1.3.2 as-number 100

[CE3-bgp-default] address-family ipv4 unicast

[CE3-bgp-default-ipv4] peer 10.1.3.2 enable

[CE3-bgp-default-ipv4] import-route direct

[CE3-bgp-default-ipv4] quit

[CE3-bgp-default] quit

# 配置CPE 1。

[CPE1] bgp 100

[CPE1-bgp-default] ip vpn-instance vpn1

[CPE1-bgp-default-vpn1] peer 10.1.1.1 as-number 200

[CPE1-bgp-default-vpn1] address-family ipv4 unicast

[CPE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable

[CPE1-bgp-default-ipv4-vpn1] import-route direct

[CPE1-bgp-default-ipv4-vpn1] quit

[CPE1-bgp-default-vpn1] quit

[CPE1-bgp-default] quit

# 配置CPE 2。

[CPE2] bgp 100

[CPE2-bgp-default] ip vpn-instance vpn1

[CPE2-bgp-default-vpn1] peer 10.1.2.1 as-number 300

[CPE2-bgp-default-vpn1] address-family ipv4 unicast

[CPE2-bgp-default-ipv4-vpn1] peer 10.1.2.1 enable

[CPE2-bgp-default-ipv4-vpn1] import-route direct

[CPE2-bgp-default-ipv4-vpn1] quit

[CPE2-bgp-default-vpn1] quit

[CPE2-bgp-default] quit

# 配置CPE 3。

[CPE3] bgp 100

[CPE3-bgp-default] ip vpn-instance vpn1

[CPE3-bgp-default-vpn1] peer 10.1.3.1 as-number 400

[CPE3-bgp-default-vpn1] address-family ipv4 unicast

[CPE3-bgp-default-ipv4-vpn1] peer 10.1.3.1 enable

[CPE3-bgp-default-ipv4-vpn1] import-route direct

[CPE3-bgp-default-ipv4-vpn1] quit

[CPE3-bgp-default-vpn1] quit

[CPE3-bgp-default] quit

(10)     配置通过IP前缀路由发布站点的私网路由。

# CPE 1。

[CPE1] ip vpn-instance vpn1

[CPE1-vpn-instance-vpn1] address-family ipv4

[CPE1-vpn-ipv4-vpn1] evpn sdwan routing-enable

[CPE1-vpn-ipv4-vpn1] quit

[CPE1-vpn-instance-vpn1] quit

[CPE1] bgp 100

[CPE1-bgp-default] address-family l2vpn evpn

[CPE1-bgp-default-evpn] peer 1.1.1.100 enable

[CPE1-bgp-default-evpn] peer 1.1.1.100 advertise encap-type sdwan

[CPE1-bgp-default-evpn] quit

# CPE 2。

[CPE2] ip vpn-instance vpn1

[CPE2-vpn-instance-vpn1] address-family ipv4

[CPE2-vpn-ipv4-vpn1] evpn sdwan routing-enable

[CPE2-vpn-ipv4-vpn1] quit

[CPE2-vpn-instance-vpn1] quit

[CPE2] bgp 100

[CPE2-bgp-default] address-family l2vpn evpn

[CPE2-bgp-default-evpn] peer 1.1.1.100 enable

[CPE2-bgp-default-evpn] peer 1.1.1.100 advertise encap-type sdwan

[CPE2-bgp-default-evpn] quit

# CPE 3。

[CPE3] ip vpn-instance vpn1

[CPE3-vpn-instance-vpn1] address-family ipv4

[CPE3-vpn-ipv4-vpn1] evpn sdwan routing-enable

[CPE3-vpn-ipv4-vpn1] quit

[CPE3-vpn-instance-vpn1] quit

[CPE3] bgp 100

[CPE3-bgp-default] address-family l2vpn evpn

[CPE3-bgp-default-evpn] peer 1.1.1.100 enable

[CPE3-bgp-default-evpn] peer 1.1.1.100 advertise encap-type sdwan

[CPE3-bgp-default-evpn] quit

(11)     配置RR反射SDWAN封装的IP前缀路由,并通过出口策略控制不在CPE 2和CPE 3之间反射IP前缀路由。

# 创建ACL。

[RR] acl basic name cpe2

[RR-acl-ipv4-basic-cpe2] rule permit source 10.1.2.0 0.0.0.255

[RR-acl-ipv4-basic-cpe2] quit

[RR] acl basic name cpe3

[RR-acl-ipv4-basic-cpe3] rule permit source 10.1.3.0 0.0.0.255

[RR-acl-ipv4-basic-cpe3] quit

# 创建路由策略。

[RR] route-policy denycpe2 deny node 10

[RR-route-policy-denycpe2-10] if-match ip address acl name cpe2

[RR-route-policy-denycpe2-10] quit

[RR] route-policy denycpe2 permit node 20

[RR-route-policy-denycpe2-20] quit

[RR] route-policy denycpe3 deny node 10

[RR-route-policy-denycpe3-10] if-match ip address acl name cpe3

[RR-route-policy-denycpe3-10] quit

[RR] route-policy denycpe3 permit node 20

[RR-route-policy-denycpe3-20] quit

# 配置BGP EVPN路由反射。

[RR] bgp 100

[RR-bgp-default] address-family l2vpn evpn

[RR-bgp-default-evpn] undo policy vpn-target

[RR-bgp-default-evpn] peer 1.1.1.10 enable

[RR-bgp-default-evpn] peer 1.1.1.10 reflect-client

[RR-bgp-default-evpn] peer 1.1.1.10 advertise encap-type sdwan

[RR-bgp-default-evpn] peer 1.1.1.20 enable

[RR-bgp-default-evpn] peer 1.1.1.20 reflect-client

[RR-bgp-default-evpn] peer 1.1.1.20 advertise encap-type sdwan

[RR-bgp-default-evpn] peer 1.1.1.20 route-policy denycpe3 export

[RR-bgp-default-evpn] peer 1.1.1.30 enable

[RR-bgp-default-evpn] peer 1.1.1.30 reflect-client

[RR-bgp-default-evpn] peer 1.1.1.30 advertise encap-type sdwan

[RR-bgp-default-evpn] peer 1.1.1.30 route-policy denycpe2 export

5. 验证配置

# 以CPE 1为例。查看设备上TTE连接的信息,可以看到CPE 1与RR、CPE 2、CPE 3分别建立了TTE连接。

[CPE1] display sdwan tte connection

Destination SiteID/DevID/IfID/SysIP: 100/100/110/1.1.1.100

Destination IP/port: 11.1.1.1/3000

Source SiteID/DevID/IfID/SysIP: 10/10/10/1.1.1.10

Source IP/port: 11.1.1.2/3000

Created at: 2024/07/19 16:11:41

Status: Reachable

State changed at: 2024/07/19 16:11:52

 

Destination SiteID/DevID/IfID/SysIP: 20/20/20/1.1.1.20

Destination IP/port: 12.1.1.2/3000

Source SiteID/DevID/IfID/SysIP: 10/10/10/1.1.1.10

Source IP/port: 11.1.1.2/3000

Created at: 2024/07/19 16:11:39

Status: Reachable

State changed at: 2024/07/19 16:11:39

 

Destination SiteID/DevID/IfID/SysIP: 30/30/30/1.1.1.30

Destination IP/port: 13.1.1.2/3000

Source SiteID/DevID/IfID/SysIP: 10/10/10/1.1.1.10

Source IP/port: 11.1.1.2/3000

Created at: 2024/07/19 16:11:39

Status: Reachable

State changed at: 2024/07/19 16:11:39

 

Number of connections: 3

# 查看CPE 2上TTE连接的信息时,则只能看到CPE 2与RR以及CPE 1分别建立了TTE连接。(CPE 3类似)

[CPE2] display sdwan tte connection

Destination SiteID/DevID/IfID/SysIP: 100/100/110/1.1.1.100

Destination IP/port: 12.1.1.1/3000

Source SiteID/DevID/IfID/SysIP: 20/20/20/1.1.1.20

Source IP/port: 12.1.1.2/3000

Created at: 2024/07/19 16:11:41

Status: Reachable

State changed at: 2024/07/19 16:11:52

 

Destination SiteID/DevID/IfID/SysIP: 10/10/10/1.1.1.10

Destination IP/port: 11.1.1.2/3000

Source SiteID/DevID/IfID/SysIP: 20/20/20/1.1.1.20

Source IP/port: 12.1.1.2/3000

Created at: 2024/07/19 16:11:39

Status: Reachable

State changed at: 2024/07/19 16:11:39

 

Number of connections: 2

# 以CPE 1为例,在设备上执行display ip routing-table vpn-instance命令,可以看到去往对端CE 2和CE 3的路由。

[CPE1] display ip routing-table vpn-instance vpn1

 

Destinations : 12       Routes : 12

 

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0

10.1.1.0/24        Direct  0   0           10.1.1.1        GE0/0/1

10.1.1.2/32        Direct  0   0           127.0.0.1       InLoop0

10.1.1.255/32      Direct  0   0           10.1.1.1        GE0/0/1

10.1.2.1/24        BGP     255 0           1.1.1.20        Tun1

10.1.3.1/24        BGP     255 0           1.1.1.30        Tun2

127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0

127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0

127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0

224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0

255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

# 在CPE 2设备上执行display ip routing-table vpn-instance命令,则只可以看到去往对端CE 1的路由,看不到去往对端CE 3的路由。(CPE 3类似)

[CPE2] display ip routing-table vpn-instance vpn1

 

Destinations : 11       Routes : 11

 

Destination/Mask   Proto   Pre Cost        NextHop         Interface

0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0

10.1.2.0/24        Direct  0   0           10.1.1.1        GE0/0/1

10.1.2.2/32        Direct  0   0           127.0.0.1       InLoop0

10.1.2.255/32      Direct  0   0           10.1.1.1        GE0/0/1

10.1.1.1/24        BGP     255 0           1.1.1.20        Tun1

127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0

127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0

127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0

224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0

255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

# CE 1与CE 2、CE 3之间可以互访,但CE 2和CE 3之间不能互访。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们