Como podemos fazer com que a instância do Apache em uma sub-rede privada funcione?
Configuração
Sub-rede pública com 1 instância NAT
Sub-rede privada com 1 instância de aplicativo
Detalhes
1. O mascaramento é ativado no NAT na via
iptables -t nat -A POSTROUTING -j MASQUERADE
2. PREROUTING está ativado por meio de iptables -t nat -A PREROUTING -p tcp --port 80 -j DNAT --to-destination 10.0.10.102:80
3. O encaminhamento de porta está ativado em /proc/sys/net/ipv4/ip_forward
4. Grupo de segurança para NAT e & App (nunca os manteria em produção, mas
puramente para mostrar todas as portas estão abertas)
Inbound All Traffic 0.0.0.0/0
Outbound All Traffic 0.0.0.0/0
5. ACLs de rede
Inbound All Ports 0.0.0.0/0
Outbound All Ports 0.0.0.0/0
6. Ping & trabalho do wget para pedidos externos
ping google.com
wget google.com
7. O Apache está escutando na instância do aplicativo na sub-rede privada.
netstat -tulpn
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::80 :::* LISTEN -
Tráfego Apache
Solicitações públicas para o servidor Apache na sub-rede privada não funcionam.
wget http://127.0.0.0.1/index.html => success
# public IP requests
wget http://xxx.x.x.x/index.html => failure
Connecting to xxx.x.x.x:80... => hangs
Do terminal de host NAT
sudo tcpdump -i any -n port 80
sudo: unable to resolve host ip-10-0-0-71
15:22:17.668089 IP 10.0.10.102.54033 > X.X.X.X.80: Flags [S], seq 848018267, win 26883, options [mss 8961,sackOK,TS val 19553465 ecr 0,nop,wscale 7], length 0
15:22:17.668111 IP 10.0.0.71.54033 > X.X.X.X.80: Flags [S], seq 848018267, win 26883, options [mss 8961,sackOK,TS val 19553465 ecr 0,nop,wscale 7], length 0
O que precisamos fazer para que o Apache funcione da sub-rede privada?
Tags networking ping nat packets