]> granicus.if.org Git - apache/commitdiff
Replace the section on IPv6 with new text that accounts for
authorJeff Trawick <trawick@apache.org>
Fri, 14 Feb 2003 13:39:43 +0000 (13:39 +0000)
committerJeff Trawick <trawick@apache.org>
Fri, 14 Feb 2003 13:39:43 +0000 (13:39 +0000)
--[enable|disable]-v4-mapped configure option and the varying
default for it.

PR:            16739

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@98650 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/bind.html.en
docs/manual/bind.xml

index d63e402a5150ae8d649c3bbfad2c9b7f9a7227af..89d4bd9152129470b0dc045bf48732d4563dbeb5 100644 (file)
 <h2><a name="ipv6" id="ipv6">Special IPv6 Considerations</a></h2>
     
 
-    <p>When APR supports IPv6, Apache will create IPv6-capable listening
-    sockets by default (i.e., when no IP address is specified on the
-    Listen directive).  In other words, when APR supports IPv6,</p>
+    <p>A growing number of platforms implement IPv6, and APR supports 
+    IPv6 on most of these platforms, allowing Apache to allocate IPv6 
+    sockets and handle requests which were sent over IPv6.</p>
+
+    <p>One complicating factor for Apache administrators is whether or
+    not an IPv6 socket can handle both IPv4 connections and IPv6 
+    connections.  Handling IPv4 connections with an IPv6 socket uses 
+    IPv4-mapped IPv6 addresses, which are allowed by default on most 
+    platforms but are disallowed by default on FreeBSD, NetBSD, and 
+    OpenBSD in order to match the system-wide policy on those
+    platforms.  But even on systems where it is disallowed by default, a 
+    special configure parameter can change this behavior for Apache.</p>
+
+    <p>If you want Apache to handle IPv4 and IPv6 connections with a 
+    minimum of sockets, which requires using IPv4-mapped IPv6 addresses, 
+    specify the <code>--enable-v4-mapped</code> configure option and use 
+    generic Listen directives like the following:</p>
 
     <div class="example"><p><code>
       Listen 80
     </code></p></div>
 
-    <p>is equivalent to</p>
+    <p>With <code>--enable-v4-mapped</code>, the Listen directives in the 
+    default configuration file created by Apache will use this form.  
+    <code>--enable-v4-mapped</code> is the default on all platforms but 
+    FreeBSD, NetBSD, and OpenBSD, so this is probably how your Apache was 
+    built.</p>
 
-    <div class="example"><p><code>
-      Listen [::]:80
-    </code></p></div>
-
-    <p>When APR does not support IPv6,</p>
+    <p>If you want Apache to handle IPv4 connections only, regardless of 
+    what your platform and APR will support, specify an IPv4 address on all 
+    Listen directives, as in the following examples:</p>
 
     <div class="example"><p><code>
-      Listen 80
+      Listen 0.0.0.0:80
+      Listen 192.170.2.1:80
     </code></p></div>
 
-    <p>is equivalent to</p>
+    <p>If you want Apache to handle IPv4 and IPv6 connections on separate 
+    sockets (i.e., to disable IPv4-mapped addresses), specify the 
+    <code>--disable-v4-mapped</code> configure option and use specific Listen 
+    directives like the following:</p>
 
     <div class="example"><p><code>
+      Listen [::]:80
       Listen 0.0.0.0:80
     </code></p></div>
 
-    <p>On some platforms, such as NetBSD, binding to the IPv6 wildcard address 
-    ("::") does not allow Apache to accept connections on IPv4 interfaces.
-    In this situation, multiple Listen directives are required, as shown
-    below:</p>
-
-    <div class="example"><p><code>
-      Listen 0.0.0.0:80<br />
-      Listen [::]:0
-    </code></p></div>
+    <p>With <code>--disable-v4-mapped</code>, the Listen directives in the 
+    default configuration file created by Apache will use this form.  
+    <code>--disable-v4-mapped</code> is the default on FreeBSD, NetBSD, and 
+    OpenBSD.</p>
 
-    <p>Apache does not currently detect this, so the Listen statements must
-    be edited manually by the administrator.</p>
   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="virtualhost" id="virtualhost">How This Works With Virtual Hosts</a></h2>
index 4f342ee06a6d1e6efdad315545f0e32b8009dccc..5eeb8ea0f10509d65e8792e4e99b0cd91b30854e 100644 (file)
   <section id="ipv6">
     <title>Special IPv6 Considerations</title>
 
-    <p>When APR supports IPv6, Apache will create IPv6-capable listening
-    sockets by default (i.e., when no IP address is specified on the
-    Listen directive).  In other words, when APR supports IPv6,</p>
+    <p>A growing number of platforms implement IPv6, and APR supports 
+    IPv6 on most of these platforms, allowing Apache to allocate IPv6 
+    sockets and handle requests which were sent over IPv6.</p>
+
+    <p>One complicating factor for Apache administrators is whether or
+    not an IPv6 socket can handle both IPv4 connections and IPv6 
+    connections.  Handling IPv4 connections with an IPv6 socket uses 
+    IPv4-mapped IPv6 addresses, which are allowed by default on most 
+    platforms but are disallowed by default on FreeBSD, NetBSD, and 
+    OpenBSD in order to match the system-wide policy on those
+    platforms.  But even on systems where it is disallowed by default, a 
+    special configure parameter can change this behavior for Apache.</p>
+
+    <p>If you want Apache to handle IPv4 and IPv6 connections with a 
+    minimum of sockets, which requires using IPv4-mapped IPv6 addresses, 
+    specify the <code>--enable-v4-mapped</code> configure option and use 
+    generic Listen directives like the following:</p>
 
     <example>
       Listen 80
     </example>
 
-    <p>is equivalent to</p>
+    <p>With <code>--enable-v4-mapped</code>, the Listen directives in the 
+    default configuration file created by Apache will use this form.  
+    <code>--enable-v4-mapped</code> is the default on all platforms but 
+    FreeBSD, NetBSD, and OpenBSD, so this is probably how your Apache was 
+    built.</p>
 
-    <example>
-      Listen [::]:80
-    </example>
-
-    <p>When APR does not support IPv6,</p>
+    <p>If you want Apache to handle IPv4 connections only, regardless of 
+    what your platform and APR will support, specify an IPv4 address on all 
+    Listen directives, as in the following examples:</p>
 
     <example>
-      Listen 80
+      Listen 0.0.0.0:80
+      Listen 192.170.2.1:80
     </example>
 
-    <p>is equivalent to</p>
+    <p>If you want Apache to handle IPv4 and IPv6 connections on separate 
+    sockets (i.e., to disable IPv4-mapped addresses), specify the 
+    <code>--disable-v4-mapped</code> configure option and use specific Listen 
+    directives like the following:</p>
 
     <example>
+      Listen [::]:80
       Listen 0.0.0.0:80
     </example>
 
-    <p>On some platforms, such as NetBSD, binding to the IPv6 wildcard address 
-    ("::") does not allow Apache to accept connections on IPv4 interfaces.
-    In this situation, multiple Listen directives are required, as shown
-    below:</p>
-
-    <example>
-      Listen 0.0.0.0:80<br />
-      Listen [::]:0
-    </example>
+    <p>With <code>--disable-v4-mapped</code>, the Listen directives in the 
+    default configuration file created by Apache will use this form.  
+    <code>--disable-v4-mapped</code> is the default on FreeBSD, NetBSD, and 
+    OpenBSD.</p>
 
-    <p>Apache does not currently detect this, so the Listen statements must
-    be edited manually by the administrator.</p>
   </section>
 
   <section id="virtualhost">