IPV6_README.html revision 1.1.1.1.4.2 1 1.1.1.1.4.2 matt <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
2 1.1.1.1.4.2 matt "http://www.w3.org/TR/html4/loose.dtd">
3 1.1.1.1.4.2 matt
4 1.1.1.1.4.2 matt <html>
5 1.1.1.1.4.2 matt
6 1.1.1.1.4.2 matt <head>
7 1.1.1.1.4.2 matt
8 1.1.1.1.4.2 matt <title>Postfix IPv6 Support</title>
9 1.1.1.1.4.2 matt
10 1.1.1.1.4.2 matt <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
11 1.1.1.1.4.2 matt
12 1.1.1.1.4.2 matt </head>
13 1.1.1.1.4.2 matt
14 1.1.1.1.4.2 matt <body>
15 1.1.1.1.4.2 matt
16 1.1.1.1.4.2 matt <h1><img src="postfix-logo.jpg" width="203" height="98" ALT="">Postfix
17 1.1.1.1.4.2 matt IPv6 Support</h1>
18 1.1.1.1.4.2 matt
19 1.1.1.1.4.2 matt <hr>
20 1.1.1.1.4.2 matt
21 1.1.1.1.4.2 matt <h2>Introduction</h2>
22 1.1.1.1.4.2 matt
23 1.1.1.1.4.2 matt <p> Postfix 2.2 introduces support for the IPv6 (IP version 6)
24 1.1.1.1.4.2 matt protocol. IPv6 support for older Postfix versions was available as
25 1.1.1.1.4.2 matt an add-on patch. The section "<a href="#compat">Compatibility with
26 1.1.1.1.4.2 matt Postfix <2.2 IPv6 support</a>" below discusses the differences
27 1.1.1.1.4.2 matt between these implementations. </p>
28 1.1.1.1.4.2 matt
29 1.1.1.1.4.2 matt <p> The main feature of interest is that IPv6 uses 128-bit IP
30 1.1.1.1.4.2 matt addresses instead of the 32-bit addresses used by IPv4. It can
31 1.1.1.1.4.2 matt therefore accommodate a much larger number of hosts and networks
32 1.1.1.1.4.2 matt without ugly kluges such as NAT. A side benefit of the much larger
33 1.1.1.1.4.2 matt address space is that it makes random network scanning impractical.
34 1.1.1.1.4.2 matt </p>
35 1.1.1.1.4.2 matt
36 1.1.1.1.4.2 matt <p> Postfix uses the same SMTP protocol over IPv6 as it already
37 1.1.1.1.4.2 matt uses over the older IPv4 network, and does AAAA record lookups in
38 1.1.1.1.4.2 matt the DNS in addition to the older A records. Information about IPv6
39 1.1.1.1.4.2 matt can be found at <a href="http://www.ipv6.org/">http://www.ipv6.org/</a>. </p>
40 1.1.1.1.4.2 matt
41 1.1.1.1.4.2 matt <p> This document provides information on the following topics:
42 1.1.1.1.4.2 matt </p>
43 1.1.1.1.4.2 matt
44 1.1.1.1.4.2 matt <ul>
45 1.1.1.1.4.2 matt
46 1.1.1.1.4.2 matt <li><a href="#platforms">Supported platforms</a>
47 1.1.1.1.4.2 matt
48 1.1.1.1.4.2 matt <li><a href="#configuration">Configuration</a>
49 1.1.1.1.4.2 matt
50 1.1.1.1.4.2 matt <li><a href="#limitations">Known limitations</a>
51 1.1.1.1.4.2 matt
52 1.1.1.1.4.2 matt <li><a href="#compat">Compatibility with Postfix <2.2 IPv6 support</a>
53 1.1.1.1.4.2 matt
54 1.1.1.1.4.2 matt <li><a href="#porting">IPv6 Support for unsupported platforms</a>
55 1.1.1.1.4.2 matt
56 1.1.1.1.4.2 matt <li><a href="#credits">Credits</a>
57 1.1.1.1.4.2 matt
58 1.1.1.1.4.2 matt </ul>
59 1.1.1.1.4.2 matt
60 1.1.1.1.4.2 matt <h2><a name="platforms">Supported Platforms</a></h2>
61 1.1.1.1.4.2 matt
62 1.1.1.1.4.2 matt <p> Postfix version 2.2 supports IPv4 and IPv6 on the following
63 1.1.1.1.4.2 matt platforms: </p>
64 1.1.1.1.4.2 matt
65 1.1.1.1.4.2 matt <ul>
66 1.1.1.1.4.2 matt
67 1.1.1.1.4.2 matt <li> AIX 5.1+
68 1.1.1.1.4.2 matt <li> Darwin 7.3+
69 1.1.1.1.4.2 matt <li> FreeBSD 4+
70 1.1.1.1.4.2 matt <li> Linux 2.4+
71 1.1.1.1.4.2 matt <li> NetBSD 1.5+
72 1.1.1.1.4.2 matt <li> OpenBSD 2+
73 1.1.1.1.4.2 matt <li> Solaris 8+
74 1.1.1.1.4.2 matt <li> Tru64Unix V5.1+
75 1.1.1.1.4.2 matt
76 1.1.1.1.4.2 matt </ul>
77 1.1.1.1.4.2 matt
78 1.1.1.1.4.2 matt <p> On other platforms Postfix will simply use IPv4 as it has always
79 1.1.1.1.4.2 matt done. </p>
80 1.1.1.1.4.2 matt
81 1.1.1.1.4.2 matt <p> See <a href="#porting">below</a> for tips how to port Postfix
82 1.1.1.1.4.2 matt IPv6 support to other environments. </p>
83 1.1.1.1.4.2 matt
84 1.1.1.1.4.2 matt <h2><a name="configuration">Configuration</a></h2>
85 1.1.1.1.4.2 matt
86 1.1.1.1.4.2 matt <p> Postfix IPv6 support introduces two new <a href="postconf.5.html">main.cf</a> configuration
87 1.1.1.1.4.2 matt parameters, and introduces an important change in address syntax
88 1.1.1.1.4.2 matt notation in match lists such as <a href="postconf.5.html#mynetworks">mynetworks</a> or
89 1.1.1.1.4.2 matt <a href="postconf.5.html#debug_peer_list">debug_peer_list</a>. </p>
90 1.1.1.1.4.2 matt
91 1.1.1.1.4.2 matt <p> Postfix IPv6 address syntax is a little tricky, because there
92 1.1.1.1.4.2 matt are a few places where you must enclose an IPv6 address inside
93 1.1.1.1.4.2 matt "<tt>[]</tt>" characters, and a few places where you must not. It is
94 1.1.1.1.4.2 matt a good idea to use "<tt>[]</tt>" only in the few places where you
95 1.1.1.1.4.2 matt have to. Check out the <a href="postconf.5.html">postconf(5)</a> manual whenever you do IPv6
96 1.1.1.1.4.2 matt related configuration work with Postfix. </p>
97 1.1.1.1.4.2 matt
98 1.1.1.1.4.2 matt <ul>
99 1.1.1.1.4.2 matt
100 1.1.1.1.4.2 matt <li> <p> Instead of hard-coding 127.0.0.1 and ::1 loopback addresses
101 1.1.1.1.4.2 matt in <a href="master.5.html">master.cf</a>, specify "<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback-only" in <a href="postconf.5.html">main.cf</a>.
102 1.1.1.1.4.2 matt This way you can use the same <a href="master.5.html">master.cf</a> file regardless of whether
103 1.1.1.1.4.2 matt or not Postfix will run on an IPv6-enabled system. </p>
104 1.1.1.1.4.2 matt
105 1.1.1.1.4.2 matt <li> <p> The first new parameter is called <a href="postconf.5.html#inet_protocols">inet_protocols</a>. This
106 1.1.1.1.4.2 matt specifies what protocols Postfix will use when it makes or accepts
107 1.1.1.1.4.2 matt network connections, and also controls what DNS lookups Postfix
108 1.1.1.1.4.2 matt will use when it makes network connections. </p>
109 1.1.1.1.4.2 matt
110 1.1.1.1.4.2 matt <blockquote>
111 1.1.1.1.4.2 matt <pre>
112 1.1.1.1.4.2 matt /etc/postfix/<a href="postconf.5.html">main.cf</a>:
113 1.1.1.1.4.2 matt # You must stop/start Postfix after changing this parameter.
114 1.1.1.1.4.2 matt <a href="postconf.5.html#inet_protocols">inet_protocols</a> = ipv4 (DEFAULT: enable IPv4 only)
115 1.1.1.1.4.2 matt <a href="postconf.5.html#inet_protocols">inet_protocols</a> = all (enable IPv4, and IPv6 if supported)
116 1.1.1.1.4.2 matt <a href="postconf.5.html#inet_protocols">inet_protocols</a> = ipv4, ipv6 (enable both IPv4 and IPv6)
117 1.1.1.1.4.2 matt <a href="postconf.5.html#inet_protocols">inet_protocols</a> = ipv6 (enable IPv6 only)
118 1.1.1.1.4.2 matt </pre>
119 1.1.1.1.4.2 matt </blockquote>
120 1.1.1.1.4.2 matt
121 1.1.1.1.4.2 matt <p> By default, Postfix uses IPv4 only, because most systems aren't
122 1.1.1.1.4.2 matt attached to an IPv6 network. </p>
123 1.1.1.1.4.2 matt
124 1.1.1.1.4.2 matt <ul>
125 1.1.1.1.4.2 matt
126 1.1.1.1.4.2 matt <li> <p> On systems with combined IPv4/IPv6 stacks, attempts to
127 1.1.1.1.4.2 matt deliver mail via IPv6 would always fail with "network unreachable",
128 1.1.1.1.4.2 matt and those attempts would only slow down Postfix. </p>
129 1.1.1.1.4.2 matt
130 1.1.1.1.4.2 matt <li> <p> Linux kernels don't even load IPv6 protocol support by
131 1.1.1.1.4.2 matt default. Any attempt to use it would fail immediately. </p>
132 1.1.1.1.4.2 matt
133 1.1.1.1.4.2 matt </ul>
134 1.1.1.1.4.2 matt
135 1.1.1.1.4.2 matt <p> Note 1: you must stop and start Postfix after changing the
136 1.1.1.1.4.2 matt <a href="postconf.5.html#inet_protocols">inet_protocols</a> configuration parameter. </p>
137 1.1.1.1.4.2 matt
138 1.1.1.1.4.2 matt <p> Note 2: if you see error messages like the following, then
139 1.1.1.1.4.2 matt you're running Linux and need to turn on IPv6 in the kernel: see
140 1.1.1.1.4.2 matt <a href="http://www.ipv6.org/">http://www.ipv6.org/</a> for hints and tips. Unlike other systems,
141 1.1.1.1.4.2 matt Linux does not have a combined stack for IPv4 and IPv6, and IPv6
142 1.1.1.1.4.2 matt protocol support is not loaded by default. </p>
143 1.1.1.1.4.2 matt
144 1.1.1.1.4.2 matt <blockquote>
145 1.1.1.1.4.2 matt <pre>
146 1.1.1.1.4.2 matt postconf: warning: <a href="postconf.5.html#inet_protocols">inet_protocols</a>: IPv6 support is disabled: Address family not supported by protocol
147 1.1.1.1.4.2 matt postconf: warning: <a href="postconf.5.html#inet_protocols">inet_protocols</a>: configuring for IPv4 support only
148 1.1.1.1.4.2 matt </pre>
149 1.1.1.1.4.2 matt </blockquote>
150 1.1.1.1.4.2 matt
151 1.1.1.1.4.2 matt <p> Note 3: on older Linux and Solaris systems, the setting
152 1.1.1.1.4.2 matt "<a href="postconf.5.html#inet_protocols">inet_protocols</a> = ipv6" will not prevent Postfix from
153 1.1.1.1.4.2 matt accepting IPv4 connections. Postfix will present the client IP
154 1.1.1.1.4.2 matt addresses in IPv6 format, though. In all other cases, Postfix always
155 1.1.1.1.4.2 matt presents IPv4 client IP addresses in the traditional dotted quad
156 1.1.1.1.4.2 matt IPv4 format. </p>
157 1.1.1.1.4.2 matt
158 1.1.1.1.4.2 matt <li> <p> The other new parameter is <a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a>.
159 1.1.1.1.4.2 matt This sets the local interface address for outgoing IPv6 SMTP
160 1.1.1.1.4.2 matt connections, just like the <a href="postconf.5.html#smtp_bind_address">smtp_bind_address</a> parameter
161 1.1.1.1.4.2 matt does for IPv4: </p>
162 1.1.1.1.4.2 matt
163 1.1.1.1.4.2 matt <blockquote>
164 1.1.1.1.4.2 matt <pre>
165 1.1.1.1.4.2 matt /etc/postfix/<a href="postconf.5.html">main.cf</a>:
166 1.1.1.1.4.2 matt <a href="postconf.5.html#smtp_bind_address6">smtp_bind_address6</a> = 2001:240:587:0:250:56ff:fe89:1
167 1.1.1.1.4.2 matt </pre>
168 1.1.1.1.4.2 matt </blockquote>
169 1.1.1.1.4.2 matt
170 1.1.1.1.4.2 matt <li> <p> If you left the value of the <a href="postconf.5.html#mynetworks">mynetworks</a> parameter at its
171 1.1.1.1.4.2 matt default (i.e. no <a href="postconf.5.html#mynetworks">mynetworks</a> setting in <a href="postconf.5.html">main.cf</a>) Postfix will figure
172 1.1.1.1.4.2 matt out by itself what its network addresses are. This is what a typical
173 1.1.1.1.4.2 matt setting looks like: </p>
174 1.1.1.1.4.2 matt
175 1.1.1.1.4.2 matt <blockquote>
176 1.1.1.1.4.2 matt <pre>
177 1.1.1.1.4.2 matt % postconf <a href="postconf.5.html#mynetworks">mynetworks</a>
178 1.1.1.1.4.2 matt <a href="postconf.5.html#mynetworks">mynetworks</a> = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [fe80::]/10 [2001:240:587::]/64
179 1.1.1.1.4.2 matt </pre>
180 1.1.1.1.4.2 matt </blockquote>
181 1.1.1.1.4.2 matt
182 1.1.1.1.4.2 matt <p> If you did specify the <a href="postconf.5.html#mynetworks">mynetworks</a> parameter value in
183 1.1.1.1.4.2 matt <a href="postconf.5.html">main.cf</a>, you need update the <a href="postconf.5.html#mynetworks">mynetworks</a> value to include
184 1.1.1.1.4.2 matt the IPv6 networks the system is in. Be sure to specify IPv6 address
185 1.1.1.1.4.2 matt information inside "<tt>[]</tt>", like this: </p>
186 1.1.1.1.4.2 matt
187 1.1.1.1.4.2 matt <blockquote>
188 1.1.1.1.4.2 matt <pre>
189 1.1.1.1.4.2 matt /etc/postfix/<a href="postconf.5.html">main.cf</a>:
190 1.1.1.1.4.2 matt <a href="postconf.5.html#mynetworks">mynetworks</a> = ...<i>IPv4 networks</i>... [::1]/128 [2001:240:587::]/64 ...
191 1.1.1.1.4.2 matt </pre>
192 1.1.1.1.4.2 matt </blockquote>
193 1.1.1.1.4.2 matt
194 1.1.1.1.4.2 matt </ul>
195 1.1.1.1.4.2 matt
196 1.1.1.1.4.2 matt <p> <b> NOTE: when configuring Postfix match lists such as
197 1.1.1.1.4.2 matt <a href="postconf.5.html#mynetworks">mynetworks</a> or <a href="postconf.5.html#debug_peer_list">debug_peer_list</a>, you must specify
198 1.1.1.1.4.2 matt IPv6 address information inside "<tt>[]</tt>" in the <a href="postconf.5.html">main.cf</a> parameter
199 1.1.1.1.4.2 matt value and in files specified with a "<i>/file/name</i>" pattern.
200 1.1.1.1.4.2 matt IPv6 addresses contain the ":" character, and would otherwise be
201 1.1.1.1.4.2 matt confused with a "<i><a href="DATABASE_README.html">type:table</a></i>" pattern. </b> </p>
202 1.1.1.1.4.2 matt
203 1.1.1.1.4.2 matt <h2><a name="limitations">Known Limitations</a></h2>
204 1.1.1.1.4.2 matt
205 1.1.1.1.4.2 matt <ul>
206 1.1.1.1.4.2 matt
207 1.1.1.1.4.2 matt <li> <p> The order of IPv6/IPv4 outgoing connection attempts is
208 1.1.1.1.4.2 matt not yet configurable. Currently, IPv6 is tried before IPv4. </p>
209 1.1.1.1.4.2 matt
210 1.1.1.1.4.2 matt <li> <p> Postfix currently does not support DNSBL (real-time
211 1.1.1.1.4.2 matt blackhole list) lookups for IPv6 client IP addresses; currently
212 1.1.1.1.4.2 matt there are no blacklists that cover the IPv6 address space. </p>
213 1.1.1.1.4.2 matt
214 1.1.1.1.4.2 matt <li> <p> IPv6 does not have class A, B, C, etc. networks. With IPv6
215 1.1.1.1.4.2 matt networks, the setting "<a href="postconf.5.html#mynetworks_style">mynetworks_style</a> = class" has the
216 1.1.1.1.4.2 matt same effect as the setting "<a href="postconf.5.html#mynetworks_style">mynetworks_style</a> = subnet".
217 1.1.1.1.4.2 matt </p>
218 1.1.1.1.4.2 matt
219 1.1.1.1.4.2 matt <li> <p> On Tru64Unix and AIX, Postfix can't figure out the local
220 1.1.1.1.4.2 matt subnet mask
221 1.1.1.1.4.2 matt and always assumes a /128 network. This is a problem only with
222 1.1.1.1.4.2 matt "<a href="postconf.5.html#mynetworks_style">mynetworks_style</a> = subnet" and no explicit <a href="postconf.5.html#mynetworks">mynetworks</a>
223 1.1.1.1.4.2 matt setting in <a href="postconf.5.html">main.cf</a>. </p>
224 1.1.1.1.4.2 matt
225 1.1.1.1.4.2 matt </ul>
226 1.1.1.1.4.2 matt
227 1.1.1.1.4.2 matt <h2> <a name="compat">Compatibility with Postfix <2.2 IPv6 support</a>
228 1.1.1.1.4.2 matt </h2>
229 1.1.1.1.4.2 matt
230 1.1.1.1.4.2 matt <p> Postfix version 2.2 IPv6 support is based on the Postfix/IPv6 patch
231 1.1.1.1.4.2 matt by Dean Strik and others, but differs in a few minor ways. </p>
232 1.1.1.1.4.2 matt
233 1.1.1.1.4.2 matt <ul>
234 1.1.1.1.4.2 matt
235 1.1.1.1.4.2 matt <li> <p> <a href="postconf.5.html">main.cf</a>: The <a href="postconf.5.html#inet_interfaces">inet_interfaces</a> parameter does not support
236 1.1.1.1.4.2 matt the notation "ipv6:all" or "ipv4:all". Use the
237 1.1.1.1.4.2 matt <a href="postconf.5.html#inet_protocols">inet_protocols</a> parameter instead. </p>
238 1.1.1.1.4.2 matt
239 1.1.1.1.4.2 matt <li> <p> <a href="postconf.5.html">main.cf</a>: Specify "<a href="postconf.5.html#inet_protocols">inet_protocols</a> = all" or
240 1.1.1.1.4.2 matt "<a href="postconf.5.html#inet_protocols">inet_protocols</a> = ipv4, ipv6" in order to enable both IPv4
241 1.1.1.1.4.2 matt and IPv6 support. </p>
242 1.1.1.1.4.2 matt
243 1.1.1.1.4.2 matt <li> <p> <a href="postconf.5.html">main.cf</a>: The <a href="postconf.5.html#inet_protocols">inet_protocols</a> parameter also controls
244 1.1.1.1.4.2 matt what DNS lookups Postfix will attempt to make when delivering or
245 1.1.1.1.4.2 matt receiving mail. </p>
246 1.1.1.1.4.2 matt
247 1.1.1.1.4.2 matt <li> <p> <a href="postconf.5.html">main.cf</a>: Specify "<a href="postconf.5.html#inet_interfaces">inet_interfaces</a> = loopback-only"
248 1.1.1.1.4.2 matt to listen on loopback network interfaces only. </p>
249 1.1.1.1.4.2 matt
250 1.1.1.1.4.2 matt <li> <p> The <a href="postconf.5.html#lmtp_bind_address">lmtp_bind_address</a> and <a href="postconf.5.html#lmtp_bind_address6">lmtp_bind_address6</a>
251 1.1.1.1.4.2 matt features were omitted. The Postfix LMTP client will be absorbed
252 1.1.1.1.4.2 matt into the SMTP client, so there is no reason to keep adding features
253 1.1.1.1.4.2 matt to the LMTP client. </p>
254 1.1.1.1.4.2 matt
255 1.1.1.1.4.2 matt <li> <p> The SMTP server now requires that IPv6 addresses in SMTP
256 1.1.1.1.4.2 matt commands are specified as [ipv6:<i>ipv6address</i>], as
257 1.1.1.1.4.2 matt described in <a href="http://tools.ietf.org/html/rfc2821">RFC 2821</a>. </p>
258 1.1.1.1.4.2 matt
259 1.1.1.1.4.2 matt <li> <p> The IPv6 network address matching code was rewritten from
260 1.1.1.1.4.2 matt the ground up, and is expected to be closer to the specification.
261 1.1.1.1.4.2 matt The result may be incompatible with the Postfix/IPv6 patch.
262 1.1.1.1.4.2 matt </p>
263 1.1.1.1.4.2 matt
264 1.1.1.1.4.2 matt </ul>
265 1.1.1.1.4.2 matt
266 1.1.1.1.4.2 matt <h2><a name="porting">IPv6 Support for unsupported platforms</a></h2>
267 1.1.1.1.4.2 matt
268 1.1.1.1.4.2 matt <p> Getting Postfix IPv6 working on other platforms involves the
269 1.1.1.1.4.2 matt following steps: </p>
270 1.1.1.1.4.2 matt
271 1.1.1.1.4.2 matt <ul>
272 1.1.1.1.4.2 matt
273 1.1.1.1.4.2 matt <li> <p> Specify how Postfix should find the local network interfaces.
274 1.1.1.1.4.2 matt Postfix needs this information to avoid mailer loops and to find out
275 1.1.1.1.4.2 matt if mail for <i>user@[ipaddress]</i> is a local or remote destination. </p>
276 1.1.1.1.4.2 matt
277 1.1.1.1.4.2 matt <p> If your system has the getifaddrs() routine then add
278 1.1.1.1.4.2 matt the following to your platform-specific section in
279 1.1.1.1.4.2 matt src/util/sys_defs.h: </p>
280 1.1.1.1.4.2 matt
281 1.1.1.1.4.2 matt <blockquote>
282 1.1.1.1.4.2 matt <pre>
283 1.1.1.1.4.2 matt #ifndef NO_IPV6
284 1.1.1.1.4.2 matt # define HAS_IPV6
285 1.1.1.1.4.2 matt # define HAVE_GETIFADDRS
286 1.1.1.1.4.2 matt #endif
287 1.1.1.1.4.2 matt </pre>
288 1.1.1.1.4.2 matt </blockquote>
289 1.1.1.1.4.2 matt
290 1.1.1.1.4.2 matt <p> Otherwise, if your system has the SIOCGLIF ioctl()
291 1.1.1.1.4.2 matt command in /usr/include/*/*.h, add the following to your
292 1.1.1.1.4.2 matt platform-specific section in src/util/sys_defs.h: </p>
293 1.1.1.1.4.2 matt
294 1.1.1.1.4.2 matt <blockquote>
295 1.1.1.1.4.2 matt <pre>
296 1.1.1.1.4.2 matt #ifndef NO_IPV6
297 1.1.1.1.4.2 matt # define HAS_IPV6
298 1.1.1.1.4.2 matt # define HAS_SIOCGLIF
299 1.1.1.1.4.2 matt #endif
300 1.1.1.1.4.2 matt </pre>
301 1.1.1.1.4.2 matt </blockquote>
302 1.1.1.1.4.2 matt
303 1.1.1.1.4.2 matt <p> Otherwise, Postfix will have to use the old SIOCGIF commands
304 1.1.1.1.4.2 matt and get along with reduced IPv6 functionality (it won't be able to
305 1.1.1.1.4.2 matt figure out your IPv6 netmasks, which are needed for "<a href="postconf.5.html#mynetworks_style">mynetworks_style</a>
306 1.1.1.1.4.2 matt = subnet". Add this to your platform-specific section in
307 1.1.1.1.4.2 matt src/util/sys_defs.h: </p>
308 1.1.1.1.4.2 matt
309 1.1.1.1.4.2 matt <blockquote>
310 1.1.1.1.4.2 matt <pre>
311 1.1.1.1.4.2 matt #ifndef NO_IPV6
312 1.1.1.1.4.2 matt # define HAS_IPV6
313 1.1.1.1.4.2 matt #endif
314 1.1.1.1.4.2 matt </pre>
315 1.1.1.1.4.2 matt </blockquote>
316 1.1.1.1.4.2 matt
317 1.1.1.1.4.2 matt <li> <p> Test if Postfix can figure out its interface information. </p>
318 1.1.1.1.4.2 matt
319 1.1.1.1.4.2 matt <p> After compiling Postfix in the usual manner, step into the
320 1.1.1.1.4.2 matt src/util directory and type "<b>make inet_addr_local</b>".
321 1.1.1.1.4.2 matt Running this file by hand should produce all the interface addresses
322 1.1.1.1.4.2 matt and network masks, for example: </p>
323 1.1.1.1.4.2 matt
324 1.1.1.1.4.2 matt <blockquote>
325 1.1.1.1.4.2 matt <pre>
326 1.1.1.1.4.2 matt % make
327 1.1.1.1.4.2 matt % cd src/util
328 1.1.1.1.4.2 matt % make inet_addr_local
329 1.1.1.1.4.2 matt [... some messages ...]
330 1.1.1.1.4.2 matt % ./inet_addr_local
331 1.1.1.1.4.2 matt [... some messages ...]
332 1.1.1.1.4.2 matt ./inet_addr_local: inet_addr_local: configured 2 IPv4 addresses
333 1.1.1.1.4.2 matt ./inet_addr_local: inet_addr_local: configured 4 IPv6 addresses
334 1.1.1.1.4.2 matt 168.100.189.2/255.255.255.224
335 1.1.1.1.4.2 matt 127.0.0.1/255.0.0.0
336 1.1.1.1.4.2 matt fe80:1::2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff::
337 1.1.1.1.4.2 matt 2001:240:587:0:2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff::
338 1.1.1.1.4.2 matt fe80:5::1/ffff:ffff:ffff:ffff::
339 1.1.1.1.4.2 matt ::1/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
340 1.1.1.1.4.2 matt </pre>
341 1.1.1.1.4.2 matt </blockquote>
342 1.1.1.1.4.2 matt
343 1.1.1.1.4.2 matt <p> The above is for an old FreeBSD machine. Other systems produce
344 1.1.1.1.4.2 matt slightly different results, but you get the idea. </p>
345 1.1.1.1.4.2 matt
346 1.1.1.1.4.2 matt </ul>
347 1.1.1.1.4.2 matt
348 1.1.1.1.4.2 matt <p> If none of all this produces a usable result, send email to the
349 1.1.1.1.4.2 matt postfix-users (a] postfix.org mailing list and we'll try to help you
350 1.1.1.1.4.2 matt through this. </p>
351 1.1.1.1.4.2 matt
352 1.1.1.1.4.2 matt <h2><a name="credits">Credits</a></h2>
353 1.1.1.1.4.2 matt
354 1.1.1.1.4.2 matt <p> The following information is in part based on information that
355 1.1.1.1.4.2 matt was compiled by Dean Strik. </p>
356 1.1.1.1.4.2 matt
357 1.1.1.1.4.2 matt <ul>
358 1.1.1.1.4.2 matt
359 1.1.1.1.4.2 matt <li> <p> Mark Huizer wrote the original Postfix IPv6 patch. </p>
360 1.1.1.1.4.2 matt
361 1.1.1.1.4.2 matt <li> <p> Jun-ichiro 'itojun' Hagino of the KAME project made
362 1.1.1.1.4.2 matt substantial improvements. Since then, we speak of the KAME patch.
363 1.1.1.1.4.2 matt </p>
364 1.1.1.1.4.2 matt
365 1.1.1.1.4.2 matt <li> <p> The PLD Linux Distribution ported the code to other stacks
366 1.1.1.1.4.2 matt (notably USAGI). We speak of the PLD patch. A very important
367 1.1.1.1.4.2 matt feature of the PLD patch was that it can work with Lutz Jaenicke's
368 1.1.1.1.4.2 matt TLS patch for Postfix. </p>
369 1.1.1.1.4.2 matt
370 1.1.1.1.4.2 matt <li> <p> Dean Strik extended IPv6 support to platforms other than
371 1.1.1.1.4.2 matt KAME and USAGI, updated the patch to keep up with Postfix development,
372 1.1.1.1.4.2 matt and provided a combined IPv6 + TLS patch. Information about his
373 1.1.1.1.4.2 matt effort can be found on Dean Strik's Postfix website at
374 1.1.1.1.4.2 matt <a href="http://www.ipnet6.org/postfix/">http://www.ipnet6.org/postfix/</a>. </p>
375 1.1.1.1.4.2 matt
376 1.1.1.1.4.2 matt <li> <p> Wietse Venema took Dean Strik's IPv6 patch, merged it into
377 1.1.1.1.4.2 matt Postfix 2.2, and took the opportunity to eliminate all IPv4-specific
378 1.1.1.1.4.2 matt code from Postfix that could be removed. For systems without IPv6
379 1.1.1.1.4.2 matt support in the kernel and system libraries, Postfix has a simple
380 1.1.1.1.4.2 matt compatibility layer, so that it will use IPv4 as before. </p>
381 1.1.1.1.4.2 matt
382 1.1.1.1.4.2 matt </ul>
383 1.1.1.1.4.2 matt
384 1.1.1.1.4.2 matt </body>
385 1.1.1.1.4.2 matt
386 1.1.1.1.4.2 matt </html>
387