一.引言
传统的IPSCE组网有许多缺点
网状网络拓扑缺点
1.每多一个分支站点,所有的站点都要多一份配置
2.站点过多,每一个分支站点就会维护很多的 IPSec SA
星型拓扑里面也纯在缺点
1.中心站点配置量大,多一个分支站点就要增加一份配置
2.数据被两次加解密,大大增加了延时时间
为了解决这一问题,提出了DMVPN,先简单说受DMVPN的优点和运行,在DMVPN里面重在建立隧道,总部只用一个隧道口和所有分布建立隧道,ipsec只是简单套在隧道口上的安全封装协议
DMVPN 优点
配置少:增加新的分支站点,无需更改中心站点配置
分之间联系不经过总部:分支站点间用动态产生的站点间隧道进行封装
网络资源占用少
二.概述
DMVPN 是一个高扩展性的 IPSec VPN 解决方案,可以理解为GRE OVER IPSEC 升级版 MUTI GRE OVER IPSEC
三.四大组件
动态多点 GRE,Multipoint GRE(mGRE)
下一跳解析协议(Next Hop Resolution Protocol)
动态路由协议(Dynamic Routing Protocol,EIGRP,OSPF,BGP)
IPSec 技术
逻辑解释
由上可知,总部tunnel与多个分布tunnel建立GRE,怎么实现嘞?GRE的双up条件为ip地址,源地址,目的地址,在总部上配置时不会配之目的地址,采用动态多点 GRE,Multipoint GRE(mGRE)后,隧道会根据触发更新来通过下一跳解析协议(Next Hop Resolution Protocol)寻找目的地址为从而建立GRE,动态路由协议用来实现旗下终端的互联,ipsec技术通过封装提供安全保障。
具体体现
动态多点 GRE,Multipoint GRE(mGRE)
命令:tunnel mode gre multipoint
注意事项:所有 mGRE 隧道接口都在同一个网段
下一跳解析协议(Next Hop Resolution Protocol)
解释:总部缺乏目的地址让双方GRE始终不能建立,我们理解为tunnel为虚拟地址,物理接口为公网地址,NHRP 为了通过虚拟地址到公网地址的映射而设计的。
1.首先每一个分支站点都需要手动映射中心站点的虚拟 IP 到公网 IP。
2.分支站点有了这个手动映射就能够和中心站点取得联系,并且通过 NHRP 协议,注册这个分支站点的隧道虚拟 IP 到动态获取的公网 IP。
3.因此中心站有所有分支站点的 NHRP 映射。这样中心站点也就能够访问所有注册后的分支站点。
动态路由协议(Dynamic Routing Protocol,EIGRP,OSPF,BGP)
解释:通告终端,子网的信息
IPSec 技术
解释:对 mGRE 流量进行加密,因为原理类似于gre over ipsec,gre协议会封装上公网头部,可以采用传输模式进行封装(mode transport)来节省包头长短,降低资源消耗。
四.拓扑展现
R5作为hub,R7,8作为speak,tunnel口用于建立隧道,回环口代表主机地址,接下来重在介绍隧道建立,ipsec只是套用在外的安全封装协议,不细讲
五.总部与分布建立
R5
!
interface Tunnel0
ip nhrp network-id 1 //nhrp服务名称
ip nhrp authentication 123 //验证密码
ip address 10.1.1.1 255.255.255.0 //地址
tunnel source Ethernet0/0 //源地址
tunnel mode gre multipoint //修改模式
tunnel key 123 //隧道密码
!
router eigrp 1
network 10.1.0.0 0.0.255.255
network 172.16.1.1 0.0.0.0 //通告子网和隧道信息,从而建立联系,有引流的作用
!
interface Tunnel0
!
ip route 0.0.0.0 0.0.0.0 202.102.12.254 //保证tunnel建立
!
R8
!
interface Tunnel0
ip nhrp network-id 1 //找到nhrp 1
ip nhrp authentication ccie //认证
ip nhrp nhs 10.1.1.1 //找到10.1.1.1进行nhrp验证,让总部找到分布tunnel口映射的物理接口
ip address 10.1.1.4 255.255.255.0 //地址
tunnel source Ethernet0/0 //源地址
tunnel destination 202.102.12.1 //目的地址
tunnel key 123
!
router eigrp 1
network 10.1.0.0 0.0.255.255
network 172.16.4.1 0.0.0.0
!
ip route 0.0.0.0 0.0.0.0 202.102.24.254
!
注意事项,这个时候发现分布间没有互相的子网路由信息
eigrp为防止环路的水平分割影响了互相学习路由条目,现在R5关闭
interface Tunnel0
no ip split-horizon eigrp 1
发现此时分布间流量传递还要流经总部,这是eigrp默认路由吓一跳为自己照成的,在R5上关闭
interface Tunnel0
no ip next-hop-self eigrp 1
最终验证
六.分布与分布建立
疑问
上诉的分布与分布已经建立,为什么还要讲嘞,因为此建立非彼建立,他是通过eigrp就建立了(通过取消水平分割和下一跳问题)但是并不是真正的分布间建立(gre隧道)。DMVPN,也常被认为mgre over ipsec,ipsec是建立在隧道上面的,那么分布之间就要建立隧道,如何建立嘞
引出三个新代码
tunnel mode gre multipoint 修改为mgre模式与多个对端建立
ip nhrp map 10.1.1.1 202.102.12.1 手动配置中心站点,tunnel口到公网地址的映射关系
ip nhrp map multicast 202.102.12.1 映射到中心站点公网地址
具体如何实现
1.分布会发起与另一分布建立隧道的请求到主端,并根据eigrp带有另一分布tunnel口的数据包去请求
2.主端会将此包发送给另一分布
3.另一分布接受到后,将自己的公网地址和tunnel地址一起直接发送给发起方
4.从而俩俩间互相建立隧道。
R8
interface Tunnel0
ip nhrp network-id 1
ip nhrp authentication ccie
ip nhrp nhs 10.1.1.1
ip address 10.1.1.4 255.255.255.0
tunnel source Ethernet0/0
tunnel key 123
tunnel mode gre multipoint
ip nhrp map 10.1.1.1 202.102.12.1
ip nhrp map multicast 202.102.12.1
R7
interface Tunnel0
ip nhrp network-id 1
ip nhrp authentication ccie
ip nhrp nhs 10.1.1.1
ip address 10.1.1.2 255.255.255.0
tunnel source Ethernet0/0
tunnel key 123
tunnel mode gre multipoint
ip nhrp map 10.1.1.1 202.102.12.1
ip nhrp map multicast 202.102.12.1
验证
注意事项
为什么双方建立了隧道还要通过eigrp来取消水平分割以及取消下一跳来建立连接了?俩分布间不可以直接通过eigrp连接吗?出现这个问题时在逻辑上出现错误,分布是先通过对端隧道地址触发公网地址获取来进行隧道建立,又或则说需要俩俩对端内网地址互发报文触发建立,这里就需要通过eigrp来完成第一步才能满足gre 的建立。
七.优化
解释:
1. 分布与分布间内网虽然能过传递建立隧道,还是通过eigrp取消下一跳为自己来建立直接联系,也是通过关闭水平分割来保障分部间能学到彼此路由,这也大大加强了环路不问稳定的安全问题
2.这里引出第三点优化,按需建立为了保障路由能发出,关闭水平分割,虽然水平分割让分布间不能学习到,但可以通告下发路由汇总来让报文能在分布发出
R5 tunnel口上配置
ip summary-address eigrp 1 172.16.0.0 255.255.0.0
核心代码
分布tunnel上配置ip nhrp shortcut(nhrp短缺)
总部上tunnel配置 ip nhrp redirect(nhrp重定向)
具体实现
配置以后,报文第一次发送到总部,中部收到nhrp shortcut则会开启IP nhrp redirect,告诉给发出者此最优路径,并在发出则上生成最优路径路由条目
报文第二次发送,会根据最优路径来发送
验证
配置后第一次去建立邻居( r7到r8)走俩跳,一到主端,再到分布
查看路由表(获取了一个下发下来的nhrp最优路由,不经过主端直接指向分布)
第二次建立邻居(r7到r8)只有一跳直接下发
八.尾言
DMVPN牛逼支持在于他能在搭建大量gre over ipsec还能满足配置简单,配置轻便,网络资源占用少的优点,大家细细揣摩,定能有所收获。
本人网络小白一枚,如有知识点或则逻辑不清楚的,望大佬指出,如果大伙有其他问题,留在评论区,我会尽快为大伙解决。