GRE隧道技术简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GRE隧道技术简介
隧道技术概述:
一种技术(协议)或者策略的两个或多个子网穿过另一种技术(协议)或者策略的网络实现互联,称之为overlay topology,这一技术是电信技术的永恒主题之一。
电信技术在发展,多种网络技术并存,一种技术的网络孤岛可能需要穿过另一种技术的网络实现互联,这种情况如果发生在高层协议的PDU封装于低层协议PDU 中时通常称之为复用,特别地三层PDU穿过二层网络地技术称为租用链路或
虚电路;而如果穿越发生在一种协议PDU封装在同一层协议的PDU中,或者封装在高层协议的PDU中时,人们通常称之为隧道。
隧道提供了一种某一特定网络技术的PDU穿过不具备该技术转发能力的网络
的手段,如组播数据包穿过不支持组播的网络;另一种情况是有时因为管理策略的原因,一个管理者(策略)的子网不能通过和另一个管理者(策略)的网络互联
而连接,而是要穿过另一个管理者(策略)的网络实现连接,这就是所谓的 VPN (Virtual Private Networks),不管是L2 VPN还是L3 VPN都需要利用隧道技术实现。因此隧道某种意义上可以概括为穿越不同的网络的技术,不同既可以是技术方面的,也可以是管理策略方面的。
隧道可以作为一个虚拟接口来实现。隧道接口并不指定特定的“乘客”或“传输”协议
连接,而是一种结构,可以实现任何标准点到点封装的服务。由于隧道是点到点连接,因此对每个连接必须配置一个单独的隧道。
GRE是一种应用较为广泛的一种网络层协议PDU封装于任一种网络层协议PDU中的技术,经常被用来构造GRE隧道穿越各种三层网络,并得到了大多数电
信设备厂商的支持。
GRE(通用路由协议封装)是由Cisco和Net-smiths等公司于1994年提交给IETF的,标号为RFC1701和RFC1702。目前有多数厂商的网络设备均支持GRE
隧道协议。GRE 规定了如何用一种网络协议去封装另一种网络协议的方法。GRE
的隧道由两端的源IP地址和目的IP地址来定义,允许用户使用IP包封装IP、IPX、AppleTalk包,并支持全部的路由协议(如RIP2、OSPF等)。通过GRE,用户可
以利用公共IP网络连接IPX网络、AppleTalk网络,还可以使用保留地址进行网
络互连,或者对公网隐藏企业网的IP地址。
封装后一个GRE数据包的格式如下:
a ---------------------------------
| |
| Delivery Header |
| |
---------------------------------
| |
| GRE Header |
| |
---------------------------------
| |
| Payload packet |
| |
---------------------------------
The GRE packet header has the form:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|C|R|K|S|s|Recur| Flags | Ver | Protocol Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum (optional) | Offset (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Routing (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ----GRE在包头中包含了协议类型,这用于标明乘客协议的类型;校验和包括
了GRE的包头和完整的乘客协议与数据;密钥用于接收端验证接收的数据;序列
号用于接收端数据包的排序和差错控制;路由用于本数据包的路由。
----GRE只提供了数据包的封装,它并没有加密功能来防止网络侦听和攻击。
所以在实际环境中它常和IPsec在一起使用,由IPsec提供用户数据的加密,从而
给用户提供更好的安全性。
GRE协议的主要用途有两个:企业内部协议封装和私有地址封装。在国内,
由于企业网几乎全部采用的是TCP/IP协议,因此在中国建立隧道时没有对企业内
部协议封装的市场需求。企业使用GRE的唯一理由应该是对内部地址的封装。当
运营商向多个用户提供这种方式的VPN业务时会存在地址冲突的可能性。
路由封装(GRE)最早是由Cisco提出的,而目前它已经成为了一种标准,被定
义在RFC 1701, RFC 1702, 以及RFC 2784中。简单来说,GRE就是一种隧道协议,用来从一个网络向另一个网络传输数据包。
如果你觉得它和虚拟专用网(VPN)有些类似,那只是因为:从技术上讲,GRE隧道是某一类型的VPN,但是并不是一个安全隧道方式。不过你也可以使用
某种加密协议对GRE隧道进行加密,比如VPN网络中常用的IPSec协议。
实际上,点到点隧道协议(PPTP)就是使用了GRE来创建VPN隧道。比如,如果你要创建Microsoft VPN隧道,默认情况下会使用PPTP,这时就会用到GRE。