GRE over IPSec(基于思科设备)
GRE是一种最传统的隧道协议,其根本功能就是要实现隧道功能,通过隧道连接的两个远程网络就如同直连,GRE在两个远程网络之间模拟出直连链路,从而使网络间达到直连的效果,为此,GRE需要完成多次封装,总共有3次,换句话说,就是在GRE隧道中传输的数据包都有3个包头,因为我们只谈IP协议,所以GRE中的IP数据包是一层套一层,总共有3个IP地址。GRE在实现隧道时,需要创建虚拟直连链路,GRE实现的虚拟直连链路可以认为是隧道,隧道是模拟链路,所以隧道两端也有IP地址,但隧道需要在公网中找到起点和终点,所以隧道的源和终点分别都以公网IP地址结尾,该链路是通过GRE协议来完成的,隧道传递数据包的过程分为3步:
1.接收原始IP数据包当作乘客协议,原始IP数据包包头的IP地址为私有IP地址。
2.将原始IP数据包封装进GRE协议,GRE协议称为封装协议(Encapsulation Protocol),封装的包头IP地址为虚拟直连链路两端的IP地址。
3.将整个GRE数据包当作数据,在外层封装公网IP包头,也就是隧道的起源和终点,从而路由到隧道终点。
通过GRE通用路由封装协议来建立一个非安全的隧道去传递私网路由,而且GRE支持组播协议,所以也就支持动态路由协议。但GRE的安全性就需要IPSEC去保证了,而IPSEC可悲的是又不支持组播,除非用到其它诸如VTI的一些技术了。所以自然而然,人们就想到GRE overIPSEC的×××去安全的传递内网数据。
实验步骤
1:R1的IP和默认路由器的设置
R1#conf t
R1(config)#int f0/1
R1(config-if)#ip add 192.168.1.254 255.255.255.0
R1(config-if)#no shut
R1(config-if)#int f0/0
R1(config-if)#ip address 200.0.0.1 255.255.255.0
R1(config-if)#no shut