一、简介

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. python3 pip3 install 报错 ModuleNotFoundError: No module named ‘_ctypes‘ 解决方法
  2. 怎么判断一个字符串的最长回文子串是否在头尾_LeetCode5:最长回文子串
  3. 北邮OJ 884. 16校赛-Average Modulo
  4. java线程内存模型_深度解析Java多线程的内存模型
  5. PC寄存器为什么会被设定为线程私有
  6. 干货,不小心执行了rm -f,除了跑路,如何恢复?
  7. Lawn of the Dead
  8. Spring Autowiring @Qualifier example
  9. 网页设计制作CSS实现隔行换色两种方法
  10. c语言作业答案 填空题,C语言练习题-填空题(带答案)
  11. 玩转你的AlphaGo(MAC OS)
  12. gentoo中文文档
  13. moodle 页面联动效果
  14. 计算机发展的第四阶段为中小规模集成电路,第三代中小规模集成电路计算机.ppt...
  15. excel2007不显示文件名
  16. leetcode——control reaches end of non-void function
  17. ASCII码对应表chr(9)、chr(10)、chr(13)、chr(34)、chr(39)、chr(46)
  18. html中鼠标移动在标签上出现小手形状
  19. C语言 计算学生各科成绩平均分的总和
  20. ESB 企业服务总线基本内容概述

热门文章

  1. js轮播图片小圆点变化_JavaScript banner轮播 左右切换 圆点点击切换
  2. 不再枯燥!数据可视化是如何给报表“注入灵魂”的
  3. NXP——图形驱动开发实习生
  4. Web前端 HTML基础
  5. RK3399开启开机logo
  6. python写推箱子_python写的推箱子小游戏
  7. php 写的日历模板(未连接数据库)
  8. 校园创业项目金点子,学校创业做什么好?
  9. android spinner 简书,Spinner添加数据
  10. day22Java-Reflect-反射