ping6.net

IPv6 na AWS: VPC, EC2, ELB e Mais

Guia completo para implementar IPv6 na Amazon Web Services. Configure VPCs, sub-redes, grupos de segurança, balanceadores de carga e gateways egress-only.

ping6.net14 de dezembro de 202414 min read
IPv6AWScloudVPCEC2rede

A AWS tem suporte abrangente de IPv6 na maioria dos serviços, mas não está ativado por padrão. Tem de optar por ativar, e a configuração está distribuída por múltiplas camadas.

TL;DR - Resumo rápido

Pontos-chave:

  • A AWS fornece IPv6 dual-stack (não IPv6-only para a maioria dos serviços)
  • Recebe blocos /56 atribuídos pela Amazon do intervalo 2600::/12
  • Todos endereços IPv6 são globalmente únicos e roteáveis (sem NAT)
  • Gateways egress-only fornecem filtragem stateful sem tradução de endereços

Ir para: Configuração VPC | Instâncias EC2 | Grupos de Segurança | Balanceadores de Carga | Exemplo Terraform


Visão Geral da Arquitetura IPv6 da AWS#

A AWS fornece IPv6 numa configuração dual-stack. Os seus recursos obtêm endereços IPv4 e IPv6. Não pode executar apenas IPv6 na maioria dos serviços (exceto algumas cargas de trabalho de contêineres e serverless).

A Amazon atribui blocos CIDR IPv6 do seu pool público. Não pode escolher o seu prefixo — a AWS aloca um bloco /56 à sua VPC do intervalo 2600::/12.

Ao contrário do IPv4 onde usa endereços privados RFC1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), todos os endereços IPv6 da AWS são globalmente únicos e roteáveis (GUA). Não há NAT para IPv6 no sentido tradicional — se quiser conectividade apenas de saída, usa um gateway de Internet egress-only.

Configuração IPv6 de VPC#

Comece com a sua VPC. Adicionar IPv6 não perturba recursos IPv4 existentes.

Associar Bloco CIDR IPv6#

Adicione um CIDR IPv6 fornecido pela Amazon à sua VPC:

aws ec2 associate-vpc-cidr-block \
  --vpc-id vpc-0abc123def456 \
  --amazon-provided-ipv6-cidr-block

A AWS atribui um bloco /56. A resposta mostra o seu intervalo atribuído:

{
  "Ipv6CidrBlockAssociation": {
    "Ipv6CidrBlock": "2600:1f13:1234:5600::/56",
    "Ipv6CidrBlockState": {
      "State": "associating"
    }
  }
}

Aguarde até o estado mudar para associated:

aws ec2 describe-vpcs --vpc-ids vpc-0abc123def456 \
  --query 'Vpcs[0].Ipv6CidrBlockAssociationSet[0].Ipv6CidrBlockState.State'

Também pode usar «bring your own IP» (BYOIP) se tiver espaço IPv6 independente de fornecedor e quiser manter endereços entre contas AWS ou migrações. A maioria dos utilizadores fica com endereços fornecidos pela Amazon.

Configuração IPv6 de Sub-redes#

As sub-redes precisam das suas próprias fatias /64 do bloco /56 da VPC.

Liste o CIDR IPv6 da sua VPC:

aws ec2 describe-vpcs --vpc-ids vpc-0abc123def456 \
  --query 'Vpcs[0].Ipv6CidrBlockAssociationSet[0].Ipv6CidrBlock'

Saída: 2600:1f13:1234:5600::/56

Atribua blocos /64 às sub-redes. Use valores hexadecimais 00-FF para a porção de sub-rede:

# Sub-rede pública A - 2600:1f13:1234:5600::/64
aws ec2 associate-subnet-cidr-block \
  --subnet-id subnet-0abc111 \
  --ipv6-cidr-block 2600:1f13:1234:5600::/64
 
# Sub-rede pública B - 2600:1f13:1234:5601::/64
aws ec2 associate-subnet-cidr-block \
  --subnet-id subnet-0abc222 \
  --ipv6-cidr-block 2600:1f13:1234:5601::/64
 
# Sub-rede privada A - 2600:1f13:1234:5610::/64
aws ec2 associate-subnet-cidr-block \
  --subnet-id subnet-0abc333 \
  --ipv6-cidr-block 2600:1f13:1234:5610::/64

Ative atribuição automática de endereços IPv6 para instâncias lançadas em sub-redes públicas:

aws ec2 modify-subnet-attribute \
  --subnet-id subnet-0abc111 \
  --assign-ipv6-address-on-creation

Tabelas de Roteamento#

O roteamento IPv6 é separado do IPv4. Crie rotas para os seus blocos CIDR IPv6.

Para sub-redes públicas, roteie todo o tráfego IPv6 (::/0) para o gateway de Internet:

aws ec2 create-route \
  --route-table-id rtb-0abc123 \
  --destination-ipv6-cidr-block ::/0 \
  --gateway-id igw-0def456

Gateways de Internet lidam com IPv4 e IPv6 sem modificação.

Para sub-redes privadas, usará um gateway de Internet egress-only (explicado mais tarde):

aws ec2 create-route \
  --route-table-id rtb-0abc789 \
  --destination-ipv6-cidr-block ::/0 \
  --egress-only-internet-gateway-id eigw-0ghi012

Verifique as rotas:

aws ec2 describe-route-tables --route-table-ids rtb-0abc123 \
  --query 'RouteTables[0].Routes'

Configuração IPv6 de Instâncias EC2#

Instâncias EC2 precisam de atribuição explícita de endereços IPv6.

Lançar Novas Instâncias com IPv6#

Especifique --ipv6-address-count ao lançar:

aws ec2 run-instances \
  --image-id ami-0abc123 \
  --instance-type t3.medium \
  --subnet-id subnet-0abc111 \
  --ipv6-address-count 1 \
  --key-name mykey \
  --security-group-ids sg-0abc456

Ou atribua um endereço IPv6 específico do intervalo da sua sub-rede:

aws ec2 run-instances \
  --image-id ami-0abc123 \
  --instance-type t3.medium \
  --subnet-id subnet-0abc111 \
  --ipv6-addresses Ipv6Address=2600:1f13:1234:5600::a \
  --key-name mykey \
  --security-group-ids sg-0abc456

Adicionar IPv6 a Instâncias Existentes#

Obtenha o ID da interface de rede (ENI):

aws ec2 describe-instances --instance-ids i-0abc123 \
  --query 'Reservations[0].Instances[0].NetworkInterfaces[0].NetworkInterfaceId'

Atribua um endereço IPv6:

aws ec2 assign-ipv6-addresses \
  --network-interface-id eni-0def456 \
  --ipv6-address-count 1

Ou especifique endereços exatos:

aws ec2 assign-ipv6-addresses \
  --network-interface-id eni-0def456 \
  --ipv6-addresses 2600:1f13:1234:5600::b

Configuração do Sistema Operacional da Instância#

A maioria das AMIs modernas (Amazon Linux 2023, Amazon Linux 2, Ubuntu 20.04+) configuram IPv6 automaticamente via cloud-init e DHCPv6.

Aceda via SSH à sua instância e verifique:

ip -6 addr show

Deve ver o seu endereço IPv6 atribuído na interface eth0:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001
    inet6 2600:1f13:1234:5600::a/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::4a2:c9ff:fe12:3456/64 scope link
       valid_lft forever preferred_lft forever

Teste a conectividade:

ping6 google.com
curl -6 https://ifconfig.co

Se IPv6 não estiver configurado, verifique os logs do cloud-init:

sudo cat /var/log/cloud-init.log | grep -i ipv6

Algumas AMIs mais antigas podem requerer configuração manual. Adicione a /etc/network/interfaces (Debian/Ubuntu) ou /etc/sysconfig/network-scripts/ifcfg-eth0 (RHEL/CentOS).

Grupos de Segurança#

Grupos de segurança precisam de regras IPv6 explícitas. Regras IPv4 não se aplicam ao tráfego IPv6.

Criar Regras de Grupo de Segurança Dual-Stack#

Permitir HTTP/HTTPS de qualquer lugar (IPv4 e IPv6):

# IPv4
aws ec2 authorize-security-group-ingress \
  --group-id sg-0abc123 \
  --ip-permissions IpProtocol=tcp,FromPort=443,ToPort=443,IpRanges='[{CidrIp=0.0.0.0/0}]'
 
# IPv6
aws ec2 authorize-security-group-ingress \
  --group-id sg-0abc123 \
  --ip-permissions IpProtocol=tcp,FromPort=443,ToPort=443,Ipv6Ranges='[{CidrIpv6=::/0}]'

Permitir SSH de prefixo IPv6 específico:

aws ec2 authorize-security-group-ingress \
  --group-id sg-0abc123 \
  --ip-permissions IpProtocol=tcp,FromPort=22,ToPort=22,Ipv6Ranges='[{CidrIpv6=2001:db8::/32,Description="Office IPv6"}]'

Permitir todo o ICMPv6 (necessário para operação IPv6):

aws ec2 authorize-security-group-ingress \
  --group-id sg-0abc123 \
  --ip-permissions IpProtocol=ipv6-icmp,FromPort=-1,ToPort=-1,Ipv6Ranges='[{CidrIpv6=::/0}]'

ICMPv6 é crítico para IPv6. Não o bloqueie. É usado para descoberta de vizinhos, PMTUD e outras funções fundamentais.

Melhores Práticas de Grupos de Segurança#

  1. Espelhe regras IPv4 para IPv6 a menos que tenha razões específicas para não o fazer
  2. Sempre permita ICMPv6 das mesmas origens que o tráfego da sua aplicação
  3. Use listas de prefixos para gerir conjuntos de regras complexos em ambas as famílias
  4. Etiquete grupos de segurança para identificar dual-stack vs. apenas IPv4

Exemplo: Crie uma lista de prefixos gerida para os intervalos IPv6 da sua organização:

aws ec2 create-managed-prefix-list \
  --prefix-list-name org-ipv6-ranges \
  --address-family IPv6 \
  --max-entries 10 \
  --entries Cidr=2001:db8:100::/40,Description=HQ \
           Cidr=2001:db8:200::/40,Description=DataCenter

Referencie-a em regras de grupo de segurança:

aws ec2 authorize-security-group-ingress \
  --group-id sg-0abc123 \
  --ip-permissions IpProtocol=tcp,FromPort=443,ToPort=443,PrefixListIds='[{PrefixListId=pl-0abc123}]'

Elastic Load Balancing#

Application Load Balancers (ALB) e Network Load Balancers (NLB) suportam dual-stack. Classic Load Balancers não.

Application Load Balancer Dual-Stack#

Crie ou modifique um ALB para usar dual-stack:

aws elbv2 create-load-balancer \
  --name my-alb \
  --subnets subnet-0abc111 subnet-0abc222 \
  --security-groups sg-0abc123 \
  --ip-address-type dualstack

Para balanceadores de carga existentes:

aws elbv2 set-ip-address-type \
  --load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-alb/1234567890abcdef \
  --ip-address-type dualstack

O balanceador de carga obtém registos DNS A e AAAA automaticamente:

dig my-alb-1234567890.us-east-1.elb.amazonaws.com A
dig my-alb-1234567890.us-east-1.elb.amazonaws.com AAAA

Os clientes podem conectar-se via IPv4 ou IPv6. O balanceador de carga encaminha tráfego para destinos usando a família de endereços configurada (tipicamente IPv4 para instâncias backend).

Network Load Balancer Dual-Stack#

NLB suporta dual-stack de forma semelhante:

aws elbv2 create-load-balancer \
  --name my-nlb \
  --type network \
  --subnets subnet-0abc111 subnet-0abc222 \
  --ip-address-type dualstack

NLB preserva endereços IP de clientes, então os destinos veem os endereços IPv6 de origem reais. Assegure-se de que a sua aplicação e grupos de segurança lidam com ambas as famílias de endereços.

Target Groups#

Target groups registam instâncias pelos seus endereços IPv4 (mais comum) ou IPv6. Não pode misturar famílias de endereços num único target group.

Crie target group IPv4:

aws elbv2 create-target-group \
  --name my-targets-ipv4 \
  --protocol HTTP \
  --port 80 \
  --vpc-id vpc-0abc123 \
  --ip-address-type ipv4

Crie target group IPv6:

aws elbv2 create-target-group \
  --name my-targets-ipv6 \
  --protocol HTTP \
  --port 80 \
  --vpc-id vpc-0abc123 \
  --ip-address-type ipv6

A maioria das implementações usa target groups IPv4 mesmo com balanceadores de carga dual-stack. O balanceador de carga lida com a tradução de protocolo de forma transparente.

Gateway de Internet Egress-Only#

Gateways de Internet egress-only permitem conexões IPv6 de saída de sub-redes privadas enquanto bloqueiam conexões de entrada. Isto é semelhante ao NAT para IPv4, mas sem tradução de endereços — endereços IPv6 permanecem globalmente únicos.

Criar Gateway Egress-Only#

aws ec2 create-egress-only-internet-gateway \
  --vpc-id vpc-0abc123

Note o ID do gateway:

{
  "EgressOnlyInternetGateway": {
    "EgressOnlyInternetGatewayId": "eigw-0abc123"
  }
}

Rotear Tráfego de Sub-rede Privada#

Adicione uma rota na tabela de roteamento da sua sub-rede privada:

aws ec2 create-route \
  --route-table-id rtb-0abc789 \
  --destination-ipv6-cidr-block ::/0 \
  --egress-only-internet-gateway-id eigw-0abc123

Instâncias em sub-redes privadas podem agora iniciar conexões IPv6 de saída mas não aceitarão tráfego de entrada da Internet.

Casos de uso:

  • Servidores de base de dados que precisam de atualizações de software
  • Servidores de aplicação acedendo a APIs externas
  • Serviços internos chamando APIs AWS (S3, DynamoDB, etc.) via IPv6

Considerações de Segurança#

Gateways egress-only não fornecem anonimato. O seu endereço IPv6 ainda é visível para serviços externos. É firewalling stateful, não NAT.

Se precisa de saída verdadeiramente apenas com mascaramento de endereços, precisará de um gateway NAT64 (configuração mais complexa, raramente necessário).

DNS Route 53#

Route 53 suporta totalmente IPv6 com registos AAAA.

Criar Registos AAAA#

Adicione um registo AAAA para a sua instância ou balanceador de carga:

aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890ABC \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "AAAA",
        "TTL": 300,
        "ResourceRecords": [{"Value": "2600:1f13:1234:5600::a"}]
      }
    }]
  }'

Registos Alias para Balanceadores de Carga#

Use registos alias para ALB/NLB (melhor que registos AAAA — atualizados automaticamente se IPs do LB mudarem):

aws route53 change-resource-record-sets \
  --hosted-zone-id Z1234567890ABC \
  --change-batch '{
    "Changes": [{
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "app.example.com",
        "Type": "AAAA",
        "AliasTarget": {
          "HostedZoneId": "Z35SXDOTRQ7X7K",
          "DNSName": "my-alb-1234567890.us-east-1.elb.amazonaws.com",
          "EvaluateTargetHealth": true
        }
      }
    }]
  }'

O HostedZoneId no AliasTarget é a zona hospedada canónica para ELB naquela região (veja a documentação AWS para o valor correto).

Health Checks#

Health checks do Route 53 suportam IPv6:

aws route53 create-health-check \
  --health-check-config \
    IPAddress=2600:1f13:1234:5600::a,Port=443,Type=HTTPS,ResourcePath=/health,RequestInterval=30,FailureThreshold=3 \
  --caller-reference $(uuidgen)

Use health checks com políticas de roteamento de failover ou ponderado para alta disponibilidade.

CloudFront IPv6#

Distribuições CloudFront suportam IPv6 por padrão (não pode ser desativado na maioria dos casos).

A rede global de edge do CloudFront usa dual-stack. Clientes conectando via IPv6 atingem as mesmas localizações edge que clientes IPv4.

Verifique suporte IPv6:

dig d111111abcdef8.cloudfront.net AAAA

CloudFront lida com tradução de protocolo. Se a sua origem é apenas IPv4, CloudFront ainda serve conteúdo a clientes IPv6.

A configuração de origem não precisa de alterações:

aws cloudfront create-distribution \
  --distribution-config file://distribution-config.json

Exemplo distribution-config.json (abreviado):

{
  "Origins": {
    "Items": [{
      "Id": "my-origin",
      "DomainName": "example.com",
      "CustomOriginConfig": {
        "OriginProtocolPolicy": "https-only"
      }
    }]
  },
  "Enabled": true,
  "Comment": "My distribution"
}

CloudFront provisiona automaticamente endereços IPv6 para a sua distribuição. Nenhuma configuração adicional necessária.

NAT64 para Cargas de Trabalho IPv6-Only#

Algumas cargas de trabalho (Lambda, Fargate) podem executar apenas IPv6. Se precisam aceder a recursos apenas IPv4, use NAT64.

A AWS não fornece NAT64 gerido. Deve executar o seu próprio gateway NAT64/DNS64 no EC2.

Exemplo usando Tayga (NAT64) e BIND (DNS64):

  1. Lance instância EC2 com IPv4 e IPv6
  2. Instale e configure Tayga para tradução NAT64
  3. Instale e configure BIND com módulo DNS64
  4. Roteie recursos apenas IPv6 através do gateway NAT64

Isto é complexo e raramente necessário. A maioria das implementações executa dual-stack.

Exemplo Terraform#

Infraestrutura como código para configuração dual-stack AWS:

# VPC com IPv6
resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  assign_generated_ipv6_cidr_block = true
  enable_dns_support   = true
  enable_dns_hostnames = true
 
  tags = {
    Name = "main-vpc"
  }
}
 
# Internet Gateway
resource "aws_internet_gateway" "main" {
  vpc_id = aws_vpc.main.id
}
 
# Gateway de Internet Egress-Only
resource "aws_egress_only_internet_gateway" "main" {
  vpc_id = aws_vpc.main.id
}
 
# Sub-rede Pública
resource "aws_subnet" "public" {
  vpc_id                  = aws_vpc.main.id
  cidr_block              = "10.0.1.0/24"
  ipv6_cidr_block         = cidrsubnet(aws_vpc.main.ipv6_cidr_block, 8, 1)
  assign_ipv6_address_on_creation = true
  availability_zone       = "us-east-1a"
 
  tags = {
    Name = "public-subnet"
  }
}
 
# Tabela de Roteamento para Sub-rede Pública
resource "aws_route_table" "public" {
  vpc_id = aws_vpc.main.id
 
  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = aws_internet_gateway.main.id
  }
 
  route {
    ipv6_cidr_block = "::/0"
    gateway_id      = aws_internet_gateway.main.id
  }
 
  tags = {
    Name = "public-rt"
  }
}
 
resource "aws_route_table_association" "public" {
  subnet_id      = aws_subnet.public.id
  route_table_id = aws_route_table.public.id
}
 
# Grupo de Segurança
resource "aws_security_group" "web" {
  name        = "web-sg"
  description = "Allow HTTP/HTTPS"
  vpc_id      = aws_vpc.main.id
 
  ingress {
    from_port   = 443
    to_port     = 443
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }
 
  ingress {
    from_port   = -1
    to_port     = -1
    protocol    = "ipv6-icmp"
    ipv6_cidr_blocks = ["::/0"]
  }
 
  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }
}
 
# Instância EC2 com IPv6
resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"  # Amazon Linux 2023
  instance_type = "t3.medium"
  subnet_id     = aws_subnet.public.id
  ipv6_address_count = 1
 
  vpc_security_group_ids = [aws_security_group.web.id]
 
  tags = {
    Name = "web-server"
  }
}
 
# Application Load Balancer
resource "aws_lb" "main" {
  name               = "main-alb"
  internal           = false
  load_balancer_type = "application"
  security_groups    = [aws_security_group.web.id]
  subnets            = [aws_subnet.public.id]  # Adicione mais sub-redes para HA
  ip_address_type    = "dualstack"
 
  tags = {
    Name = "main-alb"
  }
}
 
# Output CIDR IPv6
output "vpc_ipv6_cidr" {
  value = aws_vpc.main.ipv6_cidr_block
}
 
output "instance_ipv6" {
  value = aws_instance.web.ipv6_addresses
}

Aplique com:

terraform init
terraform plan
terraform apply

Exemplo CloudFormation#

Template YAML para VPC dual-stack:

AWSTemplateFormatVersion: '2010-09-09'
Description: 'VPC dual-stack com IPv6'
 
Resources:
  VPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/16
      EnableDnsSupport: true
      EnableDnsHostnames: true
 
  IPv6CidrBlock:
    Type: AWS::EC2::VPCCidrBlock
    Properties:
      VpcId: !Ref VPC
      AmazonProvidedIpv6CidrBlock: true
 
  PublicSubnet:
    Type: AWS::EC2::Subnet
    DependsOn: IPv6CidrBlock
    Properties:
      VpcId: !Ref VPC
      CidrBlock: 10.0.1.0/24
      Ipv6CidrBlock: !Select [0, !Cidr [!GetAtt VPC.Ipv6CidrBlock, 256, 64]]
      AssignIpv6AddressOnCreation: true
      AvailabilityZone: !Select [0, !GetAZs '']
 
  InternetGateway:
    Type: AWS::EC2::InternetGateway
 
  AttachGateway:
    Type: AWS::EC2::VPCGatewayAttachment
    Properties:
      VpcId: !Ref VPC
      InternetGatewayId: !Ref InternetGateway
 
  PublicRouteTable:
    Type: AWS::EC2::RouteTable
    Properties:
      VpcId: !Ref VPC
 
  PublicRoute:
    Type: AWS::EC2::Route
    DependsOn: AttachGateway
    Properties:
      RouteTableId: !Ref PublicRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      GatewayId: !Ref InternetGateway
 
  PublicRouteIPv6:
    Type: AWS::EC2::Route
    DependsOn: AttachGateway
    Properties:
      RouteTableId: !Ref PublicRouteTable
      DestinationIpv6CidrBlock: ::/0
      GatewayId: !Ref InternetGateway
 
  SubnetRouteTableAssociation:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref PublicSubnet
      RouteTableId: !Ref PublicRouteTable
 
Outputs:
  VPCId:
    Value: !Ref VPC
  IPv6CidrBlock:
    Value: !GetAtt VPC.Ipv6CidrBlock

Implemente com:

aws cloudformation create-stack \
  --stack-name ipv6-vpc \
  --template-body file://template.yaml

Testar a Sua Implementação IPv6 na AWS#

Verifique conectividade de ponta a ponta:

# Testar resolução DNS
dig app.example.com AAAA
 
# Testar acesso HTTP/HTTPS
curl -6 https://app.example.com
 
# Testar da instância
ssh ec2-user@<instance-ipv6>
ping6 google.com
curl -6 https://ifconfig.co

Use o AWS Reachability Analyzer para verificar caminhos de rede:

aws ec2 create-network-insights-path \
  --source <instance-eni> \
  --destination <alb-eni> \
  --protocol tcp \
  --destination-port 443
 
aws ec2 start-network-insights-analysis \
  --network-insights-path-id <path-id>

Verifique configurações incorretas que podem bloquear IPv6.

Problemas Comuns e Soluções#

Problema: Instância tem endereço IPv6 mas não consegue aceder à Internet Solução: Verifique se a tabela de roteamento tem rota ::/0 para IGW, verifique se o grupo de segurança permite saída IPv6

Problema: Balanceador de carga não tem registo AAAA Solução: Assegure-se de que ip-address-type está definido como dualstack, verifique se as sub-redes têm blocos CIDR IPv6

Problema: Não consegue aceder via SSH à instância via IPv6 Solução: Adicione regra de grupo de segurança permitindo porta TCP 22 de ::/0 ou CIDR IPv6 específico

Problema: Gateway egress-only não funciona Solução: Verifique associação de tabela de roteamento, verifique se a instância tem endereço IPv6 atribuído

Problema: CloudFront não serve via IPv6 Solução: IPv6 do CloudFront é automático e não pode ser desativado — verifique resolução DNS e conectividade do cliente

Considerações de Custo#

IPv6 em si é gratuito na AWS. Não paga por blocos CIDR IPv6 ou endereços.

Os custos de transferência de dados são os mesmos para IPv4 e IPv6. Não há vantagem de preço para IPv6 — o benefício é simplicidade arquitetural e evitar exaustão de IPv4.

Gateways de Internet egress-only são gratuitos (ao contrário de gateways NAT que custam ~$0.045/hora mais taxas de processamento de dados).

Artigos Relacionados#

Verificar Conectividade IPv6 AWS

Use a nossa Ferramenta Ping para testar os seus recursos AWS, e Ferramenta DNS para verificar os seus registos AAAA do Route 53.

Recursos Adicionais#