Я создал и остановил пару экземпляров GCP для сбора статистики задержки и пропускной способности сети. У меня есть публичные IP-адреса, но я потерял файл сопоставления из-за поломки ноутбука. Есть ли способ сопоставить IP-адрес с регионом в GCP?
Скажем, 35.243.94.242 для региона Япония.
Можно зарезервировать общедоступный IP на основе регионов - Переходят в Резерв статический адрес
для большего количества информации - https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address
, Если Вы использовали настройки по умолчанию для 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.
, Если Вы не провели целый день на исследование времен задержки просто, делают эксперимент снова. Тем путем Вы будете уверены, что разобрались в нем.
Подход ниже мог работать, если к экземплярам 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