SDN
В Платформе доступны SDN:
- Sprut.
- Neutron.
Предоставьте проекту доступ к SDN Sprut или к SDN Neutron, или к обоим SDN, один из которых будет выбран как SDN по умолчанию.
- В Портале администратора перейдите в раздел Управление проектами → Проекты.
- Нажмите на имя проекта.
- На вкладке Информация нажмите на значок ••• справа от пункта Доступные SDN.
- Укажите SDN, который будет использован по умолчанию.
- Чтобы разрешить использование второго SDN, установите переключатель Разрешить проекту использовать второй SDN в активное положение.
- Нажмите кнопку Подтвердить.
Сервисы SDN Sprut:
- Sprut — обеспечивает основные сетевые функции Платформы.
- Sdn-proxy — направляет запросы в выбранный SDN (Neutron или Sprut), обеспечивает функционал выбора SDN для проектов.
- Private-dns — обеспечивает управление доменами, поддоменами и связанными с ними ресурсными записями в рамках Платформы.
SDN Sprut — набор служб, расположенных на управляющих, сетевых и вычислительных узлах, а также контейнеров:
-
Sprut:
-
Службы:
-
Управляющий узел:
sprut-dns-agent.service.sprut-monitoring-agent.service.sprut-neutron-server.service.sprut-nfv-apps-rescheduler.service.sprut-nfv-apps-scheduler.service.sprut-sdn-flow-builder.service.sprut-sdn-topology-builder.service.etcd-sprut-node.service.httpd-sprut.service.mariadb-sprut.service.
-
Сетевой узел (Если в Платформе есть выделенные сетевые узлы):
sprut-monitoring-agent.service.sprut-nfv-agent.service.sprut-nfv-collector.servicesprut-ovsapi.service.sprut-runsvdir-start.service.sprut-sdn-flow-agent.service.sprut-sdn-hw-agent.service.
-
Вычислительный узел:
sprut-monitoring-agent.service.sprut-nfv-agent.service.sprut-nfv-collector.service.sprut-ovsapi.service.sprut-runsvdir-start.service.sprut-sdn-flow-agent.service.sprut-sdn-hw-agent.service.
-
-
Контейнеры:
sprut-housekeep-agent.sprut-nfv-vm-api.sprut-spawner-agent.
-
-
Sdn-proxy:
-
Службы:
mariadb-sdnprojectsapi.service.
-
Контейнеры:
sdn-proxy-api.sdn-proxy-sdn-projects-api.
-
-
Private-dns:
-
Службы.
-
Контейнеры:
ghosts-private-dns-api.ghosts-private-dns-dns-agent.ghosts-private-dns-orchestrator-api.
-
Функции Sprut:
- Инициализирует узлы, через которые проходит трафик между ВМ.
- Добавляет каждому узлу метку сети Клоза.
- Создает на узлах логические коммутаторы и порты в них.
- Создает логические соединения портов.
Соединения строятся по принципу сети Клоза. Данные от начального до конечного узла проходят через транзитный узел. Если в Платформе есть выделенные сетевые узлы, транзитным является сетевой узел, иначе — вычислительный узел.
Транзит трафика между ВМ, работающими в разных сетях, проходит через sprut-router. Sprut-router располагается на транзитном узле и представлен сетевым пространством имен sprut-router-*.
Чтобы получить имя сетевого пространства имен sprut-router, выполните команду на транзитном узле:
# ip netns | grep sprut-router
Чтобы посмотреть логическую структуру Sprut, на управляющем узле выполните команды:
// Узел сети# curl http://<ENDPOINT_IP>:2115/v1/nodes/// Метка сети Клоза# curl http://<ENDPOINT_IP>:2115/v1/tags/// Коммутатор узла# curl http://<ENDPOINT_IP>:2115/v1/switches/// Порт коммутатора# curl http://<ENDPOINT_IP>:2115/v1/ports/// Однонаправленное соединение между портами# curl http://<ENDPOINT_IP>:2115/v1/phys-links/
Здесь <ENDPOINT_IP> — значение переменной openstack_private_endpoint_ip из файла minimal.yml.
При возникновении ошибок смотрите логи с включенным debug-режимом.
Чтобы включить debug-режим, в файле /etc/sprut/sprut.conf задайте параметру debug значение True:
# cat /etc/sprut/sprut.conf[DEFAULT]verbose = Falsedebug = True
Чтобы вывести узел в обслуживание, выполните команду:
# sprut-deploy maintenance -e "http://<ENDPOINT_IP>:2115" -f <NODE_NAME>
Здесь:
<ENDPOINT_IP>— значение переменнойopenstack_private_endpoint_ipиз файлаminimal.yml.<NODE_NAME>— имя узла.
Чтобы ввести узел в работу, выполните команду:
# sprut-deploy operational -e "http://<ENDPOINT_IP>:2115" -f <NODE_NAME>
Здесь:
<ENDPOINT_IP>— значение переменнойopenstack_private_endpoint_ipиз файлаminimal.yml.<NODE_NAME>— имя узла.