Как получить регион на основе IP-адреса в GCP

Я создал и остановил пару экземпляров GCP для сбора статистики задержки и пропускной способности сети. У меня есть публичные IP-адреса, но я потерял файл сопоставления из-за поломки ноутбука. Есть ли способ сопоставить IP-адрес с регионом в GCP?

Скажем, 35.243.94.242 для региона Япония.

0
задан 18 December 2019 в 07:46
3 ответа

Можно зарезервировать общедоступный IP на основе регионов - Переходят в Резерв статический адрес

для большего количества информации - https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address

1
ответ дан 30 December 2019 в 00:06

, Если Вы использовали настройки по умолчанию для VM's и просто изменили регион, Вы не можете сказать регионам GCP, базирующимся IP.

Google имеет много блоков диапазона IP в наличии, но они IP присвоены многим регионам. Существует тонна документации GCP, но она просто дает Вам некоторый ключ к разгадке. Подобный случай был обсужден также на StackOverflow.

существует путь к , определяют то, что те диапазоны IP точно, но the're, ни в коем случае не "отображенный" на регионах.

, При попытке определить геолокацию IP - Вы (в большинстве случаев) закончите тем, что нашли "Маунтин-Вью, Калифорния" (потому что они принадлежат Google).

Вы также не можете сделать traceroute для точного выяснения, где те, которые IP из-за политика безопасности Google - они затеняют результаты путем увеличения времени TTL пакета, когда они оставляют VM's .

Используя traceroute даже не получает Вас идея, в какой континент пакеты идут. Я попробовал к traceroute, мой VM's (в 4 различных зонах) и результаты был очень причудлив кроме этой последней части маршрута, затеняемого Google.

, Если Вы не провели целый день на исследование времен задержки просто, делают эксперимент снова. Тем путем Вы будете уверены, что разобрались в нем.

0
ответ дан 30 December 2019 в 00:06

Подход ниже мог работать, если к экземплярам VM получили доступ через HTTP.

Назад в 2014, Gary Ling, Менеджер по продукции GCP, объяснил в [1 114] Google Groups , как обрабатываются общедоступные адреса:

"Мы знаем об этой проблеме, что (почти) все IP-адреса Google являются SWIP'ed, чтобы быть Маунтин-Вью, Приблизительно. И в Google, весьма распространено повторно отобразить блок дюйм/с от одного местоположения до другого, особенно учитывая эластичность IP-адресов для Облака. Слишком плохо то, что многие внешние Гео-сервисы IP только зависят от базы данных SWIP. В то время как мы оцениваем то, что мы можем сделать для помощи нашим клиентам, лучший выбор, по-моему, связывается поставщиком API, и исследуйте опции, которые они могут предложить теперь".

, Который означает, что, пока Внешний IP не настроен как Стандартный (региональный) тип, невозможно получить экземпляр VM, основанный на местоположении на адресе.

В этой ситуации то, что сам экземпляр VM связывается с Зоной, может помочь восстановить потерянную привязку ретроспективно.

, К сожалению, Вход GCP не сохраняет информацию о Внешней привязке IP-адреса, в отличие от Внутреннего IP. Кроме того, когда экземпляр VM останавливается, эта информация теряется в Вычислить конфигурации Механизма.

, К счастью, эта информация может быть получена из журнала доступа веб-сервера. В случае, если Вы остановили и затем запустили экземпляр VM, он потеряет свой Эфемерный Внешний IP и получит новый. Следовательно необходимо было бы запросить информацию об обоих адресах, которые имел экземпляр VM.

Переходят к Средству просмотра Журналов и переключают его на новое представление версии:

Навигационное меню GCP => Stackdriver => Регистрирующийся => Средство просмотра Журналов => Классик => Предварительно просматривает новое Средство просмотра Журналов

, Вводят и выполняют запрос как это:

timestamp>="2019-12-18T16:55:55.671Z"
"GET"
"35.246.254.65" OR "35.198.96.135"

или использование gcloud командная строка в CloudShell (шаги подготовки обеспечиваются для Вашего удобства):

$ gcloud config list 
$ gcloud config set account 'account'
$ gcloud config set core/project 'project_id'
$ gcloud logging read 'timestamp>="2019-12-19" AND "GET" AND "35.246.254.65" OR "35.198.96.135"'

Вы будете видеть записи в журнале от журнала доступа веб-сервера (Apache в этом примере), которые содержат Внешний IP экземпляра VM, его идентификатора, зоны и имени как значения textPayload, instance_id, zone и compute.googleapis.com/resource_name соответственно. В примере ниже информации ретроспективно восстанавливается от журналов, который упоминает, что эфемерный Внешний IP 35.246.254.65 был связан с экземпляром VM ssh2 в регионе europe-west3:

{
  "textPayload": "104.132.189.65 - - [19/Dec/2019:12:36:34 +0100] "GET /icons/openlogo-75.png HTTP/1.1" 200 6040 "http://35.246.254.65/" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"",
  "insertId": "46bi50g2tl8r4c",
  "resource": {
    "type": "gce_instance",
    "labels": {
      "project_id": "myworks2",
      "instance_id": "8445465273187245258",
      "zone": "europe-west3-c"
    }
  },
  "timestamp": "2019-12-19T11:36:35.006315576Z",
  "labels": {
    "compute.googleapis.com/resource_name": "ssh2"
  },
  "logName": "projects/myworks2/logs/apache-access",
  "receiveTimestamp": "2019-12-19T11:36:36.253027441Z"
}

Это работает и на Эфемерный и Статический Внешний IP, и, что важно, это остается в журналах Stackdriver даже после того, как VM был удален.

вывод запроса мог быть огромным. Вам решать обработать вывод с --format или --flatten параметры командной строки или любой сценарий парсинга по мере необходимости.

$ gcloud logging read 'timestamp>="2019-12-19" AND "GET" AND "35.246.254.65" OR "35.198.96.135"' --format="table(labels.'compute.googleapis.com/resource_name',resource.labels.instance_id,resource.labels.zone,textPayload)"
COMPUTE.GOOGLEAPIS.COM/RESOURCE_NAME  INSTANCE_ID          ZONE            TEXT_PAYLOAD
ssh2                                  8445465273187245258  europe-west3-c  104.132.189.65 - - [19/Dec/2019:12:56:56 +0100] "GET /icons/openlogo-75.png HTTP/1.1" 200 6040 "http://35.198.96.135/" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
ssh2                                  8445465273187245258  europe-west3-c  104.132.189.65 - - [19/Dec/2019:12:36:34 +0100] "GET /icons/openlogo-75.png HTTP/1.1" 200 6040 "http://35.246.254.65/" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"

посмотрите следующие ссылки для большего количества примеров расширенного запроса:

Усовершенствованные запросы журналов

Фильтрация и форматирование забавы с gcloud, интерфейс командной строки GCP’s

0
ответ дан 30 December 2019 в 00:06

Теги

Похожие вопросы