Добавление нового клиентского сервера в частное облако через cloud-config
Введение: В этом руководстве объясняется, как добавить новый клиентский сервер в частное облако с использованием самостоятельно размещенного шлюза. При создании сервера мы будем использовать скрипт cloud-config, который добавляет новый маршрут на сервер, чтобы весь исходящий трафик отправлялся на самостоятельно размещенный шлюз (10.0.0.1). Затем самостоятельно размещенный шлюз перенаправляет этот трафик на ваш самостоятельно размещенный шлюз. Вам не нужен публичный интерфейс (без публичного IP-адреса) или настройка статических маршрутов к вашему самостоятельно размещенному шлюзу. Если на вашем шлюзе есть DNS-сервер, он будет использоваться вашим новым сервером.
Предварительные требования:
- Самостоятельно размещенный шлюз в вашей частной облачной сети
Пример терминологии:
- Частная сеть: 10.1.0.0/24
- Самостоятельно размещенный шлюз: 10.1.0.1
- DNS-серверы: 185.12.64.3 и 185.12.64.4
Шаг 1 - Подготовка конфигурации "netplan"
Мы хотим, чтобы cloud-config создал файл (/etc/netplan/51-netcfg.yaml) для установки маршрута по умолчанию.
Создайте или отредактируйте файл конфигурации netplan с помощью предпочитаемого текстового редактора:
network:
version: 2
ethernets:
ens10:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 10.1.0.1
В этой конфигурации:
ens10— это имя интерфейса вашей частной сети.- Нам нужно отправлять весь исходящий трафик на самостоятельно размещенный шлюз (10.1.0.1).
Шаг 2 - Подготовка конфигурации "resolved"
В этом примере мы используем альтернативные DNS-серверы, но вы также можете использовать другие DNS-серверы. Измените файл /etc/systemd/resolved.conf:
Отредактируйте файл /etc/systemd/resolved.conf:
[Resolve]
DNS=185.12.64.3 185.12.64.4
Шаг 3 - Создание скрипта Cloud-Config
Теперь нам нужно объединить обе конфигурации из первых двух шагов в один скрипт cloud-config. После записи двух файлов скрипт cloud-config перезагрузит сервер.
Создайте скрипт cloud-config, например, cloud-config.yaml, и добавьте следующее содержимое:
#cloud-config
write_files:
- path: /etc/netplan/51-netcfg.yaml
permissions: '0644'
content: |
network:
version: 2
ethernets:
ens10:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 10.1.0.1
- path: /etc/systemd/resolved.conf
content: |
[Resolve]
DNS=185.12.64.3 185.12.64.4
runcmd:
- reboot
Этот скрипт включает конфигурации как для netplan, так и для resolved. Он запишет эти конфигурации, а затем перезагрузит сервер.
Шаг 4 - Создание нового сервера
Откройте консоль облачного хостинг-провайдера и создайте новый сервер Ubuntu 22.04. Добавьте сервер только в вашу частную сеть и убедитесь, что публичные интерфейсы отсутствуют.
Используйте скрипт cloud-config, созданный в "Шаге 3". Внесите необходимые изменения, чтобы он соответствовал вашей среде, и вставьте его в текстовое поле конфигурации "Cloud config" в процессе создания сервера. Создайте сервер и дайте ему время на перезагрузку.
Шаг 5 - Проверка конфигурации
Если у вас есть VPN-подключение к вашему самостоятельно размещенному шлюзу, вы должны иметь возможность подключиться по SSH к созданному серверу.
Если нет, вы можете использовать VNC-консоль в пользовательском интерфейсе облачного хостинг-провайдера.
Проверьте DNS-сервер:
resolvectl status
Вы должны увидеть настроенный DNS-сервер.
Проверьте маршрут по умолчанию:
ip route
Вы должны увидеть маршрут по умолчанию:
default via 10.1.0.1 dev ens10 proto static onlink
Заключение: Вы успешно настроили новый сервер с помощью cloud-config для использования самостоятельно размещенного шлюза в качестве маршрута по умолчанию для исходящего трафика и для использования ваших собственных DNS-серверов. Эта настройка позволяет вашему серверу подключаться к частной сети через самостоятельно размещенный шлюз без необходимости в публичном интерфейсе или статических маршрутах.
Поиск