GRE over IPsec保障单位安全
2018-11-07
IPsec协议作为目前最为常见的VPN隧道协议,其强大的加密与验证功能保障了私网数据在公网传递时通信的安全。由于IPsec VPN隧道不支持对多播和广播数据包的传递,需要接合GRE隧道技术,GRE隧道将多播和广播数据包封装成单播包,再由IPsec技术提供数据传输的加密和验证。
GRE over IPsec VPN配置应用
如图1所示,使用GRE over IPsec VPN技术实现单位总部局域网中主机c1和分部局域网中主机c2间的通信,通过路由器模拟在Internet中实现数据传输的安全性。这里使用锐捷RSR20-18路由器,系统版本为 10.3(5b6)p2。(为 方 便实验验证,主机c1和c2分别在路由器上用loopback0口来代替做测试。)
1.路由器RA配置
图1 GRE over IPsec案例应用
//只要建了tunnel隧道,默认封装模式就是GRE,隧道源和目的地址分别是两端路由器物理口的公网IP地址。
RA(config)#ip route 0.0.0.0 0.0.0.0 tunnel 0//发往目标主机的路由发到tunnel口就是对数据包进行GRE封装,GRE封装后生成的新IP包的报头IP地址就是tunnel隧道内定义的源地址和目的地址。
//定义IKE的第一阶段,这里采用预共享密钥的认证方式,预共享密码为zt,其余ISAKMP安全策略为默认。
//定义IKE的第二阶段,定义转换集test保护传输数据流。由于IPsec中ESP方式加密后生成的新IP报头地址和GRE封装后的报头IP地址都是隧道的源地址和目的地址,因此这里选择传输模式,可以省略掉GRE报头中的IP地址,相较tunnel模式而言,每个数据包可以节省20字节的IP头部信息,提升网络传输效率。要的区别之一就在于感兴趣流量定义不同,GRE over IPSec VPN中顺序:先路由(由于下一跳是tunnel口,所以就要先做GRE封装);感兴趣流量再撞击map,这时GRE封装后的新IP报头是公网地址,报头中目标IP变 为 200.1.1.2,源 IP为200.1.1.1,所以感兴趣ACL中源地址和目的地址要用公网端口IP地址。此外,这里感兴趣流量ACL定义时如果使用access-list 100 permit gre host 200.1.1.1 host 200.1.1.2,只允许放行gre流量,不使用IP流量,会更严谨些。
2.路由器RB配置
//定义IKE的第一阶段,这里采用预共享密钥的认证方式,预共享密码为zt,其余ISAKMP安全策略为默认。
RB(config)#crypto map VPN 10 ipsecisakmp //定义加密图VPN
图2 GRE over IPSec数据报文封装结构
在路由器RA上使用ping命令模拟主机c1到c2的通信测试,发现已互通,但刚开始数据传输仍然掉包,说明做了IPSec,前面数据包先触发协商把隧道打通。同时可以看见GRE和数据部分都用ESP方式加密了,如图2所示,这就是GRE over IPSec VPN。
如果不使用静态路由,而使用一些IGP动态路由协议,利用其定期发送的hello包来触发打通隧道,那么上面ping包测试时前面就不会再有丢包出现。这里假设使用OSPF路由协议替代上面静态路由,实现私网路由的学习。
在RA上再使用ping命令进行测试,发现数据包全部ping通,由于OSPF中以太网口每10s发送hello包,这时已不需再用一些数据包去触发打通IPSec隧道。此外,这时由于经过tunnel口需要进行GRE的封装,GRE已把OSPF组播报文封装成单播报文进行发送,报头中源地址和目的地址分别为双方路由器的物理口IP地址。
RA#ping
结语
GRE over IPsec VPN技术先做GRE隧道封装,后进行数据加密,把感兴趣流访问列表中的源和目的IP地址定义为GRE隧道的源和目的IP,把加密图应用在路由器的公网物理出口上,这样就可以保证所有进入隧道的数据包都会被加密传输,在实际场景中有着广泛应用。