1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
|
<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.52
from spec on 25 November 2000 -->
<TITLE>Exim Specification - 27. Additional generic options for routers</TITLE>
</HEAD>
<body bgcolor="#FFFFFF" text="#00005A" link="#FF6600" alink="#FF9933" vlink="#990000">
Go to the <A HREF="spec_1.html">first</A>, <A HREF="spec_26.html">previous</A>, <A HREF="spec_28.html">next</A>, <A HREF="spec_59.html">last</A> section, <A HREF="spec_toc.html">table of contents</A>.
<P><HR><P>
<H1><A NAME="SEC686" HREF="spec_toc.html#TOC686">27. Additional generic options for routers</A></H1>
<P>
<A NAME="IDX1576"></A>
<A NAME="IDX1577"></A>
</P>
<P>
The following additional generic options apply to all routers, in addition to
the common generic options for both directors and routers which are described
in chapter 20. Routers are concerned with addresses whose
domains do not match something in <EM>local_domains</EM>.
</P>
<P>
<P>
<font color=green>
<A NAME="IDX1578"></A>
<H3><A NAME="SEC687" HREF="spec_toc.html#TOC687">ignore_target_hosts (router)</A></H3>
<P>
Type: host list, expanded<BR>
Default: unset
</P>
<P>
<A NAME="IDX1579"></A>
Although this option is a host list, it would normally contain IP address
entries rather than names. If any host that is looked up by the router matches
an item in this list, Exim behaves as if the host did not exist. This option
allows you to cope with rogue DNS entries like
<PRE>
some.remote.domain A 127.0.0.1
</PRE>
<P>
by setting
<PRE>
ignore_target_hosts = 127.0.0.1
</PRE>
<P>
on the relevant router. Attempts to mail to such a domain then receive the
`unrouteable domain' error, and verifications fail. This option may also be
useful for ignoring link local IPv6 addresses. The string value of
<EM>ignore_target_hosts</EM> is expanded before use as a list, so it is possible to
make it dependent on the domain that is being routed.
</font>
</P>
<P>
<A NAME="IDX1580"></A>
<H3><A NAME="SEC688" HREF="spec_toc.html#TOC688">pass_on_timeout (router)</A></H3>
<P>
Type: boolean<BR>
Default: false
</P>
<P>
<A NAME="IDX1581"></A>
<A NAME="IDX1582"></A>
If a router times out during a host lookup, it normally causes deferral of the
address. If <EM>pass_on_timeout</EM> is set, the address is instead passed on to the
next router,
<font color=green>
overriding <EM>no_more</EM>.
</font>
This may be helpful for systems that are intermittently connected to the
Internet, or those that want to pass to a smart host any messages that cannot
immediately be delivered.
</P>
<P>
There are occasional other temporary errors that can occur while doing DNS
lookups. They are treated in the same way as a timeout, and this option
applies to all of them.
</P>
<P>
<A NAME="IDX1583"></A>
<H3><A NAME="SEC689" HREF="spec_toc.html#TOC689">self (router)</A></H3>
<P>
Type: string<BR>
Default: "freeze"
</P>
<P>
<A NAME="IDX1584"></A>
<A NAME="IDX1585"></A>
This option specifies what is to happen if routing a remote address ends up
pointing at the local host,
<A NAME="IDX1586"></A>
or at a host whose name matches <EM>hosts_treat_as_local</EM>. Normally this
indicates either an error in Exim's configuration (for example, the domain
should be listed as local), or an error in the DNS (for example, the MX
shouldn't point at this host).
However, this situation is not confined to the use of MX records, and the
<EM>self</EM> option can be used on any router.
</P>
<P>
The default action is to freeze the message. The following alternatives are
provided for use in special cases:
</P>
<UL>
<LI>
<EM>defer</EM><BR>
Delivery of the message is tried again later.
<LI>
<EM>reroute: <<EM>domain</EM>></EM><BR>
The domain is changed to the given domain, and the address is passed back to
be reprocessed by the directors and routers. No rewriting of headers takes
place.
<LI>
<EM>reroute: rewrite: <<EM>domain</EM>></EM><BR>
The domain is changed to the given domain, and the address is passed back to be
reprocessed by the directors and routers. Any headers that contain the original
domain are rewritten.
<LI>
<EM>local</EM><BR>
The address is passed to the directors, as if its domain were a local domain,
even though it does not match anything in <EM>local_domains</EM>. This can be used to
treat all domains whose lowest MX records point to the host as local domains.
During subsequent directing and delivery the variable $<EM>self_hostname</EM> is set
to the name of the local host that the router encountered. This can be used to
distinguish between different cases for hosts with multiple names.
<LI>
<font color=green>
<EM>pass</EM><BR>
The router declines, passing the address to the following router, and
<A NAME="IDX1587"></A>
overriding <EM>no_more</EM>. During subsequent routing and delivery, the variable
$<EM>self_hostname</EM> contains the name of the local host that the router
encountered. This can be used to distinguish between different cases for hosts
with multiple names. A combination of <EM>pass</EM> and <EM>no_more</EM> ensures that only
those addresses that routed to the local host are passed on. Without
<EM>no_more</EM>, addresses that were declined for other reasons would also be passed
to the next router.
In earlier versions of Exim <EM>fail_soft</EM> was used instead of <EM>pass</EM>. It will
remain as a synonym for some time.
</font>
<LI>
<font color=green>
<EM>fail</EM><BR>
The router declines, but the address is not passed to any following
routers. Consequently, delivery fails and an error report is generated.
In earlier versions of Exim <EM>fail_hard</EM> was used instead of <EM>fail</EM>. It will
remain as a synonym for some time.
</font>
<LI>
<EM>send</EM><BR>
The anomaly is ignored and the message is transmitted anyway. This setting
should be used with extreme caution. It makes sense only in cases where
the program that is listening on the SMTP port is not this version of Exim.
That is, it must be some other MTA, or Exim with a different configuration file
that handles the domain in another way.
</UL>
<P>
When a router just rewrites, that is, does not set up IP addresses, the <EM>self</EM>
option is not relevant.
</P>
<P>
<A NAME="IDX1588"></A>
<H3><A NAME="SEC690" HREF="spec_toc.html#TOC690">translate_ip_address (router)</A></H3>
<P>
Type: string, expanded<BR>
Default: unset
</P>
<P>
<A NAME="IDX1589"></A>
<A NAME="IDX1590"></A>
There exist some rare networking situations (for example, packet radio) where
it is helpful to be able to translate IP addresses generated by normal routing
mechanisms into other IP addresses, thus performing a kind of manual IP
routing. This should be done only if the normal IP routing of the TCP/IP stack
is inadequate or broken. Because this is an extremely uncommon requirement, the
code to support this option is not included in the Exim binary unless
SUPPORT_TRANSLATE_IP_ADDRESS=yes is set in <TT>`Local/Makefile'</TT>.
</P>
<P>
The <EM>translate_ip_address</EM> string is expanded for every IP address generated
by the router, with the generated address set in $<EM>host_address</EM>. If the
expansion is forced to fail, no action is taken. If it returns an IP address,
that replaces the original address; otherwise the result is assumed to be a
host name -- this is looked up using <EM>gethostbyname()</EM> to produce one or more
replacement IP addresses. For example, to subvert all IP addresses in some
specific networks, this could be added to a router:
<PRE>
$smc{translate_ip_address = \
${lookup{${mask:$host_address/26}}lsearch{/some/file}{$value}fail}}
</PRE>
<P>
The file would contain lines like
<PRE>
10.2.3.128/26 some.host
10.8.4.34/26 10.44.8.15
</PRE>
<P>
You should not make use of this facility unless you really understand what you
are doing.
</P>
<P><HR><P>
Go to the <A HREF="spec_1.html">first</A>, <A HREF="spec_26.html">previous</A>, <A HREF="spec_28.html">next</A>, <A HREF="spec_59.html">last</A> section, <A HREF="spec_toc.html">table of contents</A>.
</BODY>
</HTML>
|