Background:
We are seeing instances of (deliberately?) broken DNS records like
this:
some.remote.domain A 127.0.0.1
some.remote.domain MX 1 localhost
On trying to route to such a domain, Exim complains about routing to
the local host. You can avoid this by setting
self = fail
on the router, but this actually does too much - it affects all local
host addresses, not just 127.0.0.1.
I was thinking of ways of making this more flexible, and realized there
are other addresses that one might not like, for example 10.x.x.x, and,
in IPv6, the link-local addresses fe80::/10. So I propose to invent an
option called ignore_hosts, which lists hosts (normally by IP address)
that are completely ignored.[*] The question is, what should the default
setting be? There seem to be three possibilities, and I'd like to hear
what people think. (The IPv6 addresses would be present only in
IPv6-capable versions of Exim.)
(1) Default unset. Preserves the current behaviour.
(2) Minimal: ignore_hosts = <; 127.0.0.1 ; ::1
(3) Maximal: ignore_hosts = <; 127.0.0.0/8 ; 10.0.0.0/8 ; \
192.168.0.0/16 ; 172.16.0.0/12 ; \
::1 ; fe80::/10
------
[*] Some more details:
. The ignoring would be ignored if a domainlist router routed
explicitly to an IP address, or an smtp transport had an IP address in a
hosts list. It applies only to addresses that are looked up, either in
the DNS or by gethostbyname().
. The list is a fully-blown host list. You *could* use a host name if
you wanted. You could also use negative items to provide exceptions.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.