

EC2（privateサブネット）からNATインスタンス（publicサブネット）を経由したインターネット接続ができません。

  * EC2（privateサブネット）からNATインスタンス（publicサブネット）へpingは通る（逆も通ります）
  * NATインスタンス（publicサブネット）はcurl等でigwからのインターネットへのアウトバウンドは確認できている
  * NATインスタンスではiptablesでIPマスカレードの設定を行っています`/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE  
`

問題の切り分けの方法としてどのような方法がありますでしょうか。AWSのコンソール画面からはインターネットACL・セキュリティグループ共に問題ないように見えます。


CC BY-SA 4.0
2019-06-06T04:19:34.920
55573
2019-06-06T13:21:21.983
30806
question
aws amazon-ec2
NATインスタンス経由のインターネット接続ができない


NATインスタンスで、tcpdump 等でパケットキャプチャしてみるのはどうでしょうか。  
EC2（privateサブネット）のパケットが、NATインスタンスに入ってきているか、  
NATインスタンスからパケットを出そうとしているかを確認して  
切り分けをしてみるのが良いように思います。

そのうえで、EC2（privateサブネット）のパケットが飛んできていないようであれば、  
EC2（privateサブネット）のルートテーブルや、VPCのルートテーブルを見直す必要があります。

VPCのルートテーブルの見直しとしては、  
該当のVPCのルートテーブルは、ゲートウェイをNATインスタンスに設定されていますか？  
具体的には、(以下、私のサイトで別件の記事で恐縮ですが)  
<https://hrkworks.com/it/cloud/aws-azure/>

の「設定」-「AWS Webコンソール」 にあるような設定されていますか？

EC2（privateサブネット）のパケットが飛んできていれば、あとはNATインスタンスの設定の問題ではないかとと思います。

記事を書いた当時はWindowsサーバーをNATインスタンスにしたので、  
LinuxでNATインスタンスにする方法はと把握していません。  
過去にLinuxで2NICのルータを作成した時の記憶でいえば、フォワード設定が必要だったような・・。  
<https://access.redhat.com/documentation/ja-
jp/red_hat_enterprise_linux/6/html/load_balancer_administration/s1-lvs-
forwarding-vsa>


CC BY-SA 4.0
2019-06-06T11:33:10.927
55582
2019-06-06T11:33:10.927
34610
55573
answer


NATゲートウェイという機能が結構前からあるのですが、それでは要件を満たさないからNATインスタンスを立てようとされてるってことですかね？

理由があっていとされてるのであれば、立て方が以下のドキュメントにあるので再確認されるのがいいと思います。  
<https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_NAT_Instance.html>

上記に記載されてる“送信元/送信先チェックを無効にする”はされているでしょうか？


CC BY-SA 4.0
2019-06-06T13:21:21.983
55586
2019-06-06T13:21:21.983
5959
55573
answer