GRE协议
一、
GRE(Generic Routing Encapsulation) 通用路由封装
是对某些网络层协议(如: IP , IPX , Apple Talk等)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。
GRE可以实现多协议的本地网通过单一协议的骨干网传输的服务,扩大了网络的工作范围,包括那些路由网关有限的协议,如IPX包最多可以转发16次(即经过16个路由器),而在一个Tunnel连接中看上去只经过一个路由器将一些不能连续的子网连接起来。
GRE协议实际上是一种承载协议(Carrier Protocol),它提供了将一种协议的报文封装在另一种协议报文中的机制,使报文能够在异种网络中传输,异种报文传输的通道称为tunnel。
Tunnel是一个虚拟的点对点的连接,它提供了一条通路使封装的数据报能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封。
IP协议既可以作为传递协议(Delivery Protocol),也可以作为负载协议(Payload Protocol),在TCP/IP网络中,IP协议一般是作为传递协议,封装和传输其他协议的报文。在最简单的情况下,系统接收到一个需要封装和路由的数据报,称之为负载报文。这个有效报文首先被GRE封装,称之为GRE报文,这个报文接着被封装在IP协议中,然后完全由IP 层负责此报文的转发。
二、GRE协议栈

系统接收到一个需要封装和路由的数据报文,我们称之为有效负载(Payload)。这个有效负载首先被GRE封装然后被称之为GRE报文,这个报文接着被封装在IP报文中,然后完全由IP层负责此报文的转发(Forwarding)。我们也称这个负责向前传输的IP 协议为传递(Delivery)协议或传输(Transport)协议。
GRE实际上是第三层隧道的一种运载协议(Carrier Protocol)。GRE的协议号47。
隧道源端的加封装过程:
当报文需要经由隧道接口处理时,IP层的输出函数调用tunnel接口的输出函数进行加封装处理。加封装处理结束后再进行IP转发。
隧道对端的解封装过程:
当IP层接收到GRE报文,此时IP报文头中的下一协议号是47,IP层输入入口函数会根据协议开关表调用GRE的解封装处理函数。GRE解封装完成后将数据报文送入IP输入队列。
三、使用GRE构建VPN

应用GRE组建Intranet VPN 或Extranet VPN:公司总部的局域网和公司分支机构或合作伙伴的局域网通过路由器之间通过GRE协议建立的Tunnel进行通信;并采用IPSec 在IP层通过加密与数据源验证,以保证数据包在Internet网上传输时的私有性、完整性和真实性。实现点到点的连接,保障了数据的安全性。
GRE配置
一、GRE的配置任务及命令
1.创建虚拟Tunnel接口:
interface tunnel tunnel-number
在该接口上进行GRE其它参数的配置。这些配置在Tunnel两端必须配置。缺省情况下,不创建虚拟Tunnel接口,tunnel-number可取值在0~4294967295之间的整数,但实际可建的Tunnel数目将受到接口总数及内存状况的限制。
2.配置Tunnel接口的源端地址和目的地址
source ip-address
destination ip-address
要指明Tunnel通道的源端地址和目的地址,即发出GRE报文的实际物理接口地址和接受GRE报文的实际的物理接口地址。Tunnel的源端地址与目的地址唯一标识了一个通道。这些配置在Tunnel两端必须配置,且两端地址互为源地址和目的地址。
3.配置Tunnel接口的网络地址:
ip address {ip-address mask | unnumbered interface-type interface-number}
两个私有网络借助GRE隧道进行互通,相当于两个私有网络的虚拟“直接”连接。为了在这两个网络间自动产生所需的直达路由,需要配置Tunnel接口网络地址,并确保两个地址处于同一网段,系统会自动产生隧道路由。
二、GRE的可选参数配置
tunnel接口的识别关键字
gre key key-number
配置tunnel进行数据包序列号同步
gre sequence-datagrams
tunnel接口使用校验
gre checksum
三、GRE的调试
display interfaces [ tunnel tunnel-number ]

以上信息表示:Tunnel1接口处于UP状态,MTU为128字节,Tunnel1的网络地址为1.1.1.1;收到10个报文;收到的错误报文、广播报文个数都为0;无丢弃的报文;发送报文的个数为10;输出产生错误的报文、广播报文与未知的协议类型的报文个数均为0。
www.huawei.com
GRE协议的更多相关文章
- GRE协议学习与练习
通用路由封装(英语:Generic Routing Encapsulation,缩写为GRE),一种隧道协议,可以在虚拟点对点链路中封装多种网络层协议.由思科系统开发 以下是GRE协议的简单练习 网络 ...
- GRE 协议简介
1. 协议简介 gre(generic routing encapsulation,通用路由封装)协议是对某些网络层协议(如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络 ...
- GRE 协议 - 和 ISP 用的协议不一样怎么办
GRE 出现的背景: 随着网络(公司)规模的增大,越来越多的公司需要在跨区域之间建设自己的分公司.但随之也就出现了这样的问题,考虑这样一个场景.公司 A 在北京和上海间开设了两家公司,由于业务的需要, ...
- 华为AR-111S路由器GRE协议设置
一.GRE的定义: gre(generic routing encapsulation,通用路由封装)协议是对某些网络层协议(如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络层 ...
- [GRE] GRE协议介绍
写的一般,主要看下图就行了. https://blog.csdn.net/Mary19920410/article/details/72303641 前半部分介绍还不错,后半部分没看. http:// ...
- 通用路由封装协议——GRE
一.GRE简介 通用路由封装协议GRE(Generic Routing Encapsulation)可以对某些网络层协议(如IPX.ATM.IPv6.AppleTalk等)的数据报文进行封装,使这些被 ...
- GRE隧道协议
1. GRE协议简介 GRE(General Routing Encapsulation ,通用路由封装)是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的报文能够在另一网络层协议 ...
- Neutron 理解 (3): Open vSwitch + GRE/VxLAN 组网 [Netruon Open vSwitch + GRE/VxLAN Virutal Network]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- GRE与Vxlan网络详解
1. GRE 1.1 概念 GRE全称是Generic Routing Encapsulation,是一种协议封装的格式,具体格式内容见:https://tools.ietf.org/html/rfc ...
随机推荐
- 学习笔记TF013:卷积、跨度、边界填充、卷积核
卷积运算,两个输入张量(输入数据和卷积核)进行卷积,输出代表来自每个输入的信息张量.tf.nn.conv2d完成卷积运算.卷积核(kernel),权值.滤波器.卷积矩阵或模版,filter.权值训练习 ...
- 【mysql】索引原理-MySQL索引原理以及查询优化
转载:https://www.cnblogs.com/bypp/p/7755307.html 一.介绍 1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性 ...
- SpringBoot企业级博客开发
1.springboot生成项目 PS : 进入项目,输入gradle build,生成build文件夹: 然后进入libs有jar,使用java jar进行运行项目 PS: 这个项目没有准守res ...
- 每天进步一点点-Java IO操作-Java Serializable(对象序列化)的理解和总结
往硬盘文件里写数据 序列化:序列化是将对象转换为容易传输的格式的过程.例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象.在另一端,反序列化将从该流重 ...
- mysql新建用户在本地无法登录
新建了一个mysql用户,但是无法在本地登录,即使已经授权任一ip都可以登录,甚至特地写清楚localhost登录,还是不行,情况如下 [root@localhost zabbix-release-3 ...
- vorpal 又一个方便的cli 开发包
vorpal 是一个npm 包,我们可以用来开发专业的cli 程序 简单使用 初始化项目 yarn init -y 添加依赖 yarn add vorpal 简单demo app.js // cons ...
- APACHE如何里一个站点绑定多个域名?用ServerAlias servername
APACHE2如何里一个站点绑定多个域名?用ServerAlias以前很笨,要使多个域名指向同一站点总是这样写: <VirtualHost *:80>ServerAdmin i@kuigg ...
- 关于package.json
1.dependencies和devDependenceis npm install packageName --save配置到dependencies,代表代码运行时所需要的插件(比如jquery, ...
- ulimit设置内存限制是否有效
如何使用ulimit限制物理内存 限制物理内存 $ ulimit -m 512000 经测试,无效. 限制物理内存不起作用,ulimit不支持限制物理内存,可见man ulimit手册 -m The ...
- python调用hanlp分词包手记
python调用hanlp分词包手记 Hanlp作为一款重要的分词工具,本月初的时候看到大快搜索发布了hanlp的1.7版本,新增了文本聚类.流水线分词等功能.关于hanlp1.7版本的新功能,后 ...