У меня есть сервер Ubuntu 12.04 со многими адресами IPv4 и/64 адресов IPv6. У меня есть он отвечающий на его адреса IPv6 с ping6. Я хотел бы, чтобы домены, размещенные на сервере, пошли двойной стек, таким образом, поддерживающие IPv6 посетители смогут получить доступ к его сайтам по IPv6, и все остальные будут использовать IPv4.
Вот соответствующие части моей конфигурации Apache как есть теперь:
ports.conf:
NameVirtualHost 199.192.201.82:80
Listen 199.192.201.82:80
Listen [2607:ff50:0:21::2]:80
httpd.conf:
<VirtualHost 199.192.201.82:80>
ServerName cdc.nexussl.net
DirectoryIndex index.php
DocumentRoot /var/www
LogLevel warn
ErrorLog /var/www/error.log
CustomLog /var/www/access.log combined
</VirtualHost>
<VirtualHost 199.192.201.82:80>
ServerName ipv6.nexussl.net
DirectoryIndex index.php
DocumentRoot /var/www
LogLevel warn
ErrorLog /var/www/error.log
CustomLog /var/www/access.log combined
</VirtualHost>
<VirtualHost 199.192.201.82:80>
ServerName dual.nexussl.net
DirectoryIndex index.php
DocumentRoot /var/www
LogLevel warn
ErrorLog /var/www/error.log
CustomLog /var/www/access.log combined
</VirtualHost>
cdc.nexussl.net имеет запись, указывающую 199.192.201.82, ipv6.nexussl.net имеет запись AAAA, указывающую 2607:ff50:0:21:: 2, и dual.nexussl.net имеет и A и запись AAAA.
С той установкой IPv4 хорошо работает (Они должны все отобразить страницу "You look lost"), но посещение ipv6.nexussl.net или dual.nexussl.net от способной к IPv6 машины возвращается
Not Found
The requested URL / was not found on this server.
Apache/2.2.22 (Ubuntu) Server at ipv6.nexussl.net Port 80
dual.nexussl.net работает правильно над соединением только для IPv4. В конечном счете я хотел бы, чтобы все сайты были созданы в DNS как dual.nexussl.net, и с A и с записями AAAA.
В конфигурации Apache я не могу просто использовать Listen 80
, потому что другие приложения на том сервере используют порт 80 на другом дюйм/с. Apache должен только использовать 199.192.201.82 насколько IPv4 идет.
До IPv6 я должен дать каждому сайту его собственный адрес IPv6, и они просто совместно используют один IPv4? Я чувствую, что это могло получить грязный список адреса IPv6 в ports.conf
для каждого сайта. Даже если у меня есть они все, совместно используют адрес IPv6, как я заставляю Apache служить сайтам правильно по IPv6?
Во-первых, ваши записи AAAA должны указывать на ваш IPv6-адрес, а не на 199.192.201.82 (что технически невозможно, поэтому я не удивлюсь, что это опечатка).
Вот правильная конфигурация:
ports.conf:
Listen 199.192.201.82:80
NameVirtualHost 199.192.201.82:80
Listen [2607:ff50:0:21::2]:80
NameVirtualHost [2607:ff50:0:21::2]:80
httpd.conf:
<VirtualHost 199.192.201.82:80>
ServerName cdc.nexussl.net
DirectoryIndex index.php
DocumentRoot /var/www
LogLevel warn
ErrorLog /var/www/error.log
CustomLog /var/www/access.log combined
</VirtualHost>
<VirtualHost [2607:ff50:0:21::2]:80>
ServerName ipv6.nexussl.net
DirectoryIndex index.php
DocumentRoot /var/www
LogLevel warn
ErrorLog /var/www/error.log
CustomLog /var/www/access.log combined
</VirtualHost>
<VirtualHost 199.192.201.82:80 [2607:ff50:0:21::2]:80>
ServerName dual.nexussl.net
DirectoryIndex index.php
DocumentRoot /var/www
LogLevel warn
ErrorLog /var/www/error.log
CustomLog /var/www/access.log combined
</VirtualHost>