NATインスタンス経由のインターネット接続ができない


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・セキュリティグループ共に問題ないように見えます。




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>

