收藏 分享(赏)

[GRE] Cisco DMVPN技术原理.doc

上传人:hyngb9260 文档编号:6563418 上传时间:2019-04-17 格式:DOC 页数:4 大小:30.50KB
下载 相关 举报
[GRE] Cisco DMVPN技术原理.doc_第1页
第1页 / 共4页
[GRE] Cisco DMVPN技术原理.doc_第2页
第2页 / 共4页
[GRE] Cisco DMVPN技术原理.doc_第3页
第3页 / 共4页
[GRE] Cisco DMVPN技术原理.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、一、背景信息很多公司希望通过公共网络安全地将他们各地的办事处、分公司与公司总部联系起来,并且办事处、分公司之间也可以互联。过去,唯一的办法是通过二层的网络(Layer-2 network)如 ISDN 或帧中继,将所有节点互联起来,实现内部的 IP 互通,并且需要支付昂贵的线路费用。现在,这些办事处、分公司与公司总部之间的互联可以通过廉价的 Internet 接入实现,通过 IPSec 隧道来保证内部通讯的安全。IPSec 通过共享密钥在通讯的两端实现数据加密,即任意两端之间都要共享不同的密钥,所以 IPSec 隧道其实是点到点的加密隧道,IPSec 网络就是点到点加密隧道的集合。IPSec

2、网络的组织形式可以是星形结构(hubandspoke)或网状结构(full mesh)。在大多数网络中,数据流量主要分布在分支与中心之间,分支与分支之间的流量分布较少,所以星形结构(hubandspoke)通常是较好的选择。这也符合传统的帧中继互联方式,因为星形结构(hubandspoke)比网状结构(full mesh)使用更少的点到点链路,可以减少线路费用。当通过 Internet 实现内部互联时,分支机构到分支机构( spoke tospoke)的连通不需要额外的通讯费用,并且能够给企业内部网络带来更好的性能,但是网状结构(full mesh)的实现和管理有一定困难。在星形结构中,分支到

3、分支的通信必须跨越中心,这会耗费中心的资源并引入更长的延时。尤其是使用 IPSec 加密时,中心需要在发送数据分支的隧道上解密,并且在接收数据分支的隧道上重新加密。另一种情况是通讯的两个分支在同一个城市,而中心在另一个城市,这也会引入不必要的延时。当星形 IPSec 网络(hubandspoke)规模不断增长时,IP 数据包的动态路由将非常有意义。在过去的帧中继星形网络中,通过在帧中继链路上运行 OSPF 或 EIGRP 等动态路由协议来通告分支网络的可达性,并支持路由的冗余。当中心路由器失效后,还可以利用一个备份的路由器接替中心路由器管理分支间的路由。在 IPSec 隧道和动态路由协议之间存

4、在一个基础问题,即动态路由协议依赖于多播或广播包进行路由可达性通告,而 IPSec 隧道不支持对多播或广播包进行加密。目前解决这一问题的办法是利用通用路由封装(GRE )隧道与 IPSec 加密相结合的方法。通用路由封装(GRE)由 IETF 在 RFC 2784 中定义。是一个在任意一种网络层协议上封装任意一个其它网络层协议的协议。通常将有效载荷封装在一个 GRE 包中,然后将此 GRE 包封装在其它某协议中并进行转发。GRE 隧道支持运载多播或广播包到对端,而 GRE 隧道的数据包是单播的,所以 GRE 隧道的数据包可被IPSec 加密,也即 GRE Over IPSec。在这一过程中,G

5、RE 用于建立隧道,IPSec 完成 VPN 网络的加密部分。建立 GRE 隧道时,隧道的一端必须知道另一端的 IP 地址,并且必须能够在 Internet 上路由。这就意味着中心和所有分支路由器必须具有静态的公共 IP 地址。但是对于规模较小的分支结构而言,向 ISP 申请静态 IP 地址的费用是非常昂贵的。无论是 ADSL 还是直接线缆接入,ISP 通常使用 DHCP 提供动态 IP 地址,以节省其地址资源。在 IPSec VPN 上实现动态路由协议需要 GRE 隧道的支持;实现 GRE 隧道,所有节点需要静态的公网地址,而所有节点都申请静态 IP 地址是非常困难的。所有上述的限制可以总结

6、为以下四点:1.IPSec 利用访问控制列表(ACL)来决定哪些数据是需要加密的。所以,每增加一个网络连接,都必须在中心和分支的路由器上更新 ACL 的配置。如果路由器是由服务商管理的,用户就必须通知服务商更新 IPSec ACL 配置,以便新的通讯能够被加密。 2.在大型的星形网络(hubandspoke)中,中心路由器的 IPSec ACL 配置将非常大而且复杂,甚至是不可用的。例如为了管理 300 个分支路由器,在中心路由器上可能需要 3900 行的配置,这已经大到很难排查错误的程度了。而且如此大的配置可能无法全部装载到路由器的内存中,而不得不放在闪存里面。 3.GRE+IPSec 需要

7、明确知道隧道两端的 IP 地址,而分支路由器外网接口的 IP 地址通常由其本地ISP 动态提供,每次上线时的 IP 地址是不同的。 4.如果分支机构之间需要通过 IPSec VPN 直接通信的话,星形的网络( hubandspoke)就必须改变为全网状结构(full mesh)。由于无法确定哪些分支机构之间需要通过 IPSec VPN直接通信,就必须维护一个全网状结构的网络,尽管某些分支机构之间是不需要通过 IPSec VPN 直接通信的。由于每台路由器都与所有其它路由器保持隧道连通,所以在小型路由器上根本无法实现,即在较小的分支机构也不得不使用更强大的路由器。 二、DMVPN 解决方案DMV

8、PN 是通过多点 GRE(mGRE)和下一跳解析协议(NHRP)与 IPSec 相结合实现的。在 DMVPN 解决方案中,利用 IPSec 实现加密功能,利用 GRE 或多点 GRE(mGRE)建立隧道,利用NHRP 解决分支节点的动态地址问题。DMVPN 只要求中心节点必须申请静态的公共 IP 地址。下一跳解析协议(NHRP)由 IETF 在 RFC 2332 中定义。用于非广播多路访问(NBMA )网络上的源节点(主机或路由器)如何获取到达目标节点的“下一跳”的互联网络层地址和 NBMA 子网地址。2.1、IPSec 加密的自动起始IPSec 利用访问控制列表(ACL)来决定哪些数据是需要

9、加密的。也就是说,当有数据包匹配所定义的ACL 时,IPSec 加密隧道便会建立。当利用 GRE Over IPSec 时,GRE 隧道的配置已经包括了 GRE 隧道对端的地址,这个地址同时也是 IPSec 隧道的对端地址。所以,没有必要再单独为 IPSec 定义匹配ACL。通过将 GRE 隧道与 IPSec 绑定,GRE 隧道一旦建立,将立刻触发 IPSec 加密。2.2、分支到中心(SpoketoHub)的动态隧道建立DMVPN 网络中,在中心路由器上没有关于分支的 GRE 或 IPSec 配置信息,而在分支路由器上则必须依据中心路由器的外网公共 IP 地址和 NHRP 协议来配置 GRE

10、 隧道。当分支路由器加电启动时,由 ISP 处通过 DHCP 获取 IP 地址,并自动建立 IPSec 加密的 GRE 隧道,通过 NHRP 向中心路由器注册自己的外网端口 IP 地址。这样做有三方面的原因:1)由于分支路由器外网端口的 IP 地址是自动获取的,每次上线时的 IP 地址可能不同,所以中心路由器无法根据该地址信息进行配置。2)中心路由器不必针对所有分支分别配置 GRE 或 IPSec 信息,将大大简化中心路由器的配置。所有相关信息可通过 NHRP 自动获取。3)当 DMVPN 网络扩展时,无须改动中心路由器和其它分支路由器的配置。新加入的分支路由器将自动注册到中心路由器,通过动态

11、路由协议,所有其它分支路由器可以学到这条新的路由,新加入的分支路由器也可以学到到达其它所有路由器的路由信息。2.3、分支到分支(SpoketoSpoke)的动态隧道建立在 DMVPN 网络中,分支到中心(SpoketoHub)的隧道一旦建立便持续存在,但是各分支之间并不需要直接配置持续的隧道。当一个分支需要向另一个分支传递数据包时,它利用 NHRP 来动态获取目的分支的 IP 地址。在这一过程中,中心路由器充当 NHRP 服务器的角色,响应 NHRP 请求,向源分支提供目标分支的公网地址。于是,两个分支之间可以通过 mGRE 端口动态建立 IPSec 隧道,进行数据传输。该隧道在预定义的周期之

12、后将自动拆除。2.4、对动态路由协议的支持DMVPN 以 GRE 隧道为基础,而 GRE 隧道支持多播或广播(multicast/broadcast)IP 包在隧道内传输。所以,DMVPN 网络支持在 IPSec 和 mGRE 隧道之上运行动态路由协议。需要指出的是,NHRP 必须被配置为动态多播映射,这样,当分支路由器在 NHRP 服务器(中心路由器)上注册单播映射地址时,NHRP 会同时为这个分支路由器建立一个多播/广播(multicast/broadcast)映射。我们在前面提到 IPSec 隧道不支持多播/广播(multicast/broadcast)包的封装,而 GRE 隧道可以将多

13、播/广播( multicast/broadcast)包封装到 GRE 包中,并且 GRE 包是单播包,可以被 IPSec 加密。在用 IPSec 对 GRE 包进行加密时,可以将 IPSec 配置为传输模式,因为 GRE 已经将原始数据包封装为单播的 IP 包,没有必要让 IPSec 再封装一个包头。IPSec 的传输模式要求被加密数据包的源和目的地址必须与 IPSec 隧道两端的地址相匹配,也就是说GRE 隧道两端的地址与 IPSec 隧道两端的地址必须相同。由于 GRE 隧道两端的路由器与 IPSec 隧道两端的路由器是相同的两台路由器,所以这一点是可以保证的。通过 GRE 隧道与 IPS

14、ec 加密相结合,我们可以利用动态路由协议在加密隧道两端的路由器上更新路由表。从隧道对端学到的子网在路由表条目里将会包含隧道对端的 IP 地址作为到达对端子网的下一跳地址。这样,隧道任何一端的网络发生变化,另外一端都会动态地学习到这个变化,并保持网络的连通性而无需改变路由器的配置。三、DMVPN 网络中动态路由协议的实现我们在前面提到,在 DMVPN 网络中,分支到中心(SpoketoHub)的隧道一旦建立便持续存在,而各分支之间并没有持续存在的隧道。这样,在路由器初始化后,中心路由器会通过持续存在的隧道向分支路由器宣告其它分支子网的可达路由。于是,分支路由器的路由表中到达其它分支子网的“下一

15、跳” 地址就是中心路由器的隧道端口地址,而不是其它分支路由器的隧道端口地址。如此一来,分支与分支之间的数据传输还是会通过中心路由器。要解决这一问题,必须在中心路由器上设置为在 mGRE 隧道端口上宣告某一分支子网的可达路由时“下一跳” 地址是该分支路由器的隧道端口地址,而非中心路由器的地址。在 RIP 或 EIGRP 等距离向量型路由协议中,通常都实现了水平分割(split horizon)功能,阻止将路由信息发回到其来源端口,以避免相邻路由器上路由环路的产生。如果在 DMVPN 网络上运行 RIP 或EIGRP 协议,则必须关闭水平分割(split horizon)功能。否则,分支路由器将无

16、法学习到通往其它分支子网的路由。对 RIP 而言,这已经足够了,因为 RIP 向路由信息来源端口发送该路由时,其 “下一跳”地址不被改变,仍然是原来的地址。而 EIGRP 在向路由信息来源端口发送该路由时,其“ 下一跳”地址将改变为该端口的地址。所以,必须关闭这一特性(EIGRP 是 CISCO 公司的私有协议,关闭这一特性的 IOS 命令为 no ip nexthopself eigrp )。OSPF 是链路状态型路由协议,其本身就不存在水平分割(split horizon)问题。但在配置 OSPF 网络类型时,应配置为广播型而不要使用点到多点型,否则,仍然会导致上述的问题。另外需要注意的是,必须把 DMVPN 的中心路由器(Hub)配置为 OSPF 的指定路由器(DR),可以通过指定中心路由器(Hub)有更高的 OSPF 优先权来实现。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > GRE

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报