Apache de pilha dupla

2

Eu tenho um servidor Ubuntu 12.04 com um número de endereços IPv4 e um / 64 de endereços IPv6. Eu tenho que responder aos seus endereços IPv6 com ping6. Eu gostaria que os domínios hospedados no servidor fossem dual-stack, então os visitantes habilitados para IPv6 poderão acessar seus sites através de IPv6, e todos os outros usarão IPv4.

Aqui estão as partes relevantes da minha configuração do Apache como estão agora:

ports.conf:

NameVirtualHost 199.192.201.82:80
Listen 199.192.201.82:80
Listen [2607:ff50:0:21::2]:80

link

<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 tem um registro A apontando para 199.192.201.82, ipv6.nexussl.net tem um registro AAAA apontando para 2607: ff50: 0: 21 :: 2 e dual.nexussl.net tem um registro A e AAAA.

Com essa configuração, o IPv4 funciona bem (todos devem exibir uma página "Você parece perdido"), mas visitar ipv6.nexussl.net ou dual.nexussl.net a partir de uma máquina compatível com IPv6 retorna

Not Found
The requested URL / was not found on this server.
Apache/2.2.22 (Ubuntu) Server at ipv6.nexussl.net Port 80

O dual.nexussl.net funciona corretamente em uma conexão somente IPv4. Por fim, gostaria que todos os sites fossem configurados no DNS como dual.nexussl.net, com registros A e AAAA.

Na configuração do Apache, não posso usar apenas Listen 80 , porque outros aplicativos nesse servidor usam a porta 80 em outros IPs. O Apache só deve usar 199.192.201.82 até onde o IPv4 vai.

No que diz respeito ao IPv6, devo atribuir a cada site seu próprio endereço IPv6 e eles compartilharão apenas um IPv4? Eu sinto que isso pode ficar confuso listando um endereço IPv6 em ports.conf para cada site. Mesmo que eu tenha todos eles compartilhando um endereço IPv6, como faço para que o Apache sirva sites corretamente sobre o IPv6?

    
por Dan 26.11.2012 / 20:56

1 resposta

3

Primeiro, seus registros AAAA precisam apontar para o seu endereço IPv6, e não para 199.192.201.82 (o que é tecnicamente impossível, então eu não ficaria surpreso que isso seja um erro de digitação).

Aqui está uma configuração correta:

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

link

<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>
    
por Sander Steffann 26.11.2012 / 22:28