Настройка правильных настроек брандмауэра для балансировщика нагрузки HTTP GCP
У меня есть две виртуальные машины, на которых запущены HTTP-серверы через порт 8545, как показано на рисунке, и помещены в группу экземпляров.
Я создал балансировщик нагрузки HTTP в GCP для балансировки HTTP-запросов от конечных пользователей. Однако при настройке, показанной на рисунке, и правилах брандмауэра проверки работоспособности не пройдены, и я также не могу получить доступ к http://35.190.34.26/
Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.
Однако, если я добавлю правило брандмауэра, которое позволяет все (0.0.0.0/0 on 8545)
, проверки здоровья пройдены, и я также могу получить доступ к http://35.190.34.26/
Но я не хочу писать это правило брандмауэра, которое разрешает всем на 8545. Как правильно настроить брандмауэр, чтобы только балансировщик нагрузки мог получить доступ к группе экземпляров на этом порту?
1 ответ
Так как правило глобальной пересылки настроено на порту 80, но экземпляры бэкэнда обслуживают трафик на порту 8545, необходимо создать два отдельных правила брандмауэра, чтобы разрешить трафик с 130.211.0.0/22 и 35.191.0.0/16 на этих портах. Это диапазоны IP-адресов, которые балансировщик нагрузки использует для подключения к экземплярам сервера. Это правило разрешает трафик как от балансировщика нагрузки, так и от проверки работоспособности.
Я бы посоветовал проверить экземпляры сервера, чтобы убедиться, что он прослушивает все адреса (0.0.0.0/0) и не привязан к какому-либо конкретному IP. Кроме того, было бы полезно запустить tcpdump на внутренних экземплярах, чтобы узнать, достигает ли трафик экземпляры из вышеуказанных диапазонов IP-адресов, и продолжить дальнейшую отладку.
Дополнительную информацию о правилах брандмауэра, касающихся балансировки нагрузки Google HTTP(S), можно найти в этой статье справочного центра.
У меня было аналогичное требование для установки Apache Ranger с HA с балансировщиком нагрузки в GCP. Только что создал одно правило брандмауэра, чтобы разрешить трафик с 130.211.0.0/22 и 35.191.0.0/16 на порт рейнджера (6080).
Важная вещь, которую мы должны сделать, это проверить работоспособность -> выбрать протокол TCP с портом 6080 (в вашем случае это будет 8545). Затем вы можете получить доступ к URL-адресу балансировщика нагрузки.