Управлять сетями
Создать приватную сеть
Внутри приватной сети отсутствует ограничение на объем трафика — это позволяет передавать любой объем данных между вашими сервисами.
Количество используемых приватных сетей не ограничено. Посмотрите значения пропускной способности.
Приватная сеть работает только внутри одного проекта и одного пула, недоступна для других проектов аккаунта пользователя и других аккаунтов.
- Панель управления
- OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Нажмите Создать сеть.
- Выберите пул, в котором будет создана приватная сеть.
- Введите имя сети.
- Введите CIDR подсети — диапазон IP-адресов, доступных в подсети.
- Опционально: чтобы включить DHCP, отметьте чекбокс Включить DHCP.
- Опционально: чтобы изменить IP-адрес шлюза по умолчанию, нажмите . Введите значение. Нажмите .
- Опционально: чтобы изменить DNS-серверы, нажмите . Введите от одного до трех значений. Подсеть должна иметь доступ к DNS-cерверам. Нажмите .
- Опционально: чтобы добавить дополнительные подсети, нажмите Добавить подсеть.
- Нажмите Создать.
Создайте приватную сеть:
openstack network create <network_name>
Укажите
<network_name>
— имя приватной сети.
Добавить подсеть в приватную сеть
- Панель управления
- OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку сети → вкладку Подсети.
- Нажмите Добавить подсеть.
- Введите CIDR подсети — диапазон IP-адресов, доступных в подсети.
- Опционально: измените IP-адрес шлюза по умолчанию.
- Опционально: чтобы включить DHCP, отметьте чекбокс Включить DHCP.
- Опционально: измените DNS-серверы. Введите от одного до трех значений. Подсеть должна иметь доступ к DNS-cерверам. Нажмите .
- Нажмите Добавить подсеть.
Создайте подсеть в приватной сети:
openstack subnet create \
--subnet-range <cidr> \
[--dhcp | --no-dhcp] \
--gateway <gateway> \
--dns-nameserver <dns_server> \
--network <network> \
<subnet_name>Укажите:
<cidr>
— CIDR приватной подсети, например192.168.0.0/24
;- опция DHCP:
--dhcp
— включить DHCP;--no-dhcp
— отключить DHCP;
<gateway>
— IP-адрес шлюза по умолчанию, например192.168.0.2
;- опционально:
<dns_server>
— IP-адрес DNS-сервера. Можно добавить несколько DNS-серверов — каждый добавляется с помощью опции--dns-nameserver <dns_server>
. Подсеть должна иметь доступ к DNS-cерверам; <network>
— ID или имя приватной сети, можно посмотреть с помощьюopenstack network list
;<subnet_name>
— имя приватной подсети.
Добавить облачный сервер в подсеть
- Панель управления
- OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Серверы.
- Откройте страницу сервера → вкладка Порты.
- Нажмите Добавить порт.
- Выберите подсеть.
- Укажите IP-адрес.
- Нажмите Добавить порт.
Создайте порт в сети:
openstack port create --network <network> <port_name>
Укажите:
<network>
— ID или имя сети, можно посмотреть с помощьюopenstack network list
<port_name>
— имя порта.
Добавьте порт к облачному серверу:
openstack server add port <server> <port>
Укажите:
<server>
— ID или имя облачного сервера, можно посмотреть с помощьюopenstack server list
<port>
— ID или имя порта, можно посмотреть с помощьюopenstack port list
Создать кросспроектную сеть
Приватную или публичную сеть одного проекта можно сделать доступной для другого проекта (только внутри одного пула) — создать кросспроектную сеть.
- В панели управления нажмите на имя текущего проекта и откройте список всех проектов.
- Скопируйте ID целевого проекта.
- Перейдите в раздел Облачная платформа → Сеть в текущем проекте.
- Откройте вкладку Приватные сети или Публичные подсети.
- Откройте карточку приватной сети, которую необходимо сделать доступной в другом проекте → вкладка Проекты.
- Нажмите Добавить проект и введите скопированный ID целевого проекта.
Если вам необходимо объединить облачные серверы из разных пулов (в том числе разных проектах и аккаунтах), используйте глобальный роутер Selectel (ранее — сети L3 VPN).
Включить DHCP
Протокол DHCP можно использовать для автоматической настройки сети на облачных серверах. Он позволяет автоматически получать IP-адреса и другие параметры (маску подсети, шлюз, адреса DNS-серверов) для устройств в приватной подсети.
DHCP можно включить при создании приватной сети, добавлении подсети в существующую сеть или для существующей приватной сети.
При включении DHCP в подсети создаются два порта для основного и резервного DHCP-серверов, для них резервируется два IP-адреса. Облачный сервер будет автоматически запрашивать настройки у DHCP-сервера: при включении сетевого интерфейса или истечении срока аренды адреса (по умолчанию 24 часа). DHCP-сервер будет выдавать IP-адрес, зарезервированный для порта сервера.
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку сети.
- В строке нужной подсети включите тумблер DHCP.
- Перейдите в раздел Серверы.
- Откройте страницу сервера → вкладка Порты.
- В блоке Настройка портов выберите Вручную в файле конфигурации сети на сервере.
- Настройте DHCP в конфигурационном файле облачного сервера.
Изменить DNS-серверы
Изменить DNS-серверы можно при создании приватной подсети и публичной подсети, добавлении приватной подсети в сеть или для существующей приватной и публичной подсети.
- Панель управления
- OpenStack CLI
В панели управления перейдите в раздел Облачная платформа → Сеть.
Откройте вкладку в зависимости от того, в какой подсети нужно изменить DNS-серверы:
- для приватной — Приватные сети;
- для публичной — Публичные подсети.
Откройте карточку приватной сети или публичной подсети → вкладка Подсети.
В строке подсети в столбце DNS-серверы нажмите .
Введите от одного до трех значений. Подсеть должна иметь доступ к DNS-cерверам.
Нажмите .
Если вам нужно полностью заменить список DNS-серверов, удалите IP-адреса указанных DNS-серверов и добавьте новые:
openstack subnet set \
--no-dns-nameservers \
--dns-nameserver <dns_server> \
<subnet>Укажите:
<dns_server>
— IP-адрес DNS-сервера. Можно добавить несколько DNS-серверов — каждый добавляется с помощью опции--dns-nameserver <dns_server>
. Подсеть должна иметь доступ к DNS-cерверам;<subnet>
— ID или имя приватной или публичной подсети, можно посмотреть с помощьюopenstack subnet list
Пример изменения DNS-серверов по умолчанию на
10.0.0.101
и10.0.0.102
:openstack subnet set \
--no-dns-nameservers \
--dns-nameserver 10.0.0.101 \
--dns-nameserver 10.0.0.102 \
<subnet>Если вам нужно дополнить список DNS-серверов, добавьте IP-адреса новых DNS-серверов:
openstack subnet set \
--dns-nameserver <dns_server> \
<subnet>Укажите:
<dns_server>
— IP-адрес DNS-сервера. Можно добавить несколько DNS-серверов — каждый добавляется с помощью опции--dns-nameserver <dns_server>
. Подсеть должна иметь доступ к DNS-cерверам;<subnet>
— ID или имя приватной или публичной подсети, можно посмотреть с помощьюopenstack subnet list
Создать облачный роутер
Облачный роутер позволяет маршрутизировать трафик между приватными сетями.
Роутер можно использовать для настройки доступа в интернет из приватной сети или для доступа к устройству в приватной подсети из интернета по публичному IP-адресу.
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Роутеры → нажмите Создать роутер.
- Выберите пул роутера.
- Введите имя.
- Опционально: отметьте чекбокс Подключить роутер к внешней сети — для роутера будет выделен внешний IP-адрес.
- Нажмите Создать.
Подключить облачный роутер к внешней сети
Если облачный роутер подключен к внешней сети, он выполняет функцию 1:1 NAT для доступа из приватной сети в интернет через внешний адрес роутера или для доступа к устройству в приватной подсети из интернета по публичному IP-адресу.
Посмотрите значения пропускной способности.
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Роутеры.
- В меню (⋮) роутера выберите Подключить к внешней сети — для роутера будет выделен внешний IP-адрес.
Создать публичный IP-адрес
Публичный IP-адрес — это статический публичный IP-адрес, который можно быстро переключать между облачными серверами в приватных подсетях.
- Панель управления
- OpenStack CLI
Если вы создаете первый публичный IP-адрес в пуле внутри проекта, автоматически создастся приватная сеть nat и облачный роутер router-nat.
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Публичные IP-адреса → нажмите Создать IP-адрес.
- Выберите пул IP-адреса.
- Укажите количество адресов.
- Нажмите Создать.
Создайте публичный IP-адрес:
openstack floating ip create external-network
Создать публичную подсеть
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Публичные подсети.
- Нажмите Создать подсеть.
- Выберите пул, в котором будет создана публичная подсеть.
- Выберите размер подсети.
- Опционально: чтобы изменить DNS-серверы, нажмите . Введите от одного до трех значений. Подсеть должна иметь доступ к DNS-cерверам. Нажмите .
- Нажмите Создать.
Подключить приватную сеть к облачному роутеру
- Создайте роутер.
- Откройте карточку роутера → нажмите Добавить подсеть.
- Выберите приватную подсеть.
- Укажите 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-адрес нажмите Подключить.
- Укажите порт роутера шлюзом по умолчанию. В строке с подсетью глобального роутера в меню (⋮) выберите Сделать шлюзом по умолчанию.
- Пропишите маршруты на облачном сервере до всех подсетей глобального роутера.
Пробросить порт
Проброс порта (port forwarding) можно использовать для перенаправления трафика с одного порта на другой порт. Например, можно настроить проброс порта на публичном IP-адресе на любой порт в приватной подсети — в этом случае доступ к приватному порту будет организован без создания дополнительного публичного IP-адреса.
Публичный IP-адрес перед началом настройки проброса портов не должен быть ассоциирован с сервером, балансировщиком нагрузки и другими устройствами.
- OpenStack CLI
Настройте проброс портов:
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> \
<public_ip_address>Укажите:
<internal_ip_address>
— IP-адрес порта в приватной подсети, на который будет осуществляться проброс;<port>
— ID или имя порта, можно посмотреть с помощьюopenstack port list
;<internal_protocol>
— номер протокола порта в приватной подсети;<external_protocol>
— номер протокола порта публичного IP-адреса, порт которого пробрасывается;<protocol>
— протокол:tcp
илиudp
;<public_ip_address>
— публичный 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 \
192.0.2.7