
Я пытаюсь включить IP-переадресацию для интерфейса экземпляра, размещенного в Google Cloud.
- У меня есть экземпляр виртуальной машины f1 micro на Google Compute Engine.
- Я успешно создал правило переадресации IP с помощью gcloudздесь.
Командаcompute forwarding-rules describe myrulenamehere
выдает описание правила. - Когда я открываю страницу сведений об экземпляре виртуальной машины, переадресация IP отмечена как ВЫКЛ, и я не могу изменить ее с помощью кнопки ИЗМЕНИТЬ.
Как включить IP-переадресацию для интерфейса, если правило переадресации уже создано?
решение1
Вы не можете изменить это значение, так как онотолько для чтениязначение для уже созданных экземпляров. Из официальной документации Google, которую вы можете проверитьздесь:
Поле canIpForward можно задать только во время создания экземпляра. После создания экземпляра поле становится доступным только для чтения.
Поэтому я думаю, что единственный вариант, который у вас есть сейчас, это заново создать виртуальную машину, целевой экземпляр и правило переадресации. Вы можете включить ip-переадресацию во время создания с помощью флага --can-ip-forward
, например:
gcloud compute instances create instance-name --can-ip-forward
Вы также можете включить его из консоли, в меню «Сетевой интерфейс», при создании экземпляра.
Вы также можете сохранить то же самое правило переадресации иобновить целевой экземплярработает только:
gcloud compute forwarding-rules set-target ...
решение2
GCP добавил возможность обновления IP_FORWARDING без повторного создания экземпляра виртуальной машины.
gcloud compute instances update-from-file INSTANCE_NAME
Для более подробной информации проверьте обновление-экземпляр-свойств.
решение3
Как сказал @Ivan, GCP теперь позволяет устанавливать canIpForward после создания. Но если вы новичок в GCP, то не интуитивно понятно, как это сделать из облачной оболочки/терминала.
Откройте консоль и введите следующую команду:
gcloud compute instances export $myInstanceName --project $myProjectId --zone $instanceZone --destination=config_old.txt
Файл конфигурации заканчивается в хранилище вашего экземпляра оболочки, а не вашей локальной рабочей станции (независимо от того, чтодокументацияговорит).
Нажмите на 3 вертикальные точки прямо над терминалом и нажмите «загрузить». Распакуйте zip-файл и найдите config_old.txt. Отредактируйте атрибуты, которые вы хотите изменить (canIpForward: true), сохраните файл как config_new.txt. Нажмите на 3 вертикальные точки, а затем загрузите -> файл -> браузер -> загрузите.
После загрузки выполните следующую команду:
gcloud compute instances update-from-file $myInstanceName --project $myProjectId --zone $instanceZone --source=/home/some_folder/config_new.txt --most-disruptive-allowed-action=REFRESH
Проверьте сетевые интерфейсы для экземпляра: IP-пересылка теперь включена.
Пример со значениями:
gcloud compute instances export server1-example-com --project example-project --zone us-west4-c --destination=config_old.txt
gcloud compute instances update-from-file server1-example-com --project example-project --zone us-west4-c --source=/home/some_folder/config_new.txt --most-disruptive-allowed-action=REFRESH