Спасибо за ваше разъяснение. Итак, в основном это то, что у нас есть:
Частный GKE -> Облачный NAT -> Внешний балансировщик нагрузки GAE -> GAE
, и приложение в GAE видит адрес ipv6
Когда вы используете Cloud NAT, Google Private Access по умолчанию включен, поэтому запросы от вашего VP C к GAE будут использовать Private Access.
Private Access будет использовать внутреннюю сеть Google для маршрутизации запроса, чтобы обеспечить publi c inte rnet не используется. Для правильной маршрутизации мы используем IPv6.
Чтобы объяснить адрес IPv6:
Google использует установленный префикс NAT64: fda3: e722: ac3: 10 :: / 64. Это значение является постоянным во всех сетях GCP VP C. Последние 32 бита преобразуются непосредственно из внутреннего IP-адреса хоста, отправляющего запрос. Он преобразуется из двоичного в шестнадцатеричное (ie 10.132.0.5 в десятичном виде -> 0x0a840005 в шестнадцатеричном).
Средняя часть между префиксом NAT64 и последними 32 битами является уникальным идентификатором вашего VP C. Этот идентификатор уникален для каждой сети VP C, поэтому вы можете иметь более 1 на проект.
В настоящее время нет способа предсказать этот идентификатор заранее. Лучший способ получить эту информацию - отправить запрос в GAE через Private Access и принять к сведению IPv6, указанный в качестве источника. Адрес IPv6 доступен в ответе с сервера и в журналах Stackdriver.
Используя эту информацию, вы сможете адекватно поддерживать белый список для приложений, размещенных на GAE.
Все При этом, если вы видите, что IPv4-адреса из модулей GKE отображаются как 0.0.0.0 в приложении GAE. Я рекомендую вам сообщить об этом, используя эту ссылку