Назад | Перейти на главную страницу

Частный экземпляр aws не может разрешить имя хоста (VPC с экземпляром NAT)

Обратите внимание, что этот вопрос отличается от один здесь где они использовали стандартный AMI против NAT AMI (в моем случае). Также в моем случае частный экземпляр может получить доступ в Интернет через ipaddress, но не через разрешение имени хоста.

Вот моя установка:

Частный экземпляр:

$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

ОБНОВЛЕНИЕ: на моем VPC есть следующие настройки DNS:

DNS resolution: yes
DNS hostnames: yes

Разрешение DNS в VPC не зависит от устройства NAT, будь то экземпляр NAT или шлюз NAT, и из-за способа его реализации очень сложно, если не невозможно, взломать DNS из-за неправильной конфигурации сети, потому что трафик нет необходимости разрешать через группы безопасности и сетевые ACL.

Если он не работает, значит, он не включен.

Гарантировать, что enableDnsSupport установлен на true.

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

Вы, вероятно, захотите активировать enableDnsHostnames пока ты там. Это не делает ваши экземпляры «общедоступными», несмотря на то, что задокументированное описание подразумевает это.

Редко бывает, что ни одна из этих опций не активна.