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

Остановить экземпляр Google Compute от настройки второго сетевого интерфейса

Я раскручиваю виртуальную машину в Google Compute Engine под управлением Debian Buster и настраиваю ее с двумя сетевыми интерфейсами.

Первый использует временную IP-конфигурацию и назначается общедоступной маршрутизируемой сети, настроенной через DHCP. Я бы хотел оставить это как есть.

Второй интерфейс использует статическую IP-конфигурацию и назначается частной сети. Я хотел бы запретить GCE использовать DHCP для настройки этого интерфейса, а вместо этого использовать systemd-networkd для его самостоятельной настройки с целью простого добавления некоторых пользовательских маршрутов.

Хотя конфигурация systemd-networkd работает успешно, проблема в том, что при перезагрузке компьютера настройка DHCP GCE запускается после установки systemd-networkd и перезаписывает мою пользовательскую конфигурацию.

Я пробовал множество способов решить эту проблему, в том числе:

Единственное, что сработало до сих пор, - это отвратительный взлом сценария, который выжидает 30 секунд после загрузки, а затем снова запускает systemd-networkd, чтобы перезаписать конфигурацию GCE.

Могу ли я внести какие-то более чистые изменения в конфигурацию на уровне ОС или настройки конфигурации во время настройки сети / сервера, которые не позволят GCE автоматически настроить этот второй сетевой интерфейс?

РЕДАКТИРОВАТЬ №1:

Это пример конфигурации systemd-networkd, которую я бы предпочел использовать:

[Match]
Name=ens5

[Network]
Address=10.1.3.30/32
LinkLocalAddressing=no


[Route]
Destination=10.1.3.1/32
Scope=link

[Route]
Gateway=10.1.3.1
Destination=10.1.3.0/24
GatewayOnlink=yes

[Route]
Gateway=10.1.3.1
Destination=10.1.1.0/24
GatewayOnlink=yes

[Route]
Gateway=10.1.3.1
Destination=10.1.2.0/24
GatewayOnlink=yes

[Route]
Gateway=10.1.3.1
Destination=10.10.0.0/24
GatewayOnlink=yes

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

Вышеупомянутая конфигурация работает, даже с учетом того, что я должен объявить статический IP-адрес 10.1.3.30 как часть моей настройки сервера GCE. Проблема только в том, что я не могу заставить GCE перестать выполнять свою собственную конфигурацию интерфейса, которая перезаписывает приведенную выше. В Azure я могу просто закомментировать source ссылка на /var/run/network/interfaces.d в /etc/network/interfaces.

Что касается того, почему я предпочитаю эту настройку, это элегантный метод настройки моей внутренней сети с помощью программного обеспечения для управления конфигурацией сервера - я просто перетаскиваю приведенную выше конфигурацию в /etc/systemd/network/ и выпуск systemctl enable systemd-networkd && systemctl restart systemd-networkd, и он обрабатывает настройку интерфейса и настройку конфигурации, которая также выполняется при загрузке.

ОБНОВЛЕНИЕ №1:

Я подал https://issuetracker.google.com/issues/153513472 в трекере проблем GCP, надеюсь, они решат. Я обновлю проблему соответственно, когда они это сделают.

К сожалению, в настоящий момент вы не можете реализовать такой сценарий на GCP. Вы можете использовать описанные способы управления внутренними IP-адресами, следуя документации, например Использование статического внутреннего IP-адреса для вторичного сетевого интерфейса.

В качестве возможного обходного пути вы можете подать запрос функции на Отслеживание проблем Google под этот компонент.