プライベート VPC サブネットからインターネットにアクセスできますか?

プライベート VPC サブネットからインターネットにアクセスできますか?

これを理解しようとして頭が少し疲れていますが、プライベート サブネットをインターネットに接続して、たとえば更新を取得することができないようです。基本的に、これらのサーバーへの Web アクセスが必要です。他の投稿で見つかったソリューションを試しましたが、かなり長い間これを見てきたので、何かが欠けている可能性があります。

これまでに、次の設定を行いました。

  • NATインスタンスで送信元/送信先チェックを無効にする
  • パブリックサブネットのルートテーブルを作成し、そのソースを IGW に設定します (これが機能することを検証済み)
  • プライベートサブネットのルートテーブルを作成し、そのソースをNATインスタンスに設定します。
  • 80/443 および ssh の受信および送信ルールを持つ NAT インスタンスのセキュリティ グループを作成します。
  • 受信および送信 80/443 および ssh を持つプライベート インスタンスのセキュリティ グループを作成します。

SSH 経由で NAT インスタンスにジャンプし、プライベート サーバーにピボットできるので、多くのことが機能していることがわかります。内部アドレスに ping を実行してルールを確認しましたが、ローカル ネットワークを離れると問題が発生し始めます。

これを絞り込むには、どこを調べる必要がありますか、または何をトラブルシューティングする必要がありますか? NAT インスタンスで行う必要がある構成で、私が見落としているものはありますか?

編集: 設定の更新

  • 仮想プライベートネットワーク: 172.16.0.0./16
  • プライベートサブネット: 172.16.1.0/24
  • パブリックサブネット: 172.16.0.0/24

プライベートサブネットルーティングテーブル:

パブリック サブネット内の NAT インスタンスを指します。インターネットにアクセスできません。パブリック インターネットに面したインターフェイスに EIP が接続されています。

プライベート VPC

パブリックサブネットルーティングテーブル:

IGW でパブリック サブネットをポイントし、インターネット アクセスを確認しました。

ここに画像の説明を入力してください

考え:

プライベートインスタンスからのトラフィックを転送するために、パブリックサブネットにあるNATインスタンスに何かを設定または作成する必要があるのではないかと考え始めていますが、何を追加する必要があるのか​​よくわかりません。この郵便受けこれは iptables にマスカレード ルールを追加することを説明していますが、これは私の状況に当てはまるでしょうか?

答え1

はい、NAT ホストに iptables マスカレードを設定する必要があります。

iptables -A POSTROUTING -t nat -s (private-subnet/cidr) -j MASQUERADE

設定は同じで、他のすべては正しく実行されています (ソース チェックを無効にし、プライベート サブネットを NAT インスタンスのインターフェイスにポイントし、パブリック サブネットを IGW にポイントします)。

答え2

同様の問題を抱えているこの投稿に偶然出くわしました。ウィザードを使用して NAT インスタンスを作成したと仮定すると、上記のマスカレード ルールはすでに存在しているはずです。これは、「独自の」NAT インスタンスを作成する場合にのみ追加する必要があります。(私は通常、これを 2 倍にして、OpenSWAN L2TP/IPSec リモート ユーザー VPN サーバーにするためにこれを行います)。

前回作成してから追加し忘れていたのは、NAT インスタンス経由でトラフィックをルーティングするすべてのプライベート セキュリティ グループまたはサブネットからのすべてのトラフィック (または少なくとも許可したいもの) を許可するルールです。NAT インスタンスは、許可するルールがなければ、このような送信トラフィックを受け入れません。インターネットから何が来るかだけを考えてはいけません。NAT セキュリティ グループに 22/80/443 を追加するとおっしゃっていたので、これが問題かどうかはわかりませんが、同様の問題を抱えている可能性のある他の人のためにこれを提案しようと思いました。

答え3

私はしばらくこの問題と格闘していましたが、次のものを見つけました:

次に、NAT インスタンスとして実行するように設定された AMI からパブリックサブネットにインスタンスを起動します。Amazon は、NAT インスタンスとして実行するように設定された Amazon Linux AMI を提供しています。これらの AMI の名前には文字列 amzn-ami-vpc-nat が含まれているため、Amazon EC2 コンソールで検索できます。

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html#NATInstance

NAT サーバーを独自の標準 (Ubuntu) インスタンスとしてセットアップし、Amazon Linux AMI を使用してルーティング テーブルを更新すると、動作し始めました。

関連情報