概述
在“实战分析IPSec安全协议AH的封装模式(1)”文章中,主要介绍IPSec技术相关的基础概念,如安全联盟、安全协议和封装模式,本期文章正式进入实战演练,通过模拟实际场景的抓包分析,来验证IPSec技术中安全协议AH在不同封装模式下呈现不同的数据包。
实战模拟验证目标
在传输模式中,AH头被插入到IP头与传输层协议头之间,保护TCP/UDP/ICMP负载;
在隧道模式下,AH头被插到原始IP头之前,另外生成一个新的报文头放到AH头之前,保护IP头和负载。
实战模拟场景组网拓扑图
R_1和R_2设备之间建立IPSec隧道,定义IPSec保护的数据流是12.12.12.1和23.23.23.1之间相互访问的流量,组网拓扑如下图所示;
实战模拟场景设备关键配置
R_1设备配置
#配置一个IPv4高级ACL,定义要保护由子网12.12.12.1/32去往23.23.23.1/32的数据流。
acl number 3001
rule permit ip source 12.12.12.1 0 destination 23.23.23.1 0
#配置到R_2所在子网的静态路由。12.12.12.2为R_1直连下一跳地址
ip route-static 23.23.23.0 30 12.12.12.2
# 创建IPsec安全提议tran2
ipsec transform-set tran2
# 配置安全协议对IP报文的封装形式为隧道模式,设备默认是隧道模式。
encapsulation-mode tunnel
# 配置采用的安全协议为AH。
protocol ah
# 配置AH协议采用的认证算法为HMAC-SHA1。
ah authentication-algorithm sha1
# 创建一条手工方式的IPsec安全策略,名称为map2,序列号为11。
ipsec policy map2 11 manual
# 指定引用的IPsec安全提议为tran2。
transform-set tran2
# 指定引用ACL 3101。
security acl 3001
# 指定IPsec隧道对端IP地址为23.23.23.1。
remote-address 23.23.23.1
#配置AH协议的出方向SPI为22222,入方向SPI为11111。
sa spi inbound ah 11111
sa spi outbound ah 22222
#配置AH协议的出方向SA的密钥为明文字符串22222,入方向SA的密钥为明文字符串11111。
sa string-key inbound ah simple 11111
sa string-key outbound ah simple 22222
# 在接口GigabitEthernet0/0上应用IPsec安全策略map2。
interface GigabitEthernet0/0
ip address 12.12.12.1 255.255.255.252
ipsec apply policy map2
R_2设备配置
#配置一个IPv4高级ACL,定义要保护由子网23.23.23.1/32去往12.12.12.1/32的数据流。
acl number 3001
rule permit ip source 23.23.23.1 0 destination 12.12.12.1 0
#配置到R_1所在子网的静态路由。23.23.23.2为R_2直连下一跳地址
ip route-static 12.12.12.0 30 23.23.23.2
#创建IPsec安全提议tran2
ipsec transform-set tran2
#配置安全协议对IP报文的封装形式为隧道模式,设备默认是隧道模式。
encapsulation-mode tunnel
#配置采用的安全协议为AH。
protocol ah
#配置AH协议采用的认证算法为HMAC-SHA1。
ah authentication-algorithm sha1
#创建一条手工方式的IPsec安全策略,名称为map2,序列号为11。
ipsec policy map2 11 manual
#指定引用的IPsec安全提议为tran2。
transform-set tran2
#指定引用ACL 3101。
security acl 3001
-#指定IPsec隧道对端IP地址为12.12.12.1。
remote-address 12.12.12.1
#配置AH协议的出方向SPI为11111,入方向SPI为22222。
sa spi inbound ah 22222
sa spi outbound ah 11111
#配置AH协议的出方向SA的密钥为明文字符串11111,入方向SA的密钥为明文字符串22222。
sa string-key inbound ah simple 22222
sa string-key outbound ah simple 11111
#在接口GigabitEthernet0/2上应用IPsec安全策略map2。
interface GigabitEthernet0/2
ip address 23.23.23.1 255.255.255.252
ipsec apply policy map2
两台设备配置完毕后,分别查看两台设备IPSec SA建立情况,详细情况如下所示;
查看R_1的IPSec SA
查看R_2的IPSec SA
实战模拟场景抓包分析
使用命令reset ipsec statistics重置IPSec统计报文;
使用命令dis ipsec statistics查看IPSec统计报文;
如下图所示,重置后的IPSec统计报文是0;
在R_2路由器的G0/2接口开启抓包,然后R_1路由器ping测试路由器R_2,命令如下;ping -a 12.12.12.1 23.23.23.1;
Ping测试结果及IPSec统计报文如下图所示;
IPSec安全协议AH的封装模式采用隧道模式,R_2路由器G0/2的抓取的数据包如下图所示;
即AH头被插到原始IP头之前,另外生成一个新的报文头放到AH头之前,保护IP头和负载;
修改R_1和R_2之间IPSec安全协议AH的封装模式为传输模式的方法如下所示;
[R_1]ipsec transform-set tran2
[R_1-ipsec-transform-set-tran2]encapsulation-mode transport
[R_2]ipsec transform-set tran2
[R_2-ipsec-transform-set-tran2]encapsulation-mode transport
当IPSec安全协议AH的封装模式采用传输模式,R_2路由器G0/2的抓取的数据包如下图所示;
AH头被插入到IP头与传输层协议头之间,保护ICMP负载
总结
通过本次实战的模拟场景验证了:
1、在传输模式中,AH头被插入到IP头与传输层协议头之间,TCP/UDP/ICMP负载;
2、在隧道模式下,AH头被插到原始IP头之前,另外生成一个新的报文头放到AH头之前,保护IP头和负载;
另外,设备间IPSec安全协议AH的封装模式采用传输模式,要求应用于数据流的源地址和目的地址与IPsec隧道两端地址相同。