Настроить статические маршруты для приватной подсети
Чтобы обеспечить сетевую связность между облачными серверами в разных подсетях, не объединенных роутером, можно настроить статические маршруты.
Статические маршруты можно настроить только из приватной подсети. В качестве исходных подсетей нельзя выбрать публичные подсети, подсети кросспроектных сетей в дочерних проектах, подсети глобального роутера.
Создать статический маршрут
Статический маршрут можно создать только в приватной сети, в которой есть хотя бы одна подсеть.
Для статического маршрута нельзя задать метрику (вес или стоимость маршрута), поэтому невозможно создать два и более маршрута с одинаковыми исходной подсетью и подсетью назначения.
- Панель управления
- OpenStack CLI
- В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте вкладку Приватные сети.
- Откройте карточку приватной сети → вкладка Статические маршруты.
- Нажмите Создать маршрут.
- Выберите исходную подсеть — любую подсеть, созданную в исходной приватной сети.
- Введите CIDR подсети назначения — это подсеть, в которую будет направляться трафик. Можно ввести любую приватную, публичную подсеть, а также подсеть глобального роутера.
- Введите шлюз (next-hop) — IP-адрес, через который все облачные серверы из исходной подсети будут направлять трафик в подсеть назначения. Можно ввести любой адрес исходной подсети.
- Нажмите Добавить.
- После создания статического маршрута обязательно настройте их на серверах подсети.
Создайте статический маршрут:
openstack subnet set /
--host-route destination=<destination_subnet_CIDR>,gateway=<next_hop_IP> /
<subnet_ID>Укажите:
<destination_subnet_CIDR>
— CIDR подсети назначения, в которую будет направляться трафик;<next_hop_IP>
— шлюз (next-hop) — IP-адрес, через который все облачные серверы из исходной подсети будут направлять трафик в подсеть назначения;<subnet_ID>
— ID или имя исходной подсети, можно посмотреть с помощьюopenstack subnet list
Проверьте, что в параметре
host_routes
в выводе команды добавлен статический маршрут — подсеть назначения (destination
) и шлюз (gateway
):openstack subnet show <subnet_ID>
Если вы ранее создавали статический маршрут, хотите его удалить и сразу прописать новый, то используйте параметр
--no-host-route
:openstack subnet set /
--no-host-route /
--host-route destination=<destination_subnet_CIDR>,gateway=<next_hop_IP> /
<subnet_ID>После создания статического маршрута обязательно настройте их на серверах подсети.
Настроить статические маршруты на серверах
После создания статического маршрута нужно применить его на всех облачных серверах в исходной подсети.
- Посмотрите, включен или выключен DHCP исходной подсети. В панели управления перейдите в раздел Облачная платформа → Сеть.
- Откройте карточку исходной сети → вкладка Подсети → тумблер DHCP.
- Настройте статические маршруты в зависимости от того, включен или выключен DHCP в исходной подсети:
- DHCP включен
- DHCP выключен
Если в подсети включен DHCP, то статические маршруты автоматически пропишутся на серверах в течение 24 часов после создания маршрутов.
Если необходимо применить новые настройки быстрее, используйте один из вариантов:
последовательно включите и выключите облачный сервер;
выполните на облачном сервере команду
dhclient eth0
Укажите
eth0
— имя интерфейса.Команда перезапросит информацию от DHCP-сервера — добавятся новые маршруты, при этом старые не удалятся;
выполните команду
INTERFACE=eth0; ip link set $INTERFACE down && ip link set $INTERFACE up && dhclient $INTERFACE
Укажите
eth0
— имя интерфейса.Команда выключит и включит порт и перезапросит информацию у DHCP-сервера. В этом случае старые маршруты удалятся, а новые добавятся.
Включите DHCP — статические маршруты настроятся на облачных серверах автоматически.
Вы можете оставить DHCP выключенным — в этом случае настройка зависит от того, установлен ли агент cloud-init или cloudbase-init в образах, из которых созданы облачные серверы исходной подсети.
Эти агенты предустановлены во всех готовых образах, представленных в Облачной платформе, а также в самостоятельно загруженных совместимых Linux-образах.
Если агент cloud-init или cloudbase-init установлен
Настройка зависит от порядка создания статических маршрутов:
если сначала были настроены статические маршруты для подсети, а затем в ней были созданы облачные серверы — в конфигурационных файлах серверов автоматически пропишутся все настройки статических маршрутов;
если сначала были созданы облачные серверы, а затем были настроены статические маршруты — настройка зависит от параметра Применять изменения в блоке Настройка портов. Посмотрите значение параметра в панели управления в разделе Облачная платформа → Серверы → страница облачного сервера:
- если указан параметр При перезагрузке сервера — последовательно выключите и включите каждый облачный сервер в исходной подсети;
- если Вручную в файле конфигурации сети на сервере — вручную пропишите статические маршруты в файле конфигурации сети на каждом облачном сервере.
Если агент cloud-init или cloudbase-init не установлен
Мы не рекомендуем настраивать статические маршруты через панель управления, так как настройки не будут автоматически применяться к облачным серверам в подсети. Пропишите статические маршруты в конфигурационном файле каждого сервера.
Если в дальнейшем будет включен DHCP, то все настройки, прописанные вручную, могут перестать работать. Это происходит потому, что DHCP применяет ко всем серверам собственные настройки, которые могут противоречить настройкам, прописанным в файле конфигурации.