GRE
GRE VPN简介
General Routing Encapsulation,简称GRE,是一种三层VPN封装技术。GRE可以对某些网络层协议(如IPX、Apple Talk、IP等)的报文进行封装,使封装后的报文能够在另一种网络中(如IPv4)传输,从而解决了跨越异种网络的报文传输问题。异种报文传输的通道称为Tunnel(隧道)。
GRE报文处理过程
PC_A通过GRE隧道访问PC_B时,FW_A和FW_B上的报文转发过程如下:
1、PC_A访问PC_B的原始报文进入FW_A后,首先匹配路由表。
2、根据路由查找结果,FW_A将报文送到Tunnel接口进行GRE封装,增加GRE头,外层加新IP头。
3、FW_A根据GRE报文的新IP头的目的地址(2.2.2.2),再次查找路由表。
4、FW_A根据路由查找结果转发报文。
5、FW_B收到GRE报文后,首先判断这个报文是不是GRE报文。封装后的GRE报文会有个新的IP头,这个新的IP头中有个Protocol字段,字段中标识了内层协议类型,如果Protocol字段值是47,就表示这个报文是GRE报文。如果是GRE报文,FW_B则将该报文送到Tunnel接口解封装,去掉新的IP头、GRE头,恢复为原始报文;如果不是,则报文按照普通报文进行处理。
6、FW_B根据原始报文的目的地址再次查找路由表,然后根据路由匹配结果转发报文。
总结:
FW_A的转发路径:匹配路由表 - - > Tunnel接口封装 - - > 再次匹配路由表 - - > 转发数据。
FW_B收到报文转发路径:检查报文协议 - - > GRE 报文 - - > Tunnel接口解封装 - - > 匹配路由 - - > 转发报文
GRE安全策略
PC_A发出的原始报文进入Tunnel(假定Tunnel接口加入GRE区域)接口这个过程中,报文经过的安全域间是Trust—>GRE
;原始报文被GRE封装后,FW_A在转发这个报文时,报文经过的安全域间是Local—>Untrust
。华为防火墙默认发出GRE报文不需要安全策略。
当报文到达FW_B时,FW_B会进行解封装。在此过程中,报文经过的安全域间是Untrust—>Local
;GRE报文被解封装后,FW_B在转发原始报文时,报文经过的安全域间是GRE—>Trust
;
实验
需求:
配置GRE VPN使得pc1和pc2能够互访。
思路:
1、接口配置ip并加入安全域,同时路由可达
2. 配置路由,将传输流量引入gre隧道
3. 配置tunnel接口封装参数
4、放开相应的域间策略规则