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 ...
随机推荐
- 浅谈log4j-4-不同目的地(转)
public class DifferentAppender { private static Logger logger=Logger.getLogger(DifferentAppender.cla ...
- 【UOJ#22】【UR#1】外星人
2044年,Picks建成了人类第一台基于量子理论的银河系信息传递机. Picks游遍了宇宙,雇用了 n 个外星人来帮他作为信息传递机的中转站.我们将外星人依次编号为 1 到 n,其中 i 号外星人有 ...
- 【mybatis源码学习】mybtias知识点
Mybatis技术内幕系列博客,从原理和源码角度,介绍了其内部实现细节,无论是写的好与不好,我确实是用心写了,由于并不是介绍如何使用Mybatis的文章,所以,一些参数使用细节略掉了,我们的目标是介绍 ...
- prime docker-compose 环境运行试用
prime 是一款基于graphql的开源cms,功能点很不错,但是出来不久,还是有好多bug的 官方暂时没有提供docker 的运行方式,为了方便测试,搞了以及docker-compose 测试的 ...
- JavaScript编码风格
最近在看前端大牛Nicbolas C.Zakas的<编写可维护的JavaScript代码>一书.觉得里面的很多知识点都写的很好,所以,就写篇博文,总结一下吧!编码规范对于程序设计来说是很重 ...
- npm install --save 和 --save-dev
最近在写Node程序的时候,突然对 npm install 的-save和-save-dev 这两个参数的使用比较混乱.其实博主在这之前对这两个参数的理解也是模糊的,各种查资料和实践后对它们之间的异同 ...
- 编写第一个python selenium-webdriver程序(二)
上节介绍了如何搭建selenium 系统环境,那么本节来讲一下如何开始编写第一个自动化测试脚本. Selenium2.x 将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里 ...
- 洛谷 4383 [八省联考2018]林克卡特树lct——树形DP+带权二分
题目:https://www.luogu.org/problemnew/show/P4383 关于带权二分:https://www.cnblogs.com/flashhu/p/9480669.html ...
- JS IE 打开本地exe程序
例: try{ //新建一个ActiveXObject对象 var exe = new ActiveXObject("wscript.shell"); var exePath = ...
- Jmeter使用流程及简单分析监控
本文摘自:一颗糖果 https://www.cnblogs.com/linglingyuese/archive/2013/03/04/linglingyuese-one.html 1.下载Jmet ...