04-STUN配置
本章节下载: 04-STUN配置 (622.08 KB)
目 录
STUN(Session Traversal Utilities for NAT,NAT环境下的会话传输)是一种处理NAT穿越问题的协议,为隧道模块提供了确定网络中是否存在NAT设备,以及NAT设备为通信端点分配的IP地址和端口号的方法。STUN基于UDP传输协议报文,默认使用的端口号为3478。
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:捆绑响应。
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设备会对外网主动发到内网的报文进行过滤,即过滤非法报文,转发正常通信报文。
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示意图
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示意图
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-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隧道示意图
STUN基于UDP传输协议报文,协议报文的封装格式如图1-9所示。
图1-9 STUN报文结构
如图1-10所示,STUN消息(STUN Message)包括STUN消息头和STUN消息属性两部分。STUN消息头的长度为20字节,后面跟着零个或多个属性。
图1-10 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客户端的不同探测请求。
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类型。
STUN客户端通过和STUN服务器之间交互STUN协议报文,探测网络中NAT设备上的NAT映射的类型和NAT过滤的方式,并根据探测结果判断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映射类型探测流程图
假设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过滤方式探测流程图
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服务器部署在私网的典型组网
STUN基于UDP传输协议报文,STUN协议报文有可能在传输过程中被丢弃。STUN请求/响应事务的可靠性是通过STUN客户端的重传机制来实现的,具体机制如下:
(1) STUN客户端发送捆绑请求报文后,如果在一定时间内没有收到捆绑响应报文,STUN客户端会以一定的时间间隔重传捆绑请求报文。
(2) 当STUN客户端收到捆绑响应报文,或者重传STUN报文的次数达到最大,STUN客户端将停止重传。
(3) 如果STUN客户端重传STUN报文的次数达到最大后,还未收到捆绑响应报文,则STUN客户端认为捆绑请求报文传输失败,无法进行STUN探测。
与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) 配置STUN服务器
(2) 配置STUN客户端
STUN主要用于解决SDWAN网络中的NAT穿越问题。在SDWAN网络中,STUN的探测结果需要在SDWAN隧道中传输。因此在配置STUN服务器和STUN客户端前,需要完成SDWAN的配置。关于SDWAN配置的详细介绍,请参见“SDWAN配置指导”中的“SDWAN”。
为了STUN探测功能能够正常工作,需要保证STUN客户端到STUN服务器的IP地址和替代IP地址均路由可达。
(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服务器功能处于关闭状态。
配置本功能后,设备将作为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)。
STUN客户端上指定多个STUN服务器时,需要保证指定的多个STUN服务器位于同一台NAT设备后,否则无法保证探测结果的准确性。
(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客户端功能处于关闭状态。
在完成上述配置后,在任意视图下执行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 |
站点网络通过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实现不同租户之间的隔离。
图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 |
|
|
|
本例中采用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可能无法申请证书。
(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
# 以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之间也可以互访。
· 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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
