ADVPN的Shortcut无法建立
ADVPN环境下,有时候会遇到所有Spoke与Hub的IPSec连接建立成功,但Spoke之间在流量触发后,Shortcut连接无法建立的情况。
问题现象
检查Spoke与Hub间的IPSec连接状态是否正常。
在Spoke上执行IKE Debug,检查输出日志,如下所示,Spoke已经收到了Hub返回的shortcut-offer:
# diagnose debug application ike -1 # diagnose debug enable
ike 0:FGT-ADVPN-HUB-1:17: notify msg received: SHORTCUT-OFFER ike 0:FGT-ADVPN-HUB-1: shortcut-offer 172.26.22.22->172.10.10.1 psk 64 ppk 0 ver 1 mode 0 ike 0 looking up shortcut by addr 172.10.10.1, name FGT-ADVPN-HUB-1
问题出现在另一个Spoke发送的shortcut-reply后,当Spoke收到另一个Spoke发送的shortcut-reply(经由Hub转发)后,准备与其建立Shortcut连接,但由于Shortcut连接的名字过长(Shortcut连接的名字是在与Hub的连接名称基础上加上字符“_[number]”,FGT-ADVPN-HUB-1_0),导致无法发起Shortcut连接。
ike 0:FGT-ADVPN-HUB-1:17: notify msg received: SHORTCUT-REPLY ike 0:FGT-ADVPN-HUB-1: recv shortcut-reply 17386919350863387436 3d31b000f3a4cb20/918e5c255a8451ca 10.10.50.1 to 172.26.22.22 psk 64 ppk 0 ver 1 mode 0 ext-mapping 0.0.0.0:0 ike 0:FGT-ADVPN-HUB-1: iif 28 172.10.10.1->172.26.22.22 route lookup oif 12 root ike 0:FGT-ADVPN-HUB-1: shortcut-reply received from 10.10.50.1:500, local-nat=no, peer-nat=no ike 0:FGT-ADVPN-HUB-1: created connection: 0xdd3cdb0 5 10.10.10.2->10.10.50.1:500. ike 0:FGT-ADVPN-HUB-1: adding new dynamic tunnel for 10.10.50.1:500 ike 0:FGT-ADVPN-HUB-1: could not create dialup name FGT-ADVPN-HUB-1_0, too long ike 0:FGT-ADVPN-HUB-1: deleting ike 0:FGT-ADVPN-HUB-1: deleted ike 0:FGT-ADVPN-HUB-1: schedule auto-negotiate
检查Spoke端的IPSec一阶段配置,名称为FGT-ADVPN-HUB-1,总计15个字符。
# config vpn ipsec phase1-interface edit "FGT-ADVPN-HUB-1" set interface "wan1" set keylife 28800 set peertype any set net-device enable set proposal aes256-sha256 set add-route disable set dpd on-idle set dhgrp 14 set auto-discovery-receiver enable set remote-gw x.x.x.x set psksecret ENC set dpd-retryinterval 5 next
解决方法
- 当配置IPSec VPN时,对名字的长度限制为15个字符,超过15个字符是无法配置的。
- 但如果存在ADVPN的配置,当Spoke与Spoke之间触发Shortcut连接建立时,Shortcut连接的名称会在与Hub的连接名称的基础上加上字符“_”+数字(从0开始),例如以上示例中,Shortcut连接的名称为“FGT-ADVPN-HUB-1_0”,这已经超过了15个字符,这就导致Shortcut连接由于名字过长无法发起连接建立。
- 如果是ADVPN部署环境,建议在Spoke上配置与Hub的IPSec连接时,名称长度建议小于12个字符(根据最多可以建立多少个Shortcut决定,例如需要建立2位数数量的Shortcut连接,则使用13个字符的IPSec连接名称,从第10个Shortcut连接开始将无法建立)。