网络技术
H3C网络技术
H3C 设备CLI(命令行)管理
H3C基础配置知识
H3C 设备型号概述
H3C网络端口基础信息与配置
H3C网络设备概述
HCL模拟器使用简介
H3C WX2540H 本地portal认证+本地用户认证实现web认证
网络的基本概念与定义
VLAN简介与配置
生成树配置
STP简介与配置
RSTP简介
MSTP基本概念
交换机FTP和TFTP操作
配置文件与升级
网络设备登录管理方式
网络设备文件系统操作
H3C MSR路由器出口双线负载均衡
策略路由配置
以太网链路聚合
DHCP中继
防火墙简单配置实验
华为_HCIP
认识设备-硬件架构与逻辑平面
路由基础-HCIP
OSPF路由基础概述
Router LSA详解
OSPF-Network LSA(二类LSA)与区域内路由计算
OSPF-区域间路由计算
计算机网络-OSPF防环机制
计算机网络-RIP动态路由协议简介
OSPF区域外部路由计算
OSPF特殊区域-Stub区域
计算机网络-NSSA区域与Totally NSSA区域
OSPF路由汇总
OSPF其它特性
IS-IS路由协议基础概念
IS-IS基础概念二
IS-IS邻接关系建立
IS-IS链路状态数据库同步
IS-IS路由计算
IPv6基础概念
IPv6缩写规范与地址分类
ICMPv6基础知识
ICMPv6之NDP协议
计算机网络-IPv6地址配置
DHCPv6基础概念
DHCPv6配置
IPv6路由配置
路由策略与路由工具
计算机网络-Filter-Policy过滤策略
Route-Policy路由策略
策略路由概念与应用
MQC策略简介与配置
流量过滤策略
BGP的背景与概述
BGP基本概念
BGP报文类型简介
BGP状态机制与对等体表项
BGP路由生成与路由表
BGP路由通告原则
BGP基础实验配置
BGP路由优选概述
BGP路由优选原则一Preferred-Value
BGP路由优选原则二-本地优先级
BGP路由优选原则三-路由类型
BGP路由优选原则四-AS_Path属性
BGP路由优选原则五-Origin属性优选
BGP路由优选原则六-优选MED属性值最小的路由
BGP路由优选原则七-EBGP优于IBGP
BGP路由优选原则八-优选IGP Cost值小的路由
BGP路由负载分担
BGP路由反射器与Cluster list选路原则
BGP路由优选原则九-优选Router ID小的设备通告的路由
计算机网络-IP组播基础
组播地址与组播网络组成
组播数据转发原理与RPF
组播分发树与组播协议
IGMP协议简介
IGMPv1工作原理
IGMPv2工作原理简介
IGMPv3的工作原理
IGMP Snooping特性
计算机网络-PIM协议基础概念
PIM-DM密集模式工作原理
基于PIM-DM+IGMP的组播实验配置
PIM-SM(ASM)基础
PIM-SM(SSM)基本原理
PIM-SM组播实验
BFD检测机制
BFD配置实验
VRRP基础概念
VRRP工作原理与选举过程
VRRP主备切换与主备回切
VRRP基础实验一
RSTP基础概念
RSTP工作原理与P/A机制
MSTP概述
MSTP基础概念
MSTP工作原理概述
MSTP基础实验一(单域多实例)
计算机网络-VPN虚拟专用网络概述
计算机网络-GRE(通用路由封装协议)简介
GRE-动态路由协议实验
IPSec VPN基本概念
IPSec VPN工作原理
IPSec VPN基础实验一(主模式)
GRE Over IPSec实验
计算机网络-L2TP VPN基础概念与原理
L2TP VPN基础实验配置
L2TP Over IPSec基础实验
SSH理论基础
VRF基本概念
MPLS基础概念
MPLS转发原理
MPLS静态标签实验
计算机网络-LDP标签分发协议
LDP工作原理-LDP会话建立
LDP标签发布与管理
LDP工作过程详解
VPN实例应用于交换机带外管理接口
H3C V7防火墙IPSECVPN配置(主模式配置)
网络设备拨号设置
网络地址分类与子网划分
防火墙区域以及安全策略配置(命令行版)
H3C V7 IPSEC_VPN配置(野蛮模式配置)
华为_HCIA
路由基础
以太网交换基础
VLAN的原理与配置
VLAN间通信
STP生成树简介
华为VRP系统简介
NAT网络地址转换
ACL访问控制列表
AAA的原理与配置
DHCP配置
链路聚合原理与配置
PPP与PPPoE协议
OSPF路由基础
无线通信基础原理
无线组网基本概念
无线网络配置原理与步骤
典型无线组网实验配置
网络设备防火墙是什么?
防火墙工作原理与安全策略
华为VRP系统基础命令配置
本文档使用 MrDoc 发布
-
+
首页
计算机网络-GRE(通用路由封装协议)简介
昨天我们学习了VPN的基本概念,虚拟专用网络在当前企业总部与分支间广泛使用。常用的划分方法为基于协议层次有GRE VPN、IPSec VPN、L2TP VPN、PPTP VPN、SSL VPN等。其实我有考虑该怎么讲,因为在IP阶段好像虚拟专用网络讲得不深,在IE的阶段会更加深入,后面想想还是算了,该怎样就怎样吧。 ## 一、GRE通用路由封装协议概述 由于Internet的发展,Internet网有了足够的带宽和覆盖,通过Internet建立分支-总部内网通信的可行性越来越高,**GRE(Generic Routing Encapsulation,通用路由封装协议)** 就是在这种背景下被提出的。通过GRE隧道,分支和总部之间可以基于Internet建立企业网络。  通用路由封装协议(General Routing Encapsulation,GRE)是一种**三层VPN封装技术**。GRE可以对某些网络层协议(如IPX、**IPv4、IPv6**等)的报文进行封装,使封装后的报文能够在另一种网络中(如IPv4)传输,从而解决了跨越异种网络的报文传输问题。  **GRE隧道的两端是Tunnel接口,分别对数据报文进行封装及解封装。负责发送封装后的报文的物理接口叫做隧道源接口,对端接收此报文的物理接口叫做隧道目的接口。**  GRE技术本质上是一种**隧道技术**。隧道技术类似于一座桥,可以在底层网络(比如:Internet)之上构建转发通道,用户可以自行构建隧道网络,不需要底层网络的管理者(比如:ISP)介入。隧道技术的方案很多,常见的隧道技术有:MPLS,GRE,L2TP,VXLAN等,隧道基本原理如下:  GRE隧道能够承载IPv4/IPv6的**单播、组播、广播报文**,GRE报文格式如下:  - C:校验和验证位。如果该位置1,表示GRE头插入了校验和(Checksum)字段;该位为0表示GRE头不包含校验和字段。 - K:关键字位。如果该位置1,表示GRE头插入了关键字(Key)字段;该位为0表示GRE头不包含关键字字段。 - Recursion:用来表示GRE报文被封装的层数。完成一次GRE封装后将该字段加1。如果封装层数大于3,则丢弃该报文。该字段的作用是防止报文被无限次的封装。 - Flags:预留字段。当前必须设为0。 - Version:版本字段,必须置为0。Version为1是使用在相关标准的PPTP中。 - Protocol Type:乘客协议的协议类型。 - Checksum:对GRE头及其负载的校验和字段。- - Key:关键字字段,隧道接收端用于对收到的报文进行验证。 因为目前实现的GRE头不包含源路由字段,所以Bit 1、Bit 3和Bit 4都置为0。 简单说GRE就是利用隧道技术在两端建立tunnel接口,通过封装IPV4、IPV6报文使得总部到分支的私有网络报文传输到对端,其中涉及到报文的封装与接封装,隧道模式等。 ## 二、GRE工作原理 ### 2.1 工作原理 GRE构成要素分为3个部分:**乘客协议、封装协议和运输协议**。 - 乘客协议是指用户在传输数据时所使用的原始网络协议(IPv4、IPX、IPv6等)。 - 封装协议的作用就是用来“包装”乘客协议对应的报文,使原始报文能够在新的网络中传输,如GRE。 - 运输协议是指被封装以后的报文在新网络中传输时所使用的网络协议如:IP协议。  上图中报文的封装过程: 1. RTA连接企业分部的接口收到IP数据报文后,首先交由IP协议处理。 2. IP协议检查报文头中目的地址来确定如何转发此报文。若报文的目的地址要经过GRE隧道才能到达,则IP协议将此报文发给相应的Tunnel接口。 3. Tunnel接口收到此报文后为其封装GRE报文头,然后再交由IP协议处理。 4. IP协议再为GRE报文封装新的IP报文头(源地址为隧道源接口IP,目的地址为隧道目的接口IP),然后根据封装后的IP报文的目的地址及路由表对报文进行转发,从相应的连接Internet的物理接口(隧道源接口)发送出去。 解封装过程与封装过程相反,具体如下: 1. RTB从连接Internet的物理接口收到IP报文后,检查其目的地址。如果目的地址是RTB,且IP报文头中的协议号为47(表示封装的报文为GRE报文),则RTB剥掉此报文的IP报文头,交给GRE协议处理。 2. GRE协议进行校验和关键字识别后,剥掉GRE报文头,再交由IP协议处理。 3. IP协议将此数据报文转发到企业总部。 ### 2.2 GRE Keepalive检测 由于GRE协议并不具备检测链路状态的功能,如果对端接口不可达,隧道并不能及时关闭该Tunnel连接,这样会造成源端会不断的向对端转发数据,而对端却因隧道不通接收不到报文,由此就会形成流量中断。 GRE的Keepalive检测功能可以检测隧道状态,即检测隧道对端是否可达。 **Keepalive超时时间=发送周期(默认5 s)*重试次数(默认3次)**  前面我们讲过需要创建一个tunnel隧道接口用于GRE,这个接口类似于环回接口lookback接口,没有检测功能,不会主动关闭接口,因此需要一个机制来实现当GRE两端连接失败时断开GRE隧道。 Keepalive检测功能的实现过程如下: - 当GRE隧道的源端使能Keepalive检测功能后,就创建一个定时器,周期地发送Keepalive探测报文,同时通过计数器进行不可达计数。每发送一个探测报文,不可达计数加1。 - 对端每收到一个探测报文,就给源端发送一个回应报文。 - 如果源端的计数器值未达到预先设置的值就收到回应报文,就表明对端可达。如果源端的计数器值到达预先设置的值——重试次数(Retry Times)时,还没收到回送报文,就认为对端不可达。此时,源端将关闭隧道连接。但是源端口仍会继续发送Keepalive报文,若对端Up,则源端口也会Up,建立隧道链接。 ### 2.3 GRE隧道安全威胁 GRE隧道的主要作用是将数据在分支-总部之间传递,数据并不加密,有被篡改的风险。GRE隧道建立也有一定风险,通过伪造IP地址,可以使得非法设备与合法设备之间建立GRE隧道。  #### 2.3.1 GRE数据校验和验证 校验和验证是指对封装的报文进行端到端校验。 若GRE报文头中的C位标识位置1,则校验和有效。发送方将根据GRE头及Payload信息计算校验和,并将包含校验和的报文发送给对端。接收方对接收到的报文计算校验和,并与报文中的校验和比较,如果一致则对报文进一步处理,否则丢弃。  数据校验是为了确保数据是完整的,没有经过篡改的,需要开启数据校验将C置位1。 #### 2.3.2 GRE识别关键字 为了防止非法路由器连接GRE或者伪造IP进行连接,可以开启密码认证。 识别关键字(Key)验证是指对Tunnel接口进行校验。通过这种**弱安全机制**,可以防止错误识别、接收其它地方来的报文。若GRE报文头中的K位为1,则在GRE头中插入一个四字节长关键字字段,收发双方将进行识别关键字的验证。  通过密码来验证GRE对端的建立,置位K,然后设置一个Key进行验证。 虽然通过上面的计算可以实现合法建立GRE隧道以及数据的完整性,但是因为GRE本身没有进行加密因此GRE报文能够清晰地查看到报文的信息,存在不安全性。因此一般情况下GRE会结合其它安全机制来搭配使用。  总结:GRE本质是一种隧道技术,利用隧道在分支和总部间建立隧道接口,结合数据验证和key对数据完整性、合法性进行校验可以建立起一个虚拟的Tunnel通道,GRE可以用于传输单播、组播、广播报文具有其优点,但是也存在一些安全性的缺陷,简单说只要有部署了Internet能够就有可能使用GRE实现分支互联。
Chuck
2024年11月22日 15:45
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码