一、GRE 简介
GRE(Generic Routing Encapsulation,通用路由封装协议)GRE是思科公司开发的一个隧道协议,对内网IP进行封装,然后通过外网IP在隧道上传输,GRE采用了Tunnel(隧道)技术,是VPN的第三层隧道协议。
如下图,当要传输VPN数据时,先把内网地址进行封装,然后通过外网地址在隧道上传输,这个隧道是虚拟的,也有IP,但就像两台路由器直连一样
GRE的封装:
(内网IP、TCP、Data是被封装的数据,公网IP和GRE头部来传输封装的数据)
二、GRE 的特点
1. GRE没有任何的安全机制,如加密等
2. GRE支持IP或非IP协议,OSPF等,可以使得两个内网之间在互联网上互相传输路由
3. GRE支持单、组、广播,如hello报文等
4. GRE是基于路由的VPN
5. GRE支持多条隧道的部署
三、GRE 的工作过程
1. 创建GRE接口(即tunnel口)
2. 依靠路由指引DATA经过GRE tunnel
3. GRE tunnel封装后,再次查找路由进行转发
扩展:为什么要使用GRE over Ipsec?
1. GRE VPN可以传递内网路由但安全性差
2. Ipsec VPN安全性很高但不能传递内网路由
3. 将两者结合起来用,形成GRE over Ipsec VPN,安全性高又能够互相传递路由
GRE over Ipsec VPN是先把数据先用GRE封装起来,然后再用Ipsec封装传输,安全性较高
还有一种是Ipsec over GRE VPN是先把数据用Ipsec封装然后用GRE封装传输,安全性比 GRE over Ipsec VPN差得多,因为GRE封装的数据是明文的可以推算出来,因此在实际中一般使用GRE over Ipsec VPN而不用Ipsec over GRE VPN