Управлять сетями

Создать приватную сеть

Внутри приватной сети отсутствует ограничение на объем трафика — это позволяет передавать любой объем данных между вашими сервисами без дополнительных платежей.

Количество используемых приватных сетей не ограничено, пропускная способность — 1 Гбит/с.

Приватная сеть работает только внутри одного проекта и одного пула, недоступна для других проектов аккаунта пользователя и других аккаунтов.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Сеть.
  2. Откройте вкладку Приватные сети ⟶ нажмите Создать сеть.
  3. Выберите пул сети.
  4. Введите имя сети.
  5. Укажите CIDR подсети — диапазон IP-адресов, доступных в подсети.
  6. Опционально: отметьте чекбокс Включить DHCP.
  7. Опционально: измените шлюз.
  8. Опционально: добавьте еще подсети, нажав Добавить подсеть.
  9. Нажмите Создать.

Добавить облачный сервер в приватную сеть

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Серверы.
  2. Откройте страницу сервера вкладка Порты.
  3. Нажмите Добавить порт.
  4. Выберите приватную подсеть.
  5. Укажите IP-адрес.
  6. Нажмите Добавить порт.

Создать кросспроектную сеть

Приватную или публичную сеть одного проекта можно сделать доступной для другого проекта (только внутри одного пула) — создать кросспроектную сеть.

  1. В панели управления нажмите на имя текущего проекта и откройте список всех проектов.
  2. Скопируйте ID целевого проекта.
  3. Перейдите в раздел Облачная платформа ⟶ Сеть в текущем проекте.
  4. Откройте вкладку Приватные сети или Публичные подсети.
  5. Откройте карточку приватной сети, которую необходимо сделать доступной в другом проекте вкладка Проекты.
  6. Нажмите Добавить проект и введите скопированный ID целевого проекта.

Если вам необходимо объединить облачные серверы из разных пулов (в том числе разных проектах и аккаунтах), используйте L3 VPN сети.

Создать облачный роутер

Облачный роутер позволяет маршрутизировать трафик между приватными сетями.

Роутер можно использовать для настройки доступа в интернет из приватной сети или для доступа к устройству в приватной подсети из интернета по плавающему IP.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Сеть.
  2. Откройте вкладку Роутеры ⟶ нажмите Создать роутер.
  3. Выберите пул роутера.
  4. Введите имя.
  5. Опционально: отметьте чекбокс Подключить роутер к внешней сети — для роутера будет выделен внешний IP-адрес.
  6. Нажмите Создать.

Подключить облачный роутер к внешней сети

Если облачный роутер подключен к внешней сети, он выполняет функцию 1:1 NAT для доступа из приватной сети в интернет через внешний адрес роутера или для доступа к устройству в приватной подсети из интернета по плавающему IP.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Сеть.
  2. Откройте вкладку Роутеры.
  3. В меню (⋮) роутера выберите Подключить к внешней сети — для роутера будет выделен внешний IP-адрес.

Создать плавающий IP-адрес

Плавающий IP-адрес — это статический публичный IP-адрес, который можно быстро переключать между облачными серверами в приватных подсетях.

Если вы создаете первый плавающий IP-адрес в пуле, автоматически создастся сеть nat и роутер router-nat.

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Сеть.
  2. Откройте вкладку Плавающие IP ⟶ нажмите Создать IP-адрес.
  3. Выберите пул IP-адреса.
  4. Укажите количество адресов.
  5. Нажмите Создать.

Подключить приватную сеть к облачному роутеру

  1. Создайте роутер.
  2. Откройте карточку роутера нажмите Добавить подсеть.
  3. Выберите приватную подсеть.
  4. Укажите IP-адрес роутера.
  5. Нажмите Добавить подсеть.

Подключить облачный сервер к интернету

Доступ в интернет осуществляется через публичную подсеть или плавающий IP-адрес.

Пропускная способность сети через интернет и локально — 1 Гбит/с.

Через публичную подсеть

  1. В панели управления перейдите в раздел Облачная платформа ⟶ Сеть.
  2. Откройте вкладку Публичные подсети ⟶ нажмите Создать подсеть.
  3. Выберите пул подсети.
  4. Выберите размер подсети.
  5. Нажмите Создать.
  6. Перейдите в раздел Облачная платформа ⟶ Серверы.
  7. Откройте страницу сервера вкладка Порты.
  8. Нажмите Добавить порт.
  9. Выберите публичную подсеть.
  10. Укажите IP-адрес.
  11. Нажмите Добавить порт.

Через плавающий IP

  1. Создайте плавающий IP-адрес.
  2. Создайте облачный роутер с подключением к внешней сети.
  3. В панели управления перейдите в раздел Облачная платформа ⟶ Серверы.
  4. Откройте страницу сервера вкладка Порты.
  5. Нажмите Добавить порт.
  6. Выберите приватную подсеть.
  7. Укажите IP-адрес.
  8. Нажмите Добавить порт.
  9. Подключите к порту плавающий адрес — в столбце Плавающий IP нажмите Подключить и выберите плавающий IP.

Облачный сервер в подсети L3 VPN

Если у вас есть облачный сервер, который находится в сети L3 VPN, то вы можете настроить доступ в интернет через облачный роутер. Облачный сервер будет связан с другими устройствами в приватной сети L3 VPN.

  1. Создайте облачный роутер. При создании отметьте чекбокс Подключить роутер к внешней сети.
  2. Подключите к облачному роутеру созданную L3 VPN подсеть. Для этого в панели управления откройте карточку роутера нажмите Добавить подсеть ⟶ выберите созданную ранее L3 VPN подсеть укажите IP-адрес роутера, отличный от IP-адреса L3 VPN роутера и служебных адресов .253 и .254 нажмите Добавить подсеть.
  3. Подключите к облачному серверу плавающий IP-адрес. Перейдите в раздел Облачная платформа ⟶ Серверы ⟶ откройте страницу сервера вкладка Порты ⟶ в строке с подсетью L3 VPN в столбце Плавающий IP нажмите Подключить.
  4. Укажите порт роутера шлюзом по умолчанию. В строке с подсетью L3 VPN в меню (⋮) выберите Сделать шлюзом по умолчанию.
  5. Пропишите маршруты на облачном сервере до всех подсетей L3 VPN.

Управление сетями с помощью 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

Для выделения плавающего адреса:

openstack floating ip create external-network

Для назначения серверу плавающего адреса, созданного ранее в панели управления:

openstack server add floating ip <server> <IP address>

В параметре <server> может быть использовано имя или ID сервера.

Проброс порта

Проброс порта (port forwarding) используется для перенаправления трафика с одного порта на другой порт. Например, можно настроить проброс порта на плавающем IP-адресе на любой порт в приватной подсети — в таком случае доступ к приватному порту будет организован без заказа дополнительного IP.

Примечание: плавающий IP-адрес перед началом настройки проброса портов не должен быть ассоциирован с каким-либо интерфейсом, балансировщиком и так далее.

Обратите внимание! Доступно только для версий OpenStack Train и выше.

Просмотрите список портов:

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> — имя или UUID этого порта;
  • <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                                  |
+---------------------+--------------------------------------+