Пример настройки второго публичного плавающего IP-адреса на облачном сервере
Цель настройки
Настроить второй публичный плавающий IP-адрес на облачном сервере, чтобы обращаться к серверу по двум публичным IP-адресам.
Что нужно для настройки
В примере для настройки мы использовали облачный сервер, который создан из готового образа Ubuntu 24.04 LTS 64-bit.
Сервер находится в приватной подсети 192.168.0.0/24 с шлюзом по умолчанию 192.168.0.1. Приватный IP-адрес облачного сервера — 192.168.0.2.
Приватная подсеть сервера подключена к облачному роутеру с доступом в интернет. Приватный IP-адрес облачного роутера совпадает с шлюзом приватной подсети.
К облачному серверу подключен один публичный плавающий IP-адрес 203.0.113.10.
Результат настройки
К облачному серверу добавлен второй порт в приватной подсети 192.168.0.0/24 с IP-адресом 192.168.0.3.
К этому порту подключен второй публичный плавающий IP-адрес 198.51.100.13.
Сервер принимает входящий трафик на оба публичных плавающих IP-адреса — первый 203.0.113.10 и второй 198.51.100.13.
Шаги настройки
- Добавьте порт в приватную подсеть.
- Создайте публичный плавающий IP-адрес.
- Подключите публичный плавающий IP-адрес к порту в приватной подсети.
- Измените файл конфигурации сети облачного сервера.
- Опционально: проверьте доступ в интернет и из интернета.
1. Добавить порт в приватную подсеть
Панель управления
OpenStack CLI
- В панели управления в верхнем меню нажмите Продукты и выберите Облачные серверы.
- Перейдите в раздел Сеть → вкладка Приватные сети.
- Откройте страницу сети → вкладка Порты.
- Нажмите Добавить порт.
- Выберите подсеть, в примере —
192.168.0.0/24. - Введите новый приватный IP-адрес порта, в примере —
192.168.0.3. - Выберите облачный сервер, к которому нужно добавить порт.
- Нажмите Добавить.
2. Создать публичный плавающий IP-адрес
Создайте один публичный плавающий IP-адрес в одной локации с облачным сервером.
Панель управления
OpenStack CLI
- В панели управления в верхнем меню нажмите Продукты и выберите Облачные серверы.
- Перейдите в раздел Сеть → вкладка Публичные плавающие IP-адреса.
- Нажмите Создать IP-адрес.
- Выберите локацию, в которой будет создан публичный плавающий IP-адрес.
- Укажите количество публичных плавающих IP-адресов.
- Нажмите Создать.
3. Подключить публичный плавающий IP-адрес к порту в приватной подсети
Панель управления
OpenStack CLI
- В панели управления в верхнем меню нажмите Продукты и выберите Облачные серверы.
- Перейдите в раздел Сеть → вкладка Приватные сети.
- Откройте страницу сети → вкладка Порты.
- В карточке порта облачного сервера нажмите Публичный IP.
- Выберите публичный плавающий IP-адрес, который вы создали на этапе 2, в примере —
198.51.100.13. - Нажмите Подключить.
4. Изменить файл конфигурации сети облачного сервера
Чтобы сервер принимал трафик на оба публичных плавающих IP-адреса, для каждого сетевого интерфейса нужно настроить отдельную таблицу маршрутизации с маршрутами и правилами маршрутизации. Маршрут определяет шлюз для отправки трафика, а правило маршрутизации указывает, по какой таблице отправлять трафик с конкретного приватного IP-адреса.
-
Подключитесь к серверу по первому публичному плавающему IP-адресу, в примере —
203.0.113.10. -
Если облачный сервер создан из образа с cloud-init, то при перезагрузке сервера cloud-init автоматически применяет сетевые настройки, которые указаны в панели управления на странице сервера на вкладке Порты. Изменения, которые вы внесли вручную в настройки сети сервера, не сохранятся.
Чтобы отключить применение настроек из панели управления при перезагрузке сервера, отключите управление сетью через cloud-init:
echo "network: {config: disabled}" >> /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg -
Посмотрите MAC-адрес порта, который вы добавили на этапе 1. Для этого выведите информацию о сетевых интерфейсах сервера:
ip link show -
Откройте конфигурационный файл утилиты
netplanтекстовым редакторомvi:vi /etc/netplan/50-cloud-init.yaml -
Измените конфигурационный файл утилиты
netplan:5.1. В конце блока с данными первого сетевого интерфейса добавьте маршруты:
routes:- to: 0.0.0.0/0via: 192.168.0.1- to: 192.168.0.0/24table: 102- to: 0.0.0.0/0via: 192.168.0.1table: 102routing-policy:- from: 192.168.0.2/32table: 102Здесь:
0.0.0.0/0— подсеть по умолчанию для отправки интернет-трафика;192.168.0.1— шлюз приватной подсети облачного сервера;192.168.0.0/24— подсеть облачного сервера с маской/24;102— идентификатор таблицы маршрутизации для первого интерфейса, уникальное число от 1 до 252;192.168.0.2/32— приватный IP-адрес облачного сервера с маской/32.
5.2. После блока с данными первого сетевого интерфейса добавьте второй сетевой интерфейс и маршруты для него:
eth1:match:macaddress: 00:00:5e:00:53:01set-name: eth1addresses:- 192.168.0.3/24routes:- to: 192.168.0.0/24table: 103- to: 0.0.0.0/0via: 192.168.0.1table: 103routing-policy:- from: 192.168.0.3/32table: 103Здесь:
00:00:5e:00:53:01— MAC-адрес порта, который вы получили на шаге 3;192.168.0.3/24— приватный IP-адрес облачного сервера с маской/24;192.168.0.0/24— подсеть облачного сервера с маской/24;103— идентификатор таблицы маршрутизации для второго интерфейса, уникальное число от 1 до 252;0.0.0.0/0— подсеть по умолчанию для отправки интернет-трафика;192.168.0.1— шлюз приватной подсети облачного сервера;192.168.0.3/32— приватный IP-адрес облачного сервера с маской/32.
Пример конфигурационного файла утилиты
netplannetwork:version: 2renderer: networkdethernets:# Первый сетевой интерфейс с приватным IP-адресом 192.168.0.2eth0:match:macaddress: 00:00:5e:00:53:00set-name: eth0addresses:- 192.168.0.2/24nameservers:addresses:- 188.93.16.19- 188.93.17.19routes:# Маршрут по умолчанию- to: 0.0.0.0/0via: 192.168.0.1# Маршруты для таблицы маршрутизации 102- to: 192.168.0.0/24table: 102- to: 0.0.0.0/0via: 192.168.0.1table: 102# Исходящий трафик с 192.168.0.2 идет через таблицу маршрутизации 102routing-policy:- from: 192.168.0.2/32table: 102# Второй сетевой интерфейс с приватным IP-адресом 192.168.0.3eth1:match:macaddress: 00:00:5e:00:53:01set-name: eth1addresses:- 192.168.0.3/24# Маршруты для таблицы маршрутизации 103routes:- to: 192.168.0.0/24table: 103- to: 0.0.0.0/0via: 192.168.0.1table: 103# Исходящий трафик с 192.168.0.3 идет через таблицу маршрутизации 103routing-policy:- from: 192.168.0.3/32table: 103 -
Проверьте синтаксис файла:
sudo netplan try -
Примените настройки:
sudo netplan apply
5. Опционально: проверить доступ в интернет и из интернета
-
Откройте CLI.
-
Проверьте доступность сервера по новому публичному плавающему IP-адресу:
ping 198.51.100.13Здесь
198.51.100.13— публичный плавающий IP-адрес, который вы создали на этапе 2. -
Подключитесь к серверу по любому из двух публичных плавающих IP-адресов сервера.
-
Проверьте с сервера доступность любого публичного IP-адреса, например:
ping 8.8.8.8