web-dev-qa-db-ja.com

awsプライベートインスタンスはホスト名を解決できません(NATインスタンスのVPC)

この質問は これはこちら とは異なることに注意してください。ここで、標準のAMIを使用したNAT AMI(私の場合)。また、私の場合はプライベートインスタンスがアクセスできます。ホスト名解決ではなく、ipaddressを介したインターネット。

これが私の設定です:

  • 1つのパブリックサブネットと1つのプライベートサブネットを持つデフォルト以外のVPC。
  • エラスティックIPを使用したパブリックサブネット上のNATインスタンス。使用済みAmazonコミュニティNAT AMI:amzn-AMI-vpc-nat-hvm-2017.09.1.20180108-x86_64-ebsAMI-d4a883b1。AmazonLinux AMI 2017.09.1.20180108 x86_64 VPC NAT HVM EBS
  • セキュリティグループ NATセキュリティグループのドキュメント に添付NAT上記のインスタンス
  • (プライベートサブネット上の)プライベートインスタンスは、IPアドレスを使用している限り、NATインスタンスを介してインターネットにアクセスできます。例:curl http://74.125.135.99/は機能しますが、curl http://www.google.com機能しません

プライベートインスタンス:

$cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search us-east-2.compute.internal

$ curl http://74.125.135.99/
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

$ curl http://www.google.com/
curl: (6) Could not resolve Host: www.google.com

NATインスタンス:

$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search us-east-2.compute.internal
options timeout:2 attempts:5
nameserver 10.0.0.2

更新:次のDNS設定がVPCにあります:

DNS resolution: yes
DNS hostnames: yes
3
mpprdev

VPCのDNS解決は、NATデバイス、NATインスタンスであるか、NATゲートウェイであるか、実装方法により、ネットワークの設定ミスによってDNSを破壊することは不可能ではないにしても非常に困難です。これは、セキュリティグループとネットワークACLを介してトラフィックを許可する必要がないためです。

機能していない場合は、電源が入っていないことを示しています。

enableDnsSupporttrueに設定されていることを確認します。

https://docs.aws.Amazon.com/AmazonVPC/latest/UserGuide/vpc-dns.html#vpc-dns-support

そこにいる間は、おそらくenableDnsHostnamesをアクティブ化したいと思うでしょう。文書化された説明がそうであることを示唆しているという事実にもかかわらず、それはあなたのインスタンスを「公開」しません。

これらのオプションのいずれかを有効にしないケースはめったにありません。

4