Como configurar o apache virtualhost para funcionar com o ipv6?

10

Eu tenho servidor com 1 endereço ipv4 e com alguns endereços ipv6. Um domínio é redirecionado para o ipv4. Um registro que eu configurei no apache ports.conf assim:

Listen ip.v4.address:80
NameVirtualHost ip.v4.address:80

e arquivo virtualhost:

<VirtualHost ip.v4.address:80>
DocumentRoot /var/www/first/
ServerName first.domain
ServerAlias www.first.domain
ErrorLog ...
CustomLog ...
</VirtualHost>

E tudo funciona bem.

Agora eu quero criar um novo host virtual para o segundo domínio com o segundo ip. Redirecionei o segundo domínio para o registro IPv6 AAAA, adicionei ao ports.conf:

Listen [ip.v6.address]:80
NameVirtualHost [ip.v6.address]:80

crie um novo arquivo de host virtual:

<VirtualHost [ip.v6.address]:80>
DocumentRoot /var/www/second/
ServerName second.domain
ServerAlias www.second.domain
ErrorLog ...
CustomLog ...
</VirtualHost>

e reinicie o Apache. Não houve erros no início do servidor, mas ele não funciona. Quando entro no segundo domínio no navegador, o servidor não foi encontrado. Quando eu entro no [ip.v6.address]site aparece.

Qualquer ajuda?

indeciso
fonte
Obrigado pela ajuda a todos. O IPv6 está correto e preciso de dois sites diferentes. Entrei em contato com meu provedor de domínio onde configurei esse registro AAAA. Eles disseram que pode levar 24 horas para configurá-lo e talvez aqui esteja o problema. Quando montei um disco, o efeito foi quase imediato e pensei que o AAAA funcionasse da mesma maneira.
Sheldy
Seria bom se você marcou a sua resposta favorita, como tal, de modo que as pessoas que tentaram ajudá-lo a obter alguma recompensa para fazê-lo ;-)
Sander Steffann

Respostas:

12

Sua configuração do apache parece correta, mas um pouco mais complexa do que precisa, se você deseja que um site seja alcançável por IPv4 e IPv6 (pilha dupla).

Ao invés de

<VirtualHost ip.v4.address:80>
...
</VirtualHost>

<VirtualHost [ip.v6.address]:80>
...
</VirtualHost>

você pode fazer

<VirtualHost ip.v4.address:80 [ip.v6.address]:80>
...
</VirtualHost>

Dessa forma, os hosts virtuais únicos escutam nos dois endereços IP. É muito mais fácil de manter!

Se você realmente deseja um site diferente no IPv6, é claro que sua configuração está correta.

Sander Steffann
fonte
2
Ou talvez <VirtualHost *: 80>?
Koos van den Hout
2
Isso certamente poderia funcionar também, mas como ele especificou explicitamente os endereços IP em seu exemplo, eu também o fiz. Se você realmente não se importa com o endereço IP e apenas deseja fazer tudo pelo cabeçalho Host:, então sua solução é muito mais fácil. Cuidado com os sites SSL / TLS. Você precisa garantir que a indicação do nome do servidor (TLS / SNI) funcione para sua base de usuários.
Sander Steffann
4

Isso soa como um erro de resolução de nome IPv6 em vez de um erro do Apache. Verifique se o nome resolve corretamente para o endereço.

user9517
fonte
3

O nome resolve para o endereço IPv6 correto? Isso parece ser um problema na resolução de domínio.

Martin Vejmelka
fonte