zl程序教程

您现在的位置是:首页 >  其他

当前栏目

HCIP-GRE与MGRE

2023-04-18 15:39:02 时间

 

 前言:

VPN---虚拟私有网络
指的是依靠ISP或其他网络管理机构在公有网络基础上构建的专用的安全数据通信网络,只不过该网络是逻辑上的而非物理的。
  • 虚拟:用户不在需要拥有实际的长途数据线路,而是使用公共网络资源建立的属于自己的私有网络。
  • 专用:用户根据自身需求,特别定制的最符合自身网络架构的网络
  • 核心技术----封装技术

 

一、GRE---逻辑隧道的封装技术

GRE---通用路由封装----标准的三层隧道技术---属于点到点隧道

 

GRE环境

 

 希望的流量走向

SIP:192.168.1.1 
DIP:192.168.2.1 
数据

实际的流量走向

SIP:12.0.0.1 
DIP:23.0.0.3 
数据

经过GRE粘合后的数据

SIP:12.0.0.1 
DIP:23.0.0.3
真实SIP:192.168.1.1 
真实DIP:192.168.2.1 
数据

 

配置命令

注意:双方均需要进行GRE配置

[r1]interface Tunnel 0/0/0                   //创建隧道接口
[r1-Tunnel0/0/0]ip address 192.168.3.1 24
[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

 

GRE的报文结构

 

 

GRE封装和解封装报文的过程 
  • 设备从连接私网的接口接收到报文后,检查报文头部中出现的IP地址字段,并在路由表中查找出接口,如果发现出接口是隧道接口,则将报文发送给tunnel模块进行处理。
  • tunnel模块接收到报文后,会首先根据乘客协议的类型和当前GRE隧道的配置来添加参数,并对报文进行GRE封装
  • 然后,设备给报文添加传输协议报文头部,即IP报文头部。该IP头部信息的源IP地址是隧道源地址(不是隧道自身的IP地址),目的地址就是隧道的目的地址。
  • 最后,设备根据新添加的IP报文头部中的目的IP地址,在路由表中查找对应的出接口,并发送报文。
  • 接收端设备从连接公网的接口收到报文后,首先分析IP报文头部,如果发现协议类型字段的值为47(GRE的协议号),表示上层协议为GRE谢意,于是出接口将报文交给GRE模块处理。
  • GRE模块去掉IP报文头部和GRE头部,并根据GRE报文头部中的协议类型字段,发现此报文的乘客协议为私网中运行的IP协议,将该数据交给对应协议处理。

 

Keepalive检测---用于检测隧道对端是否可达

配置命令

[r1-Tunnel0/0/0]keepalive period 2 retry-times 5 
//设置发送周期为2s;重传次数为5次。
  • 如果本端隧道配置了keepalive检测功能,GRE隧道会创建一个计时器,并周期性的发送探测报文,同时进行不可达计数。
    • 每发送一个探测报文,不可达计数+1
    • 如果该计数器到达预先设定的值之前收到回应报文,则表明对端可达。
    • 如果计时器值达到预先设定的重传此处,还未收到对端的回应报文,则认为对端不可达。关闭隧道连接。
  • keepalive是不需要双方均进行配置的,仅配置一端即可进行检查。 

 

二、MGRE----多点通用路由封装技术

 
NHRP----下一跳解析协议 
中心/节点:Hub-Spoke架构          NHS(下一跳服务器)
在私网当中选择一个出口物理IP地址不会变的设备充当NHS服务器。
剩下的节点都可以知道中心的隧道IP和物理IP,然后通过NHRP要求所有的分支节点都需要将自己的物理接口IP和隧道IP发送给该服务器(有变化就发送)。
NHS服务器将会存有所有分支节点的地址映射关系的一个动态记录。发送消息时查询该映射记录表即可。

 

MGRE的非shortcut配置

 

 清除路由器本地配置命令:reset saved-configuration

Hub配置
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip add 192.168.5.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp       //修改接口封装模式为点到多点GRE
[r1-Tunnel0/0/0]source 15.0.0.1                //定义封装的源IP,该IP地址为物理IP地址


Spoke配置 [r4]interface Tunnel 0/0/0 [r4-Tunnel0/0/0]ip add 192.168.5.4 24 [r4-Tunnel0/0/0]tunnel-protocol gre p2mp [r4-Tunnel0/0/0]source GigabitEthernet 0/0/0 //设置分支站点IP地址不固定,故源IP根据出接口变化 [r4-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register //分支需要到中心站点注册
隧道地址 物理地址 注册

  [r1]display nhrp peer all    //查看nhrp的注册情况