Hi,
For the last weeks, i've been debugging a problem with the following setup:
windows 2000 laptop - NAT'ing linux iptables firewall - windows 2000 vpn
server
the vpn solution is standard microsoft ipsec, ESP in tunnel mode
keys are public/private keys based on our company's active directory
(whatever that means).
the many (sometimes) conflicting documents i read about this suggest that it
is possible, under certain circumstances:
- if AH (authentication header) protocol is used, just forget about , not
possible with NAT (not in my case fortunately)
- if ESP is used, it depends if tunnel or transport mode is used.
for tunnel mode, it should work if client and server agree to do udp
encapsulation (I suppose that they mean that the client and server are NAT-T
compatible).
Our network guys have confirmed me that their solution is indeed NAT-T
compatible
when i try to start a vpn connection while my laptop is behind the nat'ing
firewall, i made the following observations with a network sniffer:
i tried to verify the packet exchange between 2 situations:
1) directly connected, no firewall in between (it works this way)
2) behind the firewall (does not work).
I noticed (thank you ethereal network sniffer) this:
the first packets that are exchanged seem similar in both cases:
5 packets between client and server, from udp 500 to udp 500
after that 2 fragmented udp packets (i can't see more details about it, not
in ethereal, nor with tcpdump)
then in the 8th packet i see a difference:
this is an isakmp packet (udp 500 to udp 500),
but when the laptop is connected directly, i see in the isakmp part of the
packet,
next payload: key exchange (4), flags: no encryption, no commit, no
authentication
and in the other case (behind firewall),:
next payload: identification (5), encryption, no commit, no authentication
the packet in the ok situation has some other headers like key exchange
payload, nonce payload, certificate request payload, while in the bad packet
, i see none of thease headers (just: encrypted payload: 4432 bytes).
It's as if at that time, the key exhcange is stopped because the NAT'ing
interfered somehow ???
Just for the record, there are NO dropped packets because of firewall
limitations, at least not as far as i could tell.
Any ideas what to do next ?
I'm almost ready to throw in the towel, cause i'm getting buried deep in the
nitty gritty of the ipsec protocol, just thought i'd ask the all-knowing
usenet audience for some ultimate guidance :)
thank you,
Tom.