web-dev-qa-db-ja.com

Amazon vpcから外の世界に接続する方法は?

ウィザードでAmazon VPCを「パブリック専用ネットワーク」として設定しているため、すべてのインスタンスはパブリックサブネットにあります。

Elastic IPが割り当てられたVPC内のインスタンスは、問題なくインターネットに接続します。

ただし、エラスティックIPのないインスタンスはどこにも接続できません。

インターネットゲートウェイが存在します。 AWSコンソールのルートテーブルは次のようになります

Destination Target 
10.0.0.0/16 local
0.0.0.0/0   igw-nnnnn

内部インスタンスショーからのルート

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        *               255.255.255.0   U     0      0        0 eth0
default         10.0.0.1        0.0.0.0         UG    100    0        0 eth0

インスタンスが属するセキュリティグループの0.0.0.0/0へのすべてのインバウンドおよびアウトバウンドトラフィックを開こうとしました。まだ成功していません。

~$ ping google.com
PING google.com (74.125.224.36) 56(84) bytes of data.
^C
--- google.com ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5017ms

他に何ができますか?

52
Andrey Regentov

Elastic IPを持たないインスタンスから外に出る唯一の方法は次のとおりです。

  • NAT(AMI-vpc-nat-betaから追加のm1.smallインスタンスを起動))を追加し、EIPを割り当てます
  • 「プライベート」になる追加のサブネットを作成します
  • 非EIPインスタンスをそのプライベートサブネットに移動する
  • ルートテーブルの変更:プライベートサブネットから0.0.0.0/0はNATに移動する必要があります

したがって、NATを追加するだけでは十分ではありません。インスタンスを停止し、別のサブネットから別のIPに移動する必要があります。

55
Andrey Regentov

ドキュメントでは、 NATインスタンス を追加する必要があると指示されています

11
aldrinleal

Q。 EIPのないインスタンスはどのようにインターネットにアクセスしますか?

EIPを持たないインスタンスは、2つの方法のいずれかでインターネットにアクセスできます。EIPを持たないインスタンスは、NATインスタンスを介してインターネットにアクセスします。これらのインスタンスは、NATインスタンスはインターネットを横断します。NATインスタンスはアウトバウンド通信を許可しますが、インターネット上のマシンがNATを使用してプライベートアドレスのマシンへの接続を開始することはできません。

http://aws.Amazon.com/vpc/faqs/

Natインスタンスのセットアップ方法の詳細な手順については、こちらをご覧ください: http://docs.aws.Amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html enter image description here

9
Moriarty

または、パブリックVPC内でNATインスタンスを作成し、そのNATインスタンスに静的ルートを追加します

route add -net 0.0.0.0 netmask 0.0.0.0 gw 1​​0.0.0.5 eth0

ここで、10.0.0.5はnatインスタンスです。NATインスタンスが含まれるセキュリティグループが、インターネットアクセスが必要なボックスからの内部トラフィックを受け入れることができることを確認してください。

4
clarky

EIPを備えたVPCの任意のインスタンスで実行できます。 here で説明したいくつかの指示が役立ちます。ところで:送信元/送信先を無効にすることを忘れないでください。チェック

2
Victor Perov

EIPを持たないインスタンスは、2つの方法のいずれかでインターネットにアクセスできます。EIPを持たないインスタンスは、NATインスタンスを介してインターネットにアクセスします。これらのインスタンスは、NATインスタンスはインターネットを横断します。NATインスタンスはアウトバウンド通信を許可しますが、インターネット上のマシンがNATを使用してプライベートアドレスのマシンへの接続を開始することはできません。

https://docs.aws.Amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html

1
Ankireddy Polu

彼らはNATこれを行うゲートウェイと呼ばれる比較的新しい製品を持ち、パブリッシュ/プライベートサブネットのエッジにマネージドNATインスタンスを作成します。

0
rajat banerjee

セキュリティグループ->送信

*   ALL Traffic ALL     ALL     0.0.0.0/0   Allow

Google.comなどの外部サーバーに接続する場合、または更新する場合でも、Outboundを許可してください-Sudo apt-get update

AWSフロントエンドgotoセキュリティグループ->アウトバウンドを使用してアウトバウンドを許可できます

AWSインスタンスに適切なグループを選択していることを確認してください

0
Manu R S

サブネット上のネットワークACLを確認しましたか?

セキュリティグループのルールをクロスチェックします。

ルートテーブルは正常に見えます。動作するはずです。

0
Ravi Shankar

これは私のために働いています:

  • VPCサブネット172.20.0.0/16
  • EIPを使用したEC2「nat」ゲートウェイ172.20.10.10

行うには:

  • 無効な送信元/送信先を設定します。 「nat gw」を確認してください
  • 新しい「nat-sub」サブネットの作成例:172.20.222.0/24
  • 「nat-sub」のルート0.0.0.0/0を172.20.10.10(my nat gw)に変更します
  • 「nat-sub」を使用してEC2を作成します
  • ルートとしてのNATゲートウェイで、試してみてください:

root @ gw:〜#sysctl -q -w net.ipv4.ip_forward = 1 net.ipv4.conf.eth0.send_redirects = 0

root @ gw:〜#iptables -t nat -C POSTROUTING -o eth0 -s 172.20.222.0/24 -j MASQUERADE 2>/dev/null || iptables -t nat -A POSTROUTING -o eth0 -s 172.20.222.0/24 -j MASQUERADE

動作する場合、この2行を/etc/rc.localに追加します

0
Yann L.

この問題を修正するために必要なことは、NATを行うように設定したインスタンスの「ソース/宛先チェック」を無効にすることだけです。これは、AWSコンソールの[インスタンスアクション]で実行できます。

参照

0
Mike Cron