У меня есть VPC с двумя экземплярами ВМ Compute Engine. Один из них, vpn-server
, действует как VPN для кластера локальных компьютеров. Другой, тестовый экземпляр
, настроен с помощью тега экземпляра route-through-vpn
, который направляет трафик на vpn-server
, если он собирается на 10.10.0.0/19
.
Существует также экземпляр AppEngine с тегом экземпляра route-through-vpn
. Веб-приложение, работающее в нем, может напрямую подключаться к нашему локальному кластеру.
Эта установка отлично проработала более года. Затем вчера небольшое количество IP-адресов внезапно перестало работать.
Под «перестал работать» я имел в виду следующее:
vpn-server
. тестового экземпляра
, не может достичь этих IP-адресов. Один из ошибочных IP-адресов - 10.10.0.8
. Один IP-адрес, который все еще работает, - 10.10.0.47
. Насколько я могу судить, все адреса правильно соответствуют диапазону адресов 10.10.0.0/19
.
Для отладки я вошел на vpn-server
и test-instance
и попытался отправить ICMP-пакеты из test-instance
на различные IP-адреса в кластере. Я также запустил tcpdump
на vpn-server
, чтобы я мог видеть проходящий трафик.
Для IP-адресов, которые все еще работают, я видел пакеты ICMP в вывод tcpdump
, как и ожидалось. Но для IP-адресов, которые больше не работают, я ничего не вижу в tcpdump
, что указывает на то, что уровень маршрутизации Gcloud даже не отправляет трафик на мой vpn-сервер
.
Чтобы продолжить тестирование, я выключил одну из локальных машин, трафик которой маршрутизируется должным образом, и попытался проверить связь с ней. Пакеты эхо-запроса ICMP появились в выводе tcpdump
без ответов, как и ожидалось.
Маршруты Google Cloud не имеют большого количества параметров, и нет доступной информации, которая могла бы мне помочь исследуйте дальше, так что теперь кто-то просто случайно узнает, почему это могло произойти.
Кто-нибудь решил такую проблему или имеет какое-нибудь представление, что может быть причиной?
Это больше похоже на проблему с конфигурацией экземпляра или таблицей маршрутизации. Если я правильно понял, IP-адрес 10.10.x.x / 19 принадлежит вашей локальной сети. Мы можем отказаться от правил брандмауэра, поскольку я предполагаю, что у вас есть правило, подобное «разрешить входящий / исходящий трафик из источника / пункта назначения 10.10.0.0 / 19», и если вы видите, что IP-адрес 10.10.0.47 все еще работает, означает, что правило брандмауэра работает, похоже, больше, чем поведение маршрутизации, вы пытались очистить таблицу маршрутов внутри своего экземпляра? Это может помочь обновить вашу таблицу маршрутизации. Я знаю, что у GCP есть возможность использовать экземпляр в качестве шлюза Это похоже на то, что вы делаете.