Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 03 Aug 2001 00:03:43 +0200
From:      Andre Oppermann <oppermann@telehouse.ch>
To:        freebsd-hackers@freebsd.org
Cc:        freebsd-net@freebsd.org
Subject:   303,000 routes in kernel
Message-ID:  <3B69CE3F.1BCCB280@telehouse.ch>

next in thread | raw e-mail | index | archive | help
Hello guys

have got a small problem. I'm running a secondary DNS server for the
ccTLD .ch here in Switzerland.

The box is a Intel ISP2150 with a PIII-750 and 512MB RAM plus 18GB
SCSI disk. Two fxp cards inside.

This machine is running FreeBSD 4.3-RELEASE and tinydns as DNS server.

It answering approximatly 100 dns requests per second for the .ch ccTLD
zone. These DNS requests come from all over the world so I see basically
the whole allocated IP address space here.

The problem I've got now is that for every packet I get the kernel is
making one host entry in the routing table. Because of the many UDP
DNS requests from all over the world I've got 303'000 (yes, three-
hundredthreethousand) entries in the kernel routing table which have
not expired yet. So I'm getting error messages like this now:

 Aug  2 23:57:14 ccTLD /kernel: arpresolve: can't allocate llinfo for
 194.42.48.126 rt
 Aug  2 23:57:14 ccTLD /kernel: arplookup 194.42.48.126 failed: could
 not allocate llinfo

 # netstat -m
 149/640/6144 mbufs in use (current/peak/max):
        146 mbufs allocated to data
        3 mbufs allocated to packet headers
 128/304/1536 mbuf clusters in use (current/peak/max)
 768 Kbytes allocated to network (16% of mb_map in use)
 0 requests for memory denied
 0 requests for memory delayed
 0 calls to protocol drain routines

 # netstat -rn | wc -l
   303875

 # vmstat -m
 Memory statistics by type                          Type  Kern
        Type  InUse MemUse HighUse  Limit Requests Limit Limit Size(s)
  ...
     routetbl607857 85480K  85480K 85480K  2420956    0     0 
16,32,64,128,256
  ...
 Memory Totals:  In Use    Free    Requests
                91073K   2948K    786316696

So many routing entries are total overkill, all I would need in reality
are the default route plus some other, or in worst case a full view of
the Internet prefixes (approx. 105,000 at the moment) but definatly not
a host route for every UDP packet I get. The network route would be
absolutely sufficient for delivering the packet back to it's origin.

Any ideas on how to deal with this?

TIA
-- 
Andre

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B69CE3F.1BCCB280>