Бессерверный соединитель VPC Google не обращается к экземпляру GCE с несколькими сетевыми интерфейсами

Могу ли я подключить облачные функции с помощью коннектора VPC в сети по умолчанию к экземпляру GCE с несколькими сетевыми интерфейсами, где nic0 - это какая-то другая сеть, а nic1 - по умолчанию сеть?

Итак, у меня есть экземпляр GCE с несколькими сетевыми интерфейсами.

nic0 is someother network nic1 is default network

Я сделал бессерверный коннектор VPC в сети по умолчанию. И использовал этот соединитель с функциями Google Cloud для подключения к экземпляру GCE.

Проблема в том, что когда сетевые интерфейсы меняются местами, т.е. nic0 - это сеть по умолчанию, а nic1 - это какая-то другая сеть, тогда соединитель VPC подключается успешно, и облачные функции могут достигать GCE, но когда nic0 - это другая сеть, а nic1 - сеть по умолчанию, тогда облачные функции не могут получить доступ к GCE.

Я пробовал следующее:

  1. Я попытался поменять местами сетевые интерфейсы, то есть по умолчанию на nic0, и он работает, но мне нужен nic0 для другой сети для подключения к другому внешнему серверу, поэтому по умолчанию находится на nic1.
  2. Я попытался создать правила брандмауэра, но, по-видимому, они не нужны в этом сценарии, так как у меня уже есть необходимая настройка правил.
  3. Я попытался сделать разъем VPC в другой сети, чтобы он мог подключаться к nic0, но это тоже не работает. Разъем VPC должен быть в сети по умолчанию.

Примечание. У меня правильные настройки разрешений IAM, поскольку я успешно подключил облачные функции к экземпляру GCE только с сетью по умолчанию.


comment
Вы упомянули, что ники находятся в разных сетях. Находятся ли эти VPC или подсети в одном VPC? Если разные, то являются ли они региональными, но с маршрутизацией между ними? Кроме того, совместима ли конфигурация nic с CIDR VPC при замене?   -  person yyyyahir    schedule 25.09.2019
comment
У обоих сетевых адаптеров разные сети VPC, что также означает, что их подсети находятся в их собственных сетях VPC. Но обе сети VPC находятся в одном регионе, и существуют правила брандмауэра, разрешающие трафик между ними, я считаю, то есть сеть по умолчанию имеет маршрут, определенный к другой сети. ПРИМЕЧАНИЕ. Я не специалист по сетевым технологиям, поэтому извините, если я звучу как новичок, или если что-то не понятно, ИЛИ если используется неправильный жаргон.   -  person zubair-0    schedule 25.09.2019
comment
Привет, просто пытаюсь получить детали для репро;). Итак, когда вы меняете местами сетевые адаптеры, меняете ли вы также адреса, чтобы они соответствовали соответствующим CIDR VPC? После смены мест вы по-прежнему можете подключаться к службам виртуальных машин в обоих VPC, используя других клиентов, кроме GCF?   -  person yyyyahir    schedule 25.09.2019
comment
Неплохо подмечено. Я меняю адреса, чтобы они соответствовали соответствующим CIDR VPC, но я не пытался подключиться к другим клиентам после замены. Я проверю это и вернусь к вам   -  person zubair-0    schedule 25.09.2019


Ответы (1)


Без дополнительной настройки дополнительные сетевые интерфейсы предоставляют доступ только к непосредственной подсети они подключены к, включая бессерверные соединители VPC, поскольку они по своей природе представляют собой подсеть, отличную от той, к которой подключен ваш экземпляр.

Чтобы обойти это, вам необходимо создать статический маршрут в операционной системе в экземпляре, где расположен вторичный интерфейс. Это, очевидно, будет зависеть от вашей операционной системы, но в Debian-9 вы можете настроить это с помощью этой команды:

sudo ip route add [MY_CONNECTOR_SUBNET] via [ETH1_DEFAULT_ROUTER] dev eth1

Где ETH1_DEFAULT_ROUTER - это адрес .1 вашей подсети ETH1, а MY_CONNECTOR_SUBNET - это подсеть CIDR-формата / 28, для использования которой настроен соединитель (например, что-то вроде 10.50.1.0/28, но это будет зависеть от того, как вы настроили свой соединитель) .

Конечно, это не сохраняется при загрузке, так как это также конфигурация для конкретной ОС, но это должно дать вам представление, является ли это проблемой для вас.

Кроме того, в сети по умолчанию нет ничего особенного - это просто автоматически созданная сеть с автоматическим режимом, и нет никаких причин, по которым это не должно было работать, когда у вас был соединитель, подключенный к nic0. "чужая" сеть. Единственное, что здесь происходит «особенным», - это то, что nic0 получает маршрут по умолчанию для всего трафика из виртуальной машины и, следовательно, не требует добавления статического маршрута для доступа к бессерверному коннектору VPC в той же сети.

person robsiemb    schedule 24.10.2019