IPsecVPN故障排查笔记

拓扑

主要配置:

FW1

isakmp peer tofw2
  isakmp-proposal psk-md5-3des-g2
  pre-share hillstone
  peer 202.90.21.1
  local-id fqdn sandun
  peer-id fqdn wuxi
  nat-traversal
  dpd interval 10 retry 3
  interface ethernet0/0
exit

tunnel ipsec tofw2 auto
  isakmp-peer tofw2
  ipsec-proposal esp-md5-3des-g2
  auto-connect
  accept-all-proxy-id
exit

interface ethernet0/0
  zone  trust
  ip address 183.129.161.1 255.255.255.252
  ip address 121.52.255.74 255.255.255.192 secondary
  manage ping
  no reverse-route
exit

interface tunnel1
  zone  VPNHub
  ip address 192.168.255.1 255.255.255.252
  description tofw2
  manage ping
  tunnel ipsec tofw2
  no reverse-route
exit

ip vrouter trust-vr
  ip route 0.0.0.0/0 183.129.161.2
exit

rule id 1
  action permit
  src-addr Any
  dst-addr Any
  service Any
exit

FW2

isakmp peer tofw1
  isakmp-proposal psk-md5-3des-g2
  pre-share hillstone
  peer 183.129.161.1
  local-id fqdn wuxi
  peer-id fqdn sandun
  nat-traversal
  dpd interval 10 retry 3
  interface loopback1
exit

tunnel ipsec tofw1 auto
  isakmp-peer tofw1
  ipsec-proposal esp-md5-3des-g2
  auto-connect
  accept-all-proxy-id
exit

interface ethernet0/0
  zone  untrust
  ip address 192.168.110.2 255.255.255.252
  manage ping
exit
interface loopback1
  zone  trust
  ip address 202.90.21.1 255.255.255.255
  manage ping
exit
interface tunnel1
  zone  untrust
  ip address 192.168.255.2 255.255.255.252
  description tofw1
  manage ping
  tunnel ipsec tofw1
  no reverse-route
exit

ip vrouter trust-vr
  ip ruote 0.0.0.0/0 192.168.110.1
exit

rule id 1
  action permit
  src-addr Any
  dst-addr Any
  service Any
exit

  

故障现象:隧道接口无法ping通

FW1的debug没有异常,FW2 debug如下

2018-11-26 11:45:19, DEBUG@FLOW: core 0 (sys up 0x14429d ms): From self packet, 0000.2400.0000->0000.2400.0000, size 98, type 0x800, vid 0, interface tunnel1
Start l3 forward
Packet: 192.168.255.2 -> 192.168.255.1, id: 806, ip size 84, prot: 1(ICMP)
ad_vector_for_fast_flow: zonename untrust, proto_flag[1] 7, proto 1
dp_prepare_pak_lookup srcip: 192.168.255.2, dstip: 192.168.255.1, src-port:54540, dst-port:1, prot 1
No session found, try to create session
dp_first_crt_sess_init_flow0_from_pak_iif: set cpuid 0
Dataplane first create session from self packet
-----------------First path creating new session-----------------
session is self type
dp_sess_sm_transtion: Do session state machine transtion, id 4, state: 0, event: 0!
allocate pending session and install flow0
begin lookup predefine prot:1 port:1
Identified as app PING (prot=1). timeout 6.
--------VR:trust-vr start--------
192.168.255.2:54540->192.168.255.1:1
Get nexthop if_id: 36, flags: 0, nexthop: 192.168.255.1
Connection route.
--------VR:trust-vr end--------
Start policy lookup.
session is self type
crt_sess->flow0_io_cpuid 0
flow0 src 192.168.255.2 --> dst 192.168.255.1 with nexthop 192.168.255.1 ifindex 36
flow1 src 192.168.255.1 --> dst 192.168.255.2 nexthop not lookup or invalid
flow0 tunnel, id=1, cpuid=0, local cpuid=0
flow0's next hop: unknown flow1's next hop: 192.168.255.1
crt_sess->revs_rres.gw: unknown, crt_sess->forw_rres.gw unknown
Calculate flow1 hash, srcip: 192.168.255.1, dstip: 192.168.255.2, lports: 1d50c, prot: 1, token: 2
in flow_first profile_merge
------sess:4,app :104 init in first proc
Application 104 hasn't been registered, don't need do ALG
APP inited for application PING
crt_sess policy_flag is 0000, session flag1 is 0000
PING: create session: atomic bit 0
dp_sess_sm_transtion: Do session state machine transtion, id 4, state: 1, event: 3!
The following session is installed
session: id 4, prot 1, flag0 0,flag1 0, created 1327, life 600
  flow0(if id: 36 flow id: 8 flag: 40200c98):192.168.255.2:54540
->192.168.255.1:1
  flow1(if id: 36 flow id: 9 flag: 880): 192.168.255.1:1
->192.168.255.2:54540
Session installed successfully
-----------------------First path over---------------------
Found the session 4
session: id 4, prot 1, flag0 0,flag1 0, created 1327, life 600
  flow0(if id: 36 flow id: 8 flag: 40200c98):192.168.255.2:54540
->192.168.255.1:1
  flow1(if id: 36 flow id: 9 flag: 890): 192.168.255.1:1
->192.168.255.2:54540
dp_app_proc: 0x0x2aaaab956500 
dp_app_proc: ICMP or fragment packet or need skip app proc, just forward it 
ICMP after translation: data1 cd5, data2 100 
Dropped: Route to 183.129.161.171 out interface zone is not the same with tunnel's.

由此判断出是因为数据包出接口和建立隧道的接口不相同导致的

需要在FW2做出如下调整

将配置:

interface ethernet0/0
zone "untrust"
ip address 192.168.110.2 255.255.255.252
mirror enable tx
manage ping
exit
interface loopback1
zone "trust"
ip address 202.90.21.193 255.255.255.255
manage ping
exit


调整为:

interface ethernet0/0
zone "untrust"
ip address 202.90.21.193 255.255.255.255
ip address 192.168.110.2 255.255.255.252 secondary
manage ssh
manage ping
manage snmp
manage https
exit

  

注意事项:

  1. 在FW1 ping FW2 隧道接口地址时,debug filter不能是隧道接口地址,因为这个时候FW2收到的包时封装过的,使用的隧道协商两端的IP

  

  2. 不能把loopback1地址写道出接口ethernet0/0的二级ip上,这样业务还是不通的,需要把loopback1地址改成e0/0的主IP,把主IP改成二级IP,由于数据转发是看网关的,所以这样修改对业务没有影响。

猜你喜欢

转载自www.cnblogs.com/itechnology/p/10022926.html