手工方式建立保护IPv4报文的IPsec-ESP隧道
发布时间:2021-06-26 13:48:58作者:衡水铁头哥阅读:0
在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网关设备的出入方向相反,需要注意。
以上就是手工方式建立保护IPv4报文的IPsec-ESP隧道的介绍,Vecloud除了IPsec组网外,还提供MPLS企业组网、SD-WAN网络专线、IPLC国际专线、IEPL海外专线等云专线业务。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
标题:手工方式建立保护IPv4报文的IPsec-ESP隧道
TAG标签:
地址:http://www.vecloud.com.cn/article/290.html