Configurando o Apache para ser Dual Stack : IPv6 e IPv4

Apesar do movimento não ser tão grande estamos já na eminência do uso do IPv6.

Ele que era uma realidade distante para a maioria das pessoas já se torna uma obrigação diária de aprendizado para qualquer Administrador de Rede que esteja no mercado.

Vou discutir um pouco sobre isto em um próximo post, mas este é uma dica rápida de como configurar o seu apache para ouvir tanto no IPv6 e IPv4, tendo neste apache VirtualHosts para ambos os protocolos.

Bom, então vamos lá. Tomemos por exemplo o site ataliba.eti.br :

O site ataliba.eti.br tem o endereço IPv4 : 108.162.196.100
O site ataliba.eti.br tem o endereço IPv6: 2607:f298:1:107::ba5:c88f

Assim, o primeiro passo para configurar o apache é atualizar o httpd.conf para que ele passe a ouvir em ambos os protocolos. Abaixo da diretiva :

Listen 108.162.196.100:80

Adicione :

Listen [2607:f298:1:107::ba5:c88f]:80

Ficando :

Listen 108.162.196.100:80
Listen [2607:f298:1:107::ba5:c88f]:80

Lembre-se que o ip deve estar sempre entre chaves. Isto é um padrão inclusive quando você vai entrar em um ip/site em qualquer programa utilizando o IPv6.

Ao reiniciar o apache ele já estará ouvindo em ambos os protocolos.

Mas e se eu quiser configurar VirtualHosts ? Como eu faria ?
O processo é praticamente o mesmo. Veja o exemplo abaixo:


<VirtualHost 108.162.196.100>
ServerAdmin [email protected]
DocumentRoot /home/ataliba/ataliba.eti.br/html
ServerName ataliba.eti.br
ErrorLog logs/ataliba.eti.br-error_log
TransferLog logs/ataliba.eti.br-access_log
ErrorLog “/home/ataliba/ataliba.eti.br/logs/ipv4.error.log”
CustomLog “/home/ataliba/ataliba.eti.br/logs/ipv4.access.log” common
ScriptAlias /cgi-bin/ “/home/ataliba/ataliba.eti.br/cgi-bin/”
</VirtualHost>

<VirtualHost [2607:f298:1:107::ba5:c88f]>
ServerAdmin [email protected]
DocumentRoot /home/ataliba/ataliba.eti.br/html
ServerName ataliba.eti.br
ErrorLog logs/ataliba.eti.br-error_log
TransferLog logs/ataliba.eti.br-access_log
ErrorLog “/home/ataliba/ataliba.eti.br/logs/ipv6.error.log”
CustomLog “/home/ataliba/ataliba.eti.br/logs/ipv6.access.log” common
ScriptAlias /cgi-bin/ “/home/ataliba/ataliba.eti.br/cgi-bin/”
</VirtualHost>


A partir daí o seu servidor está ouvindo sem problemas nos dois protocolos e servindo o mesmo VirtualHost em ambos 🙂

Breve como fazer as regras de iptables em IPv6 e mais algumas infos sobre o protocolo.