Назад | Перейти на главную страницу

Зачем тегу экземпляра Google Cloud отбрасывать пакеты?

У меня есть VPC с двумя экземплярами ВМ Compute Engine. Один из них, vpn-server, действует как VPN для кластера локальных компьютеров. Другой, test-instance, настроен с тегом экземпляра route-through-vpn который направляет трафик в vpn-server если это будет 10.10.0.0/19.

Существует также экземпляр AppEngine с route-through-vpn тег экземпляра. Работающее в нем веб-приложение может напрямую подключаться к нашему локальному кластеру.

Эта установка отлично проработала больше года. Затем вчера внезапно перестало работать небольшое количество 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-server.

Для дальнейшего тестирования я выключил одну из локальных машин, трафик которой маршрутизируется должным образом, и попытался пропинговать ее. Пакеты эхо-запроса ICMP появились в выводе tcpdump без ответов, как и ожидалось.

У маршрутов Google Cloud не так много вариантов, и нет доступной информации, которая помогла бы мне продолжить расследование, так что теперь кому-то просто нужно знать, почему это произошло.

Кто-нибудь решил такую ​​проблему или есть идеи, в чем может быть причина?

Это больше похоже на проблему с конфигурацией экземпляра или таблицей маршрутизации. Если я правильно понял, IP-адрес 10.10.x.x / 19 принадлежит вашей локальной сети. Мы можем отказаться от правил брандмауэра, поскольку я предполагаю, что у вас есть правило, подобное «разрешить входящий / исходящий трафик из источника / пункта назначения 10.10.0.0 / 19», и если вы видите, что IP-адрес 10.10.0.47 все еще работает, означает, что правило брандмауэра работает, похоже, больше, чем поведение маршрутизации, вы пытались очистить таблицу маршрутов внутри своего экземпляра? Это может помочь обновить вашу таблицу маршрутизации. Я знаю, что у GCP есть возможность использовать экземпляр как шлюз Это похоже на то, что вы делаете.