From owner-freebsd-net@FreeBSD.ORG Fri Jan 15 04:43:46 2010 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 81920106566C for ; Fri, 15 Jan 2010 04:43:46 +0000 (UTC) (envelope-from erik@malcolm.berkeley.edu) Received: from malcolm.berkeley.edu (malcolm.Berkeley.EDU [IPv6:2607:f140:ffff:ffff::239]) by mx1.freebsd.org (Postfix) with ESMTP id 6047A8FC08 for ; Fri, 15 Jan 2010 04:43:46 +0000 (UTC) Received: from malcolm.berkeley.edu (localhost [127.0.0.1]) by malcolm.berkeley.edu (8.14.3/8.13.8m1) with ESMTP id o0F4hiix031801 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 14 Jan 2010 20:43:44 -0800 (PST) (envelope-from erik@malcolm.berkeley.edu) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.95.3 at malcolm.berkeley.edu Received: (from erik@localhost) by malcolm.berkeley.edu (8.14.3/8.13.3/Submit) id o0F4hifJ031800; Thu, 14 Jan 2010 20:43:44 -0800 (PST) (envelope-from erik) Date: Thu, 14 Jan 2010 20:43:44 -0800 From: Erik Klavon To: Julian Elischer Message-ID: <20100115044344.GA30725@malcolm.berkeley.edu> References: <20100114224635.GA27139@malcolm.berkeley.edu> <4B4FB547.8000202@elischer.org> <20100115014254.GA29258@malcolm.berkeley.edu> <4B4FD270.7010808@elischer.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4B4FD270.7010808@elischer.org> User-Agent: Mutt/1.4.2.3i X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.3 (malcolm.berkeley.edu [127.0.0.1]); Thu, 14 Jan 2010 20:43:44 -0800 (PST) Cc: freebsd-net@freebsd.org Subject: Re: netgraph mkpeer and connect failures with ng_ipfw and ng_nat X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jan 2010 04:43:46 -0000 On Thu, Jan 14, 2010 at 06:26:56PM -0800, Julian Elischer wrote: > Erik Klavon wrote: > >On Thu, Jan 14, 2010 at 04:22:31PM -0800, Julian Elischer wrote: > >>Erik Klavon wrote: > >>>Here are the hooks for one ng_nat(4) node of interest. At the time I > >>>obtained this information, this node was working correctly. Everything > >>>in this output looks correct. > >>> > >>>sudo ngctl show ipfw:202182138 > >>> Name: WirelessNAT2182138 Type: nat ID: 000062ee Num > >>> hooks: 2 > >>> Local hook Peer name Peer type Peer ID Peer hook > >>> ---------- --------- --------- ------- --------- > >>> in ipfw ipfw 00005a83 102182138 > >>> out ipfw ipfw 00005a83 202182138 > >>> > >>>sudo ngctl msg ipfw:102182138 listredirects > >>>Rec'd response "listredirects" (10) from "[62ee]:": > >>>Args: { total_count=1 redirects=[ { id=1 local_addr=10.10.118.43 > >>>alias_addr=136.152.182.138 proto=259 description="Static NAT" } ] } > >>> > >>>Running show on ipfw:102174202, I see that this hook is pointing to > >>>the above ng_nat(4) node WirelessNAT2182138. > >>can you show that output? > > > >The output for ngctl show ipfw:102174202 is below. > > how about the output for ipfw: ? For that example (obtained a couple of days ago) I don't have output for show ipfw: recorded. I'll try to find a similar case tomorrow during the period of time when these problems occur. I'm currently collecting the output from the following commands every minute, in addition to all of the ngctl calls and output. /usr/bin/vmstat -mzs /usr/bin/netstat -m /usr/sbin/ngctl list /usr/sbin/ngctl show ipfw: /sbin/ipfw table 87 list /sbin/ipfw table 88 list >From today, here are examples of the mkpeer and connect errors with output from ngctl list and show just after the error. As in the earlier examples, each case is the first time the globally routable address was used since the machine booted. Jan 14 08:28:08 nac[70382]: /usr/sbin/ngctl -d mkpeer ipfw: nat 202174135 out Jan 14 08:28:08 nac[70388]: /usr/sbin/ngctl -d name ipfw:202174135 WirelessNAT2174135 Jan 14 08:28:08 nac[70394]: /usr/sbin/ngctl -d connect ipfw: WirelessNAT2174135: 102174135 in Jan 14 08:28:08 nac[70399]: ngctl: sendto(ipfw:): File exists Jan 14 08:28:08 nac[70399]: ngctl: send msg: File exists Thu Jan 14 08:29:01 PST 2010 /usr/sbin/ngctl list There are 62 total nodes: Name: WirelessNAT2132142 Type: nat ID: 0000019e Num hooks: 2 Name: WirelessNAT2172040 Type: nat ID: 000002ef Num hooks: 2 Name: WirelessNAT2173201 Type: nat ID: 000002c0 Num hooks: 2 Name: WirelessNAT2132017 Type: nat ID: 000001b2 Num hooks: 2 Name: WirelessNAT2183201 Type: nat ID: 0000023f Num hooks: 2 Name: WirelessNAT2183102 Type: nat ID: 000001c6 Num hooks: 2 Name: WirelessNAT2173220 Type: nat ID: 00000010 Num hooks: 2 Name: WirelessNAT2172132 Type: nat ID: 0000029f Num hooks: 2 Name: WirelessNAT2173033 Type: nat ID: 000002db Num hooks: 2 Name: WirelessNAT2183212 Type: nat ID: 000002b0 Num hooks: 2 Name: WirelessNAT2173025 Type: nat ID: 00000271 Num hooks: 2 Name: WirelessNAT2173061 Type: nat ID: 000001f2 Num hooks: 2 Name: WirelessNAT2132147 Type: nat ID: 000001e6 Num hooks: 2 Name: WirelessNAT2183051 Type: nat ID: 000001d0 Num hooks: 2 Name: WirelessNAT2172216 Type: nat ID: 000002cf Num hooks: 2 Name: WirelessNAT2182071 Type: nat ID: 0000020e Num hooks: 2 Name: WirelessNAT2183115 Type: nat ID: 000001ec Num hooks: 2 Name: WirelessNAT2182233 Type: nat ID: 000001d8 Num hooks: 2 Name: WirelessNAT2182009 Type: nat ID: 00000309 Num hooks: 2 Name: WirelessNAT2173144 Type: nat ID: 000002fd Num hooks: 2 Name: WirelessNAT2174107 Type: nat ID: 000002e3 Num hooks: 2 Name: WirelessNAT2173180 Type: nat ID: 0000027f Num hooks: 2 Name: WirelessNAT2173171 Type: nat ID: 00000279 Num hooks: 2 Name: WirelessNAT2172073 Type: nat ID: 00000208 Num hooks: 2 Name: WirelessNAT2182226 Type: nat ID: 0000030f Num hooks: 2 Name: WirelessNAT2174135 Type: nat ID: 00000305 Num hooks: 1 Name: WirelessNAT2183171 Type: nat ID: 000002f7 Num hooks: 2 Name: WirelessNAT2173235 Type: nat ID: 000002e9 Num hooks: 2 Name: WirelessNAT2175215 Type: nat ID: 0000028f Num hooks: 2 Name: WirelessNAT2172038 Type: nat ID: 00000263 Num hooks: 2 Name: WirelessNAT2175035 Type: nat ID: 0000025b Num hooks: 2 Name: WirelessNAT2172065 Type: nat ID: 000001a8 Num hooks: 2 Name: WirelessNAT2132096 Type: nat ID: 00000134 Num hooks: 2 Name: UnauthNat Type: nat ID: 00000004 Num hooks: 2 Name: WirelessNAT2175162 Type: nat ID: 00000315 Num hooks: 2 Name: WirelessNAT2183226 Type: nat ID: 000002d5 Num hooks: 2 Name: WirelessNAT2132178 Type: nat ID: 000002b8 Num hooks: 2 Name: WirelessNAT2175045 Type: nat ID: 00000297 Num hooks: 2 Name: WirelessNAT2182254 Type: nat ID: 00000255 Num hooks: 2 Name: WirelessNAT2132088 Type: nat ID: 00000245 Num hooks: 2 Name: WirelessNAT2183127 Type: nat ID: 00000228 Num hooks: 2 Name: WirelessNAT2173146 Type: nat ID: 0000021c Num hooks: 2 Name: WirelessNAT2183163 Type: nat ID: 00000198 Num hooks: 2 Name: WirelessNAT2172147 Type: nat ID: 00000188 Num hooks: 2 Name: WirelessNAT2182129 Type: nat ID: 000002c8 Num hooks: 2 Name: WirelessNAT2183173 Type: nat ID: 00000287 Num hooks: 2 Name: WirelessNAT2175064 Type: nat ID: 00000269 Num hooks: 2 Name: WirelessNAT2183083 Type: nat ID: 0000024f Num hooks: 2 Name: WirelessNAT2182255 Type: nat ID: 00000237 Num hooks: 2 Name: WirelessNAT2172085 Type: nat ID: 00000231 Num hooks: 2 Name: WirelessNAT2172157 Type: nat ID: 000001c0 Num hooks: 2 Name: WirelessNAT2174083 Type: nat ID: 000001ba Num hooks: 2 Name: WirelessNAT2173066 Type: nat ID: 00000174 Num hooks: 2 Name: WirelessNAT2132098 Type: nat ID: 0000016c Num hooks: 2 Name: WirelessNAT2173094 Type: nat ID: 00000190 Num hooks: 2 Name: WirelessNAT2173166 Type: nat ID: 00000154 Num hooks: 2 Name: WirelessNAT2183229 Type: nat ID: 00000126 Num hooks: 2 Name: WirelessNAT2173186 Type: nat ID: 00000200 Num hooks: 2 Name: WirelessNAT2175067 Type: nat ID: 000001f8 Num hooks: 2 Name: WirelessNAT2173179 Type: nat ID: 000002a8 Num hooks: 2 Name: ngctl73558 Type: socket ID: 0000031a Num hooks: 0 Name: ipfw Type: ipfw ID: 00000001 Num hooks: 119 /usr/sbin/ngctl show ipfw: Name: ipfw Type: ipfw ID: 00000001 Num hooks: 119 Local hook Peer name Peer type Peer ID Peer hook ---------- --------- --------- ------- --------- 102175162 WirelessNAT2175162 nat 00000315 in 202175162 WirelessNAT2175162 nat 00000315 out 102182226 WirelessNAT2182226 nat 0000030f in 202182226 WirelessNAT2182226 nat 0000030f out 102182009 WirelessNAT2182009 nat 00000309 in 202182009 WirelessNAT2182009 nat 00000309 out 202174135 WirelessNAT2174135 nat 00000305 out 102173144 WirelessNAT2173144 nat 000002fd in 202173144 WirelessNAT2173144 nat 000002fd out 102183171 WirelessNAT2183171 nat 000002f7 in 202183171 WirelessNAT2183171 nat 000002f7 out 102172040 WirelessNAT2172040 nat 000002ef in 202172040 WirelessNAT2172040 nat 000002ef out 102173235 WirelessNAT2173235 nat 000002e9 in 202173235 WirelessNAT2173235 nat 000002e9 out 102174107 WirelessNAT2174107 nat 000002e3 in 202174107 WirelessNAT2174107 nat 000002e3 out 102173033 WirelessNAT2173033 nat 000002db in 202173033 WirelessNAT2173033 nat 000002db out 102183226 WirelessNAT2183226 nat 000002d5 in 202183226 WirelessNAT2183226 nat 000002d5 out 102172216 WirelessNAT2172216 nat 000002cf in 202172216 WirelessNAT2172216 nat 000002cf out 102182129 WirelessNAT2182129 nat 000002c8 in 202182129 WirelessNAT2182129 nat 000002c8 out 102173201 WirelessNAT2173201 nat 000002c0 in 202173201 WirelessNAT2173201 nat 000002c0 out 102132178 WirelessNAT2132178 nat 000002b8 in 202132178 WirelessNAT2132178 nat 000002b8 out 102183212 WirelessNAT2183212 nat 000002b0 in 202183212 WirelessNAT2183212 nat 000002b0 out 102173179 WirelessNAT2173179 nat 000002a8 in 202173179 WirelessNAT2173179 nat 000002a8 out 102172132 WirelessNAT2172132 nat 0000029f in 202172132 WirelessNAT2172132 nat 0000029f out 102175045 WirelessNAT2175045 nat 00000297 in 202175045 WirelessNAT2175045 nat 00000297 out 102175215 WirelessNAT2175215 nat 0000028f in 202175215 WirelessNAT2175215 nat 0000028f out 102183173 WirelessNAT2183173 nat 00000287 in 202183173 WirelessNAT2183173 nat 00000287 out 102173180 WirelessNAT2173180 nat 0000027f in 202173180 WirelessNAT2173180 nat 0000027f out 102173171 WirelessNAT2173171 nat 00000279 in 202173171 WirelessNAT2173171 nat 00000279 out 102173025 WirelessNAT2173025 nat 00000271 in 202173025 WirelessNAT2173025 nat 00000271 out 102175064 WirelessNAT2175064 nat 00000269 in 202175064 WirelessNAT2175064 nat 00000269 out 102172038 WirelessNAT2172038 nat 00000263 in 202172038 WirelessNAT2172038 nat 00000263 out 102175035 WirelessNAT2175035 nat 0000025b in 202175035 WirelessNAT2175035 nat 0000025b out 102182254 WirelessNAT2182254 nat 00000255 in 202182254 WirelessNAT2182254 nat 00000255 out 102183083 WirelessNAT2183083 nat 0000024f in 202183083 WirelessNAT2183083 nat 0000024f out 102132088 WirelessNAT2132088 nat 00000245 in 202132088 WirelessNAT2132088 nat 00000245 out 102183201 WirelessNAT2183201 nat 0000023f in 202183201 WirelessNAT2183201 nat 0000023f out 102182255 WirelessNAT2182255 nat 00000237 in 202182255 WirelessNAT2182255 nat 00000237 out 102172085 WirelessNAT2172085 nat 00000231 in 202172085 WirelessNAT2172085 nat 00000231 out 102183127 WirelessNAT2183127 nat 00000228 in 202183127 WirelessNAT2183127 nat 00000228 out 102173146 WirelessNAT2173146 nat 0000021c in 202173146 WirelessNAT2173146 nat 0000021c out 102182071 WirelessNAT2182071 nat 0000020e in 202182071 WirelessNAT2182071 nat 0000020e out 102172073 WirelessNAT2172073 nat 00000208 in 202172073 WirelessNAT2172073 nat 00000208 out 102173186 WirelessNAT2173186 nat 00000200 in 202173186 WirelessNAT2173186 nat 00000200 out 102175067 WirelessNAT2175067 nat 000001f8 in 202175067 WirelessNAT2175067 nat 000001f8 out 102173061 WirelessNAT2173061 nat 000001f2 in 202173061 WirelessNAT2173061 nat 000001f2 out 102183115 WirelessNAT2183115 nat 000001ec in 202183115 WirelessNAT2183115 nat 000001ec out 102132147 WirelessNAT2132147 nat 000001e6 in 202132147 WirelessNAT2132147 nat 000001e6 out 102182233 WirelessNAT2182233 nat 000001d8 in 202182233 WirelessNAT2182233 nat 000001d8 out 102183051 WirelessNAT2183051 nat 000001d0 in 202183051 WirelessNAT2183051 nat 000001d0 out 102183102 WirelessNAT2183102 nat 000001c6 in 202183102 WirelessNAT2183102 nat 000001c6 out 102172157 WirelessNAT2172157 nat 000001c0 in 202172157 WirelessNAT2172157 nat 000001c0 out 102174083 WirelessNAT2174083 nat 000001ba in 202174083 WirelessNAT2174083 nat 000001ba out 102132017 WirelessNAT2132017 nat 000001b2 in 202132017 WirelessNAT2132017 nat 000001b2 out 102172065 WirelessNAT2172065 nat 000001a8 in 202172065 WirelessNAT2172065 nat 000001a8 out 102132142 WirelessNAT2132142 nat 0000019e in 202132142 WirelessNAT2132142 nat 0000019e out 102183163 WirelessNAT2183163 nat 00000198 in 202183163 WirelessNAT2183163 nat 00000198 out 102173094 WirelessNAT2173094 nat 00000190 in 202173094 WirelessNAT2173094 nat 00000190 out 102172147 WirelessNAT2172147 nat 00000188 in 202172147 WirelessNAT2172147 nat 00000188 out 102173066 WirelessNAT2173066 nat 00000174 in 202173066 WirelessNAT2173066 nat 00000174 out 102132098 WirelessNAT2132098 nat 0000016c in 202132098 WirelessNAT2132098 nat 0000016c out 102173166 WirelessNAT2173166 nat 00000154 in 202173166 WirelessNAT2173166 nat 00000154 out 102132096 WirelessNAT2132096 nat 00000134 in 202132096 WirelessNAT2132096 nat 00000134 out 102183229 WirelessNAT2183229 nat 00000126 in 202183229 WirelessNAT2183229 nat 00000126 out 102173220 WirelessNAT2173220 nat 00000010 in 202173220 WirelessNAT2173220 nat 00000010 out 1 UnauthNat nat 00000004 in 2 UnauthNat nat 00000004 out Jan 14 08:35:08 nac[3229]: /usr/sbin/ngctl -d mkpeer ipfw: nat 202183148 out Jan 14 08:35:08 nac[3234]: ngctl: sendto(ipfw:): File exists Jan 14 08:35:08 nac[3234]: ngctl: send msg: File exists Jan 14 08:35:08 nac[3235]: warning: Unsuccessful execution: /usr/sbin/ngctl -d mkpeer ipfw: nat 202183148 out Thu Jan 14 08:36:01 PST 2010 /usr/sbin/ngctl list There are 98 total nodes: Name: WirelessNAT2182100 Type: nat ID: 0000038a Num hooks: 2 Name: WirelessNAT2132070 Type: nat ID: 000003ca Num hooks: 2 Name: WirelessNAT2132142 Type: nat ID: 0000019e Num hooks: 2 Name: WirelessNAT2173111 Type: nat ID: 00000392 Num hooks: 2 Name: WirelessNAT2173012 Type: nat ID: 00000355 Num hooks: 2 Name: WirelessNAT2175100 Type: nat ID: 00000343 Num hooks: 2 Name: WirelessNAT2132062 Type: nat ID: 00000337 Num hooks: 2 Name: WirelessNAT2172040 Type: nat ID: 000002ef Num hooks: 2 Name: WirelessNAT2173201 Type: nat ID: 000002c0 Num hooks: 2 Name: WirelessNAT2132017 Type: nat ID: 000001b2 Num hooks: 2 Name: ngctl13132 Type: socket ID: 00000411 Num hooks: 0 Name: WirelessNAT2174111 Type: nat ID: 00000372 Num hooks: 2 Name: WirelessNAT2174210 Type: nat ID: 0000036a Num hooks: 2 Name: WirelessNAT2183201 Type: nat ID: 0000023f Num hooks: 2 Name: WirelessNAT2183102 Type: nat ID: 000001c6 Num hooks: 2 Name: WirelessNAT2173220 Type: nat ID: 00000010 Num hooks: 2 Name: WirelessNAT2174022 Type: nat ID: 00000406 Num hooks: 2 Name: WirelessNAT2132055 Type: nat ID: 000003e2 Num hooks: 2 Name: WirelessNAT2173023 Type: nat ID: 000003a6 Num hooks: 2 Name: WirelessNAT2172033 Type: nat ID: 0000039e Num hooks: 2 Name: WirelessNAT2172132 Type: nat ID: 0000029f Num hooks: 2 Name: WirelessNAT2132047 Type: nat ID: 000003fa Num hooks: 2 Name: WirelessNAT2182240 Type: nat ID: 00000329 Num hooks: 2 Name: WirelessNAT2174041 Type: nat ID: 0000031d Num hooks: 2 Name: WirelessNAT2173033 Type: nat ID: 000002db Num hooks: 2 Name: WirelessNAT2183212 Type: nat ID: 000002b0 Num hooks: 2 Name: WirelessNAT2132066 Type: nat ID: 00000398 Num hooks: 2 Name: WirelessNAT2173025 Type: nat ID: 00000271 Num hooks: 2 Name: WirelessNAT2173061 Type: nat ID: 000001f2 Num hooks: 2 Name: WirelessNAT2132147 Type: nat ID: 000001e6 Num hooks: 2 Name: WirelessNAT2183051 Type: nat ID: 000001d0 Num hooks: 2 Name: WirelessNAT2173143 Type: nat ID: 000003f4 Num hooks: 2 Name: WirelessNAT2175024 Type: nat ID: 000003ac Num hooks: 2 Name: WirelessNAT2172234 Type: nat ID: 00000363 Num hooks: 2 Name: WirelessNAT2173035 Type: nat ID: 0000034f Num hooks: 2 Name: WirelessNAT2172216 Type: nat ID: 000002cf Num hooks: 2 Name: WirelessNAT2182071 Type: nat ID: 0000020e Num hooks: 2 Name: WirelessNAT2183115 Type: nat ID: 000001ec Num hooks: 2 Name: WirelessNAT2182233 Type: nat ID: 000001d8 Num hooks: 2 Name: WirelessNAT2172037 Type: nat ID: 0000037e Num hooks: 2 Name: WirelessNAT2182009 Type: nat ID: 00000309 Num hooks: 2 Name: WirelessNAT2173144 Type: nat ID: 000002fd Num hooks: 2 Name: WirelessNAT2174107 Type: nat ID: 000002e3 Num hooks: 2 Name: WirelessNAT2173180 Type: nat ID: 0000027f Num hooks: 2 Name: WirelessNAT2172073 Type: nat ID: 00000208 Num hooks: 2 Name: WirelessNAT2175008 Type: nat ID: 000003e8 Num hooks: 2 Name: WirelessNAT2172236 Type: nat ID: 00000349 Num hooks: 2 Name: WirelessNAT2182226 Type: nat ID: 0000030f Num hooks: 2 Name: WirelessNAT2174135 Type: nat ID: 00000305 Num hooks: 1 Name: WirelessNAT2183171 Type: nat ID: 000002f7 Num hooks: 2 Name: WirelessNAT2173235 Type: nat ID: 000002e9 Num hooks: 2 Name: WirelessNAT2175215 Type: nat ID: 0000028f Num hooks: 2 Name: WirelessNAT2172038 Type: nat ID: 00000263 Num hooks: 2 Name: WirelessNAT2175035 Type: nat ID: 0000025b Num hooks: 2 Name: WirelessNAT2172065 Type: nat ID: 000001a8 Num hooks: 2 Name: WirelessNAT2132096 Type: nat ID: 00000134 Num hooks: 2 Name: UnauthNat Type: nat ID: 00000004 Num hooks: 2 Name: WirelessNAT2175072 Type: nat ID: 0000040c Num hooks: 2 Name: WirelessNAT2175081 Type: nat ID: 000003ee Num hooks: 2 Name: WirelessNAT2182173 Type: nat ID: 000003c4 Num hooks: 2 Name: WirelessNAT2183019 Type: nat ID: 0000033d Num hooks: 2 Name: WirelessNAT2175162 Type: nat ID: 00000315 Num hooks: 2 Name: WirelessNAT2183226 Type: nat ID: 000002d5 Num hooks: 2 Name: WirelessNAT2132178 Type: nat ID: 000002b8 Num hooks: 2 Name: WirelessNAT2175045 Type: nat ID: 00000297 Num hooks: 2 Name: WirelessNAT2182254 Type: nat ID: 00000255 Num hooks: 2 Name: WirelessNAT2132088 Type: nat ID: 00000245 Num hooks: 2 Name: WirelessNAT2183127 Type: nat ID: 00000228 Num hooks: 2 Name: WirelessNAT2173146 Type: nat ID: 0000021c Num hooks: 2 Name: WirelessNAT2183163 Type: nat ID: 00000198 Num hooks: 2 Name: WirelessNAT2172147 Type: nat ID: 00000188 Num hooks: 2 Name: WirelessNAT2174038 Type: nat ID: 0000032f Num hooks: 2 Name: WirelessNAT2182129 Type: nat ID: 000002c8 Num hooks: 2 Name: WirelessNAT2183173 Type: nat ID: 00000287 Num hooks: 2 Name: WirelessNAT2175064 Type: nat ID: 00000269 Num hooks: 2 Name: WirelessNAT2183083 Type: nat ID: 0000024f Num hooks: 2 Name: WirelessNAT2182255 Type: nat ID: 00000237 Num hooks: 2 Name: WirelessNAT2172085 Type: nat ID: 00000231 Num hooks: 2 Name: WirelessNAT2172157 Type: nat ID: 000001c0 Num hooks: 2 Name: WirelessNAT2174083 Type: nat ID: 000001ba Num hooks: 2 Name: WirelessNAT2173066 Type: nat ID: 00000174 Num hooks: 2 Name: WirelessNAT2132098 Type: nat ID: 0000016c Num hooks: 2 Name: WirelessNAT2183156 Type: nat ID: 00000400 Num hooks: 2 Name: WirelessNAT2182076 Type: nat ID: 00000384 Num hooks: 2 Name: WirelessNAT2175047 Type: nat ID: 00000323 Num hooks: 2 Name: WirelessNAT2173094 Type: nat ID: 00000190 Num hooks: 2 Name: WirelessNAT2173166 Type: nat ID: 00000154 Num hooks: 2 Name: WirelessNAT2183157 Type: nat ID: 000003d2 Num hooks: 2 Name: WirelessNAT2183229 Type: nat ID: 00000126 Num hooks: 2 Name: WirelessNAT2182195 Type: nat ID: 000003da Num hooks: 2 Name: WirelessNAT2173087 Type: nat ID: 000003be Num hooks: 2 Name: WirelessNAT2173186 Type: nat ID: 00000200 Num hooks: 2 Name: WirelessNAT2175067 Type: nat ID: 000001f8 Num hooks: 2 Name: WirelessNAT2182169 Type: nat ID: 00000378 Num hooks: 2 Name: WirelessNAT2172198 Type: nat ID: 0000035b Num hooks: 2 Name: WirelessNAT2173179 Type: nat ID: 000002a8 Num hooks: 2 Name: WirelessNAT2175098 Type: nat ID: 000003b2 Num hooks: 2 Name: ipfw Type: ipfw ID: 00000001 Num hooks: 191 /usr/sbin/ngctl show ipfw: Name: ipfw Type: ipfw ID: 00000001 Num hooks: 191 Local hook Peer name Peer type Peer ID Peer hook ---------- --------- --------- ------- --------- 102175072 WirelessNAT2175072 nat 0000040c in 202175072 WirelessNAT2175072 nat 0000040c out 102174022 WirelessNAT2174022 nat 00000406 in 202174022 WirelessNAT2174022 nat 00000406 out 102183156 WirelessNAT2183156 nat 00000400 in 202183156 WirelessNAT2183156 nat 00000400 out 102132047 WirelessNAT2132047 nat 000003fa in 202132047 WirelessNAT2132047 nat 000003fa out 102173143 WirelessNAT2173143 nat 000003f4 in 202173143 WirelessNAT2173143 nat 000003f4 out 102175081 WirelessNAT2175081 nat 000003ee in 202175081 WirelessNAT2175081 nat 000003ee out 102175008 WirelessNAT2175008 nat 000003e8 in 202175008 WirelessNAT2175008 nat 000003e8 out 102132055 WirelessNAT2132055 nat 000003e2 in 202132055 WirelessNAT2132055 nat 000003e2 out 102182195 WirelessNAT2182195 nat 000003da in 202182195 WirelessNAT2182195 nat 000003da out 102183157 WirelessNAT2183157 nat 000003d2 in 202183157 WirelessNAT2183157 nat 000003d2 out 102132070 WirelessNAT2132070 nat 000003ca in 202132070 WirelessNAT2132070 nat 000003ca out 102182173 WirelessNAT2182173 nat 000003c4 in 202182173 WirelessNAT2182173 nat 000003c4 out 102173087 WirelessNAT2173087 nat 000003be in 202173087 WirelessNAT2173087 nat 000003be out 102175098 WirelessNAT2175098 nat 000003b2 in 202175098 WirelessNAT2175098 nat 000003b2 out 102175024 WirelessNAT2175024 nat 000003ac in 202175024 WirelessNAT2175024 nat 000003ac out 102173023 WirelessNAT2173023 nat 000003a6 in 202173023 WirelessNAT2173023 nat 000003a6 out 102172033 WirelessNAT2172033 nat 0000039e in 202172033 WirelessNAT2172033 nat 0000039e out 102132066 WirelessNAT2132066 nat 00000398 in 202132066 WirelessNAT2132066 nat 00000398 out 102173111 WirelessNAT2173111 nat 00000392 in 202173111 WirelessNAT2173111 nat 00000392 out 102182100 WirelessNAT2182100 nat 0000038a in 202182100 WirelessNAT2182100 nat 0000038a out 102182076 WirelessNAT2182076 nat 00000384 in 202182076 WirelessNAT2182076 nat 00000384 out 102172037 WirelessNAT2172037 nat 0000037e in 202172037 WirelessNAT2172037 nat 0000037e out 102182169 WirelessNAT2182169 nat 00000378 in 202182169 WirelessNAT2182169 nat 00000378 out 102174111 WirelessNAT2174111 nat 00000372 in 202174111 WirelessNAT2174111 nat 00000372 out 102174210 WirelessNAT2174210 nat 0000036a in 202174210 WirelessNAT2174210 nat 0000036a out 102172234 WirelessNAT2172234 nat 00000363 in 202172234 WirelessNAT2172234 nat 00000363 out 102172198 WirelessNAT2172198 nat 0000035b in 202172198 WirelessNAT2172198 nat 0000035b out 102173012 WirelessNAT2173012 nat 00000355 in 202173012 WirelessNAT2173012 nat 00000355 out 102173035 WirelessNAT2173035 nat 0000034f in 202173035 WirelessNAT2173035 nat 0000034f out 102172236 WirelessNAT2172236 nat 00000349 in 202172236 WirelessNAT2172236 nat 00000349 out 102175100 WirelessNAT2175100 nat 00000343 in 202175100 WirelessNAT2175100 nat 00000343 out 102183019 WirelessNAT2183019 nat 0000033d in 202183019 WirelessNAT2183019 nat 0000033d out 102132062 WirelessNAT2132062 nat 00000337 in 202132062 WirelessNAT2132062 nat 00000337 out 102174038 WirelessNAT2174038 nat 0000032f in 202174038 WirelessNAT2174038 nat 0000032f out 102182240 WirelessNAT2182240 nat 00000329 in 202182240 WirelessNAT2182240 nat 00000329 out 102175047 WirelessNAT2175047 nat 00000323 in 202175047 WirelessNAT2175047 nat 00000323 out 102174041 WirelessNAT2174041 nat 0000031d in 202174041 WirelessNAT2174041 nat 0000031d out 102175162 WirelessNAT2175162 nat 00000315 in 202175162 WirelessNAT2175162 nat 00000315 out 102182226 WirelessNAT2182226 nat 0000030f in 202182226 WirelessNAT2182226 nat 0000030f out 102182009 WirelessNAT2182009 nat 00000309 in 202182009 WirelessNAT2182009 nat 00000309 out 202174135 WirelessNAT2174135 nat 00000305 out 102173144 WirelessNAT2173144 nat 000002fd in 202173144 WirelessNAT2173144 nat 000002fd out 102183171 WirelessNAT2183171 nat 000002f7 in 202183171 WirelessNAT2183171 nat 000002f7 out 102172040 WirelessNAT2172040 nat 000002ef in 202172040 WirelessNAT2172040 nat 000002ef out 102173235 WirelessNAT2173235 nat 000002e9 in 202173235 WirelessNAT2173235 nat 000002e9 out 102174107 WirelessNAT2174107 nat 000002e3 in 202174107 WirelessNAT2174107 nat 000002e3 out 102173033 WirelessNAT2173033 nat 000002db in 202173033 WirelessNAT2173033 nat 000002db out 102183226 WirelessNAT2183226 nat 000002d5 in 202183226 WirelessNAT2183226 nat 000002d5 out 102172216 WirelessNAT2172216 nat 000002cf in 202172216 WirelessNAT2172216 nat 000002cf out 102182129 WirelessNAT2182129 nat 000002c8 in 202182129 WirelessNAT2182129 nat 000002c8 out 102173201 WirelessNAT2173201 nat 000002c0 in 202173201 WirelessNAT2173201 nat 000002c0 out 102132178 WirelessNAT2132178 nat 000002b8 in 202132178 WirelessNAT2132178 nat 000002b8 out 102183212 WirelessNAT2183212 nat 000002b0 in 202183212 WirelessNAT2183212 nat 000002b0 out 102173179 WirelessNAT2173179 nat 000002a8 in 202173179 WirelessNAT2173179 nat 000002a8 out 102172132 WirelessNAT2172132 nat 0000029f in 202172132 WirelessNAT2172132 nat 0000029f out 102175045 WirelessNAT2175045 nat 00000297 in 202175045 WirelessNAT2175045 nat 00000297 out 102175215 WirelessNAT2175215 nat 0000028f in 202175215 WirelessNAT2175215 nat 0000028f out 102183173 WirelessNAT2183173 nat 00000287 in 202183173 WirelessNAT2183173 nat 00000287 out 102173180 WirelessNAT2173180 nat 0000027f in 202173180 WirelessNAT2173180 nat 0000027f out 102173025 WirelessNAT2173025 nat 00000271 in 202173025 WirelessNAT2173025 nat 00000271 out 102175064 WirelessNAT2175064 nat 00000269 in 202175064 WirelessNAT2175064 nat 00000269 out 102172038 WirelessNAT2172038 nat 00000263 in 202172038 WirelessNAT2172038 nat 00000263 out 102175035 WirelessNAT2175035 nat 0000025b in 202175035 WirelessNAT2175035 nat 0000025b out 102182254 WirelessNAT2182254 nat 00000255 in 202182254 WirelessNAT2182254 nat 00000255 out 102183083 WirelessNAT2183083 nat 0000024f in 202183083 WirelessNAT2183083 nat 0000024f out 102132088 WirelessNAT2132088 nat 00000245 in 202132088 WirelessNAT2132088 nat 00000245 out 102183201 WirelessNAT2183201 nat 0000023f in 202183201 WirelessNAT2183201 nat 0000023f out 102182255 WirelessNAT2182255 nat 00000237 in 202182255 WirelessNAT2182255 nat 00000237 out 102172085 WirelessNAT2172085 nat 00000231 in 202172085 WirelessNAT2172085 nat 00000231 out 102183127 WirelessNAT2183127 nat 00000228 in 202183127 WirelessNAT2183127 nat 00000228 out 102173146 WirelessNAT2173146 nat 0000021c in 202173146 WirelessNAT2173146 nat 0000021c out 102182071 WirelessNAT2182071 nat 0000020e in 202182071 WirelessNAT2182071 nat 0000020e out 102172073 WirelessNAT2172073 nat 00000208 in 202172073 WirelessNAT2172073 nat 00000208 out 102173186 WirelessNAT2173186 nat 00000200 in 202173186 WirelessNAT2173186 nat 00000200 out 102175067 WirelessNAT2175067 nat 000001f8 in 202175067 WirelessNAT2175067 nat 000001f8 out 102173061 WirelessNAT2173061 nat 000001f2 in 202173061 WirelessNAT2173061 nat 000001f2 out 102183115 WirelessNAT2183115 nat 000001ec in 202183115 WirelessNAT2183115 nat 000001ec out 102132147 WirelessNAT2132147 nat 000001e6 in 202132147 WirelessNAT2132147 nat 000001e6 out 102182233 WirelessNAT2182233 nat 000001d8 in 202182233 WirelessNAT2182233 nat 000001d8 out 102183051 WirelessNAT2183051 nat 000001d0 in 202183051 WirelessNAT2183051 nat 000001d0 out 102183102 WirelessNAT2183102 nat 000001c6 in 202183102 WirelessNAT2183102 nat 000001c6 out 102172157 WirelessNAT2172157 nat 000001c0 in 202172157 WirelessNAT2172157 nat 000001c0 out 102174083 WirelessNAT2174083 nat 000001ba in 202174083 WirelessNAT2174083 nat 000001ba out 102132017 WirelessNAT2132017 nat 000001b2 in 202132017 WirelessNAT2132017 nat 000001b2 out 102172065 WirelessNAT2172065 nat 000001a8 in 202172065 WirelessNAT2172065 nat 000001a8 out 102132142 WirelessNAT2132142 nat 0000019e in 202132142 WirelessNAT2132142 nat 0000019e out 102183163 WirelessNAT2183163 nat 00000198 in 202183163 WirelessNAT2183163 nat 00000198 out 102173094 WirelessNAT2173094 nat 00000190 in 202173094 WirelessNAT2173094 nat 00000190 out 102172147 WirelessNAT2172147 nat 00000188 in 202172147 WirelessNAT2172147 nat 00000188 out 102173066 WirelessNAT2173066 nat 00000174 in 202173066 WirelessNAT2173066 nat 00000174 out 102132098 WirelessNAT2132098 nat 0000016c in 202132098 WirelessNAT2132098 nat 0000016c out 102173166 WirelessNAT2173166 nat 00000154 in 202173166 WirelessNAT2173166 nat 00000154 out 102132096 WirelessNAT2132096 nat 00000134 in 202132096 WirelessNAT2132096 nat 00000134 out 102183229 WirelessNAT2183229 nat 00000126 in 202183229 WirelessNAT2183229 nat 00000126 out 102173220 WirelessNAT2173220 nat 00000010 in 202173220 WirelessNAT2173220 nat 00000010 out 1 UnauthNat nat 00000004 in 2 UnauthNat nat 00000004 out > >>>sudo ngctl show ipfw:102174202 > >>> Name: WirelessNAT2182138 Type: nat ID: 000062ee Num > >>> hooks: 2 > >>> Local hook Peer name Peer type Peer ID Peer hook > >>> ---------- --------- --------- ------- --------- > >>> in ipfw ipfw 00005a83 102182138 > >>> out ipfw ipfw 00005a83 202182138 > >>> > >>>But WirelessNAT2182138 has no record of a hook102174202. Somehow, two > >>>hooks used to refer to what should be two different NAT sessions are > >>>pointing to the same ng_nat(4) object (i.e. one session). If I run > >>>shutdown on ipfw:102174202, WirelessNAT2182138 goes away. Given the > >>>above calls to ngctl(8), I don't know what is causing these two separate > >>>hooks to refer to the same ng_nat(4) object. > >>you might name the ipfw nodes to make the output clearer. > > > >ng_ipfw(4) uses a single node to pass traffic from ipfw(4) to > >netgraph(4). You associate as many hooks with this node as you like and > >then direct traffic via the single ng_ipfw(4) node to different hooks > >using ipfw(8) rules such as > > > >01230 netgraph tablearg ip from table(87) to any in > > > >Suppose a packet comes in for IP address 10.10.113.226 and rule 1230 > >is reached during the processing of the ipfw ruleset. According to the > >above rule, ipfw(4) will look up 10.10.113.226/32 in table 87 and if > >it finds a matching key in the table, it will tag the packet with the > >matching table entry's value and send the packet to the ng_ipfw(4) > >node. ng_ipfw(4) will then examine the tag and look for an associated > >hook with a matching name. If such a hook is found the packet is sent > >on to the node associated with the hook. In the case of 10.10.113.226, > >table 87 contains the following entry. > > > >10.10.113.226/32 202173114 > > > >Hook 202173114 refers to the following ng_nat node. > > > >sudo ngctl show ipfw:202173114 > > Name: WirelessNAT2173114 Type: nat ID: 000015f0 Num hooks: > > 2 > > Local hook Peer name Peer type Peer ID Peer hook > > ---------- --------- --------- ------- --------- > > in ipfw ipfw 00000001 102173114 > > out ipfw ipfw 00000001 202173114 > > > >which is configured for one to one NAT as follows. > > > >sudo ngctl msg WirelessNAT2173114: listredirects > >Rec'd response "listredirects" (10) from "[15f0]:": > >Args: { total_count=1 redirects=[ { id=1 local_addr=10.10.113.226 > >alias_addr=x.x.173.114 proto=259 description="Static NAT" } ] } > > > >There is a similar path for traffic coming in to the globally routable > >side of these one to one NAT nodes. > > > >>I have not looked at the ipfw node type much but it is possible > >>that is suffers from races. > >>Especially in the face of ipfw rule changes. > > > >Can you think of an example in any other netgraph module of proper > >concurrency handling I can use as a reference when looking at > >ng_ipfw(4)? > > > >By using tables we don't need to update the ruleset itself. The > >ruleset is (normally) loaded once after the machine boots. The table > >updates take place after all the calls to ngctl(8) and after the call > >to arp(8). I will take a look at the interface between ipfw(4) and > >ng_ipfw(4). > > > >>have you tried adding small delays (sleep 0.5) betwenn the calls by > >>the way? > > > >I've now added sleep 0.5 between the calls to ngctl. I'll let you know > >if that helps at all; thanks for the suggestion.