File: spec_27.html

package info (click to toggle)
exim-html 3.20-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, sarge, woody
  • size: 2,868 kB
  • ctags: 4,188
  • sloc: makefile: 40; sh: 19
file content (260 lines) | stat: -rw-r--r-- 8,017 bytes parent folder | download
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: &#60;<EM>domain</EM>&#62;</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: &#60;<EM>domain</EM>&#62;</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>