netdev
[Top] [All Lists]

ipv6 ipsec tunnel mode produces broken packets

To: linux-kernel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx
Subject: ipv6 ipsec tunnel mode produces broken packets
From: Wichert Akkerman <wichert@xxxxxxxxx>
Date: Sun, 23 Mar 2003 11:37:49 +0100
Mail-followup-to: linux-kernel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.3.28i
I have been playing a bit with ipv6 ipsec support on a stock 2.5.65
kernel. Transport mode seems to work excellent, and I've been able
to talk to FreeBSD and OSX boxes using it.

I can't seem to get tunnelmode to work correctly though. Here is the
config that I feed to setkey:

add 3ffe:8280:10:1d0:290:27ff:fe2d:968c 2001:888:1037::bad:c0f:fee esp 666 -m 
tunnel -E 3des-cbc "210987654321098765432112";
add 2001:888:1037::bad:c0f:fee 3ffe:8280:10:1d0:290:27ff:fe2d:968c esp 666 -m 
tunnel -E 3des-cbc "210987654321098765432112";

add 3ffe:8280:10:1d0:290:27ff:fe2d:968c 2001:888:1037::bad:c0f:fee ah 666 -m 
tunnel -A hmac-md5 "6543210987654321";
add 2001:888:1037::bad:c0f:fee 3ffe:8280:10:1d0:290:27ff:fe2d:968c ah 666 -m 
tunnel -A hmac-md5  "6543210987654321";

spdadd 3ffe:8280:10:1d0:290:27ff:fe2d:968c/128 2001:888:1037::0/48 any -P out 
ipsec 
esp/tunnel/3ffe:8280:10:1d0:290:27ff:fe2d:968c-2001:888:1037::bad:c0f:fee/require
 
ah/tunnel/3ffe:8280:10:1d0:290:27ff:fe2d:968c-2001:888:1037::bad:c0f:fee/require;
spdadd 2001:888:1037::0/48 3ffe:8280:10:1d0:290:27ff:fe2d:968c/128 any -P in 
ipsec 
esp/tunnel/3ffe:8280:10:1d0:290:27ff:fe2d:968c-2001:888:1037::bad:c0f:fee/require
 
ah/tunnel/3ffe:8280:10:1d0:290:27ff:fe2d:968c-2001:888:1037::bad:c0f:fee/require;

3ffe:8280:10:1d0:290:27ff:fe2d:968c is my machine, and
2001:888:1037::bad:c0f:fee is a remote FreeBSD box. When I try to ping6
the remote machine tcpdump seems some 'interesting' traffic:

11:25:40.990850 tornado.wiggy.net > prut.net: 
AH(spi=0x0000029a,sumlen=16,seq=0x90): truncated-ip6 - 8061 bytes 
missing!1037::bad:c0f:fee:0:29a > 0:90:a945:bdc0:130:338f:30b8:c5d1: ip-proto-8 
8193 [class 0xe2] [flowlabel 0xd968c] (len 8193, hlim 136) [flowlabel 0x29a] 
(len 172, hlim 144)
11:25:42.014570 tornado.wiggy.net > prut.net: 
AH(spi=0x0000029a,sumlen=16,seq=0x91): truncated-ip6 - 8061 bytes 
missing!1037::bad:c0f:fee:0:29a > 0:91:9bc6:ed67:e7ce:8d58:ade2:2d57: 
ip-proto-8 8193 [class 0xe2] [flowlabel 0xd968c] (len 8193, hlim 136) 
[flowlabel 0x29a] (len 172, hlim 145)

8061 bytes missing from a packet strikes me as somewhat odd. If I look
at the packet with ethereal it looks as if the ESP transform produces 
incorrect data; I can see part of the destination address in the source
address. I have attached the tcpdump to this message. 

Wichert.

-- 
Wichert Akkerman <wichert@xxxxxxxxx>           http://www.wiggy.net/
A random hacker

Attachment: dump
Description: Binary data

<Prev in Thread] Current Thread [Next in Thread>
  • ipv6 ipsec tunnel mode produces broken packets, Wichert Akkerman <=