Управлять сетями
Создать приватную сеть
Внутри приватной сети отсутствует ограничение на объем трафика — это позволяет передавать любой объем данных между вашими сервисами без дополнительных платежей.
Количество используемых приватных сетей не ограничено. Посмотрите значения пропускной способности.
Приватная сеть работает только внутри одного проекта и одного пула, недоступна для других проектов аккаунта пользователя и других аккаунтов.
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети → нажмите Создать сеть.
- Выберите пул сети.
- Введите имя сети.
- Введите CIDR подсети — диапазон IP-адресов, доступных в подсети.
- Опционально: отметьте чекбокс Включить DHCP.
- Опционально: измените шлюз.
- Опционально: добавьте еще подсети, нажав Добавить подсеть.
- Нажмите Создать.
Добавить подсеть в приватную сеть
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку сети.
- Нажмите Добавить подсеть.
- Введите CIDR подсети — диапазон IP-адресов, доступных в подсети.
- Опционально: введите IP шлюза.
- Опционально: отметьте чекбокс Включить DHCP.
- Нажмите Добавить подсеть.
Добавить облачный сервер в приватную сеть
- В панели управления перейдите в раздел Облачная платформа → Серверы.
- Откройте страницу сервера → вкладка Порты.
- Нажмите Добавить порт.
- Выберите приватную подсеть.
- Укажите IP-адрес.
- Нажмите Добавить порт.
Создать кросспроектную сеть
Приватную или публичную сеть одного проекта можно сделать доступной для другого проекта (только внутри одного пула) — создать кросспроектную сеть.
- В панели управления нажмите на имя текущего проекта и откройте список всех проектов.
- Скопируйте ID целевого проекта.
- Перейдите в раздел Облачная платформа → Сеть в текущем проекте.
- Откройте вкладку Приватные сети или Публичные подсети.
- Откройте карточку приватной сети, которую необходимо сделать доступной в другом проекте → вкладка Проекты.
- Нажмите Добавить проект и введите скопированный ID целевого проекта.
Если вам необходимо объединить облачные серверы из разных пулов (в том числе разных проектах и аккаунтах), используйте глобальный роутер Selectel (ранее — сети L3 VPN).
Включить DHCP
Протокол DHCP можно использовать для автоматической настройки сети на облачных серверах. Он позволяет автоматически получать IP-адреса и другие параметры (маску подсети, шлюз, адреса DNS-серверов) для устройств в приватной подсети.
DHCP можно включить при создании приватной сети, добавлении подсети в существующую сеть или для существующей приватной сети.
При включении DHCP в подсети создаются два порта для основного и резервного DHCP-серверов, для них резервируется два IP-адреса. Облачный сервер будет автоматически запрашивать настройки у DHCP-сервера: при включении сетевого интерфейса или истечении срока аренды адреса (по умолчанию 24 часа). DHCP-сервер будет выдавать IP-адрес, зарезервированный для порта сервера.
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку сети.
- В строке нужной подсети включите тумблер DHCP.
- Перейдите в раздел Серверы.
- Откройте страницу сервера → вкладка Порты.
- В блоке Настройка портов выберите Вручную в файле конфигурации сети на сервере.
- Настройте DHCP в конфигурационном файле облачного сервера.
Создать облачный роутер
Облачный роутер позволяет маршрутизировать трафик между приватными сетями.
Роутер можно использовать для настройки доступа в интернет из приватной сети или для доступа к устройству в приватной подсети из интернета по публичному IP-адресу.
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Роутеры → нажмите Создать роутер.
- Выберите пул роутера.
- Введите имя.
- Опционально: отметьте чекбокс Подключить роутер к внешней сети — для роутера будет выделен внешний IP-адрес.
- Нажмите Создать.
Подключить облачный роутер к внешней сети
Если облачный роутер подключен к внешней сети, он выполняет функцию 1:1 NAT для доступа из приватной сети в интернет через внешний адрес роутера или для доступа к устройству в приватной подсети из интернета по публичному IP-адресу.
Посмотрите значения пропускной способности.
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Роутеры.
- В меню (⋮) роутера выберите Подключить к внешней сети — для роутера будет выделен внешний IP-адрес.
Создать публичный IP-адрес
Публичный IP-адрес — это статический публичный IP-адрес, который можно быстро переключать между облачными серверами в приватных подсетях.
Если вы создаете первый публичный IP-адрес в пуле внутри проекта, автоматически создастся приватная сеть nat и облачный роутер router-nat.
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Публичные IP-адреса → нажмите Создать IP-адрес.
- Выберите пул IP-адреса.
- Укажите количество адресов.
- Нажмите Создать.
Подключить приватную сеть к облачному роутеру
- Создайте роутер.
- Откройте карточку роутера → нажмите Добавить подсеть.
- Выберите приватную подсеть.
- Укажите IP-адрес роутера. Если вы подключаете сеть глобального роутера, укажите IP-адрес роутера, отличный от IP-адреса глобального роутера, IP-адресов облачных серверов в сети и служебных адресов .253 и .254
- Нажмите Добавить подсеть.
Подключить приватную сеть к глобальному роутеру
После подключения сети к глобальному роутеру вы сможете управлять ей только на странице глобального роутера.
Проверьте, что сеть еще не добавлена на любой из глобальных роутеров аккаунта — в панели управления в разделе Облачная платформа → Сеть → вкладка Приватные сети у нее нет тега Глобальный роутер.
Убедитесь, что подсеть соответствует условиям:
- принадлежит диапазону приватных адресов по RFC 1918:
10.0.0.0/8
,172.16.0.0/12
или192.168.0.0/16
; - имеет размер не меньше /29, так как три адреса будут заняты сетевым оборудованием Selectel;
- не пересекается с другими подсетями, добавленными на этот роутер: IP-адреса каждой подсети на роутере не должны совпадать с IP-адресами других подсетей на нем;
- если в сеть глобального роутера будут включены ноды Managed Kubernetes, подсеть не пересекается с диапазонами
10.250.0.0/16
,10.10.0.0/16
и10.96.0.0/12
. Эти подсети участвуют во внутренней адресации Managed Kubernetes, их использование может привести к конфликтам в сети глобального роутера.
- принадлежит диапазону приватных адресов по RFC 1918:
В панели управления перейдите в раздел Облачная платформа → Сеть.
Откройте вкладку Приватные сети.
В меню ( ) сети выберите Подключить к глобальному роутеру.
Выберите глобальный роутер или создайте новый.
Для каждой из подсетей введите IP шлюза или оставьте первый свободный адрес из подсети, который назначается по умолчанию. Не назначайте этот адрес на свои устройства, чтобы не нарушить работу сети. Два последних свободных адреса подсети будут зарезервированы в качестве служебных.
Нажмите Подключить. Не закрывайте окно, пока не появится сообщение о том, что сеть подключена. После этого в панели управления:
Подключить облачный сервер к интернету
Доступ в интернет осуществляется через публичную подсеть или публичный IP-адрес.
Посмотрите значения пропускной способности.
Через публичную подсеть
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Публичные подсети → нажмите Создать подсеть.
- Выберите пул подсети.
- Выберите размер подсети.
- Нажмите Создать.
- Перейдите в раздел Облачная платформа → Серверы.
- Откройте страницу сервера → вкладка Порты.
- Нажмите Добавить порт.
- Выберите публичную подсеть.
- Укажите IP-адрес.
- Нажмите Добавить порт.
Через публичный IP-адрес
- Создайте публичный IP-адрес.
- Создайте облачный роутер с подключением к внешней сети.
- В панели управления перейдите в раздел Облачная платформа → Серверы.
- Откройте страницу сервера → вкладка Порты.
- Нажмите Добавить порт.
- Выберите приватную подсеть.
- Укажите IP-адрес.
- Нажмите Добавить порт.
- Подключите к порту публичный IP-адрес — в столбце Публичный IP-адрес нажмите Подключить и выберите публичный IP-адрес.
Облачный сервер в подсети глобального роутера
Если у вас есть облачный сервер, который находится в сети глобального роутера (ранее — сети L3 VPN), то вы можете настроить доступ в интернет через облачный роутер. Облачный сервер будет связан с другими устройствами в приватной сети глобального роутера.
- Создайте облачный роутер. При создании отметьте чекбокс Подключить роутер к внешней сети.
- Подключите к облачному роутеру подсеть глобального роутера. Для этого в панели управления откройте карточку роутера → нажмите Добавить подсеть → выберите созданную ранее подсеть глобального роутера → укажите IP-адрес роутера, отличный от IP-адреса глобального роутера, IP-адресов облачных серверов в сети и служебных адресов .253 и .254 → нажмите Добавить подсеть.
- Подключите к облачному серверу публичный IP-адрес. Перейдите в раздел Облачная платформа → Серверы → откройте страницу сервера → вкладка Порты → в строке с подсетью глобального роутера в столбце Публичный IP-адрес нажмите Подключить.
- Укажите порт роутера шлюзом по умолчанию. В строке с подсетью глобального роутера в меню (⋮) выберите Сделать шлюзом по умолчанию.
- Пропишите маршруты на облачном сервере до всех подсетей глобального роутера.
Управление сетями с помощью CLI
Подробнее о начале работы с OpenStack CLI.
Создание подсетей
Для создания новой сети:
openstack network create <network name>
В ответе будет выведена таблица с информацией о сети:
+----------------+--------------------------------------+
| Field | Value |
+----------------+--------------------------------------+
| admin_state_up | True |
| id | add73ca5-6120-43bd-bb56-d1d8d71d21ac |
| name | localnet |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | d15391cc95474b1ab6bd81fb2a73bc5c |
+----------------+--------------------------------------+
Создать в этой сети подсеть можно при помощи следующей команды:
openstack subnet create \
--network <network name> \
--subnet-range <subnet-range> \
<subnet name>
Управление портами
Для просмотра всех портов сервера:
openstack port list --server <server name>
Для просмотра всех портов сети:
openstack port list --network <network name>
Для создания в сети порта:
openstack port create \
--network <network name> \
<port name>
Для подключения порта к облачному серверу:
openstack server add port [-h] <server> <port name>
Для удаления порта:
openstack port delete <port name>
Назначение публичного IP-адреса
Для выхода облачного сервера в интернет используется публичный IP-адрес.
Для просмотра списка всех выделенных публичных IP-адресов:
openstack floating ip list
Для выделения публичного IP-адреса:
openstack floating ip create external-network
Для назначения серверу публичного IP-адреса, созданного ранее в панели управления:
openstack server add floating ip <server> <IP address>
В параметре <server>
может быть использовано имя или ID сервера.
Проброс порта
Проброс порта (port forwarding) используется для перенаправления трафика с одного порта на другой порт. Например, можно настроить проброс порта на публичном IP-адресе на любой порт в приватной подсети — в таком случае доступ к приватному порту будет организован без заказа дополнительного IP.
Публичный IP-адрес перед началом настройки проброса портов не должен быть ассоциирован с каким-либо интерфейсом, балансировщиком и так далее.
Просмотрите список портов:
openstack port list
В ответе будет выведена информация о портах:
+--------------------------------------+------+-------------------+------------------------------------------------+--------+
| ID | Name | MAC Address | Fixed IP Addresses | Status |
+--------------------------------------+------+-------------------+------------------------------------------------+--------+
| 1001b155-ec53-2121-ac40-d101b187a7f3 | | fa:17:3e:d7:21:60 | ip_address='123.123.123.123', subnet_id='16ab21| N/A |
| | | | be-e7fe-1ae1-a109-0426e4a6e0a7' | |
| 97e01013-3d77-41bc-b0d7-7b74daa7aa2a | | fa:17:3e:d3:9e:c1 | ip_address='192.168.0.1', subnet_id='305ab695- | ACTIVE |
| | | | dafe-4a38-bc9d-acf0080f21cf' | |
| ed010217-9f78-4002-8703-2112da3fef1f | | fa:17:3e:08:21:7d | ip_address='192.168.0.2', subnet_id='305ab695- | ACTIVE |
| | | | dafe-4a38-bc9d-acf0080f21cf' | |
+--------------------------------------+------+-------------------+------------------------------------------------+--------+
Для настройки port forwarding введите:
openstack floating ip port forwarding create \
--internal-ip-address <internal ip address> \
--port <port> \
--internal-protocol-port <internal protocol> \
--external-protocol-port <external protocol> \
--protocol <protocol> \
<floating ip>
Где:
<internal ip address>
— IP-адрес порта в приватной подсети, на который будет осуществляться проброс;<port>
— имя или ID этого порта;<internal protocol>
— номер протокола порта в приватной подсети;<external protocol>
— номер протокола порта публичного IP-адреса, порт которого пробрасывается;<protocol>
— протокол TCP или UDP;<floating ip>
— публичный IP-адрес, порт которого пробрасывается.
Пример:
openstack floating ip port forwarding create --internal-ip-address 192.168.0.2 --port ed010217-9f78-4002-8703-2112da3fef1f --internal-protocol-port 80 --external-protocol-port 80 --protocol tcp 123.123.123.123
Для просмотра созданных port forwarding для публичного IP-адреса:
openstack floating ip port forwarding list <floating ip>
Вывод будет выглядеть примерно так:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| description | None |
| external_port | 80 |
| id | 1daa7717-1ce6-4573-95cb-ddb94a39b844 |
| internal_ip_address | 192.168.0.2 |
| internal_port | 80 |
| internal_port_id | ed010217-9f78-4002-8703-2112da3fef1f |
| name | None |
| project_id | |
| protocol | tcp |
+---------------------+--------------------------------------+