VPN debugging notes

You‘re using a Cisco Box

Platform Symptom/Message Likely cause or solution
PIXs and Cisco routers
(Router) log message of:

CRYPTO-4-IKMP_BAD_MESSAGE: IKE message from x.x.x.x failed its sanity check or is malformed


Pre-shared key mismatch

This is more often a router VPN message than a PIX VPN message

 
(Router) log message of

CRYPTO-6-IKMP_MODE_FAILURE: Processing of Main Mode failed with peer at x.x.x.x


No policy defined with correct combination of DES/3DES, MD5/SHA and Group1/2

This is more often a router VPN message than a PIX VPN message

 
Any message containing a reference to "proxy identities not supported" usually something like the following PIX debug output:

IPSEC(validate_proposal_request): proposal part #1,
(key eng. msg.) dest= 1.1.1.2, src= 2.2.2.3,
dest_proxy= 4.4.4.0/255.255.255.192/0/0 (type=4),
src_proxy= 5.5.5.0/255.255.255.224/0/0 (type=4),
protocol= ESP, transform= esp-3des esp-md5-hmac ,
lifedur= 0s and 0kb,
spi= 0x0(0), conn_id= 0, keysize= 0, flags= 0x4
IPSEC(validate_transform_proposal): proxy identities not supported

where 1.1.1.2 and 2.2.2.3 are the VPN peer addresses, and 4.4.4.0/26 and 5.5.5.0/27 are the local and remote networks (encryption domains for each peer)

You MUST run debug on the PIX to see these messages


The most common PIX problem.

The two peers must agree exactly on the definitions for the local and remote networks (i.e the encryption domains for each peer)

If, for example, you have your local network precisely defined as "1.2.3.0/29" and and your peer has it loosely defined as "1.2.3.0/24" they mismatch and the tunnel will fail.

If, for example, you have your local domain defined as a network of "1.2.3.0/29" and and your peer has it defined as individual hosts within that network, they mismatch and the tunnel will fail.

The same is true for the definitions of the remote network.

Your local nets must match the peers remote nets

Your remote nets must match the peer‘s local nets.

Check the dest_proxy and src_proxy reported in the debug message. Compare them against the network objects specified in your VPN ACL.

I should also note that "proxy identities not supported" can come up if you‘ve specified particular ports on the "interesting traffic" ACL, and the traffic doesn‘t match the specified ports. I would expect "denied" instead, but no, it‘s "proxy identities not supported." This, however, is very easy to debug by simply making the ACL "permit ip source dest " and "permit ip dest source.". If that works and your desired ACL doesn‘t, then the restrictions must be the issue.

 
PIX debug output of:

IPSec(validate_transform_proposal): proxy identities not supported
ISAKMP: IPSec policy invalidated proposal
ISAKMP (0:2): SA not acceptable!


Usually pix-to-pix, but can happen with other firewalls smart enough to do detailed negotiation, like a checkpoint. The official wording from Cisco is that "The access list on each peer should mirror each other (all entries should be reversible)."

The key here is that this is just more info associated with the "proxy identities" message described above.

 
PIX debug output of:

ISAKMP (0:1); no offers accepted!
ISAKMP (0:1): SA not acceptable!

No policy on PIX with correct combination of DES/3DES, MD5/SHA and Group1/2
 
PIX debug output of:

IPSEC(validate_proposal): invalid local address x.x.x.x
ISAKMP (0:3): atts not acceptable. Next payload is 0
ISAKMP (0:3): SA not acceptable!


Cisco says that "The crypto map map-name local-address interface-id command causes the router to use an incorrect address as the identity because it forces the router to use a specified address."

Which means that either the crypto map is applied to the wrong interface or, it is not applied at all. Check the configuration to ensure that crypto map is applied to the correct interface.

 
PIX debug output of:

IPSec (validate_proposal): transform proposal(port 3, trans 2, hmac_alg 2) not supported
ISAKMP (0:2) : atts not acceptable. Next payload is 0
ISAKMP (0:2) SA not acceptable

Mismatch in the PIX "crypto ipsec transform-set" statement for this tunnel
 
PIX debug output of:

ISAKMP: No cert, and no keys (public or pre-shared) with remote peer x.x.x.x

Wrong peer address in PIX "crypto map" statement for this tunnel
 
PIX debug output of:

IPSEC(validate_transform_proposal): peer address x.x.x.x not found


Cisco‘s only doc on this message says:

The error message below normally appears with the corresponding VPN 3000 Concentrator error message "Message: No proposal chosen(14)". This is a result of the connections being host-to-host. The router configuration had the IPSec proposals in an order such that the proposal chosen for the router matched the access list, but not the peer. The access list had a larger network that included the host that was intersecting traffic. To correct this, make the router proposal for this concentrator-to-router connection first in line, so that it matches the specific host first.

This makes little sense to me in terms of a PIX, and attempting to interpret this explanation for a PIX has never helped me.

From experience, though, If x.x.x.x is the address of your own firewall, check and see if you haven‘t accidentally reversed an ACL. Look at the way that they are mirrored (vs identical) in the Cisco PIX Firewall and VPN Configuration Guide Chapter 7

 
PIX debug output of:

IPSEC(initialize_sas): invalid proxy IDs

The received proxy identity does not match the configured proxy identity as per the access list, i.e. the gateways are right but the host isn‘t in the ACL. You‘ve established a tunnel, and then the peer tries to send you some traffic through it that doesn‘t match the "interesting traffic"/"encryption domains" specified on your side.
 
PIX debug output of:

Reserved Not Zero on Payload 5


Almost always an ISAKMP key mismatch

Can also show up if you‘ve accidentally cut and pasted the wrong peer address into the crypto map

 
PIX debug output of:

Reserved Not Zero on Payload 8


Check if you forgot to apply your crypto map to the appropriate interface

Also often, a mismatch in encryption domains Make sure your definitions for networks/hosts on both sides match the peer‘s

By report, this can sometimes indicate that you need to add "no-xauth no-config-mode" to the isakmp key line.

This is not necessarily a fatal error - sometimes it‘s a stupid peer that won‘t follow protocol. I have working tunnels that get this message all the time

 
PIX debug output of:

VPN Peer:ISAKMP: Peer Info forx.x.x.x/500 not found - peers:0

No tunnel has ever been set up, but some operation is being attempted that presumes one has been set up, Maybe you got a delete SA or delayed traffic from a misconfigured peer? If this shows up alongside "retransmitting phase 1" see below.
 
PIX debug output of:

ISAKMP (0): retransmitting phase 1.


If you are initiating, you sent a phase one and got no response. Do both peers have a correct route out? Is one one the other getting its IKE traffic blocked by some intervening firewall or ACL‘ed router?

If s/he is initiating, Peer started a phase 1 and you answered, but it never completed. Your PIX is still trying. Doesn‘t tell you much, but in the absence of other errors, it indicates your side is not as likely to be the problem

 
PIX debug output of:

return status is IKMP_NO_ERROR
crypto_isakmp_process_block:src:x.x.x.x, dest:y.y.y.y spt:500 dpt:500

VPN Peer:ISAKMP: Peer Info forx.x.x.x/500 not found - peers:z

ISAKMP (0): retransmitting phase 1...
crypto_isakmp_process_block:src:x.x.x.x, dest:y.y.y.y spt:500 dpt:500
VPN Peer:ISAKMP: Peer Info forx.x.x.x/500 not found - peers:z

x.x.x.x is his peer
y.y.y.y is yours

This has appeared where the partner is a Cisco device and there was a mistake in the partner‘s NAT translation for the address of the firewall (or destination hosts) on our side
 
PIX debug output of:

ISADB: reaper checking SA fooconn_id = 0

Ignore it. Normal message. You‘ll see lots of them. This is just garbage collection looking for stale SA‘s to clean up
 
PIX debug output of:

ISAKMP (0): processing NOTIFY payload 26 protocol 1
spi 0, message ID = foo
return status is IKMP_NO_ERR_NO_TRANS
ISAKMP (0): retransmitting phase 2...

Well, phase one has completed, but phase 2 is failing. Most commonly, this is just another manifestation of mismatched encryption domains, where you have a network specified and s/he has a single host
 
PIX debug output of:

ERROR: unable to fragment packet pktsize=foo, eff_mtu = bar

Probably not the source of your problem -- this is usually just a sign that something is negotiating the maximum MTU
 
PIX debug output of:

ISAKMP (0): processing SA payload. message ID = <something>
ISAKMP : Checking IPSec proposal 1
ISAKMP: transform 1, <something>
ISAKMP: attributes in transform:
ISAKMP: SA life type in seconds
ISAKMP: SA life duration (basic) of 3600
ISAKMP: encaps is 1
ISAKMP: authenticator is HMAC-MD5IPSEC(validate_proposal): transform proposal (prot 3, trans 2, hmac_alg 1) not supported

ISAKMP (0): atts not acceptable. Next payload is 0

Mismatch between your transform-set and peer‘s, or your transform-set is somehow invalid
 
Normal-looking IPSEC(initialize_sas): ,messages

no IKMP_NO_ERR message

then

IPSEC(sa_initiate): ACL = deny; no sa created
IPSEC(sa_initiate): ACL = deny; no sa created
IPSEC(sa_initiate): ACL = deny; no sa created
<etc>


Probably, the peer is specifying single hosts on his key exchange, while you have a subnet specified. If peer won‘t turn on key exchange for subnets (Checkpoint) or expand ACL‘s to match your subnet (PIX) then you‘ll have to change your ACL‘s to contain each lousy host.

Can also happen if you‘ve simply specified one or he other encryption domain incorrectly (typo?) or specified the wrong "match " or peer in the crypto map (bad cut‘n‘paste)

Note that this is an IPSec message. Very possibly, there‘s already a good ISAKMP SA, and you will not see any additional ISAKMP traffic during debug -- just the annoying repeated message. Possibly there‘s an "incomplete" ISAKMP SA in memory that you won‘t even see with a "sho crypto isakmp sa" command.

On 6.3(1) I have once seen this message in a PIX-to-PIX setup, when the PIX believed there was a mismatch because I had specified

object-group network foo
network-object host 1.2.3.4

instead of

object-group network foo
network-object 1.2.3.4 255.255.255.255

which looks like a bug to me.

 
No phase one messages seen at all

Nothing but

IPSEC(sa_initiate): ACL = deny; no sa created
IPSEC(sa_initiate): ACL = deny; no sa created
IPSEC(sa_initiate): ACL = deny; no sa created

and no other messages


I really think this is the same thing as when one see normal phase one messages, and then sees this afterwards.

This drives me nuts. I‘m going to have to get a sniffer out and prove what‘s going on. In this case, you never see ANY kind of ISAKMP messages, or any other IPSec messages. That looks as though you are never sending anything out -- that it‘s trappped on your side and you never even try and negotiate a tunnel

But I‘m damned if I don‘t think that the traffic is going on and the messages just aren‘t displaying. Because every time I‘ve seen it, it‘s always been a subnet mismatch that caused it. If you control both ends then it‘s fairly easy to compare the VPN ACL‘s with a "sho access list foo" on both sides and go through them line by line.

If you control only one endpoint and a have a recalcitrant person running the other, who insists their side is completely correct, then good luck.

All I can do is to repeat that every single time I have ever seen this, a subnet mismatch was the cause, even though there were no ISAKMP or IPSec messages to indicate the two machines were in communication.

Interestingly enough, this "no other messages" condition has happened to me only when I had IOS boxes on both ends, which makes me think that the two must have some comm going that just doesn‘t show in the debug.

Note: I had this happen to me this afternoon, and the root cause was me trying to be tricky. I had a subnet 10.0.0.0/28 call it, that had been expanded to 10.0.0.0/27. I had an existing network object like so:

object-group network foo
network-object 10.0.0.0 255.255.255.240

I was lazy and tried to make the same object work in both tunnels using the old definition and the new one, so I made it:

object-group network foo
network-object 10.0.0.0 255.255.255.240
network-object 10.0.0.0 255.255.255.224

I‘ve had that kind of trick work many times with things like:

object-group network foo
network-object 10.0.0.0 255.255.255.240
network-object host 10.0.0.1

when the other guy insisted on using hosts. Well, today, it broke the tunnel. Fine, I was cheating anyway, but the point is that even in the absence of other debug messages, the two had to be talking for either side to know there was a mismatch.

This morning‘s incarnation of this bug is nothing which isn‘t implied by the foregoing, but is worth a note. The Checkpoint peer included its own external IP address in its encryption domain. We didn‘t want to acess it, and in fact rules on our inside interface disallow any such traffic. Nevertheless, the tunnel failed with this error up until we added that gateway address into our remote netwoks object for the VPN ACL. They have to matcheven if the traffic will never flow.

An unconfirmed report from the mailbag tells of a tunnel problem between a PIX 515 and a Cisco 1841. In this case, even having the maps identically defined with

network-object 172.20.0.0 255.254.0.0

didn‘t work. It seems that the 1841 was internally splitting the "172.20.0.0/255.254.0.0" into individual class C‘s (Class-based setup, maybe?) and the VPN failed until the pix side was defined as

network-object 172.20.0.0 255.255.0.0
network-object 172.21.0.0 255.255.0.0

 
PIX debug output of:

ISAKMP (0): processing NOTIFY payload 36136 protocol 1
spi 0, message ID = 15262787
ISAMKP (0): received DPD_R_U_THERE from peer x.x.x.x
ISAKMP (0): sending NOTIFY message 36137 protocol 1
return status is IKMP_NO_ERR_NO_TRANS

Normal message, not a sign of a problem. Your peer has set a "keepalive" (i.e. nailed the tunnel up). This message just means "peer x.x.x.x checked to see if I was still alive."
 
PIX debug output of:

return status is IKMP_NO_ERROR
ISAKMP (0): sending phase 1 RESPONDER_LIFETIME notify
ISAKMP (0): sending NOTIFY message 24576 protocol 1
VPN Peer: ISAKMP: Added new peer: ip:x.x.x.x/500 Total VPN Peers:8
VPN Peer: ISAKMP: Peer ip:x.x.x.x/500 Ref cnt incremented to:1 Total VPN Peers:8
crypto_isakmp_process_block:src:x.x.x.x, dest:y.y.y.y spt:500 dpt:500
ISAKMP (0): processing DELETE payload. message ID = 2096747792, spi size = 16
ISAKMP (0): deleting SA: src x.x.x.x, dst y.y.y.y
return status is IKMP_NO_ERR_NO_TRANS

ISADB: reaper checking SA 0x11ac374, conn_id = 0 DELETE IT!

VPN Peer: ISAKMP: Peer ip:x.x.x.x/500 Ref cnt decremented to:0 Total VPN Peers:8
VPN Peer: ISAKMP: Deleted peer: ip:x.x.x.x/500 Total VPN peers:7


Hmm, could be anything on the peer side. Be sure to explicitly specify "isakmp identity address" before doing much more.

 
Partner is a VPN concentrator.. PIX debug messages are :

ISAKMP (0): beginning Main Mode exchange
crypto_isakmp_process_block:src:9.1.2.3, dest:10.4.5.6 spt:500 dpt:500
OAK_MM exchange
ISAKMP (0): processing SA payload. message ID = 0
<snip>
crypto_isakmp_process_block:src:9.1.2.3, dest:10.4.5.6 spt:500 dpt:500
OAK_MM exchange
<snip>
ISAKMP (0): speaking to a VPN3000 concentrator
<snip>
return status is IKMP_NO_ERROR

but no connect

You‘ve completed phase 1 OK, the eror is somewhere in phase 2
  Phase one goes OK, you see NOTHING for phase two.
Difficult to debug, of course. Silence always is. MOST likely, your partner has things fouled up. But let me note some weird things that I‘ve seen cause this:

A dual-homed Windows Server 2003 partner caused this when he routed traffic to my VPN peer out of the correct interface, and traffic for the actual host out the wrong interface.

Another dual-homed Windows Server 2003 partner caused this when he had two default gateways specified (thinking he needed one for each interface) and created essentially the same situation.

I once caused this on the PIX side by accidenatlly specifying a network IP as a host in my objects, i.e.


object-group network partner_net
network-object host 10.1.1.0

when I meant


object-group network partner_net network-object 10.1.1.0 255.255.255.0 

 
PIX debug output of:

ISAKMP (0): processing DELETE payload. message ID = 1166168095, spi size = 4
IPSEC(key_engine): got a queue event...
IPSEC(key_engine_delete_sas): rec‘d delete notify from ISAKMP

VPN Peer: IPSEC: Peer ip:x.x.x.x/500 Decrementing Ref cnt to:2 Total VPN Peers:1
VPN Peer: IPSEC: Peer ip:x.x.x.x/500 Decrementing Ref cnt to:1 Total VPN Peers:1
return status is IKMP_NO_ERR_NO_TRANS

Not an error, per se. Your peer just sent you a "delete ipsec sa" instruction
 
PIX debug output of:

crypto_isakmp_process_block:src:x.x.x.x, dest:32.96.134.83 spt:500 dpt:500
ISAKMP (0): processing DELETE payload. message ID = 3415178296, spi size = 16
ISAKMP (0): deleting SA: src x.x.x.x, dst y.y.y.y
return status is IKMP_NO_ERR_NO_TRANS
ISADB: reaper checking SA 0xf8048c, conn_id = 0 DELETE IT!

Not an error, per se. Your peer just sent you a "delete isakmp sa" instruction
  All VPN messages look good. The PIX logs show a "NO TRANS" error This is a NAT issue, not a VPN issue. See my preliminary notes towards a page on that here.
  All VPN messages look good. The PIX logs show a translation being built. The connection dies with a SYN timeout If you are sure that the VPN is all good, then this is rourting or firewalling somewhere beyond your own VPN gateway.
 
Your partner is a Checkpoint. In his/her logs, your counterpart sees

IKE: Main Mode Completion

reason: Client Encryption: User Unknown

OM: Failed to obtain user object or unknown user

Despite the fact that this is obviously not a SecuRemote client attempting to connect via a client VPN.


This is a misconfiguration on the PIX side. The PIX is using dynamic or client VPNs for some other connection, and is getting confused.

If your crypto map contains both static and dynamic entries, alway give ALL of the statics a LOWER sequence number than ANY of the dynamics.

If any of your isakmp keys are wildcarded it should see the non-wildcard entries FIRST

Add "no-xauth no-config-mode" to the isakmp key statement for the gateway-to-gateway peer

 
Your partner is a Nokia Crypto Cluster. Things look fine on your end. The person configuring the Cluster says they get a message of

"terminated by state machine"


This is the Crypto Cluster‘s way of complaining about an ISAKMP identity issue. It‘s looking for you to send a string identifying your firewall as a (supposedly optional) part of the negotiation. See above.

Look for "message 24576" debug on the PIX.

If found, make sure that "isakmp identity address" is explicitly specified on the PIX.

The PIX will send back either its hostname, or the IP address of the isakmp interface depending on your config line for "isakmp identity"

  Your partner is a Nokia Crypto Cluster. The partner says they see a "tunnel come up" on their Nokia They only mean they see at least a phase 1 completion. No promises about phase 2
  Tunnel comes up, initial contacts are OK, client fails on large packets
Someone, somewhere has not accounted for the overhead added by the VPN. I.e., the packet size plus the bytes added for the VPN encapsulation give you packets too big for ethernet, but which are marked "don‘t fragment"

You can throttle this back on your side with:

sysopt connection tcpmss 1350

VPN debugging notes

时间: 2024-11-05 16:04:19

VPN debugging notes的相关文章

Android初始化语言(init.rc语法)

本文为 ANDROID_SOURCE/system/core/init/readme.txt 的译文. 安卓初始化语言 安卓初始化语言包括四种类型的语句,它们是: 动作 Action 命令 Command 服务 Service 选项 Option 所有语句都是面向行的,以空格分割每行包含的若干token.C风格的反斜杠可以用于token中插入空格,双引号同样可以避免空格将文本分为多个token.反斜杠是一行的最后一个字符时,将用于续行(PS:下一行也属于该句). 以#开头的行(前面有空格也是允许

Cisco IOS debug command reference

Command A through D debug aaa accounting through debug auto-config debug aaa accounting : to display information on accountable events as they occur(in privileged EXEC mode) no debug aaa accounting : to disable debugging output debug aaa authenticati

About init.rc

Android Init Language --------------------- The Android Init Language consists of four broad classes of statements, which are Actions, Commands, Services, and Options. All of these are line-oriented, consisting of tokens separated by whitespace. The

The Nine Indispensable Rules for HW/SW Debugging 软硬件调试之9条军规

I read this book in the weekend, and decided to put the book on my nightstand. It's a short and funny book, clear insight and good stories, strongly recommend entry even senior engineers to read it. Introduction This book tells you how to find out wh

Error 56: The Cisco Systems, Inc. VPN Service has not been started(Cisco VPN在Vista下出现Error 56的解决办法)

Error 56: The Cisco Systems, Inc. VPN Service has not been started(Cisco VPN在Vista下出现Error 56的解决办法) 似乎,自从我的Vista自动升级安装了SP1后,我的Cisco VPN就出现问题了,根本就无法运行.总是提示Error 56: The Cisco Systems, Inc. VPN Service has not been started. Please start this service an

linux设置并开启vpn,解决800错误

Linux设置并开启vpn 很多朋友一般在Windows服务版的操作系统下架设VPN服务,或者是路由器上开启VPN.今天笔者就在讲下在Linux操作系统下如何开启VPN服务. 首先介绍一下这次的拓扑,本实验由于是模拟网络环境,所以使用的是一台xp.一台linux服务器和一台windows server2003,分别作为客户端.pptp服务器和路由.在以上拓扑中,Internet使用一台win2003作为路由来替代. 准备安装实验包 [[email protected] Desktop]# ls 

debugging tools for windows 10下载安装问题

配置QT5.0中debugger的时候需要下载debugging tools for windows 10,于是去https://developer.microsoft.com/zh-cn/windows/hardware/windows-driver-kit上下载WinDbg.但是碰到了一些匪夷所思的事情. 不论是下载WDK,SDK还是单独下载WinDbg,下载方式无论在在线安装还是下载离线安装包,都会在一些地方卡住.而且是在网上都找不到解决方案的一些奇怪的错误.这个问题困扰了我2天,终于让我

Git for Windows v2.11.0 Release Notes

homepage faq contribute bugs questions Git for Windows v2.11.0 Release Notes Latest update: December 1st 2016 Introduction These release notes describe issues specific to the Git for Windows release. The release notes covering the history of the core

III(二十二)VPN

VPN,virtual private network,虚拟专用网络,是依靠ISP和NSP,在公共网络中建立专用的数据通信网络的技术,可以为企业间或个人与企业间提供安全的数据传输隧道服务,在VPN中任意两点之间的连接并没有传统专网所需的端到端的物理链路,而是利用公共网络资源动态组成的,可理解为通过私有的隧道技术在公共数据网络上模拟出来的,和专网有同样的功能(点到点的专线技术),所谓虚拟是指不需要去拉实际的长途物理链路,借用公共internet实现: VPN的作用:帮助公司里的远程用户(出差或家里