почему мой ec2 в одном регионе пытается использовать частный IP другого экземпляра ec2 в другом регионе? - PullRequest
0 голосов
/ 27 июня 2018

У нашей компании есть настройка github в экземпляре aws EC2. Это, конечно, будет иметь частный / публичный IP.

Я установил два экземпляра ec2 в другом регионе.

Однако, когда я пытаюсь подключиться к github нашей компании из одного экземпляра, он использует публичный ip экземпляра github. В этом случае соединение успешно, и я могу клонировать и делать вещи.

Но другой будет использовать частный ip экземпляра github. В этом случае ему не удается подключиться к экземпляру github.

Кстати, второй (тот, который не работает) был перенесен из региона, в котором установлен экземпляр github, в другой регион. Сохранил AMI и перезапустил его в новом регионе.

Вот пример, описывающий мой симптом.

Я приму:

  • instanceA: перенесен экземпляр ec2 в новый регион
  • instanceB: недавно созданный экземпляр ec2 в новом регионе
  • Экземпляр github: имеет доменное имя "git.blahblah.com". Он имеет частный IP 172.31.xx.xx, публичный IP 52.78.xx.xx

instanceA

$ ping git.blahblah.com
PING git.blahblah.com (172.31.xx.xx) 56(84) bytes of data.

instanceB

$ ping git.blahblah.com
PING git.blahblah.com (52.78.xx.xx) 56(84) bytes of data.

Что может быть причиной? Есть какие-нибудь советы по решению этой проблемы?


Я проверил настройки DNS с помощью `$ cat /etc/resolv.conf

instanceA

# 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 172.30.0.2
search us-west-2.compute.internal

instanceB

# 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 172.30.0.2
search us-west-2.compute.internal

группа безопасности instanceA и instanceB идентична. Идентификатор VPC, идентификатор подсети instanceA и instanceB идентичны.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Как глупо с моей стороны.

Причиной этого было то, что в instanceA (перенесенном из другого региона) в файле /etc/hosts имелись некоторые конфигурации, из-за которых git.blahblah.com ссылался на частный IP-адрес.

$ cat /etc/hosts
127.0.0.1 localhost
172.31.xx.xx git.blahblah.com

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

После того, как я удалил строку 172.31.xx.xx git.blahblah.com из файла hosts, все заработало.

Извините за мою глупость, люди.

0 голосов
/ 27 июня 2018

Поскольку ваши экземпляры находятся в разных регионах от экземпляра github, они не находятся в одной сети и, следовательно, не могут подключиться к частному IP-адресу.

Если вы хотите, чтобы они соединялись друг с другом по одному и тому же IP-адресу, то они должны находиться в одном и том же VPC и для этого они должны находиться в одном регионе (но не в одной зоне доступности)

Частный IPv4-адрес - это IP-адрес, недоступный в течение Интернет. Вы можете использовать частные IPv4-адреса для связи между экземпляры в одной сети (EC2-Classic или VPC).

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-private-addresses

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...