IPsec小实验:手工方式建立保护IPv4报文的IPsec-ESP隧道

前面用VXLAN和EVPN介绍了跨广域网大二层网络互通的方案,但是我们也发现这种新技术对设备的能力有要求,成本可能会提升。那能不能用简单一点的方案呢?相信机智的小伙伴已经发现我前几天的IPsec的RFC文档,那么今天就用IPsec来操练一下吧。

实验原型借鉴H3C典型配置“采用手工方式建立保护IPv4报文的IPsec隧道”,https://www.h3c.com/cn/d_202103/1390179_30005_0.htm#_Toc65521983

组网需求

在RT1和RT2之间建立一条IPsec隧道,对PCA所在的子网(192.168.1.0/24)与PCB所在的子网(192.168.2.0/24)之间的数据流进行安全保护。具体要求如下:

封装形式为隧道模式。

安全协议采用ESP协议。

加密算法采用128位的AES,认证算法采用HMAC-SHA1。

手工方式建立IPsec SA。

组网图

 

设备配置

IPsec是一个基础实验,结合配置任务和RFC2401的要求我们可以发现,IPsec的主要配置任务包括以下几点:

1、配置IPsec保护的数据流量。一般也称为感兴趣流,用ACL来进行匹配;

2、配置IPsec安全提议。指定对IP报文的封装形式为传输模式或隧道模式,选择安全协议为AH或ESP、并配置加密算法及认证算法。

3、配置IPsec安全策略。包含配置应用感兴趣流,应用IPsec安全提议,指定IPsec隧道地址,配置安全协议的SPI(Security Parameter Index,安全参数索引)和SA(Security Association,安全联盟)密钥。

4、在接口上应用IPsec安全策略。

上面流程了解之后,直接贴出设备配置。

RT1

#

interface GigabitEthernet0/0

ip address 192.168.1.1 255.255.255.0

#

interface GigabitEthernet0/1

ip address 12.1.1.1 255.255.255.0

 nat outbound 3401

 ipsec apply policy ipsec

#

 ip route-static 23.1.1.0 24 12.1.1.2

 ip route-static 192.168.2.0 24 12.1.1.2

#

acl advanced 3400

 rule 0 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255

#

acl advanced 3401

 rule 0 deny ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255

 rule 5 permit ip

#

ipsec transform-set tran1

 esp encryption-algorithm aes-cbc-128

 esp authentication-algorithm sha1

#

ipsec policy ipsec 10 manual

 transform-set tran1

 security acl 3400

 remote-address 23.1.1.3

sa spi inbound esp 123456

 sa string-key inbound esp simple qwer

 sa spi outbound esp 654321

 sa string-key outbound esp  simple asdf

RT2

#

interface GigabitEthernet0/0

 ip address 192.168.2.1 255.255.255.0

#

interface GigabitEthernet0/1

 ip address 23.1.1.3 255.255.255.0

 nat outbound 3401

 ipsec apply policy ipsec

#

 ip route-static 12.1.1.0 24 23.1.1.2

 ip route-static 192.168.1.0 24 23.1.1.2

#

acl advanced 3400

 rule 0 permit ip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255

#

acl advanced 3401

 rule 0 deny ip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255

 rule 5 permit ip

#

ipsec transform-set tran1

 esp encryption-algorithm aes-cbc-128

 esp authentication-algorithm sha1

#

ipsec policy ipsec 10 manual

 transform-set tran1

 security acl 3400

 remote-address 12.1.1.1

 sa spi inbound esp 654321

 sa string-key inbound esp simple asdf

 sa spi outbound esp 123456

 sa string-key outbound esp simple qwer

RT-ISP

#

interface GigabitEthernet0/0

ip address 12.1.1.2 255.255.255.0

#

interface GigabitEthernet0/1

ip address 23.1.1.2 255.255.255.0

验证配置

验证设备

查看RT1上IPsec安全策略的信息

display ipsec policy

 

查看RT1上IPsec SA的相关信息

display ipsec sa

 

查看RT1上IPsec安全提议的信息

display ipsec transform-set

 

查看RT1上IPsec隧道的信息

display ipsec tunnel

 

验证主机

从PC1向PC2发起ping从测试,可以连通。观察TTL值为253,表明中间经过了两跳设备,应该就是IPsec隧道两端的RT1和RT2,中间的互联网无感知。但是使用tracert探测路径,则无法看到网络转发路径。

 

通过抓包可以发现,RT2没有回应TTL超时的ICMP错误消息,应该是没有接口响应吧。

 

查看IPsec SA信息时,隧道下有一行Path MTU: 1428的信息,那就来验证一下MTU的大小吧。

 

测试发现实际最大能通过的报文大小为1400字节,1401字节及更大的报文无法通过。

 

抓包发现IPsec设备发出的报文大小为1510字节,其中包含14字节的以太网报文头封装,内部数据长度为1496字节。还可以看到DF标志、隧道的源目地址以及ESP SPI等信息。

 

安全协议数据封装格式如下表。我们采用的是ESP-Tunnel的方式,所以数据封装格式为:[OUTER-IP][ESP][INNER-IP][DATA][ESP-T]

 

再次对比数据包长度,减掉20字节的外部报文头,得到[ESP][INNER-IP][DATA][ESP-T]部分长度为1476字节。再减掉ESP封装的SPI和序列号的8字节,还有1468字节。

 

我们再反着考虑一下,这个1428字节是隧道的MTU,IPsec网关路由器接收到的报文是多大呢?

 

数据长度为1400字节,ICMP报文标志位长度为8字节,再加上IP报文头的20字节,长度正好是1428字节,也就是[INNER-IP][DATA]的长度为1428字节。外层的14字节的以太网封装,进入设备之后就脱掉了,但是依然可以看到最外层封装的源MAC地址为PCA的MAC地址,目的MAC地址为网关设备的MAC地址。

再计算一下,[ESP-T]这段的长度应该是40字节吧?

总结

1、IPsec网关设备应用NAT时,要将IPsec保护的数据流量排除掉。因为接口下NAT优先级高于IPsec,会导致互访流量的源地址被转换为无法进入IPsec隧道;

2、ESP + Tunnel模式下,数据的封装格式为:[OUTER-IP][ESP][INNER-IP][DATA][ESP-T]。其中[INNER-IP][DATA]长度受隧道MTU限制,报文的整体长度受IPsec网关设备出接口MTU限制。

3、ESP配置中的SPI和SA在两台IPsec网关设备的出入方向相反,需要注意。

4、如果感兴趣,可以看一下课后练习题巩固一下。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Danileaf_Guo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值