[Openswan Users]
Openswan 2.3.1 vs XP SP2 , malformed payload in packet
Elias Valea Peri
elias at jjec.com
Mon May 2 18:28:05 CEST 2005
Hello everybody
We've a VPN infrastructure running ok using Openswan from 2 years ago,
interconecting near to 100 Linux gateways and networks.
Recently we've tried to mount a IPSec/L2TP server to allow company users
(XP_SP2 and Pocket PCs) to connect to our network (thanks to Jacco de
Leeuw and Nate
Carlson impressive work!).
All the clients behind a client-side NAT are capable to connect to the VPN
and runnig ok, but surprising!! a few clients that are directly connected
to the
Internet and own a public IP (i.e using a modem) not.
Looking at the openswan logs the problem is always the same during the SA
establishment:
May 2 15:33:54 vpnsrv pluto[27852]: packet from <client-ip>:500: ignoring
Vendor ID payload [MS NT5 ISAKMPOAKLEY 00000004]
May 2 15:33:54 vpnsrv pluto[27852]: packet from <client-ip>:500: ignoring
Vendor ID payload [FRAGMENTATION]
May 2 15:33:54 vpnsrv pluto[27852]: packet from <client-ip>:500: received
Vendor ID payload [draft-ietf-ipsec-nat-t-ike-02_n] method set to=106
May 2 15:33:54 vpnsrv pluto[27852]: packet from <client-ip>:500: ignoring
Vendor ID payload [Vid-Initial-Contact]
May 2 15:33:54 vpnsrv pluto[27852]: "roadwarrior-l2tp"[2] <client-ip> #2:
responding to Main Mode from unknown peer <client-ip>
May 2 15:33:54 vpnsrv pluto[27852]: "roadwarrior-l2tp"[2] <client-ip> #2:
transition from state STATE_MAIN_R0 to state STATE_MAIN_R1
May 2 15:33:55 vpnsrv pluto[27852]: "roadwarrior-l2tp"[2] <client-ip> #2:
NAT-Traversal: Result using draft-ietf-ipsec-nat-t-ike-02/03: both are
NATed
May 2 15:33:55 vpnsrv pluto[27852]: "roadwarrior-l2tp"[2] <client-ip> #2:
transition from state STATE_MAIN_R1 to state STATE_MAIN_R2
May 2 15:33:56 vpnsrv pluto[27852]: "roadwarrior-l2tp"[2] <client-ip> #2:
next payload type of ISAKMP Hash Payload has an unknown value: 105
May 2 15:33:56 vpnsrv pluto[27852]: "roadwarrior-l2tp"[2] <client-ip> #2:
malformed payload in packet
May 2 15:33:56 vpnsrv pluto[27852]: "roadwarrior-l2tp"[2] <client-ip> #2:
sending notification PAYLOAD_MALFORMED to <client-ip>:500
May 2 15:33:56 vpnsrv pluto[27852]: "roadwarrior-l2tp"[2] <client-ip> #2:
failed to build notification for spisize=0
May 2 15:33:56 vpnsrv pluto[27852]: "roadwarrior-l2tp"[2] <client-ip> #2:
next payload type of ISAKMP Hash Payload has an unknown value: 128
May 2 15:33:56 vpnsrv pluto[27852]: "roadwarrior-l2tp"[2] <client-ip> #2:
malformed payload in packet
'malformed payload in packet','failed to build notification', 'incorrect
Payload Hash...'
It seems that there is something between the clients and the server that
'modifies' the packets, or that some packet fragments doesnt arrives to
the
server...
We've tried :
- Using forceencaps to force NAT-T works (you can see it in the log 'both
are NATed')
- Apply the recently addded (experimental) NAT-OA patch
- Allow Transport-mode NAT and switch to Transport
- investigate about IPSec-passthrough devices between server and clients,
but there're many ISPs involved and is difficult to detect...
... but the problem remains
A few words about the infrastructure:
- Clients :
XP SP2 fully patched, or Ms Pocket PC 2003 (4.20.0)
- Server :
owns a public IP (not natted, but firewalled -> ESP/AH, UDP500 and UDP4500
allowed)
kernel 2.6.10
openswan 2.3.1
l2tpd 0.69 (brings the clients a virtual-IP inside a private-DMZ)
x.509 authentication
Excerpt from ipsec.conf :
version 2.0
config setup
interfaces=%defaultroute
nat_traversal=yes
klipsdebug=none
plutodebug=none
virtual_private=%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:192.168.0.0/16
uniqueids=yes
conn %default
keyingtries=3
compress=yes
disablearrivalcheck=no
authby=rsasig
leftrsasigkey=%cert
rightrsasigkey=%cert
forceencaps=yes
conn exclude-lo
authby=never
left=127.0.0.1
leftsubnet=127.0.0.0/8
right=127.0.0.2
rightsubnet=127.0.0.0/8
type=passthrough
auto=route
#Disable Opportunistic Encryption
include /etc/ipsec.d/examples/no_oe.conf
conn roadwarrior-l2tp
left=<Server-public-ip>
leftcert=/etc/ipsec.d/certs/ServerCert.pem
leftid="/C=xx/ST=XXX/O=XXXX/OU=XX/CN=x.x.x/emailAddress=x at x"
leftprotoport=17/1701
right=%any
rightid="/C=yy/ST=YYY/O=YYYY/OU=YY/CN=yyyyyyy/emailAddress=y at y"
rightprotoport=17/1701
rightsubnet=vhost:%no,%priv
pfs=no
auto=add
... any proposal will be very thankful
... thanks in advance
More information about the Users
mailing list