一、
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协议的更多相关文章

  1. GRE协议学习与练习

    通用路由封装(英语:Generic Routing Encapsulation,缩写为GRE),一种隧道协议,可以在虚拟点对点链路中封装多种网络层协议.由思科系统开发 以下是GRE协议的简单练习 网络 ...

  2. GRE 协议简介

    1. 协议简介    gre(generic routing encapsulation,通用路由封装)协议是对某些网络层协议(如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络 ...

  3. GRE 协议 - 和 ISP 用的协议不一样怎么办

    GRE 出现的背景: 随着网络(公司)规模的增大,越来越多的公司需要在跨区域之间建设自己的分公司.但随之也就出现了这样的问题,考虑这样一个场景.公司 A 在北京和上海间开设了两家公司,由于业务的需要, ...

  4. 华为AR-111S路由器GRE协议设置

    一.GRE的定义: gre(generic routing encapsulation,通用路由封装)协议是对某些网络层协议(如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络层 ...

  5. [GRE] GRE协议介绍

    写的一般,主要看下图就行了. https://blog.csdn.net/Mary19920410/article/details/72303641 前半部分介绍还不错,后半部分没看. http:// ...

  6. 通用路由封装协议——GRE

    一.GRE简介 通用路由封装协议GRE(Generic Routing Encapsulation)可以对某些网络层协议(如IPX.ATM.IPv6.AppleTalk等)的数据报文进行封装,使这些被 ...

  7. GRE隧道协议

    1. GRE协议简介 GRE(General Routing Encapsulation ,通用路由封装)是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的报文能够在另一网络层协议 ...

  8. Neutron 理解 (3): Open vSwitch + GRE/VxLAN 组网 [Netruon Open vSwitch + GRE/VxLAN Virutal Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  9. GRE与Vxlan网络详解

    1. GRE 1.1 概念 GRE全称是Generic Routing Encapsulation,是一种协议封装的格式,具体格式内容见:https://tools.ietf.org/html/rfc ...

随机推荐

  1. 芯灵思SINA33开发板怎样创建编译环境

    首先在Vmware安装好Centos,在此不再重复步骤,大家可以看以前的帖子有详细的步骤.本节主要介绍如何在Centos 搭建编译环境 Step 1 更新 CentOS 源 CentOS 由于很追求稳 ...

  2. CH4907 作诗

    题意 4907 作诗 0x49「数据结构进阶」练习 描述 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作诗.由于时间紧迫,SHY作完诗之后还要虐OI,于是SHY ...

  3. test20190331

    贪吃蛇(snaker.cpp/.in.out 1S 512M) [题目描述] C 最近爱上了玩贪吃蛇,想要自己制作一款贪吃蛇游戏,但是她太弱了,只会写一个一维的程序. 游戏界面可以看做一条长为 n 的 ...

  4. MySQL DataType--数值类型

    =========================================================MySQL常见的整数类型有:TINYINT: 占用8位空间SMALLINT: 占用16 ...

  5. Gravitee.io 架构

    Gravitee.io 官方文档提供了几张架构图,通过图我们可以有一个整体的认识. 全局架构 平台架构 参考资料 https://docs.gravitee.io/apim_overview_arch ...

  6. Unity 3D UI Essentials 学习

    Chapter 1: Looking Back,LookingForward Chapter 2: Building Layouts Chapter 3: Control, Control, You ...

  7. h5新增内容

    1.新的input type值 email url search tel color range number date month week time datetime datetime-local ...

  8. Python中列表(list)、字典(dict)排序的程序

    Python3 中的排序,在 Sorting HOW TO 中已经讲得很清楚了.来个实际的例子,对下面的这个 list 依据创建时间排序: pages = [{'title': '十年学会程序设计', ...

  9. python3+Flask 链接MySQL 时,提示“No module named MYSQLdb”

    python3+flask 链接Mysql时提示“No module named MYSQLdb” 解决: pip install mysqlclient

  10. Linux下使用Quagga(Zebra)搭建路由器记录(转)

    写在前面 从22号中午开始琢磨zebra/quagga的用法,一直到晚上11点多都没有什么头绪.各种Google,百度,几近崩溃.由于网上关于zebra/quagga的配置方法都是在真实的若干台电脑上 ...