Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Jan 2010 20:43:44 -0800
From:      Erik Klavon <erikk@berkeley.edu>
To:        Julian Elischer <julian@elischer.org>
Cc:        freebsd-net@freebsd.org
Subject:   Re: netgraph mkpeer and connect failures with ng_ipfw and ng_nat
Message-ID:  <20100115044344.GA30725@malcolm.berkeley.edu>
In-Reply-To: <4B4FD270.7010808@elischer.org>
References:  <20100114224635.GA27139@malcolm.berkeley.edu> <4B4FB547.8000202@elischer.org> <20100115014254.GA29258@malcolm.berkeley.edu> <4B4FD270.7010808@elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100115044344.GA30725>