Перейти к содержанию

Настройки → Дополнения#

В разделе Дополнения есть возможность подключения/отключения и настройки дополнений.

SDN-controller – дополнение для настройки оверлейных сетей#

Виртуальный коммутатор значительно упрощает администрирование в виртуальных сетей – все настройки и данные статистики ВМ остаются связанными с ВМ, даже если она мигрирует с одного сервера общего пула на другой.

1
При использовании контроллера программно-определяемых сетей (SDN-controller) поддерживающего протокол OpenFlow, виртуальные коммутаторы обеспечивают дополнительную функциональность, например, списки управления доступом (Access Control List, ACL).

Примечание

Контроллер программно-определяемых сетей не входит в стандартный состав дистрибутива Numa vServer.

Определение сетевого стека#

  1. Для определения сетевого стека, настроенного в настоящее время, выполните:

    xe host-param-get param-name=software-version param-key=network_backend uuid=<host_uuid>
    

  2. Если после выполнения команды вернулась строка "bridge", переключите стек на Open vSwitch и выполните перезагрузку:

    xe-switch-network-backend openvswitch
    
    reboot
    

  3. Для возвращения к стеку Linux-моста выполните следующую команду и перезагрузите сервер:

    xe-switch-network-backend bridge
    
    reboot
    

Стек Linux-моста не поддерживает протокол OpenFlow, межсерверные частные сети (Cross Server Private Networks) и не может управляться посредством контроллера программно-определяемых сетей.

Настройка iptables#

Далее выполните настройку iptables на всех хостах Numa vServer.

  1. Откройте через текстовый редактор nano файл для хранения правил iptables:

    nano /etc/iptables/iptables
    

  2. Добавьте строки:

    :xapi-INPUT - [0:0]
    :xapi_nbd_input_chain - [0:0]
    :xapi_nbd_output_chain - [0:0]
    -A INPUT -j xapi-INPUT
    -A INPUT -p tcp -m tcp --dport 10809 -j xapi_nbd_input_chain
    -A INPUT -p gre -j ACCEPT
    -A OUTPUT -p tcp -m tcp --sport 10809 -j xapi_nbd_output_chain
    -A vServer-Firewall-0-INPUT -p tcp -m tcp --dport 21064 -j ACCEPT
    -A vServer-Firewall-0-INPUT -p udp -m multiport --dports 5404,5405 -j ACCEPT
    -A xapi-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 6653 -j ACCEPT
    -A xapi-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 6640 -j ACCEPT
    -A xapi-INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 6640 -j ACCEPT
    -A xapi-INPUT -j RETURN
    -A xapi_nbd_input_chain -j REJECT --reject-with icmp-port-unreachable
    -A xapi_nbd_output_chain -j REJECT --reject-with icmp-port-unreachable
    
    В итоге /etc/iptables/iptables приобретет вид:
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    :vServer-Firewall-0-INPUT - [0:0]
    :xapi-INPUT - [0:0]
    :xapi_nbd_input_chain - [0:0]
    :xapi_nbd_output_chain - [0:0]
    -A INPUT -j xapi-INPUT
    -A INPUT -p tcp -m tcp --dport 10809 -j xapi_nbd_input_chain
    -A INPUT -p gre -j ACCEPT
    -A INPUT -j vServer-Firewall-0-INPUT
    -A FORWARD -j vServer-Firewall-0-INPUT
    -A OUTPUT -p tcp -m tcp --sport 10809 -j xapi_nbd_output_chain
    -A vServer-Firewall-0-INPUT -i lo -j ACCEPT
    -A vServer-Firewall-0-INPUT -p icmp --icmp-type any -j ACCEPT
    # DHCP for host internal networks (CA-6996)
    -A vServer-Firewall-0-INPUT -p udp -m udp --dport 67 --in-interface xenapi -j ACCEPT
    -A vServer-Firewall-0-INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    # Linux HA hearbeat
    -A vServer-Firewall-0-INPUT -m conntrack --ctstate NEW -m udp -p udp --dport 694 -j ACCEPT
    -A vServer-Firewall-0-INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A vServer-Firewall-0-INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport 80 -j ACCEPT
    -A vServer-Firewall-0-INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport 443 -j ACCEPT
    -A vServer-Firewall-0-INPUT -p tcp -m tcp --dport 21064 -j ACCEPT
    -A vServer-Firewall-0-INPUT -p udp -m multiport --dports 5404,5405 -j ACCEPT
    -A vServer-Firewall-0-INPUT -j REJECT --reject-with icmp-host-prohibited
    -A xapi-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 6653 -j ACCEPT
    -A xapi-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 6640 -j ACCEPT
    -A xapi-INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 6640 -j ACCEPT
    -A xapi-INPUT -j RETURN
    -A xapi_nbd_input_chain -j REJECT --reject-with icmp-port-unreachable
    -A xapi_nbd_output_chain -j REJECT --reject-with icmp-port-unreachable
    COMMIT
    

  3. Сохраните файл сочетанием клавиш Ctrl+O.

  4. Подтвердите сохранение изменений нажатием Enter .
  5. Выйдите из редактора nano сочетанием клавиш Ctrl+X.
  6. Перезагрузите МЭ.
    systemctl restart iptables
    

Настройка TLS#

Для настройки TLS-соединения необходимо сгенерировать:

  1. Для каждого хоста виртуализации:
    1. Корневой сертификат (sdn-controller-ca.pem)
    2. Серверный сертификат (server-cert.pem)
    3. Серверный ключ (server-key.pem)
  2. Для ВМ Numa Collider:
    1. Корневой сертификат (ca-cert.pem)
    2. Сертификат клиента (client-cert.pem)
    3. Ключ клиента (client-key.pem)

Настройки в CLI Numa Collider, приведенные ниже, необходимо провести для каждого хоста виртуализации.

  1. Скопируйте sdn-controller-ca.pem, server-cert.pem и server-key.pem в /etc/stunnel/certs/.

  2. Войдите в CLI Numa vServer как суперпользователь root (ssh или локальная консоль).

  3. Перейдите в каталог /etc/stunnel/certs/ и создайте файл xapi-stunnel-ca-bundle.pem. Для этого выполните следующие команды:

    find /etc/stunnel/certs -name '*.pem' | xargs cat > /etc/stunnel/xapi-stunnel-ca-bundle.pem.tmp
    
    mv /etc/stunnel/xapi-stunnel-ca-bundle.pem.tmp /etc/stunnel/xapi-stunnel-ca-bundle.pem
    

  4. Находясь в /etc/stunnel/certs/, создайте файл xapi-ssl.pem и скопируйте его в /etc/xcp.

    cat server-key.pem > xapi-ssl.pem
    
    cat server-cert.pem >> xapi-ssl.pem
    
    mv ./xapi-ssl.pem /etc/xcp/
    

  5. Включите SSL в Open vSwitch.

    ovs-vsctl set-ssl /etc/stunnel/certs/server-key.pem /etc/stunnel/certs/server-cert.pem /etc/stunnel/certs/sdn-controller-ca.pem
    

  6. Перезапустите xe-toolstack и загрузите модуль vport_vxlan.

    xe-toolstack-restart
    
    modprobe vport_vxlan
    

  7. Войдите в CLI ВМ Numa Collider (ncvm), используя логин и пароль ncadmin.

  8. Создайте каталог хранения сертификатов и ключа.

    mkdir /home/ncadmin/certs
    

  9. Скопируйте ca-cert.pem, client-cert.pem, client-key.pem в /home/ncadmin/certs/.

  10. В Numa Collider подключите настроенные серверы (Добавить → Сервер).

Настройка дополнения настройки оверлейных сетей sdn-controller#

В Numa Collider модуль sdn-controller является дополнением для настройки оверлейных сетей. Для настройки данного дополнения:

  1. Перейдите в меню Настройки → Дополнения. Найдите модуль sdn-controller.

Внимание

1
При попытке инкапсулировать в GRE пакет размером в 1500 байт, реальный размер пакета увеличится до 1524 байт (за счет добавления дополнительных заголовков GRE), а в виду установленного маршрутизатором DF-бита  (do not fragment), фрагментация пакета невозможна. Решить эту проблему можно принудительным снятием бита DF, тем самым побуждая маршрутизатор совершить фрагментацию пакета, но этот способ не рекомендуется, поскольку увеличивает количество передаваемых пакетов и количество служебной информации (overhead), тем самым снижая максимально доступную пропускную способность и увеличивая нагрузку на оборудование, также сама процедура фрагментации  требует дополнительного буфера памяти для хранения фрагментов, а также вычислительных мощностей для совершения сборки и фрагментирования пакетов. При наличии маршрутизаторов на пути следования пакетов рекомендуется уменьшить MTU до 1476, либо увеличить MTU на всех интерфейсах и каналах между маршрутизаторами формирующими GRE (использование Jumbo-кадров c  MTU от 1500 до 9216 байт).
  1. В блоке "cert-dir" укажите путь к сертификатам в ncvm (/home/ncadmin/certs).
  2. Сохраните конфигурацию.
  3. Для загрузки дополнения переведите его в положение (включено).

Настройка дополнения sdn-controller

Настройка дополнения sdn-controller

Создание оверлейной сети#

Далее рассматривается создание оверлейной сети с инкапсуляцией GRE. Сеть с VxLAN создается аналогично (на шаге 7 из выпадающего списка выбирается инкапсуляция VxLAN). Настройка IPTABLES, OPENVSWITCH и SDN-контроллера уже выполнена с учетом использования как GRE, так и VxLAN инкапсуляции.

Для создания сети:

  1. Перейдите в меню Добавить → Сеть.
  2. Выберите основной пул (1).
  3. Включите режим "Частная сеть" (2).
  4. Выберите сетевой интерфейс (3).
  5. Задайте имя для новой сети (4).
  6. При необходимости задайте MTU (5).
  7. Выберите тип инкапсуляции (6).
  8. Нажмите "Добавить пул" и выберите все пулы и их физические сетевые интерфейсы, для которых создается сеть (7).
  9. Нажмите "Создать сеть" (8).

Создание сети GRE (часть 1)

Создание сети GRE (часть 1)

Создание сети GRE (часть 2)

Создание сети GRE (часть 2)

Создание сети GRE (часть 3)

Создание сети GRE (часть 3)

По завершении процесса создания сети откроется вкладка «Сеть» мастер-хоста пула, который был назначен на шаге 2 создания сети.

Вкладка «Сеть» мастер-хоста, содержащая созданную сеть (gre)

Вкладка «Сеть» мастер-хоста, содержащая созданную сеть (gre)

Созданный сетевой интерфейс (tunnel0)

Созданный сетевой интерфейс (tunnel0)

Проверка работы созданной сети#

Проверить работу созданного туннеля возможно следующим способом:

  1. Создайте ВМ на хостах Numa vServer, содержащих tunnel0.
  2. Переведите VIF ВМ в сеть созданного ранее туннеля.
  3. Включите ВМ.
  4. Повторите шаги с 1, 2, 3 для других ВМ.
  5. В консоли ВМ выполните команду: ping <ip_vm> где <ip_vm> - IP другой виртуальной машины с VIF в сети созданного туннельного подключения.

Вкладка «Сеть» виртуальной машины

Вкладка «Сеть» виртуальной машины

Перевод VIF ВМ в сеть туннеля (gre)

Перевод VIF ВМ в сеть туннеля (gre)

VIF ВМ в сеть туннеля (gre)

VIF ВМ в сеть туннеля (gre)

Внимание!

В случае если в новой сети нет DHCP-сервера, сетевым интерфейсам ВМ необходимо установить статические IP-адреса.

IP виртуальной машины №1

IP виртуальной машины №1

IP виртуальной машины №2

IP виртуальной машины №2

Ping ВМ №2 из ВМ №1

Ping ВМ №2 из ВМ №1

Transport-email - дополнение для настройки отправки email-сообщений#

  1. В блоке from (1) укажите данные от чьего имени будут отправляться сообщения.
  2. В блоке transport (2) укажите адрес сервера отправки сообщений.
  3. Сохраните конфигурацию (3).
  4. Дополнительно до загрузки дополнения можно протестировать настройки. Для этого введите в поле (4) адрес получателя и нажмите Test plugin. В результате на указанную электронную почту должно быть доставлено сообщение.
  5. Для загрузки дополнения переведите его в положение (включено) (5).

Настройка дополнения для отправки email-сообщений

Настройка дополнения для отправки email-сообщений

Usage-report - дополнение отправки отчетов#

  1. В блоке emails (1) укажите всех получателей отчетов.
  2. Укажите периодичность отправки отчетов (2):
    • ежедневная отправка - daily;
    • еженедельная - weekly;
    • ежемесячная - monthly.
  3. Нажмите Сохранить конфигурацию (3).
  4. Для загрузки дополнения переведите его в положение (включено) (4).

Дополнение для отправки отчетов

Дополнение для отправки отчетов

Backup-reports - дополнение отправки отчетов о резервном копировании#

  1. Загрузите дополнение backup-reports, переключив его в положение (включено).
  2. Настройте и загрузите дополнение transport-email для возможности отправки отчетов через email-сообщения.
  3. Для тестирования дополнения:
    • скопируйте идентификатор выполненного задания резервного копирования, перейдя в Резервное копирование → вкладка Обзор → раздел Журнал → статус задания (1) → идентификатор задания (2) (см. рисунок);
    • в разделе Test data введите в поле runId идентификатор и нажмите Test plugin;
    • в результате на электронную почту, указанную при создании задания резервного копирования, должно быть доставлено сообщение.

Идентификатор выполненной задачи

Идентификатор выполненной задачи

Балансировка нагрузки#

Максимальная

Для работы балансировки нагрузки (load-balancer) необходимо наличие двух и более серверов. Активация дополнения производится через меню Настройки → Дополнения → load-balancer. Для настройки дополнения создайте правило:

  1. Убедитесь, что дополнение load-balancer включено .
  2. Раскройте настройки, нажав .
  3. В разделе Plan выберите Заполните информацию (необязательно).
  4. Нажмите Добавить.

    Балансировка нагрузки
    Балансировка нагрузки

  5. Заполните форму Plan:

    • name: введите название создаваемой политики;
    • mode: выберите режим (подробное описание режимов в Режимы балансировки нагрузки);
    • pools: выберите пул(-ы), в котором(-ых) будет применена политика;
    • execute host: выберите серверы, на которые не будет распространяться правило;
    • anti-affinity tags: подробнее про правило Anti-affinity написано в VM anti-affinity (Правило Anti-affinity).
  6. Установите критические пороги использования ресурсов (опционально):
    • максимальная нагрузка ЦП (%);
    • максимальный объем ОЗУ (МБ).
  7. Добавьте еще одно правило (опционально).
  8. Нажмите Сохранить конфигурацию.

Политика балансировки нагрузки

Политика балансировки нагрузки

При достижении сервером из выбранного пула установленных критических значений нагрузки ЦП и (или) объема ОЗУ, Numa Collider начнет распределять ВМ из нагруженного сервера между другими доступными серверами для достижения максимальной производительности серверов.

Режимы балансировки нагрузки#

При создании правила балансировки нагрузки на выбор представлено 3 режима: Performance, Density и Simple.

Режим Performance обеспечивает достижение максимального уровня производительности для ВМ, распределяя ВМ по всем доступным серверам. Например, если на одном сервере развернуты несколько ВМ и в какой-то момент времени одна из ВМ начинает использовать большие ресурсы для своей работы, то другие ВМ перемещаются на другой менее нагруженный сервер во избежание снижения их производительности.

Режим Density наоборот размещает ВМ на минимальном количестве серверов для снижения энергопотребления за счет отключения не нагруженных серверов.

Режим Simple не производит балансировку нагрузки на основе производительности, он необходим для функционирования пользовательских правил размещения, таких как VM anti-affinity (Правило Anti-affinity).

VM anti-affinity (Правило Anti-affinity)#

Правило Anti-Affinity предотвращает запуск ВМ с одинаковыми пользовательскими метками на одном сервере и распределяет их между серверами, повышая производительность и отказоустойчивость системы. Применение данного правила полезно при разворачивании высоконагруженных систем на нескольких ВМ во избежание их одновременного функционирования с использованием ресурсов только одного сервера или если на нескольких ВМ развернута база данных с репликацией.

Перед настройкой правила Anti-affinity задайте пользовательские метки ВМ следующими способами:

  • В Инфраструктура → Виртуальные машины раскройте сведения о ВМ , добавьте метки, нажав ➕.
  • Перейдите в ВМ во вкладку "Общее", под информацией о ресурсах нажмите ➕, введите наименование метки или выберите из существующих.

Добавление пользовательских меток для ВМ. Вариант 1

Добавление пользовательских меток для ВМ. Вариант 1

Добавление пользовательских меток для ВМ. Вариант 2

Добавление пользовательских меток для ВМ. Вариант 2

Для включения правила Anti-affinity перейдите в меню Настройки → Дополнения → load balancer, далее:

  1. Убедитесь, что включено дополнение load-balancer .
  2. Раскройте настройки, нажав .
  3. Выберите Заполните информацию (необязательно).
  4. Нажмите Добавить.
  5. Заполните форму Plan:
    • name: введите название создаваемой политики;
    • mode: выберите "Simple mode";
    • pools: выберите пул(-ы), в котором(-ых) будет применена политика;
    • anti-affinity tags: выберите необходимые метки ВМ.
  6. При необходимости укажите игнорируемые метки в поле Ignored VM tags.
  7. Нажмите Сохранить конфигурацию.

Пример создания политики Anti-affinity

Пример создания политики Anti-affinity

При запуске ВМ с одинаковыми метками, выбранных при настройке правила Anti-affinity, часть ВМ мигрирует на другой сервер.

Auth-ldap - дополнение для LDAP аутентификации пользователей Numa Collider через LDAP#

Настройка доступа пользователей выполняется в следующей последовательности:

  1. Раскройте дополнение auth-ldap.
  2. Введите URI, указав IP-адрес или FQDN LDAP-сервера (например, ldap//10.10.42.1).
  3. Укажите базовую ветку каталога для поиска пользователя (например, DC=office,DC=example,DC=ru).
  4. Если для доступа к каталогу необходимо выполнить авторизацию, то раскройте форму Credentials. Для этого установите рядом с полем Заполните информацию (не обязательно). После введите имя и пароль пользователя, имеющего права доступа к каталогу.
  5. Укажите фильтр пользователей, по которому они буду добавляться в NC (например, (sAMAccountName={{name}})). Для MS AD также доступны другие фильтры, например:
    • (sAMAccountName={{name}})
    • (sAMAccountName={{name}}@<domain>)
    • (userPrincipalName={{name}})
    • (&(sAMAccountName={{name}})(memberOf=<group DN>)) – если нужно указать принадлежность к группе.
  6. Укажите атрибут для сопоставления пользователя LDAP с пользователем Numa Collider (например, dn). Атрибут должен быть уникальным.
  7. Нажмите Сохранить конфигурацию.
  8. Включите плагин .
  9. Выполните тестовый запрос, указав имя и пароль пользователя.

    Примечание

    Пользователи начнут отображаться во вкладке "Пользователи" после их первого входа в Numa Collider.

    Настройка подключения к MS AD
    Настройка подключения к MS AD (часть 1)

    Настройка подключения к MS AD
    Настройка подключения к MS AD (часть 2)

  10. После настройки плагина перейдите в меню «Пользователи» и убедитесь, что тестовый пользователь добавлен.

  11. Перейдите в меню «Контроль доступа».
  12. Выберите добавленного пользователя.
  13. Выберите объекты, доступные пользователю.
  14. Выберите роль пользователя и нажмите Создать .
  15. Выйдите из учетной записи Администратора Numa Collider.
  16. Авторизуйтесь под учетной записью пользователя AD.
  17. Убедитесь в наличии доступных объектов.

Настройка синхронизации групп выполняется в следующей последовательности:

  1. Раскройте форму Synchronize groups. Для этого установите рядом с полем Заполните информацию (не обязательно).
  2. Укажите базовую ветку каталога для поиска групп (например, CN=Users,DC=office,DC=example,DC=ru).
  3. Укажите фильтр (например, (ObjectClass=group)).
  4. Укажите атрибут для сопоставления группы LDAP с группой Collider (например, dn). Атрибут должен быть уникальным.
  5. Укажите атрибут, используемый для определения названия группы в Collider, (например, cn).
  6. Укажите атрибут, используемый для поиска членов группы (например, member). Значения должны ссылаться на идентификаторы пользователей (см. атрибут user ID).
  7. Укажите пользовательский атрибут, используемый для сопоставления членов группы с пользователями, (например, dn).
  8. Нажмите Сохранить конфигурацию.
  9. Выполните синхронизацию во вкладке Группы.

Примечание

Numa Collider не отображает количество пользователей групп из каталога LDAP.

Настройка синхронизации групп из MS AD (пример)

Настройка синхронизации групп из MS AD (пример)