01-SDWAN配置
本章节下载: 01-SDWAN配置 (688.44 KB)
目 录
1.4.1 BGP IPv4 Tnl-Encap-Ext地址族
2.6 配置BGP发布IPv4 Tnl-encap-ext路由
2.6.2 开启BGP发布IPv4 Tnl-encap-ext路由能力
2.6.3 配置BGP IPv4 Tnl-encap-ext路由
2.7.3 通过Priority-Color属性实现流量逃生以及负载分担
2.7.4 配置IP前缀路由仅通过Priority-Color扩展团体属性迭代下一跳
SDWAN(Software Defined Wide Area Network,软件定义广域网)是将SDN技术应用到广域网的一种VPN技术。控制平面通过SSL/MP-BGP通告TTE(Transport Tunnel Endpoint,传输隧道端点)信息,实现不同站点间SDWAN隧道的建立,并通过MP-BGP在不同站点间发布私网路由;数据平面采用UDP封装转发数据报文,通过IPsec等安全机制来确保数据的安全传输,为分散在广阔地理范围内的企业网络、数据中心等提供安全可靠的互联服务。
图1-1 SDWAN网络模型示意图
如图1-1所示,SDWAN的典型网络模型包含如下部分:
· CPE(Customer Provided Edge,用户提供的网络边缘):用户网络的边缘设备。
· RR(Route Reflector,路由反射器):用于在CPE之间反射TTE信息和私网路由等。
· TN(Transport Network,传输网络):运营商提供的广域接入网络,用来实现分支站点之间的互联,主要包括运营商专线网络和Internet公用网络等。传输网络可以通过TN ID或传输网络的名称来标识。TN是构建SDWAN Overlay网络的基础。
· RD(Routing Domain,路由域):由彼此之间路由可达的不同传输网络构成的区域。只能在位于同一个路由域内的CPE之间或CPE与RR之间建立SDWAN隧道。
· Site ID:站点ID,是分支站点在SDWAN网络中的唯一标识,通常用一串数字表示,由网络控制器统一自动分配。
· 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连接。
SDWAN报文分为控制报文和数据报文。
· 控制报文用于在穿越NAT的组网中,将本端NAT转换后的Public IP通告给SDWAN隧道对端的设备。穿越NAT的详细介绍,请参见“1.9 穿越NAT建立SDWAN隧道”
· 数据报文用于转发用户的报文。
如图1-2所示,SDWAN控制报文封装格式为:在数据部分外添加12字节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比特。目前取值固定为12。
· TTE ID:标识一个TTE,长度为32比特。
图1-2 SDWAN控制报文封装示意图
如图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报文。
· Length:表示SDWAN头的长度,长度为16比特。目前取值固定为12。
· 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数据报文封装示意图
为了支持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等。该信息用于在智能选路场景下,为不同的应用选择最佳访问路径。
图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信息。
· 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访问路径质量信息的具体内容。
在SDWAN支持多VPN实例场景中,CPE将VPN实例中的私网路由信息以EVPN IP前缀路由的形式发布给其他CPE。为支持SDWAN,EVPN路由进行了如下扩展:
· 在TUNNEL_ENCAPSULATION_ATTRIBUTE属性中,新增加了一种SDWAN封装类型。IP前缀路由携带了SDWAN封装后,只能在使能了发送SDWAN封装EVPN路由能力的设备之间转发。
· IP前缀路由的NLRI字段携带了VN ID,用来区分属于不同VPN实例的私网路由。
如图1-5所示,SDWAN网络包含控制通道和数据通道两种类型的通道。
图1-5 SDWAN网络隧道示意图
控制通道是指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隧道。
(4) 完成SDWAN隧道建立后,CPE、RR自动在本地添加到达对端Systerm IP的UNR(User network route,用户网络路由)路由。
(5) CPE、RR之间基于Systerm IP建立IPv4 Tnl-Encap-Ext地址族下的BGP连接(控制通道)。
数据通道是指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隧道。
为了保证数据安全传输,可以对数据报文进行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隧道可以节约设备资源,并且不建立隧道的租户间无法通信,从而实现了租户隔离。
在RIR-SDWAN协同选路组网中,CPE设备之间建立选路协同关系后,会将TTE连接信息和RIR的链路质量信息同步到对端设备上,保障智能选路功能为业务流量选择最优链路进行转发。当选择的最优链路位于对端设备上时,本端设备会通过SDWAN扩展隧道将业务流量转发到对端设备上,再由对端设备对业务流量进行转发。
如图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扩展隧道控制报文封装格式示意图
如图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-9所示,在SDWAN网路中,站点间的路由发布过程包含三部分:本地站点向CPE发布VPN路由、CPE之间发布路由、CPE向本地站点发布VPN路由。完成这三部分后,站点之间将建立可达路由。
本地站点使用静态路由、RIP、OSPF、IS-IS、EBGP或IBGP,将本站点的VPN路由发布给本端CPE。本地站点发布给CPE的是标准的IPv4路由。
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路由表中。
与本地站点向CPE发布路由信息相同,远端站点可以通过多种方式从远端CPE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS、EBGP和IBGP。
在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隧道转发报文示意图
为了保障SDWAN隧道传输数据的机密性和完整性,设备支持通过IPsec为SDWAN报文提供安全保护。为此,IPsec进行了如下扩展:
· 支持SDWAN方式的IPsec安全框架。
· 支持通信对等体之间的多个SDWAN隧道共用一对IPsec SA。
有关IPsec的详细介绍,请参见“安全配置指导”中的“IPsec”。
如图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的详细介绍,请参见“三层技术-IP业务配置指导”中的“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) 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) 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之间可以直接建立数据通道,建立过程请参见步骤1.9.1 (4)。
b. 若CPE之间无法直接建立数据通道,则需要通过在网络中部署NAT transfer设备来实现互通。CPE与NAT transfer之间建立数据通道,CPE之间的数据转发需要先通过数据通道转发到NAT transfer设备,再由NAT transfer设备通过数据通道转发到其他CPE,从而实现CPE之间的互通。CPE与NAT transfer之间建立数据通道的过程与CPE与RR之间建立SDWAN隧道的过程相同,具体参见步骤1.9.1 (4)。
表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 |
× |
√ |
SDWAN配置任务如下:
(1) 配置站点信息和设备标识
a. 配置设备所属的站点
(2) 配置SDWAN client
(3) 配置SDWAN server
(4) (可选)配置IPsec保护SDWAN隧道
配置方法请参见“安全配置指导”中的“IPsec”。
(5) (可选)配置穿越NAT建立SDWAN隧道
配置方法请参见“三层技术-IP业务配置指导”中的“NAT”
(6) 配置SDWAN隧道
(7) 配置BGP发布IPv4 Tnl-encap-ext路由
¡ CPE配置
¡ RR配置
¡ (可选)通过Priority-Color属性实现流量逃生以及负载分担
¡ (可选)配置IP前缀路由仅通过Priority-Color扩展团体属性迭代下一跳
(9) (可选)配置NAT转换后的公网IP地址和公网端口号
(10) (可选)Hub-Spoke组网中简化QoS业务配置
站点ID是站点在SDWAN网络中的唯一标识。
站点名称可以描述站点的位置、功能等,方便用户更好地识别站点在SDWAN网络中的作用。站点名称不是站点的唯一标识,不同的设备可以配置相同的站点名称。
不同的站点角色在SDWAN网络中的作用不同,站点角色变更会导致SDWAN隧道震荡,从而对业务产生影响,建议在网络部署前规划好设备角色。
(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功能的设备上必须配置相同的站点角色。
设备的ID是设备在站点内的唯一标识。
设备的系统IP是本设备与其他设备建立BGP会话时使用的IP地址。在智能选路场景中,系统IP也会作为NQA链路通断探测中NQA客户端发送的探测报文的内层目的IP地址。智能选路的详细介绍,请参见“三层技术-IP路由配置指导”中的“智能选路”。
(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接口时,本配置才生效。
在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隧道。
一个SSL连接只能引用一个SSL客户端策略。多次执行sdwan ssl-client-policy命令,最后一次执行的命令生效。但新的策略仅对修改配置后新创建的SSL连接生效。
配置本功能前需要先完成SSL客户端策略配置。关于SSL客户端策略的详细介绍,请参见“安全配置指导”中的“SSL”。
(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客户端策略。
执行本配置后,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域等。这种方式配置复杂,但是具有更高的安全性。
一个SSL连接只能引用一个SSL服务器端策略。重复执行sdwan ssl-server-policy命令修改SSL连接引用的SSL服务器端策略后,修改后的策略不会生效。只有先执行undo sdwan server enable命令,再执行sdwan server enable命令,新的策略才会生效。
如果采用安全方式建立SSL连接,则需要先完成SSL服务器端策略配置。关于SSL服务器端策略的详细介绍,请参见“安全配置指导”中的“SSL”。
(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服务器端策略。
当本端SDWAN隧道建立完成后,设备会通过该隧道上建立的所有TTE连接按照指定的时间间隔向对端发送Keepalive请求报文。
· 如果本端在发送Keepalive请求报文的时间间隔内收到对端发送的Keepalive应答报文,则认为本端与对端的TTE连接可达。
· 如果本端未在发送Keepalive请求报文的时间间隔内收到对端发送的Keepalive应答报文,则本端会尝试重新发送Keepalive请求报文。若在发送Keepalive请求报文的时间间隔×允许未收到Keepalive应答报文的最大连续次数时间内没有收到Keepalive应答报文,则认为本端与对端的TTE连接不可达,将不再使用该TTE连接转发报文。
关于隧道的详细介绍及Tunnel接口下的更多配置命令,请参见“三层技术-IP业务配置指导”中的“隧道”。
系统视图和Tunnel接口视图下均可以配置SDWAN报文采用UDP封装时的源UDP端口号。系统视图的配置对所有Tunnel接口都有效,而Tunnel接口视图下的配置只对当前Tunnel接口有效。对于一个Tunnel接口来说,优先采用该Tunnel接口视图下的配置,只有该Tunnel接口下未进行配置时,才采用系统视图的配置。
(1) 进入系统视图。
system-view
(2) (可选)配置全局SDWAN报文采用UDP封装时的源UDP端口号。
sdwan encapsulation global-udp-port port-number
缺省情况下,全局SDWAN报文的源UDP端口号为4799。
(3) 创建模式为UDP封装的IPv4 SDWAN Tunnel接口,并进入Tunnel接口视图。
interface tunnel tunnel-number mode sdwan udp
在隧道的两端应配置相同的隧道模式,否则会造成报文传输失败。
(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) 配置隧道的源端地址。请选择其中一项进行配置。
¡ 直接指定隧道的源端地址。
source { ipv4-address | 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秒。
BGP相关命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(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路由信息。
(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 ] *
缺省情况下,不限制从对等体/对等体组接收的路由数量。
(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属性中出现。
(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。
(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
缺省情况下,不向对等体/对等体组发布扩展团体属性。
请在用户视图下执行如下命令,复位或软复位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
在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路由。
在CPE上,evpn sdwan routing-enable命令和peer advertise encap-type sdwan命令需要配合使用。否则,CPE无法将VPN实例下的路由信息发布给RR。
(1) 进入系统视图。
system-view
(2) 进入VPN实例视图。
ip vpn-instance vpn-instance-name
(3) 配置VPN实例的VN ID。
sdwan vn-id vn-id
缺省情况下,VPN实例上VN ID为0。
(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路由。
在SDWAN网络中,RR通常作为路由反射器在CPE之间传递站点VPN路由,因此需要在RR上开启向CPE发布SDWAN封装的EVPN路由的能力。
(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路由。
Priority-Color扩展团体属性是BGP路由的一种扩展团体属性,只能用于SDWAN封装的EVPN路由。在SDWAN网络中,通过添加Priority-Color扩展团体属性,可以为EVPN路由增加备份路径,实现SDWAN网络中数据流量通道故障时的流量逃生。
Priority-Color扩展团体属性的格式为优先级:Site ID:Device ID或优先级:Site ID。其中,优先级的数值决定了备份路径的优先级,该数值越小,优先级越高;Site ID和Device ID标识了SDWAN网络中的一个或多个逃生站点(即SDWAN设备)。
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路由表中,并且形成负载分担。
如图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隧道上进行负载分担转发。
如需通过Priority-Color扩展团体属性实现负载分担,必须要在CPE设备的BGP-VPN IPv4单播地址族视图或BGP-VPN IPv6单播地址族视图下配置balance命令。有关balance命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(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 }
缺省情况下,没有为对等体/对等体组指定路由策略。
缺省情况下,在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扩展团体属性的配置就可以控制转发路径,以便灵活实现负载分担。
本功能仅对SDWAN封装、携带Priority-Color扩展团体属性的IP前缀路由生效。
(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扩展团体属性进行下一跳迭代。
在穿越NAT建立SDWAN隧道的场景中,若NAT设备上配置的是静态NAT转换,则可以通过在CPE/RR上执行本配置,手工指定隧道的源IP地址和端口号(即SDWAN报文封装时的源UDP端口号)NAT转换后的公网IP地址和公网端口号,而无需部署STUN功能来探测NAT转换后的公网IP地址和公网端口号。
执行本功能后,会导致基于该Tunnel接口建立的TTE连接断开,并根据手工指定的NAT转换后的公网IP地址和公网端口号重新建立TTE连接。
在公网不能主动访问内网的场景下,不建议配置本功能。
(1) 进入系统视图。
system-view
(2) 创建模式为UDP封装的IPv4 SDWAN Tunnel接口,并进入Tunnel接口视图。
interface tunnel tunnel-number mode sdwan udp
在隧道的两端应配置相同的隧道模式,否则会造成报文传输失败。
(3) 配置隧道的源IP地址和端口号经NAT转换后对应的公网IP地址和公网端口号。
sdwan nat-global-ip global-address global-port global-port
缺省情况下,未配置NAT转换后对应的公网IP地址和公网端口号。
在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隧道无影响。
在配置本功能之前,需完成以下任务:
· 在Hub设备上创建需要应用的User Profile。
· 根据业务需求在上述User Profile下配置相应QoS策略、流量监管、流量整形、流量限速或优先队列。
关于User Profile的详细介绍,请参见“用户接入与认证配置指导”中的“User Profile”。
上述配置准备中的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等功能将不生效。
(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”。
在完成上述配置后,在任意视图下执行display命令可以显示配置后SDWAN的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除相应的统计信息。
表2-1 SDWAN显示和维护
操作 |
命令 |
在RR上显示SDWAN server的状态 |
display sdwan server status |
在CPE上显示SSL连接状态 |
display sdwan peer-connection status [ system-ip system-ip-address ] [ ipv4 | ipv6 ] |
显示站点的TTE信息 |
display sdwan site-tte [ site-id site-id ] [ verbose ] [ ipv4 | ipv6 ] |
显示设备上TTE连接的信息 |
display sdwan tte connection [ site-id site-id | system-ip system-ip-address ] [ reachable | unreachable ] [ ipv4 | ipv6 ] [ collaboration ] [ count ] |
清除TTE连接信息 |
reset sdwan tte connection [ interface interface-type interface-number [ site-id site-id device-id device-id interface-id interface-id ] ] |
显示BGP IPv4 tnl-encap-ext路由信息 |
display bgp [ instance instance-name ] routing-table ipv4 tnl-encap-ext [ peer ipv4-address { advertised-routes | received-routes } [ 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 [ 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 |
站点网络通过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 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 |
|
|
|
通过FTP、TFTP等协议将证书文件传送到SDWAN server的存储介质中,并配置pki import命令将CA证书、本地证书导入到SDWAN server上指定的PKI域中。
(1) 配置各接口的IP地址。
按照图2-2配置各接口的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连接。
# 配置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] 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] sdwan ssl-client-policy plc1
[CPE2] sdwan server system-ip 1.1.1.20 ip 11.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
[CPE1-Tunnel2] quit
# 开启STUN服务器功能,并指定STUN服务器的IP地址和UDP端口号。
[RR] 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 200
[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.3.1 as-number 200
[CPE2-bgp-default-vpn1] address-family ipv4 unicast
[CPE2-bgp-default-ipv4-vpn1] peer 10.1.3.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.4.1 as-number 200
[CPE2-bgp-default-vpn2] address-family ipv4 unicast
[CPE2-bgp-default-ipv4-vpn2] peer 10.1.4.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
# 以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
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
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
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之间也可以互访。
站点网络通过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-3 按需建立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 |
CPE 2 |
Loop0 |
1.1.1.20/32 |
CPE 1 |
Loop0 |
1.1.1.10/32 |
|
|
10.1.2.2/24 |
|
GE0/0/1 |
10.1.1.2/24 |
|
|
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 |
通过FTP、TFTP等协议将证书文件传送到SDWAN server的存储介质中,并配置pki import命令将CA证书、本地证书导入到SDWAN server上指定的PKI域中。
(1) 配置各接口的IP地址。
按照图2-3配置各接口的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] 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] 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] 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 200
[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 200
[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
# 以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
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
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
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
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
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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!