fbpx

Implementação do proxy IPv6 para IPv4

Implementação do proxy IPv6 para IPv4

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.

Somos um Time qualificado e pronto para lhe atender caso queira tirar o projeto do IPv6 do papel entre contato nos podemos ajudar somo estamos a disposição !

Deixe uma resposta

0