Estou tentando configurar o acesso à Internet de saída através do "NAT Gateway" para várias instâncias do EC2, de modo que f.e. curl ifconfig.co
retorna o mesmo ip para todas as ocorrências & o servidor de estatísticas externo que eles conectam para mostrar o mesmo ip.
Ao mesmo tempo, essas instâncias ainda devem estar acessíveis sobre seus IPs públicos (cada instância ec2 tem seu próprio ip público), estar acessível para ssh, servir conteúdo da Web & ser acessível um ao outro em seus ips privados.
As instâncias tinham apenas interfaces eth0 com 10.0.1.0/24 endereços de sub-rede (www1). Não consigo ver a interface para o ip público com ifconfig, mas acho que é um comportamento esperado para instâncias ec2. Eles estão todos por trás do Elastic Load Balancer.
Eu criei uma segunda sub-rede www2 com o bloco CIDR = 10.0.3.0/24.
Eu criei um NAT Gateway & atribuído um Elastic ip to it & escolheu a sub-rede www2. O ip privado do Gateway NAT é mostrado corretamente como 10.0.3.132.
Eu criei a interface de rede nas interfaces de rede EC2- > para uma das instâncias com a sub-rede 10.0.3.0 selecionada + atribuição automática de ip privada + grupo de segurança igual às outras instâncias com SSH TCP 22 0.0.0.0 / 0 para regras de entrada & todo o tráfego 0-65535 0.0.0.0/0 para tráfego de saída.
A instância de fato recebeu a segunda interface eth1 depois com o ip = 10.0.3.31 correto atribuído a ela.
Aqui está o show de rotas ip daquela instância:
ip route show
default via 10.0.1.1 dev eth0
default via 10.0.3.1 dev eth1 metric 10001
10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.69
10.0.3.0/24 dev eth1 proto kernel scope link src 10.0.3.31
169.254.169.254 dev eth0
Aqui está o ifconfig:
ifconfig
eth0 Link encap:Ethernet HWaddr 0A:65:1C:28:80:7E
inet addr:10.0.1.69 Bcast:10.0.1.255 Mask:255.255.255.0
inet6 addr: fe80::865:1cff:fe28:807e/64 Scope:Link
inet6 addr: 2600:1f18:4328:e200:4f10:db4d:6a56:d900/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:9001 Metric:1
RX packets:10978429 errors:0 dropped:0 overruns:0 frame:0
TX packets:8536463 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:26095196998 (24.3 GiB) TX bytes:2202490320 (2.0 GiB)
eth1 Link encap:Ethernet HWaddr 0A:9D:28:92:38:0E
inet addr:10.0.3.31 Bcast:10.0.3.255 Mask:255.255.255.0
inet6 addr: fe80::89d:28ff:fe92:380e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9001 Metric:1
RX packets:262217 errors:0 dropped:0 overruns:0 frame:0
TX packets:197708 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:237017161 (226.0 MiB) TX bytes:50706247 (48.3 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:420172 errors:0 dropped:0 overruns:0 frame:0
TX packets:420172 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:1399654528 (1.3 GiB) TX bytes:1399654528 (1.3 GiB)
Depois disso, se eu for ao painel VPC- > Tabelas de rota- > Edite rotas para a tabela de roteamento apropriada para todas as minhas instâncias & set "nat-06931899c65346b40" em vez de igw-fd92cc9a para 0.0.0.0/0 no destino Eu me desconecto da sessão ssh & o site hospedado na instância fica indisponível. Eu acho que é esperado como está por trás do NAT agora.
BTW não pareceu bom para mim que o grupo de segurança do NAT Gateway nas interfaces de rede EC2- > esteja vazio, mas quando tento configurá-lo para o mesmo que as outras instâncias (ou qualquer outra em all) com "alterar grupos de segurança" recebo "Você não tem permissão para acessar o recurso especificado".
Por isso, gostaria que minhas instâncias fossem acessíveis por meio de seus ips públicos sobre http & ssh, mas para relatar o mesmo ip com curl ifconfig.co
.
O objetivo não é editar manualmente a tabela de roteamento em cada instância enquanto nos preparamos para o escalonamento automático & use as opções fornecidas pelo console da web aws.
Mas, mesmo que eu faça isso manualmente, como exatamente eu edito as rotas para alcançar meu objetivo?
O esquema geral de rede antes de adicionar o NAT Gateway foi:
Gateway de Internet VPC < - > ELB < - > instâncias ec2 (com ips públicos acessíveis).
O conteúdo da web das instâncias é veiculado por meio do ELB, mas as próprias instâncias estão disponíveis para ssh diretamente em seus ips públicos.
Obrigado antecipadamente!