Cisco-DMVPN技术原理.docx_第1页
Cisco-DMVPN技术原理.docx_第2页
Cisco-DMVPN技术原理.docx_第3页
Cisco-DMVPN技术原理.docx_第4页
Cisco-DMVPN技术原理.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Cisco DMVPN技术原理Cisco DMVPN技术原理一、背景信息很多公司希望通过公共网络安全地将他们各地的办事处、分公司与公司总部联系起来,并且办事处、分公司之间也可以互联。过去,唯一的办法是通过二层的网络(Layer-2 network)如ISDN或帧中继,将所有节点互联起来,实现内部的IP互通,并且需要支付昂贵的线路费用。现在,这些办事处、分公司与公司总部之间的互联可以通过廉价的Internet接入实现,通过IPSec隧道来保证内部通讯的安全。IPSec通过共享密钥在通讯的两端实现数据加密,即任意两端之间都要共享不同的密钥,所以IPSec隧道其实是点到点的加密隧道,IPSec网络就是点到点加密隧道的集合。IPSec网络的组织形式可以是星形结构(hubandspoke)或网状结构(full mesh)。在大多数网络中,数据流量主要分布在分支与中心之间,分支与分支之间的流量分布较少,所以星形结构(hubandspoke)通常是较好的选择。这也符合传统的帧中继互联方式,因为星形结构(hubandspoke)比网状结构(full mesh)使用更少的点到点链路,可以减少线路费用。当通过Internet实现内部互联时,分支机构到分支机构(spoke tospoke)的连通不需要额外的通讯费用,并且能够给企业内部网络带来更好的性能,但是网状结构(full mesh)的实现和管理有一定困难。在星形结构中,分支到分支的通信必须跨越中心,这会耗费中心的资源并引入更长的延时。尤其是使用IPSec加密时,中心需要在发送数据分支的隧道上解密,并且在接收数据分支的隧道上重新加密。另一种情况是通讯的两个分支在同一个城市,而中心在另一个城市,这也会引入不必要的延时。当星形IPSec网络(hubandspoke)规模不断增长时,IP数据包的动态路由将非常有意义。在过去的帧中继星形网络中,通过在帧中继链路上运行OSPF或EIGRP等动态路由协议来通告分支网络的可达性,并支持路由的冗余。当中心路由器失效后,还可以利用一个备份的路由器接替中心路由器管理分支间的路由。在IPSec隧道和动态路由协议之间存在一个基础问题,即动态路由协议依赖于多播或广播包进行路由可达性通告,而IPSec隧道不支持对多播或广播包进行加密。目前解决这一问题的办法是利用通用路由封装(GRE)隧道与IPSec加密相结合的方法。通用路由封装(GRE)由IETF在RFC 2784中定义。是一个在任意一种网络层协议上封装任意一个其它网络层协议的协议。通常将有效载荷封装在一个GRE包中,然后将此GRE包封装在其它某协议中并进行转发。GRE隧道支持运载多播或广播包到对端,而GRE隧道的数据包是单播的,所以GRE隧道的数据包可被IPSec加密,也即GRE Over IPSec。在这一过程中,GRE用于建立隧道,IPSec完成VPN网络的加密部分。建立GRE隧道时,隧道的一端必须知道另一端的IP地址,并且必须能够在Internet上路由。这就意味着中心和所有分支路由器必须具有静态的公共IP地址。但是对于规模较小的分支结构而言,向ISP申请静态IP地址的费用是非常昂贵的。无论是ADSL还是直接线缆接入,ISP通常使用DHCP提供动态IP地址,以节省其地址资源。在IPSec VPN上实现动态路由协议需要GRE隧道的支持;实现GRE隧道,所有节点需要静态的公网地址,而所有节点都申请静态IP地址是非常困难的。所有上述的限制可以总结为以下四点:1. IPSec利用访问控制列表(ACL)来决定哪些数据是需要加密的。所以,每增加一个网络连接,都必须在中心和分支的路由器上更新ACL的配置。如果路由器是由服务商管理的,用户就必须通知服务商更新IPSec ACL配置,以便新的通讯能够被加密。 2. 在大型的星形网络(hubandspoke)中,中心路由器的IPSec ACL配置将非常大而且复杂,甚至是不可用的。例如为了管理300个分支路由器,在中心路由器上可能需要3900行的配置,这已经大到很难排查错误的程度了。而且如此大的配置可能无法全部装载到路由器的内存中,而不得不放在闪存里面。 3. GRE+IPSec需要明确知道隧道两端的IP地址,而分支路由器外网接口的IP地址通常由其本地ISP动态提供,每次上线时的IP地址是不同的。 4. 如果分支机构之间需要通过IPSec VPN直接通信的话,星形的网络(hubandspoke)就必须改变为全网状结构(full mesh)。由于无法确定哪些分支机构之间需要通过IPSec VPN直接通信,就必须维护一个全网状结构的网络,尽管某些分支机构之间是不需要通过IPSec VPN直接通信的。由于每台路由器都与所有其它路由器保持隧道连通,所以在小型路由器上根本无法实现,即在较小的分支机构也不得不使用更强大的路由器。 二、DMVPN解决方案DMVPN是通过多点GRE(mGRE)和下一跳解析协议(NHRP)与IPSec相结合实现的。在DMVPN解决方案中,利用IPSec实现加密功能,利用GRE或多点GRE(mGRE)建立隧道,利用NHRP解决分支节点的动态地址问题。DMVPN只要求中心节点必须申请静态的公共IP地址。下一跳解析协议(NHRP)由IETF在RFC 2332中定义。用于非广播多路访问(NBMA)网络上的源节点(主机或路由器)如何获取到达目标节点的“下一跳”的互联网络层地址和NBMA子网地址。2.1、IPSec加密的自动起始IPSec利用访问控制列表(ACL)来决定哪些数据是需要加密的。也就是说,当有数据包匹配所定义的ACL时,IPSec加密隧道便会建立。当利用GRE Over IPSec时,GRE隧道的配置已经包括了GRE隧道对端的地址,这个地址同时也是IPSec隧道的对端地址。所以,没有必要再单独为IPSec定义匹配ACL。通过将GRE隧道与IPSec绑定,GRE隧道一旦建立,将立刻触发IPSec加密。2.2、分支到中心(SpoketoHub)的动态隧道建立DMVPN网络中,在中心路由器上没有关于分支的GRE或IPSec配置信息,而在分支路由器上则必须依据中心路由器的外网公共IP地址和NHRP协议来配置GRE隧道。当分支路由器加电启动时,由ISP处通过DHCP获取IP地址,并自动建立IPSec加密的GRE隧道,通过NHRP向中心路由器注册自己的外网端口IP地址。这样做有三方面的原因:1)由于分支路由器外网端口的IP地址是自动获取的,每次上线时的IP地址可能不同,所以中心路由器无法根据该地址信息进行配置。2)中心路由器不必针对所有分支分别配置GRE或IPSec信息,将大大简化中心路由器的配置。所有相关信息可通过NHRP自动获取。3)当DMVPN网络扩展时,无须改动中心路由器和其它分支路由器的配置。新加入的分支路由器将自动注册到中心路由器,通过动态路由协议,所有其它分支路由器可以学到这条新的路由,新加入的分支路由器也可以学到到达其它所有路由器的路由信息。2.3、分支到分支(SpoketoSpoke)的动态隧道建立在DMVPN网络中,分支到中心(SpoketoHub)的隧道一旦建立便持续存在,但是各分支之间并不需要直接配置持续的隧道。当一个分支需要向另一个分支传递数据包时,它利用NHRP来动态获取目的分支的IP地址。在这一过程中,中心路由器充当NHRP服务器的角色,响应NHRP请求,向源分支提供目标分支的公网地址。于是,两个分支之间可以通过mGRE端口动态建立IPSec隧道,进行数据传输。该隧道在预定义的周期之后将自动拆除。2.4、对动态路由协议的支持DMVPN以GRE隧道为基础,而GRE隧道支持多播或广播(multicast/broadcast)IP包在隧道内传输。所以,DMVPN网络支持在IPSec和mGRE隧道之上运行动态路由协议。需要指出的是,NHRP必须被配置为动态多播映射,这样,当分支路由器在NHRP服务器(中心路由器)上注册单播映射地址时,NHRP会同时为这个分支路由器建立一个多播/广播(multicast/broadcast)映射。我们在前面提到IPSec隧道不支持多播/广播(multicast/broadcast)包的封装,而GRE隧道可以将多播/广播(multicast/broadcast)包封装到GRE包中,并且GRE包是单播包,可以被IPSec加密。在用IPSec对GRE包进行加密时,可以将IPSec配置为传输模式,因为GRE已经将原始数据包封装为单播的IP包,没有必要让IPSec再封装一个包头。IPSec的传输模式要求被加密数据包的源和目的地址必须与IPSec隧道两端的地址相匹配,也就是说GRE隧道两端的地址与IPSec隧道两端的地址必须相同。由于GRE隧道两端的路由器与IPSec隧道两端的路由器是相同的两台路由器,所以这一点是可以保证的。通过GRE隧道与IPSec加密相结合,我们可以利用动态路由协议在加密隧道两端的路由器上更新路由表。从隧道对端学到的子网在路由表条目里将会包含隧道对端的IP地址作为到达对端子网的下一跳地址。这样,隧道任何一端的网络发生变化,另外一端都会动态地学习到这个变化,并保持网络的连通性而无需改变路由器的配置。三、DMVPN网络中动态路由协议的实现我们在前面提到,在DMVPN网络中,分支到中心(SpoketoHub)的隧道一旦建立便持续存在,而各分支之间并没有持续存在的隧道。这样,在路由器初始化后,中心路由器会通过持续存在的隧道向分支路由器宣告其它分支子网的可达路由。于是,分支路由器的路由表中到达其它分支子网的“下一跳”地址就是中心路由器的隧道端口地址,而不是其它分支路由器的隧道端口地址。如此一来,分支与分支之间的数据传输还是会通过中心路由器。要解决这一问题,必须在中心路由器上设置为在mGRE隧道端口上宣告某一分支子网的可达路由时“下一跳”地址是该分支路由器的隧道端口地址,而非中心路由器的地址。在RIP或EIGRP等距离向量型路由协议中,通常都实现了水平分割(split horizon)功能,阻止将路由信息发回到其来源端口,以避免相邻路由器上路由环路的产生。如果在DMVPN网络上运行RIP或EIGRP协议,则必须关闭水平分割(split horizon)功能。否则,分支路由器将无法学习到通往其它分支子网的路由。对RIP而言,这已经足够了,因为RIP向路由信息来源端口发送该路由时,其“下一跳”地址不被改变,仍然是原来的地址。而EIGRP在向路由信息来源端口发送该路由时,其“下一跳”地址将改变为该端口的地址。所以,必须关闭

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论