DMVPN网络中动态隧道建立的方法,DMVPN网络配置有很多相似的地方,下面主要介绍DMVPN网络中动态隧道建立的方法。其实也能看出DMVPN网络方面的一些端倪,融会贯通之后,一切都很简单。
NHRP:下一跳解析协议。由IETF在RFC 2332中定义。用于解决非广播多路访问(NBMA)网络上的源节点(主机或路由器)如何获取到达目标节点的“下一跳”的互联网络层地址和NBMA子网地址。下面咱们一起看看 NHRP 是如何解决静态IP地址问题,而让 VPN “动”起来的:
分支到中心(Spoke−to−Hub)的动态隧道建立
DMVPN网络中,中心路由器上没有关于分支的GRE或IPSec配置信息,而在分支路由器上则必须依据中心路由器的公网IP地址和NHRP协议来配置GRE隧道。当分支路由器加电启动时,由ISP处通过DHCP获取IP地址,并自动建立IPSec加密的GRE隧道,通过NHRP向中心路由器注册自己的外网端口IP地址(貌似反弹连接)。
这样做有三方面的原因:1、由于分支路由器外网端口的IP地址是自动获取的,每次上线时的IP地址可能不同,所以中心路由器无法根据该地址信息进行配置。2、中心路由器不必针对所有分支分别配置GRE或IPSec信息,将大大简化中心路由器的配置。
所有相关信息可通过NHRP自动获取。(即:分支向中心汇报各自特征)3、当DMVPN网络扩展时,不必改动中心路由器和其它分支路由器的配置。通过动态路由协议,新加入的分支路由器将自动注册到中心路由器。这样,所有其它分支路由器可以学到这条新的路由,新加入的分支路由器也可以学到到达其它所有路由器的路由信息,直至收敛。(中心路由器犹如OSPF的DR)
分支到分支(Spoke−to−Spoke)的动态隧道建立
在DMVPN网络中,分支到中心(Spoke−to−Hub)的隧道一旦建立便持续存在,但是各分支之间并不需要直接配置持续的隧道。当一个分支需要向另一个分支传递数据包时,它利用NHRP来动态获取目的分支的IP地址。
该过程中,中心路由器充当NHRP服务器的角色,响应NHRP请求,向源分支提供目标分支的公网地址。于是,两个分支之间通过mGRE端口动态建立IPSec隧道,进行数据传输。该隧道在预定义的周期之后将自动拆除。
DMVPN网络中,分支到中心(Spoke−to−Hub)的隧道一旦建立便持续存在,而各分支之间并没有持续存在的隧道。这样,在路由器初始化后,中心路由器会通过持续存在的隧道向分支路由器宣告其它分支子网的可达路由。到这里,似乎”多点””动态”的问题都解决了,DMVPN可以正常工作了是吧?
非也!目前,分支路由器的路由表中到达其它分支子网的“下一跳”地址仍是中心路由器的隧道端口地址,而不是其它分支路由器的隧道端口地址。如此一来,分支与分支之间的数据传输还是会通过中心路由器。
要解决这一问题,必须在中心路由器上设置为在mGRE隧道端口上宣告某一分支子网的可达路由时“下一跳”地址是该分支路由器的隧道端口地址,而非中心路由器的地址。在RIP或EIGRP等距离向量型路由协议中,通常都实现了水平分割(split horizon)功能,阻止将路由信息发回到其来源端口,以避免相邻路由器上路由环路的产生。
如果在DMVPN网络上运行RIP或EIGRP协议,则必须关闭水平分割(split horizon)功能。否则,分支路由器将无法学习到通往其它分支子网的路由。对RIP而言,no split horizon 就大功告成了,因为RIP向路由信息来源端口发送该路由时,其“下一跳”地址不被改变,仍然是原来的地址(即:目标地址)。
但EIGRP在向路由信息来源端口发送该路由时,其“下一跳”地址将改变为该端口的地址。所以,必须关闭这一特性。(EIGRP是CISCO公司的私有协议,关闭这一特性的IOS命令为no ip next−hop−self eigrp )。
OSPF是链路状态型路由协议,其本身就不存在水平分割(split horizon)问题。但在配置OSPF网络类型时,应配置为广播型而不要使用点到多点型,否则,仍然会导致上述的问题。另外需要注意的是,必须把DMVPN的中心路由器(Hub)配置为OSPF的指定路由器(DR),可以通过指定中心路由器(Hub)有更高的OSPF优先权来实现。
最后,总结下DMVPN的整体解决方案:DMVPN是通过多点GRE(mGRE)和下一跳解析协议(NHRP)与IPSec相结合实现的。在DMVPN解决方案中,利用IPSec实现加密功能,利用GRE或多点GRE(mGRE)建立隧道,利用NHRP解决分支节点的动态地址问题。
DMVPN只要求中心节点必须申请静态的公共IP地址。(如果用 DNS 的话,中心节点不是也可以动态了吗?)GRE隧道支持多播或广播(multicast/broadcast)IP包在隧道内传输。因此,DMVPN网络支持在IPSec和mGRE隧道之上运行动态路由协议。
需要指出的是,NHRP必须被配置为动态多播映射,这样,当分支路由器在NHRP服务器(中心路由器)上注册单播映射地址时,NHRP会同时为这个分支路由器建立一个多播/广播(multicast/broadcast)映射简单的说dmvpn 的核心是nhrp,nhrp类似arp,arp协议的作用是ip地址到mac地址的解析。nhrp在dmvpn中是把内部vpn的地址到nbma地址(外部地址)的解析。具体解析过程是: ◆在nhrp协议中存在nhrp server和nhrp client ◆server必须是静态地址,client可以是动态地址。 ◆client加电后从isp获得一个公网地址 ◆client向server进行地址注册。 ◆当client和client需要通信的时候,client向server方向发送解析请求。 ◆server收到解析请求后转发到对应的client上。 ◆client向client发送解析应答。 ◆在整个过程中数据包是经过vpn处理的,因为client必须先和server进行vpn连接。 ◆dmvpn在第一阶段,第二阶段、第三阶段的处理流程和功能不同。
转载请注明:IT运维空间 » 安全防护 » DMVPN网络中动态隧道建立的方法
发表评论