Приватные подсети и сети
Приватные сети — это L2-сегменты сети. В каждой приватной сети должна быть создана хотя бы одна приватная подсеть. Приватные подсети — это диапазоны приватных IP-адресов на уровне L3, ограниченные размером CIDR. Если устройства находятся в разных приватных подсетях одной приватной сети, они могут общаться напрямую.
Внутри разных приватных сетей могут быть подсети с одинаковыми префиксами (масками), но внутри одной сети префиксы подсетей должны быть разными. По умолчанию приватные сети и подсети не имеют доступа в интернет и из интернета, в них нельзя использовать публичную адресацию.
Чтобы приватные подсети из разных сетей могли общаться, их нужно подключить к одному облачному роутеру. Для организации сетевой связности на уровне L3 между устройствами в разных пулах (в том числе, в разных проектах и аккаунтах) или между разными услугами нужно подключить приватные подсети к глобальному роутеру. Адреса подсетей, подключенных к одному роутеру (облачному или глобальному), не должны пересекаться.
По умолчанию приватные сети и принадлежащие им подсети можно использовать только внутри одного проекта и одного пула. Можно настроить общий доступ к приватной сети в разных проектах внутри одного аккаунта.
Внутри приватных подсетей есть ограничения на объем трафика — пропускная способность. Ее можно посмотреть в таблице Пропускная способность.
Работать с приватными подсетями и сетями можно в панели управления, с помощью OpenStack CLI или Terraform.
Автоматические настройки приватной подсети
В приватных подсетях указываются настройки по умолчанию: шлюз по умолчанию и DNS-серверы. Если вы добавляете устройство в существующую подсеть, настройки применяются к нему автоматически. Если вы изменили настройки подсети, в которой уже есть устройства, для применения настроек нужно обновить сетевые настройки на всех устройствах в подсети.
Шлюз по умолчанию
При создании приватной подсети для шлюза по умолчанию резервируется первый свободный IP-адрес. Например, для подсети с CIDR 192.168.0.0/24
под шлюз будет зарезервирован 192.168.0.1
. Шлюз по умолчанию можно изменить при создании подсети или изменить после создания.
DNS-серверы
При создании приватной подсети на устройствах в подсети автоматически прописываются DNS-серверы Selectel. DNS-серверы можно изменить при создании подсети или изменить после создания.
Статические маршруты
По умолчанию в подсетях не указаны статические маршруты. Для приватных подсетей можно настроить статические маршруты.
Создать приватную сеть
Панель управления
OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Нажмите Создать сеть.
- Выберите пул, в котором будет создана приватная сеть.
- Введите имя сети.
- Введите CIDR подсети — диапазон IP-адресов, доступных в подсети.
- Опционально: чтобы включить DHCP, отметьте чекбокс Включить DHCP.
- Опционально: чтобы изменить IP-адрес шлюза по умолчанию, нажмите . Введите значение. Нажмите .
- Опционально: чтобы изменить DNS-серверы, нажмите . Введите от одного до трех значений. Нажмите .
- Нажмите Создать.
-
Создайте приватную сеть:
openstack network create <network_name>
Укажите
<network_name>
— имя приватной сети.
Добавить подсеть в приватную сеть
Панель управления
OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку сети → вкладка Подсети.
- Нажмите Добавить подсеть.
- Введите CIDR подсети — диапазон IP-адресов, доступных в подсети.
- Опционально: чтобы включить DHCP, отметьте чекбокс Включить DHCP.
- Опционально: чтобы изменить IP-адрес шлюза по умолчанию, нажмите . Введите значение. Нажмите .
- Нажмите Добавить подсеть.
-
Создайте подсеть в приватной сети:
openstack subnet create \
--subnet-range <cidr> \
[--dhcp | --no-dhcp] \
--gateway <gateway> \
--network <network> \
<subnet_name>Укажите:
<cidr>
— CIDR приватной подсети, например192.168.0.0/24
;- опцию DHCP:
--dhcp
— включить DHCP;--no-dhcp
— отключить DHCP;
<gateway>
— IP-адрес шлюза по умолчанию, например192.168.0.2
;<network>
— ID или имя приватной сети, можно посмотреть с помощью командыopenstack network list
<subnet_name>
— имя приватной подсети.
Настроить доступ к приватной сети в разных проектах
По умолчанию приватную сеть можно использовать только внутри одного проекта и одного пула. Вы можете настроить общий доступ к приватной сети в разных проектах внутри одного аккаунта. Сеть так же будет доступна только внутри одного пула.
У приватной сети появится тег Кросспроектная
. Управлять сетью можно будет только в проекте, в котором находится подсеть.
Если необходимо объединить приватные сети из разных пулов (в том числе, в разных проектах и аккаунтах), подключите приватную сеть к глобальному роутеру.
Панель управления
- В панели управления перейдите в раздел Облачная платформа.
- Скопируйте ID проекта-получателя, с которым нужно поделиться сетью. Для этого откройте меню проектов (название текущего проекта) и в строке нужного проекта нажмите .
- Убедитесь, что вы находитесь в проекте, в котором находится сеть. Для этого откройте меню проектов (название текущего проекта) и выберите исходный проект.
- Перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку сети → вкладка Проекты.
- Нажмите Добавить проект.
- Вставьте ID проекта-получателя, который вы скопировали на шаге 2.
- Нажмите .
Включить DHCP в приватной подсети
Протокол DHCP можно использовать для автоматической настройки сети на устройствах. Он позволяет автоматически получать для устройств в приватной подсети IP-адреса, маску подсети, шлюз по умолчанию, адреса DNS-серверов, статические маршруты. Устройства в подсети с включенным DHCP будут автоматически запрашивать настройки у DHCP-сервера: при включении сетевого интерфейса или истечении срока аренды адреса (по умолчанию — 24 часа).
При включении DHCP в подсети будут созданы два порта для DHCP-серверов: для основного и резервного. Для портов будут зарезервированы два первых свободных IP-адреса в подсети. Например, для подсети с CIDR 192.168.0.0/24
будут зарезервированы 192.168.0.2
и 192.168.0.3
DHCP в приватной подсети можно включить при создании приватной сети, добавлении подсети в сеть или для существующей приватной подсети.
Панель управления
OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку приватной сети → вкладка Подсети.
- В строке приватной подсети включите тумблер DHCP.
-
Включите DHCP в приватной подсети:
openstack subnet set --dhcp <subnet>
Укажите
<subnet>
— ID или имя приватной подсети, можно посмотреть с помощью командыopenstack subnet list
Отключить DHCP в приватной подсети
При отключении DHCP в приватной подсети освобождаются два IP-адреса, которые были зарезервированы для DHCP-серверов.
Панель управления
OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку приватной сети → вкладка Подсети.
- В строке приватной подсети вы ключите тумблер DHCP.
-
Отключите DHCP в приватной подсети:
openstack subnet set --no-dhcp <subnet>
Укажите
<subnet>
— ID или имя приватной подсети, можно посмотреть с помощью командыopenstack subnet list
Изменить шлюз по умолчанию в приватной подсети
При создании приватной подсети для шлюза по умолчанию резервируется первый свободный IP-адрес. Например, для подсети с CIDR 192.168.0.0/24
будет зарезервирован 192.168.0.1
Шлюз по умолчанию можно изменить при создании приватной сети, добавлении подсети в сеть или для существующей приватной подсети.
Панель управления
OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку приватной сети → вкладка Подсети.
- В меню приватной подсети выберите Изменить шлюз.
- Введите новое значение IP-адреса шлюза по умолчанию.
- Нажмите .
- Примените изменения. Для этого обновите сетевые настройки на устройствах в подсети.
-
Удалите существующий пул выделенных IP-адресов в приватной подсети и добавьте новый пул без IP-адреса шлюза по умолчанию:
openstack subnet set \
--no-allocation-pool \
--allocation-pool start=<first_pool_ip_address>,end=<last_pool_ip_address> \
<subnet>Укажите:
<first_pool_ip_address>
— первый IP-адрес нового пула;<last_pool_ip_address>
— последний IP-адрес нового пула. Можно добавить несколько пулов — каждый пул добавляется с помощью опции--allocation-pool start=<first_pool_ip_address>,end=<last_pool_ip_address>
<subnet>
— ID или имя приватной подсети, можно посмотреть с помощью командыopenstack subnet list
-
Укажите новый IP-адрес шлюза по умолчанию:
openstack subnet set --gateway <gateway> <subnet>
Укажите
<gateway>
— IP-адрес шлюза по умолчанию, например192.168.0.5
.Пример изменения IP-адреса шлюза на
192.168.0.5
:openstack subnet set \
--no-allocation-pool \
--allocation-pool start=192.168.0.1,end=192.168.0.4 \
--allocation-pool start=192.168.0.6,end=192.168.0.254 \
--gateway 192.168.0.5 \
1c6e70ea-db7e-4d2f-bf76-4cab8f0cf52a -
Примените изменения. Для этого обновите сетевые настройки на устройствах в подсети.
Изменить DNS-серверы в приватной подсети
При создании приватной подсети на устройствах в подсети автоматически прописываются рекурсивные DNS-серверы Selectel. DNS-серверы можно изменить при создании приватной подсети и добавлении подсети в сеть или для существующей приватной подсети.
Для изменения DNS-серверов в подсети глобального роутера создайте тикет.
Панель управления
OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку приватной сети → вкладка Подсети.
- В строке подсети в столбце DNS-серверы нажмите .
- Введите от одного до трех значений.
- Нажмите .
- Примените изменения. Для этого обновите сетевые настройки на устройствах в подсети.
-
Если вам нужно полностью заменить список DNS-серверов, удалите IP-адреса указанных DNS-серверов и добавьте новые:
openstack subnet set \
--no-dns-nameservers \
--dns-nameserver <dns_server> \
<subnet>Укажите:
<dns_server>
— IP-адрес DNS-сервера. Можно добавить несколько DNS-серверов — каждый добавляется с помощью опции--dns-nameserver <dns_server>
;<subnet>
— ID или имя приватной подсети, можно посмотреть с помощью командыopenstack subnet list
Пример изменения DNS-серверов по умолчанию на
192.0.2.3
и192.0.2.4
:openstack subnet set \
--no-dns-nameservers \
--dns-nameserver 192.0.2.3 \
--dns-nameserver 192.0.2.4 \
<subnet> -
Если вам нужно дополнить список DNS-серверов, добавьте IP-адреса новых DNS-серверов:
openstack subnet set \
--dns-nameserver <dns_server> \
<subnet>Укажите:
<dns_server>
— IP-адрес DNS-сервера. Можно добавить несколько DNS-серверов — каждый добавляется с помощью опции--dns-nameserver <dns_server>
;<subnet>
— ID или имя приватной подсети, можно посмотреть с помощью командыopenstack subnet list
-
Примените изменения. Для этого обновите сетевые настройки на устройствах в подсети.
Подключить подсеть к облачному роутеру
Чтобы приватные подсети могли общаться между собой, их нужно подключить к одному облачному роутеру. Подсети должны иметь разные CIDR.
Чтобы настроить доступ в интернет и из интернета для устройств в приватных подсетях с помощью облачного роутера, используйте инструкцию Настроить доступ в интернет и из интернета.
Панель управления
OpenStack CLI
-
В панели управления перейдите в раздел Облачная платформа → Сеть.
-
Откройте вкладку Роутеры.
-
Откройте карточку роутера.
-
Нажмите Добавить подсеть.
-
Выберите приватную подсеть или подсеть глобального роутера.
-
Введите IP-адрес роутера. IP-адрес облачного роутера должен совпадать с шлюзом по умолчанию приватной подсети. Посмотреть шлюз по умолчанию в приватной подсети можно на вкладке Приватные сети → карточка сети → вкладка Подсети → строка подсети → столбец Шлюз.
Если вы подключаете подсеть глобального роутера, IP-адрес облачного роутера должен совпадать со шлюзом по умолчанию подсети глобального роутера и отличаться от IP-адреса глобального роутера, IP-адресов устройств в сети и служебных адресов
.253
и.254
. -
Нажмите Добавить подсеть.
-
Подключите подсеть к облачному роутеру:
openstack router add subnet <router> <subnet>
Укажите:
<router>
— ID или имя облачного роутера, можно посмотреть с помощью командыopenstack router list
;<subnet>
— ID или имя приватной подсети, можно посмотреть с помощью командыopenstack subnet list
Отключить подсеть от облачного роутера
Панель управления
OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Роутеры.
- Откройте карточку роутера.
- В меню приватной подсети выберите Удалить порт.
- Нажмите Удалить.
-
Отключите подсеть от облачного роутера:
openstack router remove subnet <router> <subnet>
Укажите:
<router>
— ID или имя облачного роутера, можно посмотреть с помощью командыopenstack router list
;<subnet>
— ID или имя подсети, можно посмотреть с помощью командыopenstack subnet list
Подключить приватную сеть к глобальному роутеру
При подключении приватной сети к глобальному роутеру к нему будут подключены все подсети, принадлежащие этой сети. Все подсети будут общаться на L3-уровне.
У приватной сети появится тег Глобальный роутер
. Управлять сетью и подсетями глобального роутера можно будет только в панели управления в разделе Сетевые сервисы → Глобальный роутер Selectel.
В подсети глобального роутера автоматически создадутся три служебных порта для сетевого оборудования.
Панель управления
-
Убедитесь, что подсети в приватной сети соответствуют условиям:
- принадлежат диапазону приватных адресов по RFC 1918:
10.0.0.0/8
,172.16.0.0/12
или192.168.0.0/16
; - имеют размер не меньше /29, так как три адреса будут заняты сетевым оборудованием Selectel;
- не пересекаются с другими сетями и подсетями, которые подключены к этому глобальному роутеру (IP-адреса в подсетях не должны совпадать);
- если к сети глобального роутера будут подключены ноды кластера Managed Kubernetes, подсети не пересекаются с диапазонами
10.250.0.0/16
,10.10.0.0/16
и10.96.0.0/12
. Эти подсети участвуют во внутренней адресации Managed Kubernetes, их использование может привести к конфликтам в сети глобального роутера.
- принадлежат диапазону приватных адресов по RFC 1918:
-
В панели управления перейдите в раздел Облачная платформа → Сеть.
-
Откройте вкладку Приватные сети.
-
В меню сети выберите Подключить к глобально му роутеру.
-
Выберите существующий глобальный роутер или создайте новый.
-
Для каждой подсети введите IP-адрес шлюза, который будет назначен на глобальный роутер. Не назначайте этот адрес на устройства, чтобы не нарушить работу сети.
-
Опционально: измените служебные IP-адреса, которые назначаются автоматически для резервирования глобального роутера.
-
Нажмите Подключить. Не закрывайте окно, пока сеть не будет подключена.
Отключить приватную сеть от глобального роутера
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- В меню сети выберите Отключить от глобального роутера.
- Введите имя сет и для подтверждения отключения.
- Нажмите Отключить. Не закрывайте окно, пока сеть не будет отключена.
Удалить приватную подсеть
Перед удалением приватной подсети нужно удалить все порты в ней.
Панель управления
OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку приватной сети → вкладка Порты.
- Удалите все порты подсети. Для этого в строке каждого порта нажмите .
- Откройте вкладку Подсети.
- В меню приватной подсети выберите Удалить подсеть.
- Нажмите Удалить.
-
Удалите все порты в приватной подсети:
openstack port delete <port>
Укажите
<port>
— ID или имя порта, можно посмотреть с помощью командыopenstack port list
-
Удалите приватную подсеть:
openstack subnet delete <subnet>
Укажите
<subnet>
— ID или имя приватной подсети, можно посмотреть с помощью командыopenstack subnet list
Удалить приватную сеть
Перед удалением приватной сети нужно удалить все порты в приватных подсетях, принадлежащих сети.
Панель управления
OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку приватной сети → вкладка Порты.
- Удалите все порты в подсетях, принадлежащих сети. Для этого в строке каждого порта нажмите .
- В меню приватной сети выберите Удалить сеть.
- Нажмите Удалить.
-
Удалите все порты в в подсетях, принадлежащих сети:
openstack port delete <port>
Укажите
<port>
— ID или имя порта, можно посмотреть с помощью командыopenstack port list
-
Удалите приватную сеть:
openstack network delete <network>
Укажите
<network>
— ID или имя приватной сети, можно посмотреть с помощью командыopenstack network list