[Openswan Users] impossible ISAKMP rekey using NAT-T ?

Ken Bantoft ken at xelerance.com
Mon Oct 25 11:38:15 CEST 2004


Thanks for the patch!

Merged into 2.1, 2.2 and HEAD.

Will be included in 2.1.7, 2.2.1 (released later today) and the
forthcoming 2.3.0.


On Mon, 2004-10-25 at 07:50, Andreas Steffen wrote:
> Hi,
> 
> I have fixed this bug in strongswan-2.2.2 with the attached patch.
> 
>  From the strongswan-2.2.2 ChangeLog:
> 
> - Fixed a bug occuring with NAT-Traversal enabled when the responder
>    suddenly turns initiator and the initiator cannot find a matching
>    connection because of the floated IKE port 4500.
> 
> Regards
> 
> Andreas
> 
> Paul Wouters wrote:
> > On Mon, 25 Oct 2004, albert agusti wrote:
> > 
> >> I'm trying to deploy a VPN ipsec between two nated host (for the moment
> >> testing only gw-gw traffic). Both behind same DSL routers not doing
> >> nothing like ipsec passthrough that could affect and both runing kernel
> >> 2.6 and openswan 2.2.0. When I rise the tunnel all goes fine, ruted and
> >> secured.
> >>
> >> The problem arises when timer for ISAKMP key reaches the limit. On both
> >> logs at the ends, lines like those appear:
> >>
> >> pluto[4172]: packet from R.R.R.R:10075: received Vendor ID payload
> >> [draft-ietf-ipsec-nat-t-ike-03]
> >> pluto[4172]: packet from R.R.R.R:10075: received Vendor ID payload
> >> [draft-ietf-ipsec-nat-t-ike-02] meth=107, but already using method 108
> >> pluto[4172]: packet from R.R.R.R:10075: received Vendor ID payload
> >> [draft-ietf-ipsec-nat-t-ike-00]
> >> pluto[4172]: packet from R.R.R.R:10075: initial Main Mode message
> >> received on 192.168.3.2:4500 but no connection has been authorized
> >>
> >> Key IS NEVER RENEGOTIATED!!, at the end the end SA expires, and some
> >> time latter (at ipsec_life), tunnel goes down
> > 
> > 
> > This is the third report of this in the last week, so I think we have
> > a bug here. This email was the only one which actually contained some
> > logfiles so we can better understand what is going on. I've filed it
> > in the bug tracker, and hopefully we'll have this fixed soon.
> > 
> > Paul
> > 
> >> If I try the same but DISABLING NAT-T, and for my surprise all goes fine
> >> and ISAKMP rekey can do it's job !!! Tunnel is not functional because I
> >> need UDP encapsulation, but the rest is going OK. The question is: did I
> >> miss something important ? the first sensation is that NAT-T is not
> >> doing his job right. Message is displayed in pluto talking about mapping
> >> between 500/4500, but the erros seems to be that it does not recognize
> >> the peer :-(
> >>
> >> My config at both ends is very simple. Something like this (with obious
> >> changes):
> >>
> >> conn albert
> >>        left=%defaultroute
> >>        leftid=@smaug.serialnet.net
> >>        leftsubnet=192.168.3.11/32
> >>        leftrsasigkey=0sA......
> >>        right=R.R.R.R
> >>        rightid=@glaurung.serialnet.net
> >>        rightsubnet=192.168.1.10/32
> >>        rightrsasigkey=0sAQOd......
> >>
> >> I've tested avoiding the use of %defaultroute and use the IP local
> >> adresses, I've tested to define %myid an config setup, but nothing
> >> changes.
> >> Anybody knows what's going on?
> >>
> >> Thanks in advance
> >> Albert Agustí
> 
> =======================================================================
> Andreas Steffen                   e-mail: andreas.steffen at strongsec.com
> strongSec GmbH                    home:   http://www.strongsec.com
> Alter Zürichweg 20                phone:  +41 1 730 80 64
> CH-8952 Schlieren (Switzerland)   fax:    +41 1 730 80 65
> ==========================================[strong internet security]===
> 
> ______________________________________________________________________
> --- strongswan-2.2.1/programs/pluto/ipsec_doi.c	Fri Sep 17 23:42:38 2004
> +++ strongswan-2.2.2/programs/pluto/ipsec_doi.c	Sun Oct  3 21:12:27 2004
> @@ -2963,10 +2963,18 @@
>      struct payload_digest *const sa_pd = md->chain[ISAKMP_NEXT_SA];
>      struct state *st;
>      struct connection *c = find_host_connection(&md->iface->addr, pluto_port
> -	, &md->sender, md->sender_port);
> +				, &md->sender, md->sender_port);
>      pb_stream r_sa_pbs;
>  
>      int vids_to_send = 0;
> +    
> +#ifdef NAT_TRAVERSAL
> +    if (c == NULL && md->iface->ike_float)
> +    {
> +	c = find_host_connection(&md->iface->addr, NAT_T_IKE_FLOAT_PORT
> +		, &md->sender, md->sender_port);
> +    }
> +#endif
>      
>      if (c == NULL)
>      {




More information about the Users mailing list