não pode conectar a instância privada do aws VPC à internet através do NAT

1

tentando instalar uma pilha LAMP em uma instância aws em uma sub-rede privada VPC | usando o Cenário 2 descrito aqui: link

Eu configurei tudo com as sub-redes relevantes, grupos de segurança, gateway de Internet e tabela de roteamento.

Com minha configuração eu posso com sucesso:
- ping NAT
- ssh para NAT
ping de site externo do NAT (por exemplo, ping ietf.org )
ping de instância privada do NAT (por exemplo, ping 10.0.X.X )
- ssh para instância privada
- ping NAT de instância privada

No entanto, não consigo pingar da instância privada para a Internet (ou seja, ping ietf.org não funciona)
e quando tento sudo yum update da instância privada, recebo o seguinte erro:
Cannot find a valid baseurl for repo: amzn-main/latest

Eu presumo que isso seja um erro de roteamento ou de grupo de segurança ...?

Notas:
- A verificação de origem / destino está desativada para a instância do NAT - a instância NAT tem um IP público atribuído, mas não um IP elástico. - ACL não está implementado (deixado como padrão)
- tabela de rotas para a sub-rede pública:

10.0.X.X/XX local  
0.0.0.0/0 internet gateway

- tabela de rotas para sub-rede privada:

10.0.X.X/XX local  
0.0.0.0/0 nat instance

- os grupos de segurança são os seguintes:

Entrada de instância privada

ALL Traffic =  vpc_private_sg    
SSH(22) = vps_nat_sg  
MySQL(3306) = vpc_public_sg  
ALL ICMP = 0.0.0.0/0  

Saída de instância privada

SSH(22) = vps_nat_sg  
HTTP(80) = 0.0.0.0/0  
HTTPS(443) = 0.0.0.0/0  
ALL ICMP = 0.0.0.0/0  

Entrada da instância de NAT

ALL Traffic =  vpc_private_sg    
SSH(22) = vps_nat_sg  
SSH(22) = 10.0.X.X/XX  
HTTP(80) = 10.0.X.X/XX  
HTTPS(443) = 10.0.X.X/XX  
ALL ICMP = 0.0.0.0/0  

Saída da instância de NAT

SSH(22) = 10.0.X.X/XX  
HTTP(80) = 0.0.0.0/0  
HTTPS(443) = 0.0.0.0/0  
ALL ICMP = 0.0.0.0/0  
    
por goredwards 14.03.2015 / 02:43

1 resposta

0

O problema:

standard AMI instance not working correctly as a NAT instance

Se você tentar usar uma instância da AMI padrão como uma instância do NAT, ela terá os mesmos sintomas descritos na pergunta acima:

  • Conexão SSH com o NAT = OK
  • Conexão SSH com instância de sub-rede privada = OK
  • ping para / da instância de sub-rede privada = OK
  • chamadas de saída da instância de sub-rede privada = FAIL (mesmo com rota válida tabelas / grupos de segurança)

A solução difícil:

Para obter uma instância AMI padrão funcionando como uma instância NAT, você precisa personalizá-la:

  • modifique o iptables como mostrado aqui
  • Verifique se o encaminhamento de IPv4 está ativado e se os redirecionamentos de ICMP estão desativados, conforme indicado aqui

A solução fácil:

use a Community amzn-ami-vpc-nat instance already configured for use as a NAT instance

Para a maioria das pessoas (que estão usando a instância do NAT para fins de conexão administrativa), uma instância NAT personalizada é simplesmente desnecessária.

O AWS fornece instâncias padrão configuradas para uso de NAT (ou seja, modificadas conforme descrito acima) como instâncias de AMI da comunidade.

  • clique em Launch Instance no painel de controle do EC2
  • em Step 1: Choose an Amazon Machine Image (AMI) , clique no seletor Community AMIs à esquerda
  • digite amzn-ami-vpc-nat 2017 ou mais simplesmente nat 2017 (observação abaixo) na caixa de entrada de pesquisa
  • inicie seu NAT e garanta que suas tabelas de rotas + grupos de segurança estejam corretas - veja aqui

Nota:
O motivo pelo qual você inclui o ano na pesquisa de instância da AMI da Comunidade é que a AWS mantém todas as versões antigas da NAT AMI (21 no momento da redação, voltando a 2013) - que incluem principalmente um ano no número da versão. ... é melhor / mais fácil simplesmente escolher a versão mais recente.

    
por 15.02.2017 / 19:38