动态智能VPN(Dynamic Smart Virtual Private Network),简称DSVPN,是一种在Hub-Spoke组网方式下为公网地址动态变化的分支之间建立VPN隧道的解决方案。
加强企业的通信安全、降低通信成本。当企业总部采用静态的公网地址接入Internet,分支机构采用动态的公网地址接入Internet时,使用传统的IPSec、GRE over IPSec等技术构建VPN网络将存在一个问题,即分支之间无法直接通信(源分支无法获取目的分支公网地址,也就无法在分支之间直接建立隧道),所有分支之间的通信数据只能由总部中转,如图所示。
通过总部中转流量的办法来解决分支与分支间的通信会带来如下问题:
1.总部在中转分支间的数据流时会消耗总部Hub的CPU及内存资源,造成资源紧张。
2.总部要对分支间的数据流封装和解封装,会引入额外的网络延时。
另外,当IPSec网络规模不断扩展时,为减少路由配置和维护,需要部署动态路由协议。但IPSec和动态路由协议之间存在一个基础问题,动态路由协议依赖于组播报文或广播报文进行路由更新,而IPSec不支持广播报文和组播报文的传输。
在此背景下,华为提出了DSVPN解决方案,它通过将下一跳解析协议NHRP(Next Hop Resolution Protocol)和mGRE(multipoint Generic Routing Encapsulation)技术与IPSec相结合解决了上述问题:
1.DSVPN通过NHRP协议动态收集、维护和发布各节点的公网地址等信息,解决了源分支无法获取目的分支公网地址的问题,从而可在分支与分支之间建立动态VPN隧道,实现分支与分支间的直接通信,进而减轻总部的负担、避免网络延时。
2.DSVPN借助mGRE技术,使VPN隧道能够传输组播报文和广播报文,并且一个Tunnel接口可与多个对端建立VPN隧道,减少了配置VPN隧道的工作量;在新增分支或分支公网地址发生变化时,也能自动维护总部与分支之间的隧道关系,而不用调整总部的隧道配置,使得网络维护变得更智能化。
如图所示为一个采用DSVPN解决方案构建的VPN网络。
受益:
1.降低VPN网络构建成本
DSVPN可以实现分支和总部以及分支之间的动态全连接,分支不需要单独购买静态的公网地址,节省企业开支。
2.简化总部Hub和分支Spoke配置
总部Hub和分支Spoke上配置的Tunnel接口从多个点对点GRE隧道接口变更为一个mGRE隧道接口。当为DSVPN网络添加新的分支Spoke时,企业网络管理员不需要更改总部Hub或任何当前分支Spoke上的配置,只需在新的分支Spoke进行配置,之后新的分支Spoke自动向总部Hub进行动态注册。
3.降低分支间数据传输时延
由于分支间可以动态构建隧道,业务数据可以直接转发,不用再经过总部,减少了数据转发的延迟,提升了转发性能和效率。
NHRP:下一跳地址解析协议
spoke之间如何建立mGRE隧道:
如图,spoke已知目的spoke的tunnel地址,当源Spoke需要向目的Spoke发送数据报文时,源Spoke将通过与Hub之间的静态mGRE隧道交互NHRP协议获取目的Spoke的公网地址,并与目的Spoke建立动态mGRE隧道。隧道建立完成后,Spoke与Spoke之间的数据报文将通过该动态mGRE隧道直接发送给对方,不再经过总部Hub中转。
建立动态mGRE的前提:NHRP映射表、路由表
建立spoke与hub之间的mGRE隧道:spoke向hub发送NHRP注册请求报文(包含spoke的tunnel地址和公网地址),hub向spoke发送注册应答
DSVPN解决方案中涉及到以下概念:
1.DSVPN节点:
DSVPN节点为部署DSVPN的设备,包括Spoke和Hub两种形态。
Spoke:Spoke通常是企业分支的网关设备。一般情况下,Spoke使用动态的公网地址。
Hub:Hub通常是企业总部的网关设备,接收Spoke向其注册的信息。DSVPN网络中,Hub既可使用固定的公网地址,也可使用域名。
2.mGRE、mGRE隧道接口和mGRE隧道:
(1)mGRE:
mGRE是在GRE(Generic Routing Encapsulation)基础上发展而来的一种点到多点GRE技术。它将传统GRE隧道点到点(P2P)类型的Tunnel接口扩展成了点到多点(P2MP)类型的mGRE隧道接口。通过改变接口类型,Hub或Spoke上只需要配置一个Tunnel接口便可与多个对端建立隧道,从而减少了配置GRE隧道的工作量。
(2)mGRE隧道接口:
mGRE隧道接口包含以下元素:
隧道源地址:GRE封装后的报文源地址,即图1中隧道一端的公网地址。
隧道目的地址:GRE封装后的报文目的地址,即图1中隧道另一端的公网地址。与GRE隧道接口手工指定目的地址不同,mGRE隧道目的地址来自于NHRP协议。
隧道接口IP地址:隧道接口地址和其他物理接口上的IP地址一样,用于设备之间的通信(例如获取路由信息等),即图1中的Tunnel地址。
说明:mGRE隧道接口不支持GRE隧道的Keepalive检测。
(3)mGRE隧道:
采用mGRE隧道接口建立起来的GRE隧道称为mGRE隧道。mGRE隧道分为静态mGRE隧道和动态mGRE隧道两种:
静态mGRE隧道建立于分支Spoke与总部Hub之间,静态mGRE隧道永久存在。
动态mGRE隧道建立于各分支Spoke之间,动态mGRE隧道在一定周期内没有流量转发将自动拆除。
3.NHRP协议和NHRP映射表:
NHRP(Next Hop Resolution Protocol)即下一跳地址解析协议。在DSVPN网络中,NHRP协议的作用是建立和解析Protocol地址(即Tunnel地址或子网地址)到NBMA(Non-Broadcast Multiple Access)地址(即公网地址)的映射关系。正是因为这种映射和解析,源Spoke才能够获取目的Spoke的动态公网地址。
Protocol地址和NBMA地址映射生成的表项称为NHRP映射表。按照生成方式的不同,NHRP映射表分为静态表项和动态表项两种:
静态表项:由网络管理员手工配置。Spoke要与Hub建立静态mGRE隧道,管理员就需要在Spoke上手工配置Hub的Tunnel地址和公网地址。
动态表项:它是由NHRP协议动态生成的表项。例如,Hub通过NHRP注册报文提取各Spoke的Tunnel地址和公网地址而生成的NHRP映射表;各Spoke通过NHRP解析报文提取对端Spoke的Tunnel地址/子网地址和公网地址而生成的NHRP映射表。
NHRP映射表:当spoke接入hub后,hub会形成一个记录spoke的tunnel地址和公网地址的一个映射表,这个映射表就是NHRP映射表,当源spoke要找目的spoke时,源spoke先找hub,这时hub会返回告诉源spoke一个目的spoke的NHRP映射表关系,然后源spoke根据这个消息找到目的spoke建立连接。
路由表:子网地址和tunnel(下一跳)地址
DSVPN基本原理:
DSVPN实现分支之间直接通信的关键是在分支之间建立隧道。DSVPN利用mGRE结合NHRP来建立分支之间的隧道。与GRE不同,mGRE建立隧道时不需要定义隧道目的地址,而是依赖NHRP告诉它,这就为在动态地址变化的分支间建立隧道创造了条件。
mGRE与NHRP结合建立隧道的基本原理是:当设备转发一个IP报文时,根据路由表将IP报文传给下一跳的出接口mGRE隧道接口,mGRE在NHRP映射表中查找获取下一跳地址映射的对端公网地址。然后mGRE封装IP报文,加上新IP头,目的地址就是对端的公网地址,这样IP报文就能发向隧道对端,隧道即可建立。
可见,NHRP映射表和路由表是mGRE与NHRP结合建立隧道的重要依据。如果一端分支有对端分支Tunnel地址/子网地址与公网地址的NHRP映射、有到对端分支的路由,那么分支间就可建立mGRE隧道。而DSVPN网络开始时,分支Spoke只有一个静态配置的NHRP映射表(Hub的Tunnel地址与公网地址的映射),也只有到总部Hub的路由。因此,分支间无法直接建立隧道,只能先借助Hub学习到彼此的路由、生成彼此Tunnel地址/子网地址与公网地址的NHRP映射。这一过程主要分为如下三个环节:
1.建立Spoke与Hub之间的mGRE隧道:
这一环节的目的是打通分支到分支报文转发的通道,使得一端分支的报文可以借助Hub转发到另一端分支。
DSVPN在Spoke与Hub之间建立的mGRE隧道是一种静态隧道,无论Spoke与Hub间是否有流量经过,该隧道一直存在。
2.分支间路由学习:
这一环节的目的是生成一端分支到另一端分支的路由。
3.建立Spoke与Spoke之间的mGRE隧道:
这一环节的目的是建立用于分支间直接通信的通道。当一个分支向另一个分支转发用户数据报文时,如果源Spoke找不到目的Spoke的公网地址,则会触发DSVPN建立Spoke与Spoke之间的mGRE隧道。
Spoke与Spoke之间建立的mGRE隧道是一种动态隧道,当Spoke与Spoke间有流量通过时,隧道自动保活;当一定周期内没有流量经过时,隧道自动拆除。
Spoke与Spoke之间的mGRE隧道建成后,分支间的数据报文即可通过该隧道直接转发,不再经过Hub中转。
建立Spoke与Hub之间的mGRE隧道:
DSVPN网络开始时,总部Hub的NHRP映射表是空表,分支Spoke有一个静态配置的NHRP映射表(Hub的Tunnel地址与公网地址的映射),分支Spoke和总部Hub有到彼此的路由。要建立Spoke与Hub之间的mGRE隧道,总部要生成各分支Tunnel地址/子网地址与公网地址的NHRP映射表,这主要通过分支Spoke向总部Hub进行NHRP注册来实现,其过程如图所示。
1.Spoke向Hub注册请求:
管理员在Spoke上手工配置Hub的Tunnel地址和公网地址以后,Spoke将定时向Hub发送NHRP注册请求报文,该报文中包含Spoke的Tunnel地址和公网地址。
2.Hub向Spoke注册应答:
Hub从NHRP注册请求报文中提取Spoke的Tunnel地址和公网地址(见图1中的红色字体),并生成NHRP映射表,进而建立两者之间的mGRE隧道。
Spoke定时向Hub发送注册消息,这样就使Hub的NHRP映射表在老化时间到来前重新计时,确保分支与总部一直能够维持隧道关系。
分支间路由学习:
DSVPN支持两种分支间路由学习方式:
1.分支间相互学习路由(非shortcut方式)
采用这种方式时,源分支到目的分支子网的路由下一跳为目的分支的Tunnel地址(见图2中的路由表),每个分支需要学习到所有对端的路由数据。这种情况下,Spoke会消耗大量的CPU和内存资源,对其路由表容量和性能有较高的要求。而实际应用中,Spoke的性能往往较低,能存放的路由数量有限。因此,这种路由学习方式只适用于网络节点较少、路由信息量小的中小型网络。(路由信息在spoke上)
当Spoke1下的用户首次访问Spoke2下的用户时,将触发Spoke1与Spoke2之间建立动态mGRE隧道,隧道建立过程如下:
1.Spoke1收到其下用户发往Spoke2的数据报文后:
(1)根据报文目的地址(192.168.2.0)在路由表中找到下一跳10.1.1.2(Spoke2的Tunnel地址),但在NHRP映射表中没有查找10.1.1.2对应的公网地址,就默认将该数据报文直接转发给Hub。
(2)构建并向Hub发送NHRP地址解析请求报文,请求10.1.1.2对应的公网地址。
2.Hub收到Spoke1发送的用户数据报文和NHRP地址解析请求报文后,将报文通过Hub与Spoke2间的mGRE隧道转发给Spoke2。
3.Spoke2收到NHRP地址解析请求报文后:
(1)从NHRP地址解析请求报文中提取Spoke1的Tunnel地址和公网地址,并将该信息更新到自己的NHRP映射表中(见图2中的红色字体)。
(2)构建并向Spoke1发送NHRP地址解析应答报文(携带Spoke2的Tunnel地址10.1.1.2和公网地址2.2.2.2)。
4.Spoke1收到NHRP地址解析应答报文后,从应答报文中提取Spoke2的Tunnel地址和公网地址,更新到自己的NHRP映射表中(见图2中的红色字体),Spoke1与Spoke2之间的动态mGRE隧道随即建立。
当Spoke1再次收到其下用户发送给Spoke2的数据报文时,Spoke1根据报文目的地址(192.168.2.0)在路由表中找到下一跳10.1.1.2,再根据10.1.1.2在NHRP映射表中找到公网地址2.2.2.2,即可按照公网地址2.2.2.2将此报文进行mGRE封装后直接发送给Spoke2,不再经过总部Hub。
2.分支路由汇聚到总部(shortcut方式)
采用这种方式时,源分支到目的分支子网的路由下一跳为总部的Tunnel地址(见图3中的路由表),Spoke只需存放到Hub的路由。由于Spoke减少了自身的路由数量,所以该路由学习方式适用于那些网络规模大、分支较多的大型网络。(路由信息都在hub上)
当Spoke1下的用户首次访问Spoke2下的用户时,将触发Spoke1与Spoke2之间建立动态mGRE隧道,隧道建立过程如下:
1.Spoke1收到其下用户发往Spoke2下用户的数据报文后,根据报文目的地址(192.168.2.0)在路由表中找到下一跳10.1.1.3(Hub的Tunnel地址),并在NHRP映射表中找到10.1.1.3对应的公网地址3.3.3.3(Hub的公网地址),就将数据报文转发给Hub。
2.Hub收到Spoke1转发的数据报文后:
(1)将此报文通过Hub与Spoke2间的mGRE隧道转发给Spoke2。
(2)检查发现接收和发送数据报文的Tunnel接口属于同一个NHRP域,就构建并向Spoke1发送NHRP重定向报文(仅携带Hub的Tunnel地址和公网地址)。
3.Spoke1收到NHRP重定向报文后,构建并向Hub发送NHRP地址解析请求报文(携带Spoke1的子网地址192.168.1.0和公网地址1.1.1.1,以及需要解析的数据报文的目的地址192.168.2.0)。
4.Hub收到NHRP地址解析请求报文后转发给Spoke2处理。
5.Spoke2收到NHRP地址解析请求报文后:
(1)从NHRP地址解析请求中提取Spoke1的子网地址和公网地址,并将该信息更新到自己的NHRP映射表中(见图3中的红色字体)。
(2)构建并向Spoke1发送NHRP地址解析应答报文(携带Spoke2的子网地址192.168.2.0和公网地址2.2.2.2以及tunnel地址10.1.1.2)。
6.Spoke1收到NHRP地址解析应答报文后,从应答报文中提取Spoke2的子网地址和公网地址,更新到自己的NHRP映射表中(见图3中的红色字体),Spoke1与Spoke2之间的动态mGRE隧道随即建立。
当Spoke1再次收到其下用户发送给Spoke2的数据报文时,Spoke1根据报文目的地址(192.168.2.0)查找NHRP映射表,找到Spoke2的公网地址2.2.2.2,即可根据公网地址2.2.2.2将此报文进行mGRE封装后直接发送给Spoke2,不再经过总部Hub。
DSVPN NAT穿越:只适用于一对一的地址转换
如图1所示,如果分支机构的私有网络通过NAT(Network Address Translation)与总部连接,总部Hub与分支Spoke、分支Spoke与分支Spoke之间建立VPN连接时需要穿越NAT。此时可部署DSVPN NAT穿越,使分支间可跨越NAT设备直接通信。
DSVPN NAT穿越主要通过在NHRP注册应答报文、NHRP解析请求/应答报文中的NAT扩展字段中填充分支NAT前后的地址信息而实现,具体工作原理如下:
1.分支Spoke向总部Hub注册,NHRP注册请求报文中携带分支原始的公网或私网地址。
2.总部Hub的NHRP协议感知分支路径中有NAT设备存在,就在NHRP注册请求应答报文的NAT扩展字段中将分支NAT转换后的公网地址告知分支Spoke。
3.源Spoke向目的Spoke发起NHRP地址解析请求时,携带源分支NAT转换前的地址和NAT转换后的公网地址(通过NAT扩展字段)告知目的Spoke。
4.目的Spoke向源Spoke返回NHRP地址解析请求应答时,携带目的分支NAT转换前的地址和NAT转换后的公网地址(通过NAT扩展字段)告知源Spoke。
5.源分支和目的分支互相知道对端NAT转换前的地址和NAT转换后的公网地址后,根据NAT转换后的公网地址建立动态mGRE隧道,实现分支间穿越NAT直接通信。
DSVPN IPSec保护:
DSVPN采用mGRE隧道传输数据,但mGRE隧道不对数据加密,因而在Internet上传送不安全。为此,建议在部署DSVPN的同时部署IPSec保护,实现分支间直接通信的数据能够得到安全传输。
DSVPN网络中,通过在总部Hub和分支Spoke配置IPSec安全框架并绑定于mGRE隧道接口,mGRE隧道建立的同时会立即触发IPSec隧道建立,具体工作原理如下:1.网络中的所有Spoke向总部Hub发起注册请求,同时将NHRP映射表信息告知IPSec,触发分支和总部的IKE模块进行IPSec隧道的协商。
2.总部Hub根据接收的注册请求报文,记录Spoke的Tunnel地址和公网地址的对应关系,生成分支的NHRP映射表,并向Spoke发送注册请求应答消息。
3.分支间根据流量触发建立动态mGRE隧道。该部分原理请参见建立Spoke与Spoke之间的mGRE隧道。
4.分支Spoke间动态mGRE隧道建立时,IPSec模块获取NHRP映射表信息,根据该信息添加或删除IPSec对等体节点,触发分支间动态建立IPSec隧道。
5.分支Spoke间IPSec隧道建立成功后,后续数据转发根据IP报文的目的地址查找路由。如果出接口类型是mGRE隧道接口,则根据路由下一跳找NHRP映射表,获取公网地址,根据公网地址,找IPSec SA,对报文进行IPSec加密发送。
相对于传统Hub-Spoke组网的IPSec技术,DSVPN与IPSec联合部署具有如下优势:
1.传统IPSec技术使用ACL识别待加密的单播流量,需进行复杂的ACL定义,配置和维护困难。而DSVPN中只需将mGRE隧道接口与IPSec安全框架绑定,无需再定义复杂的ACL,网络部署更加简单。
2.由于动态建立了分支间的IPSec隧道,分支Spoke间交互的IPSec数据不用通过总部Hub进行解密和加密操作,降低了数据传输时延。
注意:
在DSVPN中部署IPSec时,如果两个分支位于不同NAT设备之后或者总部位于NAT设备之后,则IPSec封装模式仅支持为传输模式。因为IPSec封装模式为隧道模式时,NHRP无法学习到NAT转换后的地址。
DSVPN可靠性:
1.DSVPN双hub主备备份
2.DSVPN双hub负载分担
主备备份:
DSVPN基本组网中,所有的分支Spoke都与一台总部Hub相连。如果总部Hub出现故障,分支Spoke间将无法建立隧道进行直接通信。通过部署DSVPN双Hub主备备份,可以提升DSVPN网络的可靠性。
如图1所示,总部部署了两台Hub设备Hub1和Hub2。通过部署路由策略,使得各分支Spoke到Hub1的路由优先级高于到Hub2的路由优先级,因而正常情况下,Hub1为主用Hub,Hub2为备用Hub。
DSVPN双Hub主备备份的工作机制如下:
1.所有分支Spoke同时向主用Hub1和备用Hub2注册,并分别与Hub1建立主用静态mGRE隧道、与Hub2建立备用静态mGRE隧道。
2.当分支间需要建立动态mGRE隧道时,源Spoke向Hub发送NHRP地址解析请求报文:
(1)在Hub1和Hub2都运行正常的情况下,根据路由策略,Spoke到Hub1的路由优先级较高,NHRP地址解析请求报文将沿主用静态mGRE隧道发送到Hub1,由Hub1将此解析报文转发至目的Spoke。
(2)当Hub1出现故障时,Spoke到Hub1的路由优先级降低,NHRP地址解析请求报文沿备用静态mGRE隧道发送到Hub2,由Hub2将此解析报文转发至目的Spoke。
(3)当Hub1故障恢复后,各分支Spoke到Hub1的路由优先级又重新高于到Hub2的路由优先级,NHRP地址解析请求报文重新交由Hub1转发。
3.目的Spoke向源Spoke回应NHRP地址解析响应报文,动态mGRE隧道建立。
4.动态mGRE隧道建立后,分支Spoke间可直接进行通信。此时,Hub设备运行正常与否不会对各分支Spoke间的业务流产生影响。如果分支Spoke之间的动态mGRE隧道由于长时间没有流量经过被拆除了,Spoke与Spoke之间通信时就需要重新建立动态mGRE隧道,Spoke会重新根据路由优先级判断向哪个Hub发送NHRP地址解析请求报文。
负载分担:
单台Hub设备受性能制约,其下所能连接的Spoke数量有限,当网络中Spoke节点较多时,可以在总部部署两台或多台Hub来提高总部的处理能力。
如图1所示,总部部署了两台Hub设备Hub1和Hub2。由于Spoke节点较多,无法将所有的Spoke节点都注册到一台Hub设备上。因此,选择将一部分Spoke节点注册到Hub1下,另一部分Spoke节点注册到Hub2下,实现流量的负载分担。
同一台Hub下的Spoke间直接通信原理同DSVPN基本原理一样。而要实现不同Hub下的Spoke间的直接通信,则需要在Hub之间建立静态mGRE隧道。
不同Hub下的Spoke间直接通信原理如下:
1.源Spoke1发送NHRP地址解析请求报文发送给Hub1,请求目的SpokeN的公网地址。
2.Hub1将源Spoke1的NHRP地址解析请求报文通过Hub1与Hub2之间的静态mGRE隧道转发给Hub2。
3.Hub2将源Spoke1的NHRP地址解析请求报文转发给目的SpokeN。
4.目的SpokeN从报文中获取源Spoke1的公网地址,并给源Spoke1回应NHRP地址解析应答报文。
5.源Spoke1从NHRP地址解析应答报文中获取目的SpokeN的公网地址,并与目的SpokeN建立动态mGRE隧道。
动态mGRE隧道建立后,两个不同Hub下的Spoke之间即可进行直接通信。
DSVPN应用场景:
1.中小型网路部署DSVPN
2.大型网络部署DSVPN
3.hub级联网络部署DSVPN
1.中小型网络部署DSVPN:
在中小型网络中,分支机构的数目很少,可以选择部署非shortcut方式的DSVPN实现分支机构间直接通信。
如图1所示,分支Spoke1和分支Spoke2通过公网与总部Hub相连。部署非shortcut方式的DSVPN后,分支Spoke1和分支Spoke2间可以相互学习到目的分支的路由,路由下一跳直接为目的分支Spoke的Tunnel地址,各分支Spoke分别按照目的Spoke的Tunnel地址查找其公网地址,动态建立mGRE隧道。mGRE隧道建立后,分支间即可直接进行通信,所有流量不再通过总部Hub。
2.大型网络部署DSVPN:
在大型网络中,分支机构很多,部署非shortcut方式DSVPN会提高对分支Spoke的路由表容量和性能的要求。在不升级分支Spoke的情况下,选择部署shortcut方式DSVPN,可以减少分支Spoke的路由表项,降低对分支Spoke的路由表容量和性能要求。
如图1所示,部署shortcut方式DSVPN后,所有分支Spoke只能学习到总部的路由,路由下一跳全部是Hub的Tunnel地址。各分支Spoke只能以目的Spoke的私网地址查找其公网地址,动态建立mGRE隧道。动态mGRE隧道建立后,分支间即可直接进行通信,所有流量不再通过总部Hub。
3.hub级联网络部署DSVPN:
图1所示是某企业的一个网络拓扑,该企业的办事机构存在层级关系。在此类有层级关系的网络中部署DSVPN,一些中间节点将同时充当Spoke和Hub两种角色,这些同时充当Spoke和Hub角色的设备被称为级联总部。例如,Hub1和Hub2即充当其下Spoke的总部,又充当Hub(总部)的Spoke节点。根据业务规划,一部分Spoke隶属于Hub1;一部分Spoke隶属于Hub2。
同一台级联总部Hub(Hub1和Hub2)下的Spoke与Spoke之间建立动态mGRE隧道的原理同DSVPN基本原理一样。当Hub1下的Spoke需要与Hub2下的Spoke建立动态mGRE隧道时,源Spoke将向Hub1发送NHRP地址解析请求,该地址解析请求经Hub1转发后最终到达Hub(总部),Hub(总部)再将NHRP地址解析请求发送至Hub2,并最终到达目的Spoke,从而实现在级联场景下建立Spoke与Spoke之间的动态mGRE隧道。
注意:
1.Hub级联网络部署DSVPN时,分支间路由学习方式仅支持shortcut方式。
2.部署DSVPN时,Hub1和Hub2上需创建两个Tunnel接口,分别与Hub和对应的Spoke建立静态mGRE隧道。对于Hub来说,Hub1和Hub2可以当做分支Spoke。
实验:
防火墙划分区域,放行策略
FW上配置静态路由:
FW放行ping命令:
配置tunnel隧道,并且将trnnel接口划分到dmz区域:
这时pc1 ping pc2不通,是因为流量没有引入tunnel0口,没有到对端的路由:
在公网上运行BGP传递路由,将ospf注入到BGP:
这时pc1 ping pc2通,因为路由可达:
spoke学到hub和另一个spoke的地址,并且下一跳都指向hub的隧道地址:
配置路由汇总,减小路由表规模:
pc2 ping pc3通(spoke之间ping):
配置IPSec对DSVPN进行加密:
pc1 ping pc2通:
AR1的G0/0/0口抓包查看数据已经被加密:
pc2 ping pc3通:
AR1的G0/0/2kou1查看抓包: