5.1. Preparação
Quando a implementação do IPv6 nativo não é possível, usar servidores proxy reversos para disponibilizar serviços no IPv6 é a segunda melhor opção. Ao escolher esta opção, as principais escolhas são em qual nível de protocolo implementá-la e onde colocar o proxy.
Usar um proxy de camada 4 é o mais fácil. Não requer nenhum conhecimento do servidor proxy além dos endereços e números de porta. A desvantagem é que não é possível, por exemplo, adicionar cabeçalhos extras a uma solicitação HTTP ou HTTPS para tornar o endereço IPv6 do cliente conhecido pelo servidor da web.
O uso de um proxy da camada 7 oferece mais flexibilidade porque possibilita que o proxy adicione informações à solicitação enviada ao servidor. A desvantagem é que o servidor proxy precisa saber sobre cada site que ele deve usar como proxy e deve ter todas as chaves SSL / TLS e certificados para qualquer site HTTPS. Se incluir um cabeçalho X-Forwarded-For, os balanceadores de carga, servidores web, software de servidor de aplicativos e software de suporte podem precisar lidar com endereços IPv6 nesse cabeçalho, portanto, verifique se for esse o caso.
Ao decidir sobre a localização do servidor proxy, a primeira etapa é decidir se deseja hospedar o servidor proxy interna ou externamente. Quando o servidor proxy é hospedado internamente, pelo menos parte da rede interna deve estar habilitada para IPv6. Ao usar um servidor proxy externo, por exemplo, permitindo que o provedor de serviços forneça um, a rede interna não precisa ser alterada. Em seguida, usando um servidor proxy interno, o melhor lugar para esse servidor é atrás do firewall e antes do balanceador de carga, se possível.
5,2 Visão geral técnica
Daremos alguns exemplos simples de como um servidor proxy reverso pode ser configurado. Esses exemplos são baseados no software haproxy, pois ele pode ser usado como proxy de camada 4 e 7.
5.3. Proxies TCP (camada 4)
Neste exemplo, usamos estes endereços e portas:
- O endereço IPv4 e a porta do servidor da web real:
192.0.2.1 on TCP port 80
- O endereço IPv6 e a porta em que o servidor proxy escuta:
2001:db8:abc:123::cafe on TCP port 80
Uma configuração haproxy básica na porta 80 para tráfego HTTP pode ser assim:
global usuário haproxy grupo haproxy demônio log / dev / log daemon padrões cliente de tempo limite 5000 tempo limite conectar 5000 servidor de tempo limite 10000 escute webserver1 bind 2001: db8: abc: 123 :: cafe: 80 modo tcp servidor webserver1 192.0.2.1:80
Essa tecnologia funciona para qualquer porta TCP, portanto, também pode ser usada para protocolos como SMTP. Neste exemplo, usamos estes endereços e portas:
- O endereço IPv4 e a porta do servidor SMTP real:
192.0.2.1 on TCP port 25
- O endereço IPv6 e a porta em que o servidor proxy escuta:
2001:db8:abc:123::cafe on TCP port 25
A última parte da configuração fica assim:
escute smtp1 bind 2001: db8: abc: 123 :: cafe: 25 modo tcp servidor smtp1 192.0.2.1:25
5,4 Proxies HTTP (camada 7)
Neste exemplo, usamos estes endereços e portas:
- O endereço IPv4 e a porta do servidor da web real:
192.0.2.1 on TCP port 80
- O endereço IPv6 e a porta em que o servidor proxy escuta:
2001:db8:abc:123::cafe on TCP port 80
Usar haproxy para HTTP é muito semelhante ao exemplo da camada 4 acima. Apenas a seção de escuta precisa ser alterada para alternar para o modo HTTP e incluir o cabeçalho X-Forwarded-For:
ouvir website1 bind 2001: db8: abc: 123 :: cafe: 80 modo http opção encaminhar para site do servidor 1 192.0.2.1:80 <p / pre>
5.5. Proxies HTTPS (camada 7)
Nestes exemplos, usamos estes endereços e portas:
- O endereço IPv4 e a porta do servidor da web real:
192.0.2.1 on TCP port 443
- O endereço IPv6 e a porta em que o servidor proxy escuta:
2001:db8:abc:123::cafe on TCP port 443
Ao usar o haproxy como um proxy de camada 7 com SSL / TLS, o haproxy precisa acessar a chave privada e o certificado correspondente para esse site. A chave e o certificado precisam estar em um arquivo codificado por PEM. O exemplo a seguir mostra a parte de escuta:
ouvir website1-ssl bind 2001: db8: abc: 123 :: cafe: 443 ssl crt /etc/haproxy/website-ssl.pem modo http opção encaminhar para servidor site1 192.0.2.1:443 ssl
Este exemplo aceita conexões por SSL / TLS, adiciona o cabeçalho X-Forwarded-For à solicitação e o encaminha por SSL / TLS para o servidor IPv4.
Uma abordagem alternativa quando não é possível ou desejável ter a chave privada no servidor proxy é tratar as conexões SSL / TLS como conexões TCP regulares. O servidor proxy verá apenas o tráfego criptografado, portanto, não será possível adicionar o cabeçalho X-Forwarded-For à solicitação.
ouvir website1-ssl-passthrough bind 2001: db8: abc: 123 :: cafe: 443 modo tcp site do servidor 1 192.0.2.1:443
5,6. Benefícios e desvantagens desta solução
O principal benefício dessa solução é que nem todas as partes da rede precisam ser habilitadas para IPv6. Certos problemas causados pelo IPv4 NAT podem ser atenuados. É possível, por exemplo, implementar controle de acesso e limitação de taxa em um servidor proxy. Os logs no servidor proxy também podem ser usados para segurança e auditoria. Dependendo se o cabeçalho X-Forwarded-For é adicionado à solicitação pelo servidor proxy, o endereço IPv6 do cliente também pode ser usado nos servidores para esses fins, bem como, por exemplo, análise de comportamento e geolocalização.
A desvantagem dessa abordagem é que ela adiciona um elemento de rede extra para o tráfego IPv6, o que pode tornar o monitoramento, a depuração e a administração do sistema e da rede mais complexos.
Deixe uma resposta