IPSec命名注意事项

注意事项1

ADVPN环境下,有时候会遇到所有Spoke与Hub的IPSec连接建立成功,但Spoke之间在流量触发后,Shortcut连接无法建立的情况。

问题现象

  1. 检查Spoke与Hub间的IPSec连接状态是否正常。

  2. 在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
    
  3. 问题出现在另一个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
    
  4. 检查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
    

解决方法

  1. 当配置IPSec VPN时,对名字的长度限制为15个字符,超过15个字符是无法配置的。
  2. 但如果存在ADVPN的配置,当Spoke与Spoke之间触发Shortcut连接建立时,Shortcut连接的名称会在与Hub的连接名称的基础上加上字符_ + 数字(从0开始),例如以上示例中,Shortcut连接的名称为“FGT-ADVPN-HUB-1_0”,这已经超过了15个字符,这就导致Shortcut连接由于名字过长无法发起连接建立。
  3. 如果是ADVPN部署环境,建议在Spoke上配置与Hub的IPSec连接时,名称长度建议小于12个字符(根据最多可以建立多少个Shortcut决定,例如需要建立2位数数量的Shortcut连接,使用13个字符的IPSec连接名称,从第10个Shortcut连接开始将无法建立)。

注意事项2

在同一个FortiGate上配置了一个IPSec连接的名称后,新增其他IPSec连接配置时,名称不要使用已创建的IPSec连接名称 + _<number>的格式,例如:

  • 第1个IPSec连接(拨号模式):名称为CT

  • 第2个IPSec连接:不要配置名称为CT_0(或CT_1CT_2CT_3……)。

这是由于第1个IPSec拨号连接有客户端拨号成功后,生成的动态IPSec隧道名称会被命名为CT_0CT_1CT_2CT_3……这些名称中的CT_0与第2个IPSec连接的名称冲突,会导致第2个IPSec连接无法正常通信,即使两个IPSec连接在不同的VDOM(即使开启了VDOM,任何接口的名称也具有全局唯一性)。

出现此问题时,受影响的IPSec接口的状态会出现异常,使用diagnose netlink interface list可以看到该接口(CT_1)的link≠0(接口的link只有等于0时才正常)。

Hub (VDOM2) # diagnose netlink interface list 

......
if=CT_1 family=00 type=768 index=23 mtu=1420 link=24 master=0    //受影响的IPSec隧道名称,link≠0//
flags=up p2p run noarp multicast    

if=CT family=00 type=768 index=24 mtu=1420 link=0 master=0
flags=up p2p run noarp multicast
......

Copyright © 2024 Fortinet Inc. All rights reserved. Powered by Fortinet TAC Team.
📲扫描下方二维码分享此页面👇
该页面修订于: 2024-03-07 17:57:58

results matching ""

    No results matching ""