Hospedei meu aplicativo android / web em uma instância do EC2 na sub-rede privada (10.0.1.0) do meu VPC. Esta instância tem o apache-tomcat instalado, mas não possui um IP público.
Eu também tenho uma instância NAT na sub-rede pública (10.0.0.0) do meu VPC, com um IP público atribuído ao servidor.
A configuração do iptables é assim:
[ec2-user@ip-10-0-0-21 ~]$ sudo iptables -t nat -L --line-numbers
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 DNAT tcp -- anywhere anywhere tcp dpt:webcache to:10.0.1.11:8080
2 DNAT tcp -- anywhere anywhere tcp dpt:http to:10.0.1.11:8080
3 DNAT tcp -- anywhere anywhere tcp dpt:http to:10.0.1.11:8080
4 DNAT tcp -- anywhere anywhere tcp dpt:https to:10.0.1.11:8080
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
1 MASQUERADE all -- ip-10-0-0-0.ap-southeast-1.compute.internal/16 anywhere
2 MASQUERADE all -- ip-10-0-1-0.ap-southeast-1.compute.internal/24 anywhere
[ec2-user@ip-10-0-0-21 ~]$ sudo iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to XX.XX.XX.XX
Apesar dessas configurações, recebo um erro ERR_CONNECTION_TIMED_OUT
quando tento conectar ao DNS público do meu servidor NAT. Se minha solicitação de conexão estivesse atingindo o servidor apache, eu deveria ter pelo menos um 404.
Eu verifiquei a conectividade do meu servidor web (na sub-rede privada) com a internet através do servidor NAT. Recebo respostas válidas quando ping
ou wget
google.com.
[ec2-user@ip-10-0-1-11 ~]$ ping google.com
PING google.com (173.194.117.97) 56(84) bytes of data.
64 bytes from sin01s17-in-f1.1e100.net (173.194.117.97): icmp_seq=1 ttl=56 time=3.54 ms
64 bytes from sin01s17-in-f1.1e100.net (173.194.117.97): icmp_seq=2 ttl=56 time=3.57 ms
64 bytes from sin01s17-in-f1.1e100.net (173.194.117.97): icmp_seq=3 ttl=56 time=3.65 ms
64 bytes from sin01s17-in-f1.1e100.net (173.194.117.97): icmp_seq=4 ttl=56 time=3.79 ms
64 bytes from sin01s17-in-f1.1e100.net (173.194.117.97): icmp_seq=5 ttl=56 time=3.61 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4990ms
rtt min/avg/max/mdev = 3.546/3.637/3.799/0.116 ms
[ec2-user@ip-10-0-1-11 ~]$ wget google.com
--2015-09-02 05:22:01-- http://google.com/
Resolving google.com (google.com)... 173.194.117.96, 173.194.117.97, 173.194.117.98, ...
Connecting to google.com (google.com)|173.194.117.96|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html.1’
index.html.1 [ <=> ] 10.97K --.-KB/s in 0.001s
2015-09-02 05:22:02 (12.7 MB/s) - ‘index.html.1’ saved [11230]
Alguém pode, por favor, apontar o que há de errado com essa configuração?
INFORMAÇÕES ADICIONAIS: Os logs mostram algumas solicitações de lixo que acessam meu servidor da web sempre que faço ping no IP público do meu servidor NAT. Eu sou totalmente sem noção.
10.0.0.21 - - [02/Sep/2015:06:12:41 +0000] "??]7{]?zɳM?˗?9?G?68???l?xW???D?+?/?,?0?????#?'? ??$?(? " 400 -
10.0.0.21 - - [02/Sep/2015:06:12:41 +0000] "????]f???}???Q?ݹ?U}??????A?#?0D?+?/?,?0?????#?'? ??$?(? " 400 -
10.0.0.21 - - [02/Sep/2015:06:12:42 +0000] "???????{}?hA???????
j?W??P?ߠD?+?/?,?0?????#?'? ??$?(? " 400 -