飞塔和飞塔对接注意事项
1.尽量优先使用默认的接口模式IPsec VPN

2.静态IP地址方式对接的IPsec VPN第二阶段可以不需要填写明细感兴趣流网段,使用默认的0.0.0.0/0.0.0.0即可,感兴趣流通过路由来引导

3.动态拨号方式对接的IPsec VPN,总部侧(HUB)第二阶段可以不需要填写明细感兴趣网段,可使用默认的0.0.0.0/0.0.0.0即可,而分部侧(SPOKE)第二阶段必须填写明细的感兴趣流,以便让总部侧(HUB)可以动态的学习去往分部(SPOKE)的业务网段(自动生成路由),以及反向的感兴趣流

4.配置多个动态拨号方式IPsec/动态拨号方式IPsec与静态IPsec方式混用的时候,需要使用Peer ID区分不同的IPsec VPN连接

5.动态拨号方式IPsec的连接隧道数目较大,此时推荐使用策略模式的IPsec VPN

飞塔和友商对接注意事项
1.第二阶段是否需要填写明细,根据友商的配置要求来定,比如思科的ACL+IPsec方式,则FortiGate必须配置匹配的第二阶段感兴趣流

2.第二阶段存在多个感兴趣流,FortiGate可以尝试配置多个第二阶段或者将感兴趣流配置成IP-Group<->IP-Group。如果对方只能配置一条感兴趣流,那么可以尝试扩大感兴趣流的子网掩码(汇总感兴趣流网段)

3.注意Peer-ID的一致性,双方的Loacl ID 和Peer ID需反向对应起来

4.如果IPsec VPN协商不成功,需要查看双方的IPsec协商报错日志,查找协商失败的线索


IPsec VPN的排错(一)

IPsec隧道协商失败

1.第一阶段/第二阶段参数不对
模式(主模式或野蛮模式)不匹配/加密参数不匹配/预共享密钥不一致/DH Group不一致/PFS参数不一致

2.野蛮模式下的Peer ID不匹配

3.第二阶段感兴趣数据流不匹配

4.策略未配置,无法发起和响应IKE请求

5.UDP 500/UDP 4500不可达运营商原因,通过抓包去判断IKE的交互是否正常(202.106.2.1为对方的公网IP地址)
diagnose sniffer packet any “host 202.106.2.1 and (port 500 or port 4500)”4 0 l

6.NAT环境下NAT设备Session表已混乱,导致连接异常


IPsec隧道协商失败定位步骤:第一步

先通过sniffer抓包确认用于协商的IKE协议UDP 500是否通信正常(202.106.2.1为对方的公网IP地址),是否中间ISP出现了故障,正常应该有去有回:

FGT#diagnose sniffer packet any “host 202.106.2.1 and (port 500 or port 4500)” 4 0 l
12.650762 wan1 out 119.100.1.35.500 -> 202.106.2.1.500: udp 716
12.652838 wan1 in 202.106.2.1.500 -> 119.100.1.35.500: udp 192
12.664391 wan1 out 119.100.1.35.500 -> 202.106.2.1.500: udp 380
12.665846 wan1 in 202.106.2.1.500 -> 119.100.1.35.500: udp 380

要注意:有时候需要关闭IPsec第一阶段里的NP加速,才可以抓取到完整的IKE协商过程。

FGT # config vpn ip phase1-interface
FGT (phase1-interface) # edit Center
FGT (Center) # set npu-offload disable
FGT (Center) # end

只有确保UDP 500/UDP 4500通信正常,才有接下来协商产生,才有协商成功或失败的定位,因此这是排查的第一步。

IPsec隧道协商失败定位步骤:第二步

然后,通过日志信息以及debug app ike 确认问题是出在Ipsec 协商第一阶段还是第二阶段
diagnose vpn ike log-filter dst-addr4  202.106.2.1 //IP换成对方公网IP
diagnose debug  application ike  -1
diagnose debug  enable

要注意:debug app ike的时候,自己不要主动发起连接,否则可能看不出故障的原因,特别是和友商对接的时候,由于报错的信息格式不一致,友商的报错信息,我们未必可以准确的读出来,而如果是被动接受协商,报错信息则在本地产生,应该一定可以知道协商失败的原因所在,因此我们需要把第一阶段/第二阶段的自动协商关闭。

注意一:可能需要关掉一阶段第二阶段的自动协商
如果是5.6之后的版本,只需要一条命令就可以完全关闭自己的主动发起的IKE连接请求:
config vpn ipsec phase1-interface
    edit VPN-P1(第一阶段名称)
      set passive-mode enable //永远不主动发起IKE请求,即便使用流量触发,也不主动发起
    next
end
如果是旧版本(5.2/5.4)则需要分别关闭第一阶段和第二阶段的自动协商:
BJLab-240D # config vpn ipsec phase1-interface 
BJLab-240D (phase1-interface) # edit VPN-P1(第一阶段名称)
BJLab-240D (VPN) # set auto-negotiate disable 
BJLab-240D (VPN) # end

BJLab-240D # config vpn ipsec phase2-interface 
BJLab-240D (phase1-interface) # edit VPN-P2 (第二阶段名称)
BJLab-240D (VPN) # set auto-negotiate disable 
BJLab-240D (VPN) # end

注意二:有时候需要重置IPsec VPN的连接(请谨慎使用,操作不当可能引起所有的VPN都会重新连接IKE,一定要先过滤再操作,不要贸然清空IKE/IPSEC SA)
方法1:(某条VPN的第一阶段和第二阶段都会同时刷新,不影响其他VPN)---推荐方法
直接flush某一条VPN,name后面跟第一阶段名字,或者通过 # diagnose vpn ike gateway list获取:
# diagnose vpn ike gateway flush name Edge_VPN_Master
或者:
# diagnose vpn ike gateway clear name Edge_VPN_Master
flush和clear的效果是类似的

方法2:(某条VPN的第一阶段和第二阶段都会同时刷新,不影响其他VPN)
先过滤VPN的第一阶段名字,然后再flush IPsec VPN,第一阶段和第二阶段都会重新协商:
diagnose vpn ike filter name Edge_VPN_Master
diagnose vpn ike gateway flush
或者:
diagnose vpn ike gateway clear
flush和clear的效果是类似的

方法3:如果不需要考虑过滤某一条VPN的话,通过以下命令可以将所有的VPN重置连接命令(慎用,所有VPN都会被重置):
diagnose vpn ike restart
diagnose vpn ike gateway flush
diagnose vpn ike gateway clear
diagnose vpn tunnel flush

重置IPsec VPN通道,有VDOM的情况下,先需要进入到某个VDOM里面,才可以敲相关的命令:
FG200D4615810562 # config vdom 
FG200D4615810562 (vdom) # edit root 
FG200D4615810562 (root) # diagnose vpn ike gateway flush name Edge_VPN_Master
FG200D4615810562 (root) # 

查看IPsec VPN状态命令:
diagnose vpn ike gateway list name Edge_VPN_Master
diagnose vpn ike gateway list

diagnose vpn tunnel list name Edge_VPN_Master
diagnose vpn tunnel list

get vpn ike gateway  Edge_VPN_Master
get vpn ike gateway 

get vpn ipsec tunnel name Edge_VPN_Master
get vpn ipsec tunnel details

Debug application命令:
debug IPsec VPN命令:
# diagnose debug console timestamp enable 
# diagnose debug application ike -1
# diagnose debug enable 

# diagnose debug application  ike 0  // 关闭debug
# diagnose debug disable                 //关闭debug
# diagnose debug reset                  //关闭debug

排错举例1:Center和Side均为静态固定IP的IPsec VPN场景 (预共享密钥认证 ) Debug协商全过程(静态VPN 主模式)


 正常IPsec VPN协商全过程
 第一阶段:主模式6个包
 第二阶段:快速模式3个包




 协商失败的错误情况dbeug举例:





排错举例2:Center为静态固定IP/Side为PPPOE或DHCP动态IP的拨号用户VPN场景 Debug错误情况 (动态VPN,野蛮模式)