При каких обстоятельствах checkip.amazonaws.com возвращает несколько адресов? - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь понять проблему , сообщенную пользователем в одном из моих проектов с открытым исходным кодом .Когда они запрашивают checkip.amazonaws.com, они иногда возвращают несколько IP-адресов, разделенных запятыми.

Я не смог найти никакой информации об этом, поэтому мне любопытно:

  1. Есть ли надлежащая документация для этого сервиса Amazon?
  2. При каких обстоятельствах checkip.amazonaws.com возвращает несколько адресов?
  3. Когда он возвращает , возвращает несколько адресов, что они означают?Есть ли значение для заказа?

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

Услуга checkip.amazonaws.com предоставляет публичный IP-адрес клиента, сделавшего запрос.Я могу придумать две причины, по которым может быть возвращено более одного IP-адреса.Однако у меня нет доступа к коду, который написал AWS, чтобы точно знать, что они обрабатывают.Я написал службу PHP, которая делает то же самое.

  • Интернет-маршрутизатор клиента является многодомным.Это означает, что маршрутизатор подключен к нескольким Интернетам для избыточности, производительности или балансировки нагрузки.
  • Прокси-серверы, балансировщики нагрузки и т. Д. Могут добавлять свои IP-адреса к заголовкам HTTP, что может привести к интеллектуальномусервис, отображающий более одного IP-адреса, если он не знает, какой есть (клиентский IP или IP-адрес прокси-сервера).

Я уверен, что есть больше случаев.Однако вам следует проанализировать строку IP-адреса и разбить или завершить строку в запятой, на вкладке и т. Д., Чтобы указать только первый valid IP-адрес.

0 голосов
/ 03 октября 2018

Используйте самое правое значение в качестве доверенного, а любые другие значения в качестве информационных, но недоверенных, поскольку они на самом деле копируются из заголовков входящего запроса.

Тестирование показывает, что эта конечная точка использует семантику HTTP X-Forwarded-Forи возвращает окончательное результирующее значение ... поэтому, если пользователь находится за каким-либо прокси, который внедряет X-Forwarded-For, эти значения из входящего запроса включаются в ответ и фактический адрес, который использовался дляконтакт этой службы отображается справа, как последнее значение.

Вы можете убедиться в этом сами, введя в запрос один или несколько заголовков X-Forwarded-For.

Значения слева,если они присутствуют, они могут быть частными внутренними IP-адресами в сети запрашивающей стороны, но конструкция X-Forwarded-For означает, что они не могут быть ни доказаны, ни опровергнуты как точные.Крайний правый всегда тот, который является правильным.

Обратите внимание, что вообще увидеть это поведение гораздо реже, если вы используете https для доступа к конечной точке, поскольку прокси гораздо реже могутввести такие заголовки.(Это невозможно при использовании MITM-прокси и подделки сертификатов, но хорошо работающая система никогда бы этого не сделала.)

Эта услуга от AWS является функцией устранения неполадок, которая, по-видимому, официально не документирована.Тот факт, что он использует X-Forwarded-For, предполагает, что этот тестовый сайт - что неудивительно - размещен за балансировщиком нагрузки, и появление нескольких адресов в ответе, вероятно, было непреднамеренной «функцией», которая возникает вследствие того, как онизначально был реализован.

Лучшая практика, вероятно, заключается в создании собственной службы «что такое мой IP» для встраивания в ваши собственные продукты, поскольку иногда авторы вредоносных программ / ботнетов злоупотребляют публичными службами.Когда это происходит, ваше программное обеспечение может быть ошибочно принято за вредоносное ПО, что создает беспорядок для вас, чтобы попытаться объяснить возникшую панику.Сторонние службы, даже если они «общедоступны», могут предпочесть не вызывать их службы без разрешения.

0 голосов
/ 03 октября 2018

DNS-имя может быть связано с несколькими IP-адресами.

С AWS |Amazon Route 53 |Часто задаваемые вопросы :

Q.Могу ли я связать несколько IP-адресов с одной записью?

Да.Связывание нескольких IP-адресов с одной записью часто используется для балансировки нагрузки географически распределенных веб-серверов.Amazon Route 53 позволяет перечислять несколько IP-адресов для записи A и отвечает на запросы DNS со списком всех настроенных IP-адресов.

См. Также: StackOverflow: несколько IP-адресов для ресурсаНаборы записей маршрута 53

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