In message <Pine.SOL.3.96.970513144908.7007K-100000@???>,
Philip Hazel wrote (and was followed-up by various like-minded folks):
> There have been some requests for the ability to hold lists of networks
> in separate files, instead of having to have large lists in the config-
> uration file.
> ....
> Does anybody think I should be doing more than this, and if so, have you
> any bright ideas as to how to specify it? I don't want to do anything
> like inferring Class B or Class C networks from IP addresses, because
> this doesn't carry over to IPv6.
Well, there's coincidence for you. Two weeks ago I implemented precisely
this for Exim in the shape of modules for use in a special-purpose router.
They are entirely independent of the router though, and could just as
easily be used as a generic IP search function. Furthermore, the search
mechanism is quite efficient: an average lookup through a 3-deep ternary
subnet tree takes about 4 microseconds on a P166 and scales in an efficient
log(N) manner through subnet factoring with early-fail in both dimensions,
courtesy of some thorough preprocessing during the configuration phase.
I'm currently still working on the (separate) Exim interfacing code --
another couple of weeks of my spare time required, I estimate. I'll be
happy to factor out the netlist handling so that it can be put to the
uses that are being discussed in this thread. The netlist provides a key
to an arbitrary RHS in my design so you can use it for anything you like.
I use it as a key to domainlist-compatible route-lists in my router, but
it could just as easily provide a simple accept/deny boolean for misc MTA
control, arbitrary message strings for error tailoring, or anything else.
Give me a fortnight or so to finish off what I'm currently doing and then
we'll see about putting it out to test and creating a search type for it.
Rich.
--
########### Dr. Rich Artym ================ PGP public key available
# galacta # Email : rich@??? 158.152.156.137
# ->demon # Web : http://www.galacta.demon.co.uk - temp page only
# ->ampr # AMPR : rich@g7exm[.uk].ampr.org 44.131.164.1 BBS:GB7MSW
# ->NTS # Fun : Unix, X, TCP/IP, kernel, O-O, C++, SoftEng, Nano
########### More fun: Regional IP Coordinator Hertfordshire + N.London