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

18-NAT与IPv6过渡技术配置指导

目录

04-STUN配置

本章节下载 04-STUN配置  (622.08 KB)

04-STUN配置


1 STUN

1.1  STUN简介

STUN(Session Traversal Utilities for NAT,NAT环境下的会话传输)是一种处理NAT穿越问题的协议,为隧道模块提供了确定网络中是否存在NAT设备,以及NAT设备为通信端点分配的IP地址和端口号的方法。STUN基于UDP传输协议报文,默认使用的端口号为3478。

1.1.1  STUN基本概念

STUN采用C/S模式,由STUN客户端(STUN Client)和STUN服务器(STUN Server)组成,典型组网如图1-1所示。

·     STUN客户端:是一个发送STUN捆绑请求和接受STUN捆绑响应的设备。

·     STUN服务器:是一个发送STUN捆绑响应和接受STUN捆绑请求的设备。STUN服务器通常部署在公网上。

图1-1 STUN典型组网

 

STUN客户端和STUN服务器通过交互如下类型的协议报文,探测NAT转换后的IP地址和端口号,以及NAT类型。STUN客户端和STUN服务器交互的协议报文类型包括如下两种:

·     Binding Request:捆绑请求。

·     Binding Response:捆绑响应。

1.1.2  NAT映射和过滤

NAT映射和NAT过滤是NAT穿越技术里经常用到的两个概念。在STUN里,需要通过NAT映射类型和NAT过滤方式来判断NAT类型,从而确定STUN是否能正常工作。

相关术语如下:

·     Endpoint:指一对IP地址和端口号的组合。例如,Endpoint(X,x)表示IP地址为X、端口号为x。

·     NAT映射:指NAT设备对内网主动发到外网的报文进行映射。当内网主机向外网主机发起访问时,NAT设备会建立内网Endpoint和外网Endpoint之间的映射关系表,并根据该映射关系将报文的内网Endpoint转换成外网Endpoint转发出去。

·     NAT过滤:指NAT设备对外网主动发到内网的报文进行过滤。为了防止内网主机受到攻击,NAT设备会对外网主动发到内网的报文进行过滤,即过滤非法报文,转发正常通信报文。

1. NAT映射类型

NAT映射类型包括三种:EIM、ADM和APDM。下面以图1-2图1-3图1-4为例,详细介绍三种NAT映射类型。假设内网主机Host A的内网Endpoint为(X,x),经过NAT映射后的外网Endpoint为(Y,y)。外网Host B的Endpoint为(M,m),外网Host C的Endpoint为(N,n)。

·     EIM(Endpoint-Independent Mapping,外部地址无关映射):同一个内网Endpoint发送到任何外部网络的报文,NAT映射后的结果相同。如图1-2所示,对于内网Endpoint(X,x),NAT映射后的外网Endpoint均为(Y,y)。

图1-2 EIM示意图

 

·     ADM(Address-Dependent Mapping,外部地址相关映射):同一个内网Endpoint发送到外部网络中相同IP地址、任意端口号的报文,NAT映射后的结果相同。如图1-3所示,对于内网Endpoint(X,x)访问Host B的报文,NAT映射后的外网Endpoint为(Y1,y1);内网Endpoint(X, x)访问Host C的报文,NAT映射后的外网Endpoint为(Y2,y2)。只要M=N,无论m和n是否相同,都有Endpoint(Y1,y1)=Endpoint(Y2,y2)。

图1-3 ADM示意图

 

·     APDM(Address and Port-Dependent Mapping,外部地址和端口相关映射):同一个内网Endpoint发送到外部网络中的同一个外网Endpoint,NAT映射后的结果相同。如图1-4所示,对于内网Endpoint(X,x)访问Host B的报文,NAT映射后的外网Endpoint为(Y1,y1);内网Endpoint(X,x)访问Host C的报文,NAT映射后的外网Endpoint为(Y2,y2)。只有当M=N,且m=n时,才有Endpoint(Y1, y1)=Endpoint(Y2, y2)。

图1-4 APDM示意图

 

2. NAT过滤方式

NAT过滤方式包括三种:EIF、ADF和APDF。下面以图1-5图1-6图1-7为例,详细介绍三种NAT过滤类型。假设内网主机Host A的内网Endpoint为(X,x),经过NAT映射后的外网Endpoint为(Y,y)。外网Host B的Endpoint为(M,m),外网Host C的Endpoint为(N,n)。

·     EIF(Endpoint-Independent Filtering,外部地址无关过滤):对于内网Endpoint(X,x),只要它曾经向外网发送过数据,外网主机就可以获取到NAT映射后的外网Endpoint(Y,y)。那么,对于任意外部网络的主机发送到Endpoint(Y,y)的报文,NAT设备都会进行地址转换并转发到内网。除此之外的外部报文都会被NAT设备过滤。

图1-5 EIF示意图

 

·     ADF(Address-Dependent Filtering,外部地址相关过滤):对于内网Endpoint(X,x),只有它曾经向IP地址为M的外网主机Host B发送过报文,NAT设备才会对外网主机Host B使用外网地址M、任意端口号发送到Endpoint(Y,y)的报文进行地址转换。除此之外的外部网络报文都会被NAT设备过滤。

图1-6 ADF示意图

 

 

·     APDF(Address and Port-Dependent Filtering,外部地址和端口相关过滤):对于内网Endpoint(X,x),如果它仅向外网Endpoint(M1,m1)发送过报文,那么NAT设备只会对Endpoint(M1,m1)发送到Endpoint(Y,y)的报文进行地址转换并转发到内网。除此之外的外网网络报文都会被NAT设备过滤。

图1-7 APDF示意图

 

1.1.3  NAT类型

NAT类型是由映射类型和过滤方式组合而成的,有如下四种组合方式:

·     Full Cone NAT是EIM和EIF的组合。

·     Restricted Cone NAT是EIM和ADF的组合。

·     Port Restricted Cone NAT是EIM和APDF的组合。

·     Symmetric NAT是APDM和APDF的组合。

不同类型的NAT的工作机制不同,具体如下:

·     Full Cone NAT(完全锥型NAT):所有从同一个私网IP地址和端口(IP1:Port1)发送到NAT设备的报文都会被映射成同一个公网IP地址和端口(IP:Port)。并且,任何外部主机都可以通过该公网IP地址和端口(IP:Port)和内部主机进行通信。

·     Restricted Cone NAT(限制锥型NAT):所有从同一个私网IP地址和端口(IP1:Port1)发送到NAT设备的报文都会被映射成同一个公网IP和端口号(IP:Port)。与Full Cone NAT不同的是,不是所有外部主机都可以通过(IP:Port)和内部主机进行通信,除非内部主机之前已经向此外部主机发送过报文。

·     Port Restricted Cone NAT(端口限制锥型NAT):所有从同一个私网IP地址和端口(IP1:Port1)发送到NAT设备的报文都会被映射成同一个公网IP和端口号(IP:Port)。与Restricted Cone NAT不同的是,一台公网主机(IP2:Port2)能够和内网主机进行通信的前提是,这台公网主机通过(IP2:Port2)收到内网主机发送的数据包。

·     Symmetric NAT(对称NAT):所有从同一个私网IP地址和端口(IP1:Port1)发送到一个特定的目的IP地址和端口的报文,都会被映射到同一个IP地址和端口。如果同一台私网主机使用相同的源地址和端口号发送报文,但是发往不同的目的地,NAT将会使用不同的映射。此外,公网主机与某个内网主机通信的前提是,这台公网主机收到该内网主机发送的数据报文。

1.1.4  STUN应用场景

在如图1-8所示的SDWAN场景中,为了节约IP地址资源,CPE经常使用私网IP地址,需要经过NAT设备转换才能访问总部。由于CPE发出的报文在经过NAT设备后,IP地址会发生变化,如果无法获取报文转换后的IP地址,则CPE之间无法建立数据通道。

为了使CPE之间能够建立数据通道,需要在CPE和RR上使用STUN来探测CPE之间是否存在NAT设备,并确定经过NAT设备转换后的IP地址和端口号。在CPE和RR上的STUN配置如下:

·     在CPE上配置STUN客户端功能,CPE通过发送STUN捆绑请求报文发起STUN探测请求。

·     在RR上配置STUN服务器功能,RR通过发送STUN捆绑响应报文回应STUN探测请求。

完成上述配置后,CPE和RR之间通过交互STUN协议报文探测到转换后的IP地址和端口号后,CPE 1和CPE 2使用对方转换后的IP地址作为建立数据通道的目的IP地址。

关于穿越NAT的SDWAN隧道的详细介绍,请参见“IP业务配置指导”中的“SDWAN”。

图1-8 穿越NAT的SDWAN隧道示意图

 

1.1.5  STUN报文结构

STUN基于UDP传输协议报文,协议报文的封装格式如图1-9所示。

图1-9 STUN报文结构

 

图1-10所示,STUN消息(STUN Message)包括STUN消息头和STUN消息属性两部分。STUN消息头的长度为20字节,后面跟着零个或多个属性。

图1-10 STUN消息结构

 

2. STUN消息头

STUN消息头的结构如图1-11所示。

图1-11 STUN消息头结构

 

STUN消息头包含如下字段:

·     STUN Message Type:STUN消息类型,长度为14比特。当前仅支持STUN捆绑请求和STUN捆绑响应两种类型的消息。

·     Message Length:STUN消息长度,长度为16比特(不包括消息头长度)。

·     Magic Cookie:魔术字,长度为32比特。魔术字包含固定值0x2112A442,用于STUN服务器检测STUN客户端是否可以识别特定属性。此外,当STUN与其他协议使用相同的端口号时,通过魔术字可以将STUN和其他协议区分开。

·     Transaction ID:事务ID,长度为96比特,用于唯一标识一次STUN探测。事务ID由STUN客户端来选择,在一次STUN探测中,STUN服务器收到STUN的捆绑请求消息后,以同样的事务ID返回STUN捆绑响应消息。同时,STUN服务器根据事务ID来唯一标识STUN客户端的不同探测请求。

3. STUN消息属性

STUN消息属性采用TLV(Type/Length/Value,类型/长度/值)格式,结构如图1-12所示。其中,Type和Length字段的长度均为16比特,Value字段的长度可变。

图1-12 STUN消息属性结构

 

常见的STUN消息属性包括如下几种:

·     CHANGE-REQUEST:捆绑请求中携带的消息属性,STUN客户端使用此属性来请求STUN服务器使用不同的IP地址或端口号来发送捆绑响应。

·     MAPPED-ADDRESS:捆绑响应中携带的消息属性,表示经过地址转换后的STUN客户端的IP地址和端口。

·     XOR-MAPPED-ADDRESS:捆绑响应中携带的消息属性,表示经过地址转换后的STUN客户端的IP地址和端口。与MAPPED-ADDRESS不同的是,XOR-MAPPED-ADDRESS属性中携带的IP地址经过了异或(XOR)处理。

·     RESPONSE-ORIGIN:捆绑响应中携带的消息属性,表示STUN服务器发送数据的IP地址和端口。

·     OTHER-ADDRESS:捆绑响应中携带的消息属性,表示STUN服务器的另一个IP地址和端口号。假设STUN服务器的IP地址为Y1,替代IP地址为Y2,端口号为YP1,替代端口号为YP2。Da表示STUN客户端发送捆绑请求的目的IP地址,Dp表示STUN客户端发送捆绑请求的目的端口号。如果Da为Y1,那么OTHER-ADDRESS中的IP地址为Y2;如果Da为Y2,那么OTHER-ADDRESS中的IP地址为Y1。如果Dp为YP1,那么OTHER-ADDRESS中的端口号为YP2;如果Dp为YP2,那么OTHER-ADDRESS中的端口号为YP1。

当STUN客户端要求STUN服务器使用不同的IP地址发送捆绑响应时,如果Da为Y1,则捆绑响应报文OTHER-ADDRESS中的IP地址为Y2;如果Da为Y2,则OTHER-ADDRESS中的IP地址为Y1。类似地,当STUN客户端要求STUN服务器使用不同的端口号发送捆绑响应时,如果Dp为YP1,那么OTHER-ADDRESS中的端口号为YP2;如果Dp为YP2,那么OTHER-ADDRESS中的端口号为YP1。

如果STUN服务器未指定替代IP地址,则捆绑响应报文中不会携带OTHER-ADDRESS属性,这种情况下,STUN客户端无法判断NAT类型。

1.1.6  STUN工作机制

STUN客户端通过和STUN服务器之间交互STUN协议报文,探测网络中NAT设备上的NAT映射的类型和NAT过滤的方式,并根据探测结果判断NAT类型。

1. NAT映射类型探测

假设STUN服务器的IP地址为Y1,替代IP地址为Y2,端口号为YP1,替代端口号为YP2。STUN客户端的IP地址和端口号为(X,XP)。STUN进行NAT映射探测的流程如图1-13所示,具体步骤为:

(1)     STUN客户端以Endpoint(X,XP)为源地址和源端口向STUN服务器的外网Endpoint(Y1,YP1)发送捆绑请求。STUN服务器使用Endpoint(Y1,YP1)给STUN客户端发送捆绑响应,响应内容包括:STUN客户端经过NAT映射后的外网Endpoint(X1,XP1),以及STUN服务器的另一个外网Endpoint(Y2,YP2)。

(2)     STUN客户端收到STUN服务器发送的捆绑响应报文后,判断NAT映射后的Endpoint(X1,XP1)是否与内网Endpoint(X,XP)相同:

a.     如果Endpoint(X1,XP1)与Endpoint(X,XP)相同,则STUN客户端认为不存在NAT映射。

b.     如果Endpoint(X1,XP1)与Endpoint(X,XP)不同,则STUN客户端使用第(3)步进行探测。

(3)     STUN客户端以Endpoint(X,XP)给STUN服务器的外网Endpoint(Y2,YP1)发送捆绑请求。STUN服务器使用Endpoint(Y2,YP1)给STUN客户端发送捆绑响应,响应内容包括:STUN客户端经过NAT映射后的外网Endpoint(X2,XP2)。

(4)     STUN客户端收到STUN服务器发送的捆绑响应报文后,判断NAT映射后的Endpoint(X2,XP2)是否与第(1)步中NAT映射后的Endpoint(X1,XP1)相同:

a.     如果Endpoint(X2,XP2)与Endpoint(X1,XP1)相同,则STUN客户端认为NAT映射类型为EIM。

b.     如果Endpoint(X2,XP2)与Endpoint(X1,XP1)不同,则STUN客户端使用第(5)步进行探测。

(5)     STUN客户端以Endpoint(X,XP)给STUN服务器的外网Endpoint(Y2,YP2)发送捆绑请求。STUN服务器使用Endpoint(Y2,YP2)给STUN客户端发送捆绑响应,响应内容包括:STUN客户端经过NAT映射后的外网Endpoint(X3,XP3)。

(6)     STUN客户端收到STUN服务器发送的捆绑响应报文后,判断NAT映射后的Endpoint(X3,XP3)是否与第(3)步中NAT映射后的Endpoint(X2,XP2)相同:

a.     如果Endpoint(X3,XP3)与Endpoint(X2,XP2)相同,则STUN客户端认为NAT映射类型为ADM。

b.     如果Endpoint(X3,XP3)与Endpoint(X2,XP2)不同,则STUN客户端认为NAT映射类型为APDM。

图1-13 NAT映射类型探测流程图

 

2. NAT过滤方式探测

假设STUN服务器的IP地址为Y1,替代IP地址为Y2,端口号为YP1,替代端口号为YP2。STUN客户端的IP地址和端口号为(X,XP)。STUN进行NAT映射探测的流程如图1-14所示,具体步骤为:

(1)     STUN客户端以Endpoint(X,XP)为源地址和源端口向STUN服务器的外网Endpoint(Y1,YP1)发送捆绑请求,请求报文中携带CHANGE-REQUEST属性,即要求STUN服务器改变IP地址和端口号来发送捆绑响应。STUN服务器发送给STUN客户端的捆绑响应中,OTHER-ADDRESS为(Y2,YP2),捆绑响应的源地址和源端口为(Y2,YP2)。

(2)     STUN客户端根据是否能收到响应报文进行如下判断:

a.     如果STUN客户端收到了捆绑响应报文,则STUN客户端认为NAT过滤类型为EIF。

b.     如果STUN客户端未收到捆绑响应报文,则STUN客户端使用第(3)步进行探测。

(3)     STUN客户端以Endpoint(X,XP)给STUN服务器的外网Endpoint(Y1,YP1)发送捆绑请求,请求报文中携带CHANGE-REQUEST属性,即要求STUN服务器改变端口号来发送捆绑响应。STUN服务器发送给STUN客户端的捆绑响应中,OTHER-ADDRESS为(Y2,YP2),捆绑响应的源地址和源端口为(Y1,YP2)。

(4)     STUN客户端根据是否能收到响应报文进行如下判断:

a.     如果STUN客户端收到了捆绑响应报文,则STUN客户端认为NAT过滤类型为ADF。

b.     如果STUN客户端未收到捆绑响应报文,则STUN客户端认为NAT过滤类型为APDF。

图1-14 NAT过滤方式探测流程图

 

1.1.7  私网中部署STUN服务器

STUN服务器通常部署在公网上,STUN服务器收到STUN客户端发送的捆绑请求报文后,向STUN客户端发送捆绑响应报文,且捆绑响应报文载荷中的IP地址为STUN服务器的公网地址。如果STUN服务器部署在私网,STUN服务器发送的捆绑响应报文载荷中的IP地址为STUN服务器的私网地址。由于STUN服务器侧的NAT设备不会将捆绑响应报文载荷中的私网IP地址转换为公网IP地址,需要网络设备做如下配合才能满足STUN探测需求:

·     STUN服务器上手工指定经过地址转换后的STUN服务器的IP地址、替代IP地址。

·     STUN服务器侧的NAT设备上使用公私网映射关系唯一的地址转换规则。

基于此,STUN客户端就不会感知STUN服务器的私网IP地址,仍然通过STUN服务器的公网IP地址与之互通,且STUN服务器发送给客户端的STUN协议报文载荷中的地址也会填充为STUN服务器的公网IP地址。

图1-15 STUN服务器部署在私网的典型组网

 

1.1.8  STUN客户端重传机制

STUN基于UDP传输协议报文,STUN协议报文有可能在传输过程中被丢弃。STUN请求/响应事务的可靠性是通过STUN客户端的重传机制来实现的,具体机制如下:

(1)     STUN客户端发送捆绑请求报文后,如果在一定时间内没有收到捆绑响应报文,STUN客户端会以一定的时间间隔重传捆绑请求报文。

(2)     当STUN客户端收到捆绑响应报文,或者重传STUN报文的次数达到最大,STUN客户端将停止重传。

(3)     如果STUN客户端重传STUN报文的次数达到最大后,还未收到捆绑响应报文,则STUN客户端认为捆绑请求报文传输失败,无法进行STUN探测。

1.1.9  协议规范

与STUN相关的协议规范有:

·     RFC 3489:STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)

·     RFC 5389:Session Traversal Utilities for NAT (STUN)

·     RFC 5780:NAT Behavior Discovery Using Session Traversal Utilities for NAT (STUN)

1.2  STUN配置任务简介

(1)     配置STUN服务器

(2)     配置STUN客户端

1.3  STUN配置准备

STUN主要用于解决SDWAN网络中的NAT穿越问题。在SDWAN网络中,STUN的探测结果需要在SDWAN隧道中传输。因此在配置STUN服务器和STUN客户端前,需要完成SDWAN的配置。关于SDWAN配置的详细介绍,请参见“SDWAN配置指导”中的“SDWAN”。

1.4  STUN配置限制和指导

为了STUN探测功能能够正常工作,需要保证STUN客户端到STUN服务器的IP地址和替代IP地址均路由可达。

1.5  配置STUN服务器

(1)     进入系统视图。

system-view

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

stun server ip ip-address [ port port-number ] [ alternative-ip ip-address [ alternative-port port-number ] ] [ vpn-instance vpn-instance-name ] [ global-ip global-ip-address [ global-port port-number ] [ global-alternative-ip ip-address [ global-alternative-port port-number ] ] ]

缺省情况下,STUN服务器功能处于关闭状态。

1.6  配置STUN客户端

1. 功能简介

配置本功能后,设备将作为STUN客户端与本功能中指定的STUN服务器建立连接,然后向STUN服务器发送捆绑请求报文。STUN客户端通过与STUN服务器交互协议报文获取NAT转换后的IP地址和端口号,并判断NAT类型。

STUN客户端上可以指定多个STUN服务器进行探测,工作机制如下:

(1)     STUN客户端向所有指定的STUN服务器发送捆绑请求报文。

(2)     STUN客户端同一时刻只能处理一个STUN服务器发送的捆绑响应报文。只要STUN客户端通过处理其中一个STUN服务器发送的捆绑响应报文确定了NAT类型、NAT转换后的Public IP和端口号,则不会通过其他STUN服务器进行探测。

(3)     如果探测失败,则STUN客户端重复步骤(1)(2)

2. 配置限制和指导

STUN客户端上指定多个STUN服务器时,需要保证指定的多个STUN服务器位于同一台NAT设备后,否则无法保证探测结果的准确性。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入Tunnel接口视图。

interface tunnel number [ mode { advpn { gre | udp } [ ipv6 ] | ds-lite-aftr | eogre | eogre-udp | evi [ ipv6 ] | gre [ ipv6 ] | gre-p2mp [ ipv6 ] | ipsec [ ipv6 ] | ipv4-ipv4 | ipv4-ipv6 | ipv6 | ipv6-ipv4 [ 6rd | 6to4 | auto-tunnel | isatap ] | mgre | mpls-te | nve | nvgre | sdwan udp | sr ipv6 |{ vxlan } [ ipv6 ] } ]

关于本命令的详细介绍,请参见“三层技术-IP业务配置指导”中的“隧道”。

(3)     开启接口的STUN客户端功能,并设置STUN客户端连接的STUN服务器的IP和端口号。

stun client destination-ip ip-address [ destination-port port-number ] [ out-interface interface-type interface-number ]

缺省情况下,接口的STUN客户端功能处于关闭状态。

1.7  STUN显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示STUN配置后的运行情况,通过查看显示信息验证配置的效果。

在用户视图下,执行reset命令可以清除STUN表项。

表1-1 NAT显示和维护

操作

命令

查看STUN客户端收发报文的统计信息

display stun client info

查看STUN服务器收发报文的统计信息

display stun server packet-statistics

清除STUN客户端的报文统计信息

reset stun client statistics

清除STUN服务器的报文统计信息

reset stun server packet-statistics

 

1.8  STUN配置举例

1.8.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. 组网图

图1-16 穿越NAT建立SDWAN隧道配置组网图

 

表1-2 组网图示例接口与设备实际接口对应关系

组网图示例接口

设备实际接口

Interface1

GigabitEthernet0/0/1

Interface2

GigabitEthernet0/0/2

Interface3

GigabitEthernet0/0/3

 

表1-3 组网图接口与IP地址对应关系

设备

接口

IP地址

设备

接口

IP地址

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

13.1.1.1/24

RR

Loop0

1.1.1.20/32

CE 1

GE0/0/1

10.1.1.1/24

 

Loop1

6.6.6.1/32

CE 2

GE0/0/1

10.1.2.1/24

 

Loop2

6.6.6.2/32

CE 3

GE0/0/1

10.1.3.1/24

 

GE0/0/1

192.168.56.20/24

CE 4

GE0/0/1

10.1.4.1/24

 

GE0/0/2

11.1.1.2/24

CA server

 

192.168.56.10/24

 

GE0/0/3

13.1.1.2/24

 

 

 

 

3. 配置CA服务器

本例中采用Windows 2012 server作为CA服务器,配置步骤如下:

(1)     安装证书服务器组件

打开[控制面板]/[添加/删除程序],选择[添加/删除Windows组件]中的“证书服务”进行安装。安装过程中设置CA的名称,该名称为信任的CA的名称(本例中为caserver)。

(2)     安装SCEP插件

由于Windows 2012 server作为CA服务器时,缺省情况下不支持SCEP,所以需要安装SCEP插件,才能使设备具备证书自动注册、获取等功能。插件安装完毕后,弹出提示框,提示框中的URL地址即为设备上配置的注册服务器地址。

(3)     修改证书服务的属性

完成上述配置后,打开[控制面板/管理工具]中的[证书颁发机构],如果安装成功,在[颁发的证书]中将存在两个CA颁发给RA的证书。选择[CA server 属性]中的“策略模块”的属性为“如果可以的话,按照证书模板中的设置。否则,将自动颁发证书(F)。”

(4)     修改IIS服务的属性

打开[控制面板/管理工具]中的[Internet 信息服务(IIS)管理器],将[默认网站 属性]中“主目录”的本地路径修改为证书服务保存的路径。另外,为了避免与已有的服务冲突,建议修改默认网站的TCP端口号为未使用的端口号(本例中为8080)。

(5)     配置网关地址

在CA服务器上设置网关地址为RR的地址192.168.56.20,以确保CA服务器与CPE、RR路由可达。

注意

CA服务器的时钟需要与CPE、RR设备的系统时钟同步,否则CPE和RR可能无法申请证书。

 

4. 配置设备

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

# 配置CPE 1。

<Sysname> system-view

[Sysname] sysname CPE1

[CPE1] interface loopback 0

[CPE1-LoopBack0] ip address 1.1.1.10 32

[CPE1-LoopBack0] quit

[CPE1] interface gigabitethernet 0/0/3

[CPE1-GigabitEthernet0/0/3] ip address 11.1.1.1 24

[CPE1-GigabitEthernet0/0/3] quit

# 配置CPE 2。

<Sysname> system-view

[Sysname] sysname CPE2

[CPE2] interface loopback 0

[CPE2-LoopBack0] ip address 1.1.1.30 32

[CPE2-LoopBack0] quit

[CPE2] interface gigabitethernet 0/0/3

[CPE2-GigabitEthernet0/0/3] ip address 13.1.1.1 24

[CPE2-GigabitEthernet0/0/3] quit

# 配置RR。

<Sysname> system-view

[Sysname] sysname RR

[RR] interface loopback 0

[RR-LoopBack0] ip address 1.1.1.20 32

[RR-LoopBack0] quit

[RR] interface loopback 1

[RR-LoopBack1] ip address 6.6.6.1 32

[RR-LoopBack1] quit

[RR] interface loopback 2

[RR-LoopBack2] ip address 6.6.6.2 32

[RR-LoopBack2] quit

[RR] interface gigabitethernet 0/0/1

[RR-GigabitEthernet0/0/1] ip address 192.168.56.20 24

[RR-GigabitEthernet0/0/1] quit

[RR] interface gigabitethernet 0/0/2

[RR-GigabitEthernet0/0/2] ip address 11.1.1.2 24

[RR-GigabitEthernet0/0/2] quit

[RR] interface gigabitethernet 0/0/3

[RR-GigabitEthernet0/0/3] ip address 13.1.1.2 24

[RR-GigabitEthernet0/0/3] quit

# 配置CE 1。

<Sysname> system-view

[Sysname] sysname CE1

[CE1] interface gigabitethernet 0/0/1

[CE1-GigabitEthernet0/0/1] ip address 10.1.1.1 24

[CE1-GigabitEthernet0/0/1] quit

# 配置CE 2。

<Sysname> system-view

[Sysname] sysname CE2

[CE2] interface gigabitethernet 0/0/1

[CE2-GigabitEthernet0/0/1] ip address 10.1.2.1 24

[CE2-GigabitEthernet0/0/1] quit

# 配置CE 3。

<Sysname> system-view

[Sysname] sysname CE3

[CE3] interface gigabitethernet 0/0/1

[CE3-GigabitEthernet0/0/1] ip address 10.1.3.1 24

[CE3-GigabitEthernet0/0/1] quit

# 配置CE 4。

<Sysname> system-view

[Sysname] sysname CE4

[CE4] interface gigabitethernet 0/0/1

[CE4-GigabitEthernet0/0/1] ip address 10.1.4.1 24

[CE4-GigabitEthernet0/0/1] quit

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

# 配置CPE 1。

[CPE1] ospf

[CPE1-ospf-1] area 0

[CPE1-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255

[CPE1-ospf-1-area-0.0.0.0] quit

[CPE1-ospf-1] quit

# 配置CPE 2。

[CPE2] ospf

[CPE2-ospf-1] area 0

[CPE2-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255

[CPE2-ospf-1-area-0.0.0.0] quit

[CPE2-ospf-1] quit

# 配置RR。

[RR] ospf

[RR-ospf-1] area 0

[RR-ospf-1-area-0.0.0.0] network 11.1.1.0 0.0.0.255

[RR-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255

[RR-ospf-1-area-0.0.0.0] network 192.168.56.0 0.0.0.255

[RR-ospf-1-area-0.0.0.0] network 6.6.6.1 0.0.0.0

[RR-ospf-1-area-0.0.0.0] network 6.6.6.2 0.0.0.0

[RR-ospf-1-area-0.0.0.0] quit

[RR-ospf-1] quit

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

# 配置CPE 1。

[CPE1] sdwan site-id 20

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[CPE1] sdwan site-name beijing

[CPE1] sdwan site-role cpe

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[CPE1] sdwan device-id 20

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[CPE1] sdwan system-ip loopback0

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[CPE1] sdwan encapsulation global-udp-port 3000

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

# 配置CPE 2。

[CPE2] sdwan site-id 30

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[CPE2] sdwan site-name nanjing

[CPE2] sdwan site-role cpe

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[CPE2] sdwan device-id 30

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[CPE2] sdwan system-ip loopback0

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[CPE2] sdwan encapsulation global-udp-port 3000

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

# 配置RR。

[RR] sdwan site-id 10

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[RR] sdwan site-name shanghai

[RR] sdwan site-role rr

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[RR] sdwan device-id 10

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[RR] sdwan system-ip loopback0

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[RR] sdwan encapsulation global-udp-port 3000

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

(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和RR获取证书前,需要先在Windows Server上通过访问http://192.168.56.10:8080/certsrv/mscep/mscep.dll来获取注册质询密码,即执行pki request-certificate命令时输入的password

 

# 配置CPE 1。

[CPE1] pki entity en

[CPE1-pki-entity-en] common-name CPE1

[CPE1-pki-entity-en] quit

[CPE1] pki domain dm1

[CPE1-pki-domain-dm1] ca identifier caserver

[CPE1-pki-domain-dm1] certificate request url http://192.168.56.10:8080/certsrv/mscep/mscep.dll

[CPE1-pki-domain-dm1] certificate request from ra

[CPE1-pki-domain-dm1] certificate request entity en

[CPE1-pki-domain-dm1] crl url http://192.168.56.10:8080/CertEnroll/caserver.crl

[CPE1-pki-domain-dm1] public-key rsa general name abc length 2048

[CPE1-pki-domain-dm1] quit

[CPE1] public-key local create rsa name abc

The range of public key mjyodulus is (512 ~ 4096).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:2048

Generating Keys...

.

Created the key pair successfully.

[CPE1] pki retrieve-certificate domain dm1 ca

The trusted CA's finger print is:

    MD5  fingerprint:B279 3344 DBF6 99A7 E173 3972 5FF3 CD6C

    SHA1 fingerprint:FA1B 6380 B63D 058E B5EE 69C8 9055 5F7D 00B6 C905

Is the finger print correct?(Y/N):y

Retrieved the certificates successfully.

[CPE1] pki request-certificate domain dm1 password 3FEB86796E6D2D0E

Start to request certificate ...

 

Certificate requested successfully.

[CPE1] ssl client-policy plc1

[CPE1-ssl-client-policy-plc1] pki-domain dm1

[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] pki entity en

[CPE2-pki-entity-en] common-name CPE2

[CPE2-pki-entity-en] quit

[CPE2] pki domain dm1

[CPE2-pki-domain-dm1] ca identifier caserver

[CPE2-pki-domain-dm1] certificate request url http://192.168.56.10:8080/certsrv/mscep/mscep.dll

[CPE2-pki-domain-dm1] certificate request from ra

[CPE2-pki-domain-dm1] certificate request entity en

[CPE2-pki-domain-dm1] crl url http://192.168.56.10:8080/CertEnroll/caserver.crl

[CPE2-pki-domain-dm1] public-key rsa general name abc length 2048

[CPE2-pki-domain-dm1] quit

[CPE2] public-key local create rsa name abc

The range of public key mjyodulus is (512 ~ 4096).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:2048

Generating Keys...

.

Created the key pair successfully.

[CPE2] pki retrieve-certificate domain dm1 ca

The trusted CA's finger print is:

    MD5  fingerprint:B279 3344 DBF6 99A7 E173 3972 5FF3 CD6C

    SHA1 fingerprint:FA1B 6380 B63D 058E B5EE 69C8 9055 5F7D 00B6 C905

Is the finger print correct?(Y/N):y

Retrieved the certificates successfully.

[CPE2] pki request-certificate domain dm1 password F852F8FD617F4589

Start to request certificate ...

 

Certificate requested successfully.

[CPE2] ssl client-policy plc1

[CPE2-ssl-client-policy-plc1] pki-domain dm1

[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 entity en

[RR-pki-entity-en] common-name RR

[RR-pki-entity-en] quit

[RR] pki domain dm1

[RR-pki-domain-dm1] ca identifier caserver

[RR-pki-domain-dm1] certificate request url http://192.168.56.10:8080/certsrv/mscep/mscep.dll

[RR-pki-domain-dm1] certificate request from ra

[RR-pki-domain-dm1] certificate request entity en

[RR-pki-domain-dm1] crl url http://192.168.56.10:8080/CertEnroll/caserver.crl

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

[RR-pki-domain-dm1] quit

[RR] public-key local create rsa name abc

The range of public key mjyodulus is (512 ~ 4096).

If the key modulus is greater than 512, it will take a few minutes.

Press CTRL+C to abort.

Input the modulus length [default = 1024]:2048

Generating Keys...

.

Created the key pair successfully.

[RR] pki retrieve-certificate domain dm1 ca

The trusted CA's finger print is:

    MD5  fingerprint:B279 3344 DBF6 99A7 E173 3972 5FF3 CD6C

    SHA1 fingerprint:FA1B 6380 B63D 058E B5EE 69C8 9055 5F7D 00B6 C905

Is the finger print correct?(Y/N):y

Retrieved the certificates successfully.

[RR] pki request-certificate domain dm1 password 4E3640FEB051A638S

Start to request certificate ...

 

Certificate requested successfully.

[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

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

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

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[CPE1-Tunnel1] sdwan interface-id 35

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[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/3

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

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

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

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

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[CPE2-Tunnel2] sdwan interface-id 30

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

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

# 配置RR。

[RR] interface tunnel 1 mode sdwan udp

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

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

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

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

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

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[RR-Tunnel1] sdwan interface-id 30

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

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

[RR-Tunnel1] quit

[RR] interface tunnel 2 mode sdwan udp

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

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

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

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

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

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

[RR-Tunnel2] sdwan interface-id 40

The current configuration will lead to TTE offline. Continue anyway? [Y/N]:y

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

[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端口号。

[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

[CPE1-Tunnel1] quit

# 配置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

[CPE2-Tunnel2] quit

# 配置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] ip address 10.1.1.2 24

[CPE1-GigabitEthernet0/0/1] quit

[CPE1] interface gigabitethernet 0/0/2

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

[CPE1-GigabitEthernet0/0/2] ip address 10.1.2.2 24

[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] ip address 10.1.3.2 24

[CPE2-GigabitEthernet0/0/1] quit

[CPE2] interface gigabitethernet 0/0/2

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

[CPE2-GigabitEthernet0/0/2] ip address 10.1.4.2 24

[CPE2-GigabitEthernet0/0/2] quit

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

# 配置CE 1。

[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] 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] 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] 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

5. 验证配置

# 以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: 2025/09/23 09:46:27

Status: Reachable

State changed at: 2025/09/23 09:46:38

 

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

Destination IP/port: 13.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: 2025/09/23 09:46:27

Status: Unreachable

State changed at: 2025/09/23 09:46:27

 

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

Destination IP/port: 13.1.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: 2025/09/23 09:46:30

Status: Reachable

State changed at: 2025/09/23 09:46:50

 

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 : 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.1.0/24        Direct  0   0           10.1.1.2        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.2        GE0/0/1

10.1.4.0/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之间也可以互访。

6. 配置文件

·     CPE 1

#

 sysname CPE1

#

ip vpn-instance vpn1

 route-distinguisher 1:1

 vpn-target 1:1 import-extcommunity

 vpn-target 1:1 export-extcommunity

 sdwan vn-id 100

 #

 address-family ipv4

  evpn sdwan routing-enable

#

ip vpn-instance vpn2

 route-distinguisher 2:2

 vpn-target 2:2 import-extcommunity

 vpn-target 2:2 export-extcommunity

 sdwan vn-id 200

 #

 address-family ipv4

  evpn sdwan routing-enable

#

ospf 1

 area 0.0.0.0

  network 11.1.1.0 0.0.0.255

#

interface LoopBack0

 ip address 1.1.1.10 255.255.255.255

#

interface GigabitEthernet0/0/1

 ip binding vpn-instance vpn1

 ip address 10.1.1.2 255.255.255.0

#

interface GigabitEthernet0/0/2

 ip binding vpn-instance vpn2

 ip address 10.1.2.2 255.255.255.0

#

interface GigabitEthernet0/0/3

 ip address 11.1.1.1 255.255.255.0

#

interface Tunnel1 mode sdwan udp

 ip address unnumbered interface GigabitEthernet0/0/3

 source GigabitEthernet0/0/3

 tunnel out-interface GigabitEthernet0/0/3

 stun client destination-ip 6.6.6.1 destination-port 20000

 tunnel protection ipsec profile prf1

 sdwan interface-id 35

 sdwan routing-domain rda id 10

 sdwan transport-network tna id 10

#

bgp 100

 peer 1.1.1.20 as-number 100

 peer 1.1.1.20 connect-interface LoopBack0

 #

 address-family ipv4 tnl-encap-ext

  peer 1.1.1.20 enable

 #

 address-family l2vpn evpn

  peer 1.1.1.20 enable

  peer 1.1.1.20 advertise encap-type sdwan

 #

 ip vpn-instance vpn1

  peer 10.1.1.1 as-number 200

  #

  address-family ipv4 unicast

   import-route direct

   peer 10.1.1.1 enable

 #

 ip vpn-instance vpn2

  peer 10.1.2.1 as-number 300

  #

  address-family ipv4 unicast

   import-route direct

   peer 10.1.2.1 enable

#

pki domain dm1

 ca identifier caserver

 certificate request url http://192.168.56.10:8080/certsrv/mscep/mscep.dll

 certificate request from ra

 certificate request entity en

 public-key rsa general name abc length 2048

 crl url http://192.168.56.10:8080/CertEnroll/caserver.crl

#

pki entity en

 common-name CPE1

#

ssl client-policy plc1

 pki-domain dm1

 prefer-cipher rsa_aes_256_cbc_sha

 undo server-verify enable

#

ipsec transform-set tran1

 encapsulation-mode transport

 esp encryption-algorithm 3des-cbc

 esp authentication-algorithm md5

#

ipsec profile prf1 sdwan

 transform-set tran1

#

 sdwan site-id 20

 sdwan site-name beijing

 sdwan device-id 20

 sdwan encapsulation global-udp-port 3000

 sdwan system-ip LoopBack0

 sdwan site-role cpe

 sdwan ssl-client-policy plc1

 sdwan server system-ip 1.1.1.20 ip 11.1.1.2 port 1234

#

return

·     CPE 2

#

 sysname CPE2

#

ip vpn-instance vpn1

 route-distinguisher 1:1

 vpn-target 1:1 import-extcommunity

 vpn-target 1:1 export-extcommunity

 sdwan vn-id 100

 #

 address-family ipv4

  evpn sdwan routing-enable

#

ip vpn-instance vpn2

 route-distinguisher 2:2

 vpn-target 2:2 import-extcommunity

 vpn-target 2:2 export-extcommunity

 sdwan vn-id 200

 #

 address-family ipv4

  evpn sdwan routing-enable

#

ospf 1

 area 0.0.0.0

  network 13.1.1.0 0.0.0.255

#

interface LoopBack0

 ip address 1.1.1.30 255.255.255.255

#

interface GigabitEthernet0/0/1

 ip binding vpn-instance vpn2

 ip address 10.1.3.2 255.255.255.0

#

interface GigabitEthernet0/0/2

 ip binding vpn-instance vpn1

 ip address 10.1.4.2 255.255.255.0

#

interface GigabitEthernet0/0/3

 ip address 13.1.1.1 255.255.255.0

#

interface Tunnel2 mode sdwan udp

 ip address unnumbered interface GigabitEthernet0/0/3

 source GigabitEthernet0/0/3

 tunnel out-interface GigabitEthernet0/0/3

 stun client destination-ip 6.6.6.1 destination-port 20000

 tunnel protection ipsec profile prf1

 sdwan interface-id 30

 sdwan routing-domain rda id 10

 sdwan transport-network tnb id 20

#

bgp 100

 peer 1.1.1.20 as-number 100

 peer 1.1.1.20 connect-interface LoopBack0

 #

 address-family ipv4 tnl-encap-ext

  peer 1.1.1.20 enable

 #

 address-family l2vpn evpn

  peer 1.1.1.20 enable

  peer 1.1.1.20 advertise encap-type sdwan

 #

 ip vpn-instance vpn1

  peer 10.1.4.1 as-number 500

  #

  address-family ipv4 unicast

   import-route direct

   peer 10.1.4.1 enable

 #

 ip vpn-instance vpn2

  peer 10.1.3.1 as-number 400

  #

  address-family ipv4 unicast

   import-route direct

   peer 10.1.3.1 enable

#

pki domain dm1

 ca identifier caserver

 certificate request url http://192.168.56.10:8080/certsrv/mscep/mscep.dll

 certificate request from ra

 certificate request entity en

 public-key rsa general name abc length 2048

 crl url http://192.168.56.10:8080/CertEnroll/caserver.crl

#

pki entity en

 common-name CPE2

#

ssl client-policy plc1

 pki-domain dm1

 prefer-cipher rsa_aes_256_cbc_sha

 undo server-verify enable

#

ipsec transform-set tran1

 encapsulation-mode transport

 esp encryption-algorithm 3des-cbc

 esp authentication-algorithm md5

#

ipsec profile prf1 sdwan

 transform-set tran1

#

 sdwan site-id 30

 sdwan site-name nanjing

 sdwan device-id 30

 sdwan encapsulation global-udp-port 3000

 sdwan system-ip LoopBack0

 sdwan site-role cpe

 sdwan ssl-client-policy plc1

 sdwan server system-ip 1.1.1.20 ip 13.1.1.2 port 1234

#

return

·     RR

#

 sysname RR

#

ospf 1

 area 0.0.0.0

  network 6.6.6.1 0.0.0.0

  network 6.6.6.2 0.0.0.0

  network 11.1.1.0 0.0.0.255

  network 13.1.1.0 0.0.0.255

  network 192.168.56.0 0.0.0.255

#

interface LoopBack0

 ip address 1.1.1.20 255.255.255.255

#

interface LoopBack1

 ip address 6.6.6.1 255.255.255.255

#

interface LoopBack2

 ip address 6.6.6.2 255.255.255.255

#

interface GigabitEthernet0/0/1

 ip address 192.168.56.20 255.255.255.0

#

interface GigabitEthernet0/0/2

 ip address 11.1.1.2 255.255.255.0

#

interface GigabitEthernet0/0/3

 ip address 13.1.1.2 255.255.255.0

#

interface Tunnel1 mode sdwan udp

 ip address unnumbered interface GigabitEthernet0/0/2

 source GigabitEthernet0/0/2

 tunnel out-interface GigabitEthernet0/0/2

 tunnel protection ipsec profile prf1

 sdwan interface-id 30

 sdwan routing-domain rda id 10

 sdwan transport-network tna id 10

#

interface Tunnel2 mode sdwan udp

 ip address unnumbered interface GigabitEthernet0/0/3

 source GigabitEthernet0/0/3

 tunnel out-interface GigabitEthernet0/0/3

 tunnel protection ipsec profile prf1

 sdwan interface-id 40

 sdwan routing-domain rda id 10

 sdwan transport-network tnb id 20

#

bgp 100

 peer 1.1.1.10 as-number 100

 peer 1.1.1.10 connect-interface LoopBack0

 peer 1.1.1.30 as-number 100

 peer 1.1.1.30 connect-interface LoopBack0

 #

 address-family ipv4 tnl-encap-ext

  peer 1.1.1.10 enable

  peer 1.1.1.10 reflect-client

  peer 1.1.1.30 enable

  peer 1.1.1.30 reflect-client

 #

 address-family l2vpn evpn

  undo policy vpn-target

  peer 1.1.1.10 enable

  peer 1.1.1.10 reflect-client

  peer 1.1.1.10 advertise encap-type sdwan

  peer 1.1.1.30 enable

  peer 1.1.1.30 reflect-client

  peer 1.1.1.30 advertise encap-type sdwan

#

pki domain dm1

 ca identifier caserver

 certificate request url http://192.168.56.10:8080/certsrv/mscep/mscep.dll

 certificate request from ra

 certificate request entity en

 public-key rsa general name abc length 2048

 crl url http://192.168.56.10:8080/CertEnroll/caserver.crl

#

pki entity en

 common-name RR

#

ssl server-policy plc1

 pki-domain dm1

#

ipsec transform-set tran1

 encapsulation-mode transport

 esp encryption-algorithm 3des-cbc

 esp authentication-algorithm md5

#

ipsec profile prf1 sdwan

 transform-set tran1

#

 stun server ip 6.6.6.1 port 20000 alternative-ip 6.6.6.2

#

 sdwan site-id 10

 sdwan site-name shanghai

 sdwan device-id 10

 sdwan encapsulation global-udp-port 3000

 sdwan system-ip LoopBack0

 sdwan site-role rr

 sdwan server port 1234

 sdwan ssl-server-policy plc1

 sdwan server enable

#

return

·     CE 1

#

 sysname CE1

#

interface GigabitEthernet0/0/1

 ip address 10.1.1.1 255.255.255.0

#

bgp 200

 peer 10.1.1.2 as-number 100

 #

 address-family ipv4 unicast

  import-route direct

  peer 10.1.1.2 enable

#

return

·     CE 2

#

 sysname CE2

#

interface GigabitEthernet0/0/1

 ip address 10.1.2.1 255.255.255.0

#

bgp 300

 peer 10.1.2.2 as-number 100

 #

 address-family ipv4 unicast

  import-route direct

  peer 10.1.2.2 enable

#

return

·     CE 3

#

 sysname CE3

#

interface GigabitEthernet0/0/1

 ip address 10.1.3.1 255.255.255.0

#

bgp 400

 peer 10.1.3.2 as-number 100

 #

 address-family ipv4 unicast

  import-route direct

  peer 10.1.3.2 enable

#

return

·     CE 4

#

 sysname CE4

#

interface GigabitEthernet0/0/1

 ip address 10.1.4.1 255.255.255.0

#

bgp 500

 peer 10.1.4.2 as-number 100

 #

 address-family ipv4 unicast

  import-route direct

  peer 10.1.4.2 enable

#

return

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们