一、简介

GRE(Generic Routing Encapsulation):通用路由封装。

GRE是一个通用的路由封装协议,它描述在任意的网络层之上封装另一个网络协议。

RFC:2784.

二、报文格式

封装格式:

payload是网络层,delivery是网络层

1)     校验和存在位(1位:0)

如果为1,则checksum和reserved1有效。

2)     reserved0位(12位:1-12)

接收到的报文如果reserved0的1-5位(对应上图)不为0,那么接收段必须丢弃该报文,除非该接收端明确支持RFC1701。6-12位为保留位,必须设置为0,接收端必须不关系这些位。

3)     版本字段(3位:13-15)

版本字段必须设置为0.当版本字段为1时,成为PPTP协议。

4)     协议类型(16位)

协议类型字段包含负载的协议。协议类型的值由RFC1700的ETHER TYPES部分指定。

5)     校验和字段(16位:0-15)

只有当校验和存在位为1,该校验和字段才有效。

该字段初始为0,表示要计算校验和。

校验和包括该16位校验和字段和负载部分。

6)     reserved1字段(16位:16-31)

只有到校验和存在位为1,该字段有效。

该字段为保留位,必须设置为0.

三、IPv4作为运输协议

IPv4的协议字段为47,表示ipv4封装的是GRE包。

四、IPv4作为负载

对应的协议字段为0x800.

传输该IPv4负载时:

接收GRE隧道端,使用负载的IP地址来传输解封装的负载报文,负载报文的TTL必须减1。注意,当负载报文的IP地址为GRE隧道的另一端地址时,会出现循环,这时必须丢弃该报文。

五、PMUT的影响

当用IPv4作为传送协议时,现有实现并不实现路径MTU发现和不设置禁止分片标志。当传送大包时,在隧道中会分片,在隧道端再重组。

如果一个隧道端希望实现Path MTU发现,那么该隧道也需要实现把ICMP不可达错误信息报文(需要分片,设置DF位)回复给报文产生者。

否则,假如报文产生者设置了不分片标志,那么报文在隧道中可能会被丢弃,但没有把该ICMP错误信息传回给产生者,那么后续的报文也将使用相同的PMTU,导致后续报文都被丢弃。

GRE 协议rfc总结相关推荐

  1. socks5协议RFC文档

    socks5协议RFC文档 « Xiaoxia[PG] socks5协议RFC文档 Network Working Group M. Leech Request for Comments: 1928 ...

  2. 14.3 GRE协议基础配置

    原理概述 GRE(Generic Routing Encapsulation,通用路由封装协议)提供了将一种协议的报文封装在另一种协议报文中的机制,使报文能够在异种网络(如IPv4网络)中传输,而异种 ...

  3. GRE协议浅析-IELAB

    1.GRE的概念 1)全称:GRE(Generic Routing Encapsulation):通用路由封装协议. 2)功能:定义了在一种网络层协议上封装另一种协议(或同一种协议). 3)举例:对某 ...

  4. GRE协议与传输模式下IPSec隧道

    以下根据strongswan代码中的testing/tests/route-based/net2net-gre/中的测试环境,来看一下GRE报文通过IPSec隧道的情况.拓扑结构如下: 拓扑图中使用到 ...

  5. 实验8:GRE协议的配置

    实验8:GRE协议的配置 一.实验目的和要求 目的:掌握GRE的工作原理和RIP协议的配置. 要求:独立完成实验任务和实验报告.截图完整,并辅以必要的文字说明,实验步骤有条理.内容清楚流畅. 二.实验 ...

  6. eNSP模拟虚拟专用网(使用GRE协议)

    目录 实验目的: 实验要求: 实验步骤 1 规划并配置PC机的IP地址 1. PC1: 2. PC2: 2 配置路由器设备接口的IP地址 1. 总部出口路由器: 2. 分公司出口路由器: 3. R3: ...

  7. tcpdump抓取TCP协议、GRE协议数据

    tcpdump抓取tcp数据 1.tcpdump -i eth0 port 11751 and src host 192.168.1.34 -x -s0 tcpdump: verbose output ...

  8. 使用GRE协议建立IPSEC

    今天给大家介绍另一种常见的IPSEC 建立场景,利用GRE协议,建立.阅读本文,您需要有一定的IPSEC 基础知识以及常见配置基础,对此不熟悉的同学可以查阅本博客的其他文章. 推荐阅读: IPSEC ...

  9. RFC总结之GRE协议

    一.简介         GRE(Generic Routing Encapsulation)是一种通用路由封装协议,是隧道业务的一种.         GRE相关的RFC有很多,如rfc1701.r ...

最新文章

  1. 码农技术炒股之路——配置管理器、日志管理器
  2. eselasticsearch入门_ElasticSearch入门学习-基础示例(1)
  3. python将图像转换为8位单通道_Python OpenCV读取16位单通道图像并转换为8位灰度图显示...
  4. 写给java初学者,从零开始学习java开发的完整学习路线
  5. Scrapy Architecture overview--官方文档
  6. Rearrange an array of positive and negative integers
  7. 6-1 求链式表的表长
  8. MyBatis基本配置和实践(三)
  9. 老是说我编译版本不够_Atlas 2.1.0 实践(1)—— 编译Atlas
  10. PHP设计模式之工厂模式
  11. C语言 FileStreaming fwritefread
  12. Wireshark 检索命令
  13. 20150310-删除数组中原有对象
  14. Nagios配置文件nagios.cfg详解
  15. ajax 传送很多html字符串到前台例子
  16. Mob 的分享的集成
  17. ffmpeg没有bin文件
  18. 网站被攻击如何正确防护
  19. mysql定义取值范围_mysql的decimal类型取值范围
  20. 高效的vim配置及其插件管理

热门文章

  1. 尼日利亚总统候选人称区块链可以加速经济发展
  2. 面向对象编程(OOP)理解
  3. JavaBeans是什么?
  4. vue elementUI 之 this.$confirm 用法
  5. 股票上市代码及上市时间
  6. SQL语句--数值的四舍五入,及位数保留
  7. 梦幻口袋版服务器信息错误,梦幻西游:从限制产出到公开售卖梦幻币,口袋版引起玩家讨论...
  8. 无线网服务器连接不上是什么问题,无线路由器连接不上是什么原因
  9. Java NIO及其常用API
  10. 浏览器跨域问题(CROS Error)