ipv6 ipsec tunnel mode produces broken packets

From: Wichert Akkerman (wichert@wiggy.net)
Date: Sun Mar 23 2003 - 05:37:49 EST


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@wiggy.net>           http://www.wiggy.net/
A random hacker


- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Mar 23 2003 - 22:00:44 EST