[strongSwan] Number of NAT-OA payloads sent on IKEv1 transport mode NAT traversal
Andreas Steffen
andreas.steffen at strongswan.org
Wed Oct 13 19:13:37 CEST 2010
Actually we kind of reluctantly support IPsec transport mode in
the presence of NAT. This is why you must explicitly enable this
mode with --enable-nat-transport.
You are free to contribute full NAT support for IPsec transport mode
to the strongSwan project. Our interests are clearly elsewhere.
Kind regards
Andreas
On 10/13/2010 06:45 PM, IPSec Interest Group wrote:
> Hi,
> I am trying to establish an IKEv1 transport mode tunnel that
> traverses a NAT, but the quick mode negotiation is failing because
> StrongSwan is not sending the expected number of NAT-OA payloads. My
> understanding of RFC 3947 is that two NAT-OA payloads should be sent in
> each direction of the quick mode exchange in transport mode:
>
> In the case of transport mode, both ends MUST send both original
> Initiator and Responder addresses to the other end. For tunnel mode,
> both ends SHOULD NOT send original addresses to the other end.
>
>
> StrongSwan includes a vendor ID payload for RFC 3947, but it only
> sends one NAT-OA payload, so the tunnel negotiation is failing with an
> indication that the responder received a malformed payload. Am I
> misunderstanding something here? It appears StrongSwan isn't
> conforming to RFC3947 for IKEv1 transport mode.
>
> Thank you for your help!
> FYI: Here are the trace excerpts for the vendor id and the sending
> of the NAT-OA payloads.
>
> Oct 13 12:28:31 linux125 pluto[7549]: | emitting length of ISAKMP Vendor
> ID Payload: 20
> Oct 13 12:28:31 linux125 pluto[7549]: | out_vendorid(): sending [RFC 3947]
> Oct 13 12:28:31 linux125 pluto[7549]: | ***emit ISAKMP Vendor ID Payload:
> Oct 13 12:28:31 linux125 pluto[7549]: | next payload type:
> ISAKMP_NEXT_VID
>
>
> Oct 13 12:30:51 linux125 pluto[7549]: | emitting 4 raw bytes of client network into ISAKMP Identification Payload (IPsec DOI)
>
> Oct 13 12:30:51 linux125 pluto[7549]: | client network c0 a8 32 08
> Oct 13 12:30:51 linux125 pluto[7549]: | emitting length of ISAKMP Identification Payload (IPsec DOI): 12
>
> Oct 13 12:30:51 linux125 pluto[7549]: | ***emit ISAKMP Identification Payload (IPsec DOI):
>
> Oct 13 12:30:51 linux125 pluto[7549]: | next payload type: ISAKMP_NEXT_NAT-OA
>
> Oct 13 12:30:51 linux125 pluto[7549]: | ID type: ID_IPV4_ADDR
> Oct 13 12:30:51 linux125 pluto[7549]: | Protocol ID: 0
>
> Oct 13 12:30:51 linux125 pluto[7549]: | port: 0
> Oct 13 12:30:51 linux125 pluto[7549]: | emitting 4 raw bytes of client network into ISAKMP Identification Payload (IPsec DOI)
>
> Oct 13 12:30:51 linux125 pluto[7549]: | client network c0 a8 31 04
> Oct 13 12:30:51 linux125 pluto[7549]: | emitting length of ISAKMP Identification Payload (IPsec DOI): 12
>
> Oct 13 12:30:51 linux125 pluto[7549]: | ***emit ISAKMP NAT-OA Payload:
> Oct 13 12:30:51 linux125 pluto[7549]: | next payload type: ISAKMP_NEXT_NONE
>
> Oct 13 12:30:51 linux125 pluto[7549]: | ID type: ID_IPV4_ADDR
> Oct 13 12:30:51 linux125 pluto[7549]: | emitting 4 raw bytes of NAT-OA into ISAKMP NAT-OA Payload
>
> Oct 13 12:30:51 linux125 pluto[7549]: | NAT-OA c0 a8 32 08
> Oct 13 12:30:51 linux125 pluto[7549]: | NAT-OA (S): c0 a8 32 08
>
> Oct 13 12:30:51 linux125 pluto[7549]: | emitting length of ISAKMP NAT-OA Payload: 12
>
> Oct 13 12:30:51 linux125 pluto[7549]: | HASH(1) computed:
> Oct 13 12:30:51 linux125 pluto[7549]: | 22 e0 e0 27 ea 47 04 cf 43 8b f9 12 16 1e d1 98
>
> Oct 13 12:30:51 linux125 pluto[7549]: | last Phase 1 IV: 44 7b 00 db a9 aa ba 2a
>
> Oct 13 12:30:51 linux125 pluto[7549]: | computed Phase 2 IV:
> Oct 13 12:30:51 linux125 pluto[7549]: | c9 6a 22 8d 5e 2b e6 95 f6 5f 8d 17 cd dc 37 a8
>
> Oct 13 12:30:51 linux125 pluto[7549]: | encrypting:
> Oct 13 12:30:51 linux125 pluto[7549]: | 01 00 00 14 22 e0 e0 27 ea 47 04 cf 43 8b f9 12
>
> Oct 13 12:30:51 linux125 pluto[7549]: | 16 1e d1 98 0a 00 00 30 00 00 00 01 00 00 00 01
>
> Oct 13 12:30:51 linux125 pluto[7549]: | 00 00 00 24 00 03 04 01 0b d6 c6 cb 00 00 00 18
>
> Oct 13 12:30:51 linux125 pluto[7549]: | 00 03 00 00 80 04 00 04 80 01 00 01 80 02 0e 10
>
> Oct 13 12:30:51 linux125 pluto[7549]: | 80 05 00 01 05 00 00 14 c1 59 f6 83 e9 2e 00 08
>
> Oct 13 12:30:51 linux125 pluto[7549]: | 4a fe be 06 80 3e f8 0a 05 00 00 0c 01 00 00 00
>
> Oct 13 12:30:51 linux125 pluto[7549]: | c0 a8 32 08 15 00 00 0c 01 00 00 00 c0 a8 31 04
>
> Oct 13 12:30:51 linux125 pluto[7549]: | 00 00 00 0c 01 00 00 00 c0 a8 32 08
>
> Oct 13 12:30:51 linux125 pluto[7549]: | emitting 4 zero bytes of encryption padding into ISAKMP Message
>
> Oct 13 12:30:51 linux125 pluto[7549]: | encrypting using 3DES_CBC
> Oct 13 12:30:51 linux125 pluto[7549]: | next IV: ac 0e f4 48 75 9f 06 42
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.strongswan.org
> https://lists.strongswan.org/mailman/listinfo/users
--
======================================================================
Andreas Steffen andreas.steffen at strongswan.org
strongSwan - the Linux VPN Solution! www.strongswan.org
Institute for Internet Technologies and Applications
University of Applied Sciences Rapperswil
CH-8640 Rapperswil (Switzerland)
===========================================================[ITA-HSR]==
More information about the Users
mailing list