
Meu cérebro está um pouco frito tentando descobrir isso, mas não consigo conectar sub-redes privadas à Internet para obter atualizações, por exemplo. Basicamente, tudo que quero é acesso web para esses servidores. Eu tentei soluções encontradas em outras postagens, mas poderia facilmente estar faltando alguma coisa, já que estou analisando isso há algum tempo.
Até agora fiz a seguinte configuração:
- Desabilitar a verificação de origem/destino na minha instância NAT
- Crie uma tabela de rotas para sub-rede pública e defina sua origem como IGW (verifiquei se funciona)
- Crie uma tabela de rotas para sub-rede privada e defina sua origem para a instância NAT
- Crie um grupo de segurança para instância NAT com regras de entrada e saída para 80/443 e ssh
- Crie um grupo de segurança para instância privada com entrada e saída 80/443 e ssh
Consigo acessar a instância NAT via SSH e depois girar para o servidor privado, então sei que tudo está funcionando. Verifiquei minhas regras executando ping em endereços internos, mas quando saio da rede local é quando começo a ter problemas.
Onde preciso procurar ou o que preciso solucionar para ajudar a reduzir isso? Há alguma configuração que precisa ser feita na instância NAT que esqueci?
EDITAR: atualização de configuração
- VPC: 172.16.0.0./16
- Sub-rede privada: 172.16.1.0/24
- Sub-rede pública: 172.16.0.0/24
Tabela de roteamento de sub-rede privada:
Aponta para a instância NAT na sub-rede pública. Não é possível acessar a Internet, EIP conectado à interface pública voltada para a Internet.
Tabela de roteamento de sub-rede pública:
Aponta a sub-rede pública para o IGW, verifiquei o acesso à Internet.
Pensamentos:
Estou começando a pensar que há algo que precisa ser configurado ou criado na instância NAT que reside na sub-rede pública para encaminhar o tráfego de instâncias privadas, mas não tenho certeza do que precisa ser adicionado. eu encontreiesta postagemisso explica a adição de uma regra de máscara no iptables, isso se aplica à minha situação?
Responder1
sim, você deve ter o mascaramento do iptables configurado no host nat.
iptables -A POSTROUTING -t nat -s (private-subnet/cidr) -j MASQUERADE
temos a mesma configuração, você fez todo o resto corretamente (desativar a verificação de origem, apontar a sub-rede privada para a interface da instância nat, apontar a sub-rede pública para o igw).
Responder2
Acabei de me deparar com isso tendo um problema semelhante. Supondo que você usou o assistente para criar a instância NAT, a regra de mascaramento mencionada acima já estaria lá - isso é apenas algo que você precisa adicionar se quiser "rolar sua própria" instância NAT. (Eu normalmente faço isso para poder duplicar isso e também torná-lo um servidor VPN de usuário remoto OpenSWAN L2TP/IPSec).
O que esqueci de adicionar desde a última vez que criei uma delas foram regras que permitem todo o tráfego (ou pelo menos o que você deseja permitir) de todos os grupos ou sub-redes de segurança privada que encaminharão o tráfego através da instância NAT. A instância NAT não aceitará esse tráfego de saída sem regras que permitam isso - não pense apenas no que está vindo da Internet para chegar até ele. Não tenho certeza se esse é o seu problema, pois você mencionou a adição de 22/80/443 ao seu grupo de segurança NAT, mas pensei em sugerir isso para outras pessoas que possam ter um problema semelhante.
Responder3
Lutei com isso por um tempo, até que encontrei isto:
Em seguida, execute uma instância em sua sub-rede pública a partir de uma AMI configurada para ser executada como uma instância NAT. A Amazon fornece Amazon Linux AMIs configuradas para execução como instâncias NAT. Essas AMIs incluem a string amzn-ami-vpc-nat em seus nomes, para que você possa procurá-las no console do Amazon EC2.
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html#NATInstance
Eu configurei o servidor NAT como minha própria instância padrão (Ubuntu), depois que usei o Amazon Linux AMI e atualizei minhas tabelas de roteamento, ele começou a funcionar.