GRE(Generic Routing Encapsulation) 通用路由封装是对某些网络层协议(如: IP , IPX , Apple Talk等)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。
GRE可以实现多协议的本地网通过单一协议的骨干网传输的服务,扩大了网络的工作范围,包括哪些路由网关有限的协议,如IPX包最多可以转发16次(即经过16个路由器),而在一个Tunnel连接中看上去只经过一个路由器将一些不能连续的子网连接起来。
GRE协议实际上是一种承载协议,它提供了将一种协议的报文封装在另一种协议报文中的机制,使报文能够在异种网络中传输,异种报文传输的通道称为tunnel。
IP协议既可以作为传递协议,也可以作为负载协议,在TCP/IP网络中,IP协议一般是作为传递协议,封装和传输其他协议的报文。
Tunnel是一个虚拟的点对点的连接,它提供了一条通路使封装的数据报能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封。
在最简单的情况下,系统接收到一个需要封装和路由的数据报,称之为负载报文。这个有效报文首先被GRE封装,称之为GRE报文,这个报文接着被封装在IP协议中,然后完全由IP 层负责此报文的转发。