General Routing Encapsulation,简称GRE,是一种三层V**封装技术。GRE可以对某些网络层协议(如IPX、Apple Talk、IP等)的报文进行封装,使封装后的报文能够在另一种网络中(如IPv4)传输,从而解决了跨越异种网络的报文传输问题。异种报文传输的通道称为Tunnel(隧道)。
图:GRE报文格式
其中:
GRE能够承载的乘客协议包括IPv4、IPv6和MPLS协议,GRE所使用的运输协议是IPv4协议。
GRE首部各字段解释如下:
字段 | 长度 | 描述 |
---|---|---|
C | 1 bit | 校验和验证位。如果该位置1,表示GRE头插入了校验和(Checksum)字段;该位为0表示GRE头不包含校验和字段。 |
K | 1 bit | 关键字位。如果该位置1,表示GRE头插入了关键字(Key)字段;该位为0表示GRE头不包含关键字字段。 |
Recursion | 3 bits | 用来表示GRE报文被封装的层数。完成一次GRE封装后将该字段加1。如果封装层数大于3,则丢弃该报文。该字段的作用是防止报文被无限次的封装。 |
Flags | 5 bits | 预留字段。当前必须设为0。 |
Version | 3 bits | 版本字段,必须置为0。Version为1是使用在RFC2637的PPTP中。 |
Protocol Type | 16 bits | 乘客协议的协议类型。 |
Checksum | 16 bits | 对GRE头及其负载的校验和字段。 |
Key | 31 bits | 关键字字段,隧道接收端用于对收到的报文进行验证。 |
因为VRP中的GRE头不包含源路由字段,因此Bit 1、Bit 3和Bit 4都置为0。
图:GRE报文抓包示例
隧道接口(Tunnel接口)是为实现报文的封装而提供的一种点对点类型的虚拟接口,与Loopback接口类似,都是一种逻辑接口。
隧道接口必须配置的四项:封装类型、隧道接口地址、源地址、目的地址。
优点:
缺点:–薄弱的安全性
IPSec缺点:
IPSec的优点 —较强的安全性:
GRE over IPSec可利用GRE和IPSec的优势,通过GRE将组播、广播和非IP报文封装成普通的IP报文,通过IPSec为封装后的IP报文提供安全地通信,进而可以提供在总部和分支之间安全地传送广播、组播的业务,例如视频会议或动态路由协议消息等。
当网关之间采用GRE over IPSec连接时,先进行GRE封装,再进行IPSec封装。GRE over IPSec使用的封装模式为可以是隧道模式也可以是传输模式。因为隧道模式跟传输模式相比增加了IPSec头,导致报文长度更长,更容易导致分片,所以推荐采用传输模式GRE over IPSec。
图:GRE over IPSec报文封装和隧道协商过程
IPSec封装过程中增加的IP头即源地址为IPSec网关应用IPSec安全策略的接口地址,目的地址即IPSec对等体中应用IPSec安全策略的接口地址。
IPSec需要保护的数据流为从GRE起点到GRE终点的数据流。GRE封装过程中增加的IP头即源地址为GRE隧道的源端地址,目的地址为GRE隧道的目的端地址。
(1) 传输模式 -------建议采用
(2) 隧道模式
FW1和FW2之间建立GRE over IPSec隧道,使PC1网络好PC2网络用户可通过隧道互相访问。
图:GRE Over IPSec实验拓扑图
第一步:完成接口基本配置。
第二步:分别创建GRE隧道接口,并配置 GRE 隧道接口的 IP 地址、源地址和目的地址。
FW1:
interface Tunnel0
ip address 172.16.1.1 255.255.255.0
tunnel-protocol gre
source 202.100.1.10
destination 202.100.1.11
FW2
interface Tunnel0
ip address 172.16.1.2 255.255.255.0
tunnel-protocol gre
source 202.100.1.11
destination 202.100.1.10
第三步:配置静态路由,将出接口指定为 GRE 隧道接口,将流量引入到隧道中。
注意:也可以动态路由方式
FW1:
ip route-static 10.1.2.0 255.255.255.0 Tunnel0
FW2
ip route-static 10.1.1.0 255.255.255.0 Tunnel0
第四步:配置 IPSec 隧道。包括配置 IPSec 策略的基本信息、配置待加密的数据流和配置安全提议。
阶段一:
ike proposal 10
authentication-algorithm sha2-256
integrity-algorithm aes-xcbc-96 hmac-sha2-256
ike peer 10
pre-shared-key Huawei@123
ike-proposal 10
remote-address 202.100.1.11
阶段二:
acl number 3000
rule 5 permit ip source 202.100.1.10 0 destination 202.100.1.11 0
注意: 保护的是GRE的隧道
ipsec proposal 10
encapsulation-mode auto
esp authentication-algorithm sha2-256
#
ipsec policy ipsec_policy 10 isakmp
security acl 3000
ike-peer 10
proposal 10
interface GigabitEthernet0/0/2 --------------在物理接口调用
ip address 202.100.1.10 255.255.255.0
ipsec policy ipsec_policy
安全策略的放行:
图:安全策略的放行
注意:关于需不需要放行gre流量的问题。 因为gre头部是在esp头部或公网IP头部中封装的,实际流量会被esp加密传输。应该是不需要放行gre的,但是在实际测试中需要放行。 在华为防火墙实际测试中,放行gre流量后IPSec SA可以正常建立,双方的主机也可以互相通信。而不放行gre的话,IPSec SA可以正常建立,但是双方的主机不能互相通信。
图:PC1与PC2的连通性测试
图:IPSec SA状态
阶段一:
ike proposal 10
authentication-algorithm sha2-256
integrity-algorithm aes-xcbc-96 hmac-sha2-256
#
ike peer 10
pre-shared-key Huawei@123
ike-proposal 10
注意:不能配置remote-address.
阶段二:
不需要感兴趣流
ipsec proposal 10
encapsulation-mode auto
esp
#
ipsec profile ipsec_pro
ike-peer 10
proposal 10
不能调用ACL
调用:
interface Tunnel0
ipsec profile ipsec_pro
放行策略:
security-policy
rule name IPSEC1
source-zone local
source-zone untrust
destination-zone local
destination-zone untrust
source-address 202.100.1.10 mask 255.255.255.255
source-address 202.100.1.11 mask 255.255.255.255
destination-address 202.100.1.10 mask 255.255.255.255
destination-address 202.100.1.11 mask 255.255.255.255
service ISAKMP
service esp
action permit
rule name IPSEC2
source-zone trust
source-zone v**
destination-zone trust
destination-zone v**
source-address 10.1.1.0 mask 255.255.255.0
source-address 10.1.2.0 mask 255.255.255.0
destination-address 10.1.1.0 mask 255.255.255.0
destination-address 10.1.2.0 mask 255.255.255.0
action permit
rule name v**_local ----------只需要放行V**-LOCAL
source-zone v**
destination-zone local
service gre
action permit
注意:当在Tunnel口调用IPSec后,可以成功建立IPSec SA,需要流量的触发。但是在防火墙的Web管理界面的IPSec监控中看不到有关IPSec的信息,只能通过命令行查看。 在配置IPSec Profile(模板)的时候:
在Tunnel口上绑定IPSec策略时,放行gre的流量的方向是,从v** --> local的方向的流量。
参考文档:华为HedEx文档
5000字学习本地广播和定向广播,非常详尽!
最新整理的Linux命令大全,收藏!
OSPF和RIP个人总结,概念+区别,易于记忆,收藏!