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 ...
随机推荐
- hdu3974 Assign the task dfs序+线段树
There is a company that has N employees(numbered from 1 to N),every employee in the company has a im ...
- mysqldump命令之常用模板
##=====================================================## ## 在Master上导出所有数据库 /export/servers/mysql/b ...
- shutdown和close
close close 一个套接字的默认行为是把套接字标记为已关闭,然后立即返回到调用进程,该套接字描述符不能再由调用进程使用,也就是说它不能再作为read或write的第一个参数,然而TCP将尝试发 ...
- junit 测试quartz
Junit本身是不支持普通的多线程测试的,这是因为Junit的底层实现上,是用System.exit退出用例执行的.JVM都终止了,在测试线程启动的其他线程自然也无法执行,JunitCore代码如下: ...
- java 中 heap(堆)和stack(栈)的区别
总结在Java里面Heap和Stack分别存储数据的不同. 区别项 Heap(堆) Stack(栈) JVM中的功能 内存数据区 内存指令区 存储数据 对象实例(注1) 基本数据类型, 指令代码,常量 ...
- Linux fdisk普通分区扩容
买了一个orangepi 然后用7.4GB的内存卡,写入了一个lubuntu镜像,用去3.6GB还有3.8GB没有用,因为要编译mt7601u进ubuntu中,需要用到内核文件 但是内核压缩包1.2G ...
- Gitlab备份与恢复、迁移与升级
0.Gitlab安装 1.安装和配置必要的依赖关系 在CentOS7,下面的命令将在系统防火墙打开HTTP和SSH访问. yum install curl openssh-server postf ...
- python selenium-webdriver 标签页切换(十五)
测试过程中有时候会遇到点击某个按钮或者链接会弹出新的窗口,这时候我们的操作的页面还保持着最初打开页面,但是此时我们需要操作新打开的页面上的功能,这个时候我们需要切换一下标签页 . 其实页面的切换与fr ...
- HanLP二元核心词典详细解析
本文分析:HanLP版本1.5.3中二元核心词典的存储与查找.当词典文件没有被缓存时,会从文本文件CoreNatureDictionary.ngram.txt中解析出来存储到TreeMap中,然后构造 ...
- Spring Boot中对自然语言处理工具包hanlp的调用详解
概 述 HanLP 是基于 Java开发的 NLP工具包,由一系列模型与算法组成,目标是普及自然语言处理在生产环境中的应用.而且 HanLP具备功能完善.性能高效.架构清晰.语料时新.可自定义的特点, ...