NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bin/47894: racoon w/NAT-T - pfkey update: wrong ports



The following reply was made to PR bin/47894; it has been noted by GNATS.

From: SUENAGA Hiroki <hsuenaga%openbsd.org@localhost>
To: gnats-bugs%NetBSD.org@localhost, gnats-admin%netbsd.org@localhost, 
 netbsd-bugs%netbsd.org@localhost, gergely%egervary.hu@localhost
Cc: 
Subject: Re: bin/47894: racoon w/NAT-T - pfkey update: wrong ports
Date: Fri, 13 Jun 2014 21:13:09 +0900

 Hi Gergely, thank you for your report.
 
 (2014/06/06 19:35), Egerváry Gergely wrote:
 >  Now I'm testing on NetBSD-6.99.43 (Tue Jun  3 23:27:56 CEST 2014) and
 >  still does not work when client is behind NAT, get udp/500 instead of
 >  udp/4500:
 
 I think your kernel receive the NAT-T port information correctly.
 But your kernel doen't respond to racoon with the received NAT-T
 information, so the racoon's log is broken.
 
 Please check your SAD using setkey command:
 
  # setkey -D
 
 You can find UDP information like:
 
   10.0.0.1[37905] 10.255.255.1[37905]
           esp-udp mode=transport spi=264954840(0x0fcae3d8) reqid=0(0x00000000)
 
 Soooo sorry, there is a byte-order bug... ntohs(37905) = 4500.
 I think there are more BUGs. I will continue to debug, please wait.
 
 
 Hi Christos, here is my patch. please check.
 
 cvs diff: Diffing netipsec
 Index: netipsec/key.c
 ===================================================================
 RCS file: /cvs/cvsroot/src/sys/netipsec/key.c,v
 retrieving revision 1.90
 diff -u -w -p -r1.90 key.c
 --- netipsec/key.c      5 Jun 2014 17:18:19 -0000       1.90
 +++ netipsec/key.c      13 Jun 2014 11:54:57 -0000
 @@ -5612,11 +5612,14 @@ key_getmsgbuf_x1(struct mbuf *m, const s
                 panic("key_getmsgbuf_x1: NULL pointer is passed");
 
         /* create new sadb_msg to reply. */
 -       n = key_gather_mbuf(m, mhp, 1, 9, SADB_EXT_RESERVED,
 +       n = key_gather_mbuf(m, mhp, 1, 15, SADB_EXT_RESERVED,
             SADB_EXT_SA, SADB_X_EXT_SA2,
             SADB_EXT_ADDRESS_SRC, SADB_EXT_ADDRESS_DST,
             SADB_EXT_LIFETIME_HARD, SADB_EXT_LIFETIME_SOFT,
 -           SADB_EXT_IDENTITY_SRC, SADB_EXT_IDENTITY_DST);
 +           SADB_EXT_IDENTITY_SRC, SADB_EXT_IDENTITY_DST,
 +           SADB_X_EXT_NAT_T_TYPE, SADB_X_EXT_NAT_T_SPORT,
 +           SADB_X_EXT_NAT_T_DPORT, SADB_X_EXT_NAT_T_OAI,
 +           SADB_X_EXT_NAT_T_OAR, SADB_X_EXT_NAT_T_FRAG);
         if (!n)
                 return NULL;
 
 
 -- 
 SUENAGA Hiroki <hsuenaga%netbsd.org@localhost>
 facebook.com/hiroki.suenaga
 
 PGP: 66B3 8939 6758 20BA F243  89EC 557A 8CFB ABA9 5E92
 


Home | Main Index | Thread Index | Old Index