Я пытаюсь настроить NAT в Amazon AWS.
Итак, у меня есть два EC2 с частными IP: 10.0.0.49 и 10.0.0.48. (10.0.0.0/24 сеть) Узлы в одном VPC. Я могу пинговать 10.0.0.49 из 10.0.0.48.
Эластичный IP 52.88.240.171 указал на 10.0.0.49.
Насколько я понимаю, я не могу указать Elastic IP напрямую на node. Таким образом я пробую такое руководство https://serverfault.com/a/568478/192282
В 10.0.0.49:
sudo sysctl -q -w net.ipv4.ip_forward=1 net.ipv4.conf.eth0.send_redirects=0
sudo iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE
sudo iptables -L -n -v -x -t nat
Chain PREROUTING (policy ACCEPT 6 packets, 457 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 6 packets, 457 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 32 packets, 2732 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
32 2732 MASQUERADE all -- * eth0 10.0.0.0/24 0.0.0.0/0
[root@ip-10-0-0-49 ~]#
И на 10.0.0.48:
sudo route del default
sudo route add default gw 10.0.0.49
sudo route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.49 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.169.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
В «Группах безопасности» консоли Amazon AWS включен весь входящий и исходящий трафик для каждого EC2.
Но у меня все еще нет доступа к Интернету на 10.0.0.48 (узел без эластичного IP). Может я что-то пропустил в консоли aws? Что может быть не так?
UPD. resolv.conf для каждого хоста EC2:
[root@ip-10-0-0-49 ~]# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search us-west-2.compute.internal
nameserver 10.0.0.2
[ec2-user@ip-10-0-0-48 ~]$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search us-west-2.compute.internal
nameserver 10.0.0.2
Это была проблема с "проверкой источника / назначения" в консоли AWS. Спасибо, @ matt-houser!