一.VPN --- 虚拟专用网络
依靠ISP或者其他公用网络基础设施上构建专用的安全数据通信网络。 -->只不过这个装用网络是逻辑而非物理的。
虚拟:用户不再需要拥有实际的长途数据线缆,而是使用佛南公共网络资源建立自己的网络。
专用:可以定制最符合自身需求的网络。
公用网络不可用私有网络
核心技术:封装技术
二.GRE -- 通用路由封装
通过点到点的通信方式实现私网的互通,其通过在date报文前封装gre协议报文再在这两个报文前添加IP报文头部形成完整报文,当私网源地数据经过路由时自动识别gre报文通过Tunnel接口转发到公网中,最后到达另一个私网目的地,最后实现网络的通信。
封装配置:
[r1]interface Tunnel 0/0/0 ----创建隧道接口
[r1-Tunnel0/0/0]ip address 192.168.3.1 24 ---该IP地址必须为私网IP
[r1-Tunnel0/0/0]tunnel-protocol gre ----定义封装方式
[r1-Tunnel0/0/0]source 12.0.0.1 ----定义封装内容,该IP必须为真实的公网出口IP
[r1-Tunnel0/0/0]destination 23.0.0.3
GRE封装和解封装过程
(1)设备从连接私网的接口接收到数据包后,检查报文头部中的目的IP地址字段,在路由表中查找出接口,如果发现出接口为隧道接口,则将报文发送给隧道模块进行处理。
(2)隧道模块接收到报文后,首先根据乘客协议的类型和当前GRE隧道配置的校验和参数,对报文进行GRE封装
(3)然后,设备给报文添加新的传输协议,该协议的源IP就是隧道源地址,目的IP为隧道目的地址。
(4)最后,设备根据新条件的IP报文头部中的目的地址,在路由表中查找对应的出接口并发送报文。
(5)接收端设备从连接公网的接口收到报文后,首先分析IP报文头部信息,如果发现协议字段类型值为47 (GRE协议号),表示数据部分由GRE模块进行处理。
GRE模块去除掉IP报文头部和GRE报文头部,并根据GRE报文头部中的协议类型字段来判断乘客
Keepalive检测机制
[r1-Tunnel0/0/0]keepalive period 2 retry-times 5
设置发送周期为2S;设置重传次数为5次
用keepalive检测机制保证数据不丢失,从而实现网络的稳定通信
MGRE-- 多点GRE–NBMA⽹路类型
MGRE实质是通过GRE转变而来,其容易理解为点到多点的通信方式,但其实本身效果还是点到点的通信方式。通过建立中心(HUB)到节点(Spoke)建立mgre隧道动态转发数据信息,当节点与节点之间进行通信时,通过nhrp协议的映射动态学习到对方的路由信息,此时通过查看路由表可发现通信节点双方都学习到对方的路由信息。最后可实现网络的通信。
MGRE结构 --- Hub-spoke 结构 --中心到节点架构
重点:
NHRP --- 下一跳解析协议
至少存在一个中心站点;中心站点的 IP 地址必须固定;所有分支站点,在启动后将本地当下的物理接口 IP 地址发送到中心站点;中心站点生成 MAP(MAP中记录分支站点的公有 IP 与 Tunnel 接口的 IP 地址对应关系); 其他分支站点也可以到中心站点下载该 MAP;
存在服务端和客户端;服务端需要固定公有ip地址,客户端ip地址可变;客户端在本地公有ip变化后,主动向服务端进行注册;服务端生成 MAP,MAP 中记录客户端的公有 IP 与 Tunnel 接口的 IP 地址对应关系;若其他客户端需要访问另一个客户端,可以到服务端下载该 MAP;
hub-spoke架构----中心到节点架构
NHS---下一跳服务器
中心节点的IP地址必须固定
GRE的shortcut
有一台中心服务器AR1 作为整个网络中的中心服务器Hub,且每次节点与节点之间访问的时候必须经过AR1进行转发,也是有优点的,配置比较简单,但是缺点就是占用大多带宽,对线路通讯不太好。
Hub节点(中心节点)配置
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp ----修改接口封装协议为GRE,且为点到多点模式
[r1-Tunnel0/0/0]source 15.0.0.1
Spoke节点配置
[r2]interface Tunnel 0/0/0
[r2-Tunnel0/0/0]ip address 192.168.5.2 24
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp
[r2-Tunnel0/0/0]source GigabitEthernet 0/0/0 --- 可写出接口(防止IP地址更换)也可写出接口的IP地址
[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register
hub的虚拟接口IP hub的物理接口IP 注册
[r1]display nhrp peer all ----查看nhrp映射表
DSVPN---动态智能VPN
传统的MGRE技术存在的问题。----分部之间无法直接通讯(源分支无法获取目的分支的公网地址,也就无法建立VPN隧道)导致所有的分支之间的通讯数据只能通过总部HUB设备进行中转。
NHRP映射表
静态表项:
1.由网络管理员手工配置
2.spoke与hub建立静态的mgre隧道
动态表项:
3.是由NHRP协议动态生成
4.hub节点被动获取到spoke节点发送来的注册信息
5.各个spoke节点通过NHRP协议获取到对端的spoke节点的映射关系。
6.7200S
NHRP映射表的建立过程:
建立spoke到hub之间的mgre隧道
1.spoke向hub注册请求
2.hub向spoke注册应答
DSVPN支持两种分支间路由学习方式:
分支间互相学习路由----非shortcut方式
每个分支需要学习到所有对端的路由数据,且下一跳为分支本身
分支路由汇聚到总部----shortcut方式
下一跳为hub设备
建立spoke与spoke之间的mgre隧道
建立spoke与spoke之间的mgre隧道例子:
在shortcut方式下需要添加的配置:MGRE的shorecut和非shorecut:
中心:
[r1-Tunnel0/0/0]nhrp redirect ----开启重定向功能。默认情况为未启动
分支:
[r4-Tunnel0/0/0]nhrp shortcut ----使用shortcut功能
MGRE的shorecut和非shorecut:
shortcut和非shortcut方式主要区别:
1、配置上:
shortcut方式,针对静态路由,走向的下一跳都是去Hub站点。且为了使得选路优化,需要在Hub上进行重定向操作,在spoke节点上开启快捷方式
非shortcut方式,针对静态路由,走向的 下一跳是去对应网段的隧道地址的下一跳,Hub和Spoke无需过多操作
2、原理上,shortcut方式比非shortcut方式多了一个重定向。
shortcut模式下,数据包从源站点出发,到达第一个中转站点时,会根据目的站点的地址信息,直接从该中转站点转发到目的站点,而不是一直沿着GRE隧道传输到最后一个站点再转发。这种模式可以提高数据传输的效率,减少GRE隧道的负载。
spoke1和spoke2之间想建立链接信息链路,需要像hub中心发送信息包,先添加路由信息两个spoke点之间的链路都可以和中心点进行信息之间的交互。
on-shortcut模式下,数据包从源站点出发,一直沿着GRE隧道传输到最后一个站点,然后再转发到目的站点。这种模式适用于站点之间的数据传输较为稳定,且GRE隧道的负载较小的情况
中心节点hub与分支节点spoke1、spoke2建立了mgre隧道,添加路由信息后,两个分支节点可以与中心节点通信,此时中心节点也动态拿到了两个spoke分支节点相应的信息
spoke两个点想要创建虚拟链接,则先互相发送路由表给吓一跳hub,hub收集到各个spoke节点的路由表,随后节点spoke会查看自身的nhrp表,在对照下一跳节点hub中是否含有两个节点的spoke的表像,如果含有spoke则会发送icmp报文,但都不会产生nhrp疑问报文,然后将收到的icmp报文通过hub下一跳进行节点之间的互相转发,然后吓一跳hub回向两个节点又重新发送冲重定向报文确定,然后发送再次发送icmp报文给下一跳hub,然后通过下一跳hub中心,互相发送交换nhrp请求报文,spoke1发送报文spoke2中最后hub发现问题又发送重定向报文到spoke2中,同时也跟spoke1请求过程一样,最后两个节点重新建立链接正常通行。