On Tue, May 10, 2011 at 03:08:43PM +0200, Pawel Wieleba wrote:
> >Number: 6601
> >Category: pending
> >Synopsis: [isakmpd] IPSEC SA is established with different keys
> >key_authkey and key_encrypt on both peers. The problem repeats every few
> >days.
Hello,
The same problem (different enckeys on both peers, as well as different
authkeys on both peers) also exists when running two OpenBSD 4.9 peers.
The initial post (OpenBSD 4.6 and 4.8) is describing the production environment.
Therefore I set up an example laboratory/testing configuration with both
OpenBSD 4.9 peers (obsd49b and obsd49c) running in KVM to reconstruct the
problem.
Both OpenBSD operating systems use the same Generic kernel. Specially fresh
OpenBSD 4.9 installation was proceeded.
obsd49b:~# uname -a
OpenBSD obsd49b.my.domain 4.9 GENERIC#671 i386
obsd49c:~# uname -a
OpenBSD obsd49c.my.domain 4.9 GENERIC#671 i386
The following simple IPSEC configuration was set up.
obsd49c:~# cat /etc/ipsec.conf
ike esp from { 192.168.186.0/24 } to { 192.168.185.0/24 } local 192.168.10.186
peer 192.168.10.185 main auth hmac-sha1 enc aes group modp1024 quick auth
hmac-sha1 enc aes group modp1024 psk "<shared_key>"
obsd49b:~# cat /etc/ipsec.conf
ike passive esp from { 192.168.185.0/24 } to { 192.168.186.0/24 } local
192.168.10.185 peer 192.168.10.186 main auth hmac-sha1 enc aes group modp1024
quick auth hmac-sha1 enc aes group modp1024 psk "<shared_key>"
obsd49c:~# cat /etc/isakmpd/isakmpd.conf
[General]
Listen-on=192.168.10.186
DPD-check-interval=60
Default-phase-1-lifetime=240,60:86400
Default-phase-2-lifetime=120,60:86400
obsd49b:~# cat /etc/isakmpd/isakmpd.conf
[General]
Listen-on=192.168.10.185
DPD-check-interval=60
* Running isakmpd
obsd49c:~# /sbin/isakmpd -K -vv -4 -L
obsd49b:~# /sbin/isakmpd -K -vv -4 -L
obsd49c:~# ifconfig lo0 inet alias 192.168.186.1 255.255.255.0
obsd49b:~# ifconfig lo0 inet alias 192.168.185.1 255.255.255.0
obsd49c:~# ping -I 192.168.186.1 192.168.185.1
obsd49b:~# ping -I 192.168.185.1 192.168.186.1
* To monitor the VPN connection between two hosts, the following script is
being run by cron every minute.
obsd49c:~# crontab -l|tail -n 1
* * * * * /root/test_vpn.sh
obsd49b:~# crontab -l|tail -n 1
* * * * * /root/test_vpn.sh
* The monitoring script tests the VPN connection by running test ping.
If the ping fails it collects some data about the isakmpd and ipsec.
Then saves the data to the log file and also sends it by e-mail, to
the specified e-mail address by the variable MAIL.
obsd49c:~# cat /root/test_vpn.sh
#!/bin/sh
#
# Author: Pawel Wieleba
# License: BSD
#
# Crontab entry: * * * * * /root/test_vpn.sh
#
DATE=`date +%Y%m%d-%H%M%S`
LOGFILE="/var/log/test_vpn"
TMPLOG="/tmp/test_vpn-$DATE"
MAIL="<your@mail>"
echo -n "[$DATE] : " >> $LOGFILE
OUTPUT_PING="`ping -q -c 2 -n -w 1 -I 192.168.186.1 192.168.185.1`"
RET=$?
echo $OUTPUT_PING | tr '^M' ':' >> $LOGFILE
if [ "$RET" != "0" ]; then
echo "======================= ! obsd vpn problem !
==========================" > $TMPLOG
echo "# ipsecctl -s all -v -k" >> $TMPLOG
ipsecctl -s all -v -k >> $TMPLOG
echo "# echo 'S' > /var/run/isakmpd.fifo" >> $TMPLOG
test -e /var/run/isakmpd.fifo && echo 'S' > /var/run/isakmpd.fifo
echo "# cat /var/run/isakmpd.result" >> $TMPLOG
cat /var/run/isakmpd.result >> $TMPLOG
echo "# grep isakmpd /var/log/daemon | tail -n 10" >> $TMPLOG
grep isakmpd /var/log/daemon | tail -n 10 >> $TMPLOG
echo "======================== ! $DATE ! ==========================="
>> $TMPLOG
cat $TMPLOG >> $LOGFILE
cat $TMPLOG | mail -s "`hostname -s`: obsd vpn problem" $MAIL;
fi
obsd49c:~#
The difference in /root/test_vpn.sh script on both VPN peers is as follows:
obsd49c:~# grep ping /root/test_vpn.sh
OUTPUT_PING="`ping -q -c 2 -n -w 1 -I 192.168.186.1 192.168.185.1`"
obsd49b:~# grep ping /root/test_vpn.sh
OUTPUT_PING="`ping -q -c 2 -n -w 1 -I 192.168.185.1 192.168.186.1`"
---------------------------------------------------------------------
The problem with different IPSEC SA keys (authkey and enckey) on both peers,
also exists, when OpenBSD 4.9 is being run.
Here I present the IPSEC SA which was added on both hosts at the time specified
by epoch 1305309153, which is 'Fri May 13 19:52:33 CEST 2011'
* Some collected log data from peers being the result of the test_vpn.sh
script, which was presented above:
obsd49c:~# cat /tmp/test_vpn-20110513-195304
======================= ! obsd vpn problem ! ==========================
# ipsecctl -s all -v -k
FLOWS:
flow esp in from 192.168.185.0/24 to 192.168.186.0/24 peer 192.168.10.185 srcid
192.168.10.186/32 dstid 192.168.10.185/32 type use
flow esp out from 192.168.186.0/24 to 192.168.185.0/24 peer 192.168.10.185
srcid 192.168.10.186/32 dstid 192.168.10.185/32 type require
SAD:
esp tunnel from 192.168.10.186 to 192.168.10.185 spi 0xccb89ba7 auth hmac-sha1
enc aes \
authkey 0xc79028dd91e9e6190ab68e992efdaa5e0c085865 \
enckey 0x60c9b30e5367e39af15875485a7ffe81
sa: spi 0xccb89ba7 auth hmac-sha1 enc aes
state mature replay 16 flags 4
lifetime_cur: alloc 0 bytes 168 add 1305309153 first 1305309184
lifetime_hard: alloc 0 bytes 0 add 120 first 0
lifetime_soft: alloc 0 bytes 0 add 108 first 0
address_src: 192.168.10.186
address_dst: 192.168.10.185
key_auth: bits 160: c79028dd91e9e6190ab68e992efdaa5e0c085865
key_encrypt: bits 128: 60c9b30e5367e39af15875485a7ffe81
identity_src: type prefix id 0: 192.168.10.186/32
identity_dst: type prefix id 0: 192.168.10.185/32
src_mask: 255.255.255.0
dst_mask: 255.255.255.0
protocol: proto 0 flags 0
flow_type: type use direction out
src_flow: 192.168.186.0
dst_flow: 192.168.185.0
lifetime_lastuse: alloc 0 bytes 0 add 0 first 1305309185
esp tunnel from 192.168.10.185 to 192.168.10.186 spi 0xeffb7477 auth hmac-sha1
enc aes \
authkey 0xd5ea7237843897ab0fd31454a17fcdc71b16380c \
enckey 0xa414d3a2e0d8d76875f0345ed4087671
sa: spi 0xeffb7477 auth hmac-sha1 enc aes
state mature replay 16 flags 4
lifetime_cur: alloc 0 bytes 192 add 1305309153 first 1305309181
lifetime_hard: alloc 0 bytes 0 add 120 first 0
lifetime_soft: alloc 0 bytes 0 add 108 first 0
address_src: 192.168.10.185
address_dst: 192.168.10.186
key_auth: bits 160: d5ea7237843897ab0fd31454a17fcdc71b16380c
key_encrypt: bits 128: a414d3a2e0d8d76875f0345ed4087671
identity_src: type prefix id 0: 192.168.10.185/32
identity_dst: type prefix id 0: 192.168.10.186/32
src_mask: 255.255.255.0
dst_mask: 255.255.255.0
protocol: proto 0 flags 0
flow_type: type use direction in
src_flow: 192.168.185.0
dst_flow: 192.168.186.0
# echo 'S' > /var/run/isakmpd.fifo
# cat /var/run/isakmpd.result
SA name: peer-192.168.10.185-local-192.168.10.186 (Phase 1/Initiator)
src: 192.168.10.186 dst: 192.168.10.185
Lifetime: 240 seconds
Soft timeout in 20 seconds
Hard timeout in 49 seconds
Flags 0x00000083
icookie f15023f69efe17d9 rcookie 11cdc191696d731d
SA name: from-192.168.186.0/24-to-192.168.185.0/24 (Phase 2)
src: 192.168.10.186 dst: 192.168.10.185
Lifetime: 120 seconds
Soft timeout in 30 seconds
Hard timeout in 47 seconds
Flags 0x00000003
SPI 0: ef95ad33
SPI 1: d7c080fb
Transform: IPsec ESP
Encryption key length: 16
Authentication key length: 20
Encryption algorithm: AES-128 (CBC)
Authentication algorithm: HMAC-SHA1
# grep isakmpd /var/log/daemon | tail -n 10
May 13 19:41:35 obsd49c isakmpd[8650]: isakmpd: quick mode done: src:
192.168.10.186 dst: 192.168.10.185
May 13 19:43:14 obsd49c isakmpd[8650]: isakmpd: phase 1 done: initiator id
192.168.10.186, responder id 192.168.10.185, src: 192.168.10.186 dst:
192.168.10.185
May 13 19:43:25 obsd49c isakmpd[8650]: isakmpd: quick mode done: src:
192.168.10.186 dst: 192.168.10.185
May 13 19:45:13 obsd49c isakmpd[8650]: isakmpd: quick mode done: src:
192.168.10.186 dst: 192.168.10.185
May 13 19:46:50 obsd49c isakmpd[8650]: isakmpd: phase 1 done: initiator id
192.168.10.186, responder id 192.168.10.185, src: 192.168.10.186 dst:
192.168.10.185
May 13 19:46:57 obsd49c isakmpd[8650]: isakmpd: quick mode done: src:
192.168.10.186 dst: 192.168.10.185
May 13 19:48:48 obsd49c isakmpd[8650]: isakmpd: quick mode done: src:
192.168.10.186 dst: 192.168.10.185
May 13 19:50:38 obsd49c isakmpd[8650]: isakmpd: phase 1 done: initiator id
192.168.10.186, responder id 192.168.10.185, src: 192.168.10.186 dst:
192.168.10.185
May 13 19:50:39 obsd49c isakmpd[8650]: isakmpd: quick mode done: src:
192.168.10.186 dst: 192.168.10.185
May 13 19:52:33 obsd49c isakmpd[8650]: isakmpd: quick mode done: src:
192.168.10.186 dst: 192.168.10.185
======================== ! 20110513-195304 ! ===========================
obsd49b:~# cat /tmp/test_vpn-20110513-195301
======================= ! obsd vpn problem ! ==========================
# ipsecctl -s all -v -k
FLOWS:
flow esp in from 192.168.186.0/24 to 192.168.185.0/24 peer 192.168.10.186 srcid
192.168.10.185/32 dstid 192.168.10.186/32 type use
flow esp out from 192.168.185.0/24 to 192.168.186.0/24 peer 192.168.10.186
srcid 192.168.10.185/32 dstid 192.168.10.186/32 type require
SAD:
esp tunnel from 192.168.10.186 to 192.168.10.185 spi 0xccb89ba7 auth hmac-sha1
enc aes \
authkey 0xb312c14353607c130ec684a5e0679b368d7d2838 \
enckey 0x4dac8589cb91cbe1e929e757d7e36192
sa: spi 0xccb89ba7 auth hmac-sha1 enc aes
state mature replay 16 flags 4
lifetime_cur: alloc 0 bytes 0 add 1305309153 first 0
lifetime_hard: alloc 0 bytes 0 add 120 first 0
lifetime_soft: alloc 0 bytes 0 add 108 first 0
address_src: 192.168.10.186
address_dst: 192.168.10.185
key_auth: bits 160: b312c14353607c130ec684a5e0679b368d7d2838
key_encrypt: bits 128: 4dac8589cb91cbe1e929e757d7e36192
identity_src: type prefix id 0: 192.168.10.186/32
identity_dst: type prefix id 0: 192.168.10.185/32
src_mask: 255.255.255.0
dst_mask: 255.255.255.0
protocol: proto 0 flags 0
flow_type: type use direction in
src_flow: 192.168.186.0
dst_flow: 192.168.185.0
esp tunnel from 192.168.10.185 to 192.168.10.186 spi 0xeffb7477 auth hmac-sha1
enc aes \
authkey 0x943750361cfba2a024fcc00f8ee5e9d2633e72ea \
enckey 0xf53107855c8d9ebbcfd4eef912f5f77a
sa: spi 0xeffb7477 auth hmac-sha1 enc aes
state mature replay 16 flags 4
lifetime_cur: alloc 0 bytes 168 add 1305309153 first 1305309181
lifetime_hard: alloc 0 bytes 0 add 120 first 0
lifetime_soft: alloc 0 bytes 0 add 108 first 0
address_src: 192.168.10.185
address_dst: 192.168.10.186
key_auth: bits 160: 943750361cfba2a024fcc00f8ee5e9d2633e72ea
key_encrypt: bits 128: f53107855c8d9ebbcfd4eef912f5f77a
identity_src: type prefix id 0: 192.168.10.185/32
identity_dst: type prefix id 0: 192.168.10.186/32
src_mask: 255.255.255.0
dst_mask: 255.255.255.0
protocol: proto 0 flags 0
flow_type: type use direction out
src_flow: 192.168.185.0
dst_flow: 192.168.186.0
lifetime_lastuse: alloc 0 bytes 0 add 0 first 1305309182
# echo 'S' > /var/run/isakmpd.fifo
# cat /var/run/isakmpd.result
SA name: peer-192.168.10.186-local-192.168.10.185 (Phase 1/Responder)
src: 192.168.10.185 dst: 192.168.10.186
Lifetime: 240 seconds
Soft timeout in 22 seconds
Hard timeout in 49 seconds
Flags 0x00000081
icookie f15023f69efe17d9 rcookie 11cdc191696d731d
SA name: from-192.168.185.0/24-to-192.168.186.0/24 (Phase 2)
src: 192.168.10.185 dst: 192.168.10.186
Lifetime: 120 seconds
Soft timeout in 32 seconds
Hard timeout in 48 seconds
Flags 0x00000001
SPI 0: d7c080fb
SPI 1: ef95ad33
Transform: IPsec ESP
Encryption key length: 16
Authentication key length: 20
Encryption algorithm: AES-128 (CBC)
Authentication algorithm: HMAC-SHA1
# grep isakmpd /var/log/daemon | tail -n 10
May 13 19:41:34 obsd49b isakmpd[29527]: isakmpd: quick mode done: src:
192.168.10.185 dst: 192.168.10.186
May 13 19:43:12 obsd49b isakmpd[29527]: isakmpd: phase 1 done: initiator id
192.168.10.186, responder id 192.168.10.185, src: 192.168.10.185 dst:
192.168.10.186
May 13 19:43:23 obsd49b isakmpd[29527]: isakmpd: quick mode done: src:
192.168.10.185 dst: 192.168.10.186
May 13 19:45:11 obsd49b isakmpd[29527]: isakmpd: quick mode done: src:
192.168.10.185 dst: 192.168.10.186
May 13 19:46:48 obsd49b isakmpd[29527]: isakmpd: phase 1 done: initiator id
192.168.10.186, responder id 192.168.10.185, src: 192.168.10.185 dst:
192.168.10.186
May 13 19:46:56 obsd49b isakmpd[29527]: isakmpd: quick mode done: src:
192.168.10.185 dst: 192.168.10.186
May 13 19:48:47 obsd49b isakmpd[29527]: isakmpd: quick mode done: src:
192.168.10.185 dst: 192.168.10.186
May 13 19:50:38 obsd49b isakmpd[29527]: isakmpd: phase 1 done: initiator id
192.168.10.186, responder id 192.168.10.185, src: 192.168.10.185 dst:
192.168.10.186
May 13 19:50:39 obsd49b isakmpd[29527]: isakmpd: quick mode done: src:
192.168.10.185 dst: 192.168.10.186
May 13 19:52:33 obsd49b isakmpd[29527]: isakmpd: quick mode done: src:
192.168.10.185 dst: 192.168.10.186
======================== ! 20110513-195301 ! ===========================
* And here I present selected traffic between two peers to set up SA:
# tcpdump -r /var/run/isakmpd.pcap -nvvvl
[...]
19:50:38.384045 192.168.10.186.500 > 192.168.10.185.500: [udp sum ok] isakmp
v1.0 exchange ID_PROT
cookie: 59f6f1f1d74c27ea->0000000000000000 msgid: 00000000 len: 184
payload: SA len: 56 DOI: 1(IPSEC) situation: IDENTITY_ONLY
payload: PROPOSAL len: 44 proposal: 1 proto: ISAKMP spisz: 0
xforms: 1
payload: TRANSFORM len: 36
transform: 0 ID: ISAKMP
attribute ENCRYPTION_ALGORITHM = AES_CBC
attribute HASH_ALGORITHM = SHA
attribute AUTHENTICATION_METHOD = PRE_SHARED
attribute GROUP_DESCRIPTION = MODP_1024
attribute LIFE_TYPE = SECONDS
attribute LIFE_DURATION = 240
attribute KEY_LENGTH = 128
payload: VENDOR len: 20 (supports OpenBSD-4.0)
payload: VENDOR len: 20 (supports v2 NAT-T,
draft-ietf-ipsec-nat-t-ike-02)
payload: VENDOR len: 20 (supports v3 NAT-T,
draft-ietf-ipsec-nat-t-ike-03)
payload: VENDOR len: 20 (supports NAT-T, RFC 3947)
payload: VENDOR len: 20 (supports DPD v1.0) [ttl 0] (id 1, len 212)
19:50:38.391950 192.168.10.185.500 > 192.168.10.186.500: [udp sum ok] isakmp
v1.0 exchange ID_PROT
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: 00000000 len: 184
payload: SA len: 56 DOI: 1(IPSEC) situation: IDENTITY_ONLY
payload: PROPOSAL len: 44 proposal: 1 proto: ISAKMP spisz: 0
xforms: 1
payload: TRANSFORM len: 36
transform: 0 ID: ISAKMP
attribute ENCRYPTION_ALGORITHM = AES_CBC
attribute HASH_ALGORITHM = SHA
attribute AUTHENTICATION_METHOD = PRE_SHARED
attribute GROUP_DESCRIPTION = MODP_1024
attribute LIFE_TYPE = SECONDS
attribute LIFE_DURATION = 240
attribute KEY_LENGTH = 128
payload: VENDOR len: 20 (supports OpenBSD-4.0)
payload: VENDOR len: 20 (supports v2 NAT-T,
draft-ietf-ipsec-nat-t-ike-02)
payload: VENDOR len: 20 (supports v3 NAT-T,
draft-ietf-ipsec-nat-t-ike-03)
payload: VENDOR len: 20 (supports NAT-T, RFC 3947)
payload: VENDOR len: 20 (supports DPD v1.0) [ttl 0] (id 1, len 212)
19:50:38.464133 192.168.10.186.500 > 192.168.10.185.500: [udp sum ok] isakmp
v1.0 exchange ID_PROT
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: 00000000 len: 228
payload: KEY_EXCH len: 132
payload: NONCE len: 20
payload: NAT-D len: 24
payload: NAT-D len: 24 [ttl 0] (id 1, len 256)
19:50:38.542845 192.168.10.185.500 > 192.168.10.186.500: [udp sum ok] isakmp
v1.0 exchange ID_PROT
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: 00000000 len: 228
payload: KEY_EXCH len: 132
payload: NONCE len: 20
payload: NAT-D len: 24
payload: NAT-D len: 24 [ttl 0] (id 1, len 256)
19:50:38.618213 192.168.10.186.500 > 192.168.10.185.500: [udp sum ok] isakmp
v1.0 exchange ID_PROT
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: 00000000 len: 64
payload: ID len: 12 type: IPV4_ADDR = 192.168.10.186
19:50:38.623723 192.168.10.185.500 > 192.168.10.186.500: [udp sum ok] isakmp
v1.0 exchange ID_PROT
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: 00000000 len: 76
payload: ID len: 12 type: IPV4_ADDR = 192.168.10.185
payload: HASH len: 24 [ttl 0] (id 1, len 104)
19:50:39.804720 192.168.10.186.500 > 192.168.10.185.500: [udp sum ok] isakmp
v1.0 exchange QUICK_MODE
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: d6684034 len: 292
payload: HASH len: 24
payload: SA len: 56 DOI: 1(IPSEC) situation: IDENTITY_ONLY
payload: PROPOSAL len: 44 proposal: 1 proto: IPSEC_ESP spisz: 4
xforms: 1 SPI: 0xb50940ed
payload: TRANSFORM len: 32
transform: 1 ID: AES
attribute LIFE_TYPE = SECONDS
attribute LIFE_DURATION = 120
attribute ENCAPSULATION_MODE = TUNNEL
attribute AUTHENTICATION_ALGORITHM = HMAC_SHA
attribute GROUP_DESCRIPTION = 2
attribute KEY_LENGTH = 128
payload: NONCE len: 20
payload: KEY_EXCH len: 132
payload: ID len: 16 type: IPV4_ADDR_SUBNET = 192.168.186.0/255.255.255.0
payload: ID len: 16 type: IPV4_ADDR_SUBNET =
192.168.185.0/255.255.255.0 [ttl 0] (id 1, len 320)
19:50:39.884290 192.168.10.185.500 > 192.168.10.186.500: [udp sum ok] isakmp
v1.0 exchange QUICK_MODE
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: d6684034 len: 300
payload: HASH len: 24
payload: SA len: 56 DOI: 1(IPSEC) situation: IDENTITY_ONLY
payload: PROPOSAL len: 44 proposal: 1 proto: IPSEC_ESP spisz: 4
xforms: 1 SPI: 0xb9c80865
payload: TRANSFORM len: 32
transform: 1 ID: AES
attribute LIFE_TYPE = SECONDS
attribute LIFE_DURATION = 120
attribute ENCAPSULATION_MODE = TUNNEL
attribute AUTHENTICATION_ALGORITHM = HMAC_SHA
attribute GROUP_DESCRIPTION = 2
attribute KEY_LENGTH = 128
payload: NONCE len: 20
payload: KEY_EXCH len: 132
payload: ID len: 16 type: IPV4_ADDR_SUBNET = 192.168.186.0/255.255.255.0
payload: ID len: 16 type: IPV4_ADDR_SUBNET =
192.168.185.0/255.255.255.0 [ttl 0] (id 1, len 328)
19:50:39.885794 192.168.10.186.500 > 192.168.10.185.500: [udp sum ok] isakmp
v1.0 exchange QUICK_MODE
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: d6684034 len: 52
payload: HASH len: 24 [ttl 0] (id 1, len 80)
19:50:48.107833 192.168.10.185.500 > 192.168.10.186.500: [udp sum ok] isakmp
v1.0 exchange INFO
cookie: a9cc0087f003fa2e->4438b6bcd18210bb msgid: e8df71d5 len: 76
payload: HASH len: 24
payload: DELETE len: 16 DOI: 1(IPSEC) proto: IPSEC_ESP nspis: 1
SPI: 0xbb8b5d84 [ttl 0] (id 1, len 104)
19:50:48.886696 192.168.10.185.500 > 192.168.10.186.500: [udp sum ok] isakmp
v1.0 exchange INFO
cookie: a9cc0087f003fa2e->4438b6bcd18210bb msgid: 0b6bcc52 len: 92
payload: HASH len: 24
payload: DELETE len: 28 DOI: 1(IPSEC) proto: ISAKMP nspis: 1
cookie: a9cc0087f003fa2e->4438b6bcd18210bb [ttl 0] (id 1, len 120)
19:52:33.082843 192.168.10.186.500 > 192.168.10.185.500: [udp sum ok] isakmp
v1.0 exchange QUICK_MODE
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: 078d8137 len: 292
payload: HASH len: 24
payload: SA len: 56 DOI: 1(IPSEC) situation: IDENTITY_ONLY
payload: PROPOSAL len: 44 proposal: 1 proto: IPSEC_ESP spisz: 4
xforms: 1 SPI: 0xeffb7477
payload: TRANSFORM len: 32
transform: 1 ID: AES
attribute LIFE_TYPE = SECONDS
attribute LIFE_DURATION = 120
attribute ENCAPSULATION_MODE = TUNNEL
attribute AUTHENTICATION_ALGORITHM = HMAC_SHA
attribute GROUP_DESCRIPTION = 2
attribute KEY_LENGTH = 128
payload: NONCE len: 20
payload: KEY_EXCH len: 132
payload: ID len: 16 type: IPV4_ADDR_SUBNET = 192.168.186.0/255.255.255.0
payload: ID len: 16 type: IPV4_ADDR_SUBNET =
192.168.185.0/255.255.255.0 [ttl 0] (id 1, len 320)
19:52:33.163537 192.168.10.185.500 > 192.168.10.186.500: [udp sum ok] isakmp
v1.0 exchange QUICK_MODE
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: 078d8137 len: 300
payload: HASH len: 24
payload: SA len: 56 DOI: 1(IPSEC) situation: IDENTITY_ONLY
payload: PROPOSAL len: 44 proposal: 1 proto: IPSEC_ESP spisz: 4
xforms: 1 SPI: 0xccb89ba7
payload: TRANSFORM len: 32
transform: 1 ID: AES
attribute LIFE_TYPE = SECONDS
attribute LIFE_DURATION = 120
attribute ENCAPSULATION_MODE = TUNNEL
attribute AUTHENTICATION_ALGORITHM = HMAC_SHA
attribute GROUP_DESCRIPTION = 2
attribute KEY_LENGTH = 128
payload: NONCE len: 20
payload: KEY_EXCH len: 132
payload: ID len: 16 type: IPV4_ADDR_SUBNET = 192.168.186.0/255.255.255.0
payload: ID len: 16 type: IPV4_ADDR_SUBNET =
192.168.185.0/255.255.255.0 [ttl 0] (id 1, len 328)
19:52:33.164938 192.168.10.186.500 > 192.168.10.185.500: [udp sum ok] isakmp
v1.0 exchange QUICK_MODE
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: 078d8137 len: 52
payload: HASH len: 24 [ttl 0] (id 1, len 80)
19:52:39.668305 192.168.10.185.500 > 192.168.10.186.500: [udp sum ok] isakmp
v1.0 exchange INFO
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: e977b269 len: 76
payload: HASH len: 24
payload: DELETE len: 16 DOI: 1(IPSEC) proto: IPSEC_ESP nspis: 1
SPI: 0xb9c80865 [ttl 0] (id 1, len 104)
19:53:03.598450 192.168.10.185.500 > 192.168.10.186.500: [udp sum ok] isakmp
v1.0 exchange INFO
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: 3418ec72 len: 92
payload: HASH len: 24
payload: NOTIFICATION len: 32
notification: STATUS_DPD_R_U_THERE seq 28751 [ttl 0] (id 1, len 120)
19:53:03.599562 192.168.10.186.500 > 192.168.10.185.500: [udp sum ok] isakmp
v1.0 exchange INFO
cookie: 59f6f1f1d74c27ea->ccc8c347bed815bf msgid: 7f052978 len: 84
payload: HASH len: 24
payload: NOTIFICATION len: 32
notification: STATUS_DPD_R_U_THERE_ACK seq 28751 [ttl 0] (id 1, len
112)
[...]
* By investigated the log file /var/log/test_vpn created by /root/test_vpn.sh
(described above), which is run from cron, I can see that previous
communication worked fine:
obsd49c:~# grep '^\[20110513-195[1-6]' /var/log/test_vpn
[20110513-195103] : PING 192.168.185.1 (192.168.185.1): 56 data bytes :---
192.168.185.1 ping statistics --- 2 packets transmitted, 2 packets received,
0.0% packet loss round-trip min/avg/max/std-dev = 2.369/2.651/2.934/0.287 ms
[20110513-195203] : PING 192.168.185.1 (192.168.185.1): 56 data bytes :---
192.168.185.1 ping statistics --- 2 packets transmitted, 2 packets received,
0.0% packet loss round-trip min/avg/max/std-dev = 2.624/2.831/3.039/0.214 ms
[20110513-195304] : :--- 192.168.185.1 ping statistics --- 2 packets
transmitted, 0 packets received, 100.0% packet loss
[20110513-195404] : :--- 192.168.185.1 ping statistics --- 2 packets
transmitted, 0 packets received, 100.0% packet loss
[20110513-195503] : PING 192.168.185.1 (192.168.185.1): 56 data bytes :---
192.168.185.1 ping statistics --- 2 packets transmitted, 2 packets received,
0.0% packet loss round-trip min/avg/max/std-dev = 2.677/2.860/3.044/0.191 ms
[20110513-195603] : PING 192.168.185.1 (192.168.185.1): 56 data bytes :---
192.168.185.1 ping statistics --- 2 packets transmitted, 2 packets received,
0.0% packet loss round-trip min/avg/max/std-dev = 1.940/2.332/2.724/0.392 ms
Only problematic IPSEC SAs with different keys (authkey and enckey) set on both
peers (obsd49b and obsd49c) do not work.
The described problem repeats every few hours for this configuration (default
lifetimes for phase 1 is 240secs and phase 2 is 120secs).
The problem exists and was tested on two vanilla OpenBSD 4.9 operating systems,
as well as, while using VPN configuration between OpenBSD 4.8 (peer1) and
OpenBSD 4.6 (peer2).
If you need any futher data please inform.
Best regards,
Pawel Wieleba