Работа с сетями

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

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

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

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

Объединить серверы в приватную сеть

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

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

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

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

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

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

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

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

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

Роутер можно использовать для настройки доступа в интернет из приватной сети или для доступа к устройству в приватной подсети из интернета по плавающему 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                                  |
+---------------------+--------------------------------------+