GRE over IPsec

GRE over IPsec

概述

GRE,Generic Routing Encapsulation,通用路由封装,GRE 采用 Tunnel 技术,是 v*n 三层隧道协议,用于对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。

GRE 技术是一种明文 Tunnel 技术,而 IPsec 是一种加密隧道技术,为什么要将两种隧道技术结合起来呢?
GRE:能支持单播、组播、广播,但是不安全;
v*n:能实现安全加密,但是不能支持组播和广播流。
IPsec 在建立邻居时,需要使用指定的路由器 ping 另外一个路由器,才可以匹配到 ACL 并触发进程,然后加密。

GRE over IPsec,先建立 GRE 隧道保证连通性,然后再配置 IPsec 保证流量的安全。

部署

GRE over IPsec
步骤一,部署 GRE 保证 R2 R4 能够基于 tunnel 通信
R2:
interface tunnel 0
tunnel source 100.1.23.2
tunnel destination 100.1.34.4
ip address 24.1.1.2 255.255.255.0 //隧道虚拟地址

R4:
interface tunnel 0
tunnel source 100.1.34.4
tunnel destination 100.1.23.2
ip address 24.1.1.4 255.255.255.0

步骤二,部署 OSPF,实现私网内部通信
OSPF 是链路状态路由协议,链路状态是通过组播的方式发送给同区域的路由器。
R1R2、R2R4(不涉及R3,在 tunnel 中部署)、R4R5之间部署 OSPF。
show ip route ospf //看到路由条目证明隧道允许组播流通过
GRE over IPsec
步骤三,部署 IPsec 虚拟专用网络,实现隧道加密
R2:
crypto isakmp policy 1
encryption 3des
authentication pre-share
hash sha
group 2
crypto isakmp key 0 cisco address 100.1.34.4
crypto ipsec transform-set gretrans esp-3des esp-sha-hmac
mode transport
//传输模式,在没有做 IPsec 时已经有两个头部地址,部署 IPsec 后会添加一个相同的头部,这里调整为传输模式,将不添加新的头部

R4:
crypto isakmp policy 1
encryption 3des
authentication pre-share
hash sha
group 2
crypto isakmp key 0 cisco address 100.1.23.3
crypto ipsec transform-set gretrans esp-3des esp-sha-hmac
mode transport

//之前的做法是还要另外部署 ACL 和 map 指定流量和对方,这里采用新的方式,其实质是,在 GRE 实现通信的基础上,将流量加密即可:
R2/4:
crypto ipsec profile grepro // profile 是一个加密脚本,和 map 类似,但不需要配置 ACL
set transform-set gretrans
interface tunnel 0
tunnel protection ipsec profile grepro

IPsec 部署完成,再次抓包,将看不到 GRE 信息,被嵌套在 IPsec 里面。