GRE和MGRE

GRE-----通用路由封装协议

GRE(Generic routing encapsulation)通用路由封装是一种隧道协议,能够在IP隧道中封装各种网络层协议的分组,从而创建虚拟点到点链路。GRE隧道并不提供加密服务,默认情况下以明文方式离开,所以通常使用GRE通过IPsec vpn隧道传输动态路由协议数据流。
 

GRE封装和解封装过程 

        设备从连接私网的接口接收到数据包后,检查报文头部中的目的IP地址字段,在路由表中查找出接 口,如果发现出接口为隧道接口,则将报文发送给隧道模块进行处理。
        隧道模块接收到报文后,首先根据乘客协议的类型和当前GRE隧道配置的校验和参数,对报文进行 GRE封装
        然后,设备给报文添加新的传输协议,该协议的源IP就是隧道源地址,目的IP为隧道目的地址。
         最后,设备根据新条件的IP报文头部中的目的地址,在路由表中查找对应的出接口并发送报文。
        接收端设备从连接公网的接口收到报文后,首先分析IP报文头部信息,如果发现协议字段类型值为 47(GRE协议号),表示数据部分由GRE模块进行处理。
        GRE模块去除掉IP报文头部和GRE报文头部,并根据GRE报文头部中的协议类型字段来判断乘客协议内容。从而交给对应模块处理。

相关配置:

R1:

[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
[r1-Tunnel0/0/0]destination 23.0.0.3 --目的IP

[r1]ip route-static 192.168.2.0 24 192.168.3.2 --去往r2私网网段的静态路由

R2:

[r2]interface Tunnel 0/0/0 ----创建隧道接口
[r2-Tunnel0/0/0]ip address 192.168.3.2 24 ---该IP地址必须为私网IP
[r2-Tunnel0/0/0]tunnel-protocol gre ----定义封装方式
[r2-Tunnel0/0/0]source 23.0.0.3 ----定义封装内容,源IP
[r2-Tunnel0/0/0]destination 12.0.0.1 --目的IP

[r1]ip route-static 192.168.1.0 24 192.168.3.1 --去往r1私网网段的静态路由

MGRE

MGRE技术全称为多点GRE技术,是基于GRE技术的升级版,GRE技术的弊端很明显,就是只能再两个点之间建立tunnel,如果有多个局域网需要建立自己的通信环境,那么就需要建立多个全互联形式的tunnel隧道,这样就会造成管理上的不方便和资源的占用,因此产生了MGRE技术。

原理

1、中心站点,固定的公有ip地址;
2、tunnel配置完成,所有的分支站点将自己当下的信息发送给HUB,生成映射列表;
3、此时中心站点可以直接和所有的分支站点进行GRE通讯;
4、分支站点间直接GRE,通讯时,需要先到HUB节点,再由HUB转发给分支。

NHRP--下一跳解析协议

hub-spoke架构----中心到节点架构

相关配置:

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,建议写成公网出接口

[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register  --向hub进行注册

[r3]interface Tunnel 0/0/0

[r3-Tunnel0/0/0]ip address 192.168.5.3 24

[r3-Tunnel0/0/0]tunnel-protocol gre p2mp

[r3-Tunnel0/0/0]source GigabitEthernet 0/0/0  

[r3-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 registe

[r4]interface Tunnel 0/0/0

[r4-Tunnel0/0/0]ip address 192.168.5.4 24

[r4-Tunnel0/0/0]tunnel-protocol gre p2mp

[r4-Tunnel0/0/0]source GigabitEthernet 0/0/0  

[r4-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 registe

DSVPN --动态智能vpn

传统的MGRE技术存在的问题。-----分部之间无法直接通讯(源分支无法获取目的分支的公网地址,也 就无法建立VPN隧道),导致所有的分支之间的通讯数据只能通过总部HUB设备进行中转,增加了HUB设备的负担。

NHRP映射表
        静态表项
                由网络管理员手工配置
                spoke与hub建立静态的mgre隧道。
        动态表项
                是由NHRP协议动态生成
                hub节点被动获取到spoke节点发送来的注册信息。
                各个spoke节点通过NHRP协议获取到对端的spoke节点的映射关系。
                7200S老化时间

NHRP映射表的建立过程
       1、建立spoke到hub之间的mgre隧道
                1)spoke向hub注册请求
                2)hub向spoke注册应答
        2、分支间路由学习
             DSVPN支持两种分支间路由学习方式:
             1)分支间互相学习路由----非shortcut方式
                        每个分支需要学习到所有对端的路由数据,且下一跳为分支本身。
              2)分支路由汇聚到总部----shortcut方式
                        下一跳为hub设备。
         3、建立spoke与spoke之间的mgre隧道 

spoke与spoke之间的建立mgre隧道过程

非shortcut方式

当Spoke1下的用户首次访问Spoke2下的用户时,将触发Spoke1与Spoke2之间建立动态mGRE隧道,隧道建立过程如下:

  1. Spoke1收到其下用户发往Spoke2的数据报文后:

  • 根据报文目的地址(192.168.2.0)在路由表中找到下一跳10.1.1.2(Spoke2的Tunnel地址),但在NHRP映射表中没有查找10.1.1.2对应的公网地址,就默认将该数据报文直接转发给Hub。

  • 构建并向Hub发送NHRP地址解析请求报文,请求10.1.1.2对应的公网地址。

  • Hub收到Spoke1发送的数据报文和NHRP地址解析请求报文后,将报文通过Hub与Spoke2间的mGRE隧道转发给Spoke2。

  • Spoke2收到NHRP地址解析请求报文后:

  • 从NHRP地址解析请求报文中提取Spoke1的Tunnel地址和公网地址,并将该信息更新到自己的NHRP映射表中。

  • 构建并向Spoke1发送NHRP地址解析应答报文(携带Spoke2的Tunnel地址10.1.1.2和公网地址2.2.2.2)。

  • Spoke1收到NHRP地址解析应答报文后,从应答报文中提取Spoke2的Tunnel地址和公网地址,更新到自己的NHRP映射表中,Spoke1与Spoke2之间的动态mGRE隧道随即建立。

    当Spoke1再次收到其下用户发送给Spoke2的数据报文时,Spoke1根据报文目的地址(192.168.2.0)在路由表中找到下一跳10.1.1.2,再根据10.1.1.2在NHRP映射表中找到公网地址2.2.2.2,即可按照公网地址2.2.2.2将此报文进行mGRE封装后直接发送给Spoke2,不再经过总部Hub

shortcut方式

 

当Spoke1下的用户首次访问Spoke2下的用户时,将触发Spoke1与Spoke2之间建立动态mGRE隧道,隧道建立过程如下:

  1. Spoke1收到其下用户发往Spoke2下用户的数据报文后,根据报文目的地址(192.168.2.0)在路由表中找到下一跳10.1.1.3(Hub的Tunnel地址),并在NHRP映射表中找到10.1.1.3对应的公网地址3.3.3.3(Hub的公网地址),就将数据报文转发给Hub。

  2. Hub收到Spoke1转发的数据报文后:

  • 将此报文通过Hub与Spoke2间的mGRE隧道转发给Spoke2。

  • 检查发现接收和发送数据报文的Tunnel接口属于同一个NHRP域,就构建并向Spoke1发送NHRP重定向报文(携带Hub的Tunnel地址和公网地址,以及需要解析的数据报文的目的地址192.168.2.0)。

  • Spoke1收到NHRP重定向报文后,构建并向Hub发送NHRP地址解析请求报文(携带Spoke1的Tunnel地址10.1.1.1和公网地址1.1.1.1,以及需要解析的数据报文的目的地址192.168.2.0)。

  • Hub收到NHRP地址解析请求报文后转发给Spoke2处理。

  • Spoke2收到NHRP地址解析请求报文后:

  • 从NHRP地址解析请求中提取Spoke1的Tunnel地址和公网地址,并将该信息更新到自己的NHRP映射表中。

  • 构建并向Spoke1发送NHRP地址解析应答报文(携带Spoke2的子网地址192.168.2.0、Spoke2的Tunnel地址10.1.1.2和公网地址2.2.2.2)。

  • Spoke1收到NHRP地址解析应答报文后,从应答报文中提取Spoke2的子网地址和公网地址,更新到自己的NHRP映射表中,Spoke1与Spoke2之间的动态mGRE隧道随即建立。

    当Spoke1再次收到其下用户发送给Spoke2的数据报文时,Spoke1根据报文目的地址(192.168.2.0)查找NHRP映射表,找到Spoke2的公网地址2.2.2.2,即可根据公网地址2.2.2.2将此报文进行mGRE封装后直接发送给Spoke2,不再经过总部Hub。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值