SFC (Service Function Chaining)

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

Предварительные условия: наличие лицензии на SFC и Amano в качестве SDN.

1. Создание сети для транспорта:

  1. Перейти в режим администратора.

  2. Сеть -> Сети.

  3. Нажать Создать сеть.

  4. В поле Включена безопасность порта указать false. Подсеть создавать не нужно, сеть используется только на уровне L2 для транспорта NSH-кадров.

Управление сервисными цепочками

2. Создание сервисной цепочки и сервисной функции:

../../../_images/sfc.png
  1. Перейти в раздел NFV -> SFC.

  2. Нажать Создать SFC.

  3. Выбрать созданную сеть, ввести имя (например, «for ingress»), затем нажать ОК.

  4. Нажать на гиперссылку в имени созданной SFC (попадаем в реестр SFC Функции).

  5. Нажать Создать Сервисную Функцию.

  6. Ввести имя и описание, выбрать ВМ с предварительно настроенным сетевым ПО (например, firewall).

../../../_images/sfc_func.png

В этом же реестре можно:

  • Добавить новые функции в цепочку (например, IDS, анализатор трафика).

  • Редактировать функцию (изменить имя, описание, позицию в цепочке).

  • Удалить функцию (удаляются только интерфейсы, подключённые к ВМ, сама ВМ не удаляется). Одна ВМ может реализовывать разные сетевые функции и встречаться в цепочке несколько раз. При удалении функции, следующая за ней функция в цепочке занимает ее место.

3. Создание правила группы безопасности для отправки трафика в цепочку:

  1. Сеть -> Группы безопасности.

  2. Выбрать группу или создать новую, нажать на ссылку в её названии.

  3. Нажать Создать правило.

  4. В поле Тип правила выбрать Сервисная цепочка.

  5. В выпадающем списке внизу выбрать созданную сервисную цепочку.

../../../_images/sfc_rule.png

Пример для входящего HTTP-трафика: правило типа «Сервисная цепочка» на входящий трафик с префиксом удаленного IP 0.0.0.0/0 для порта 80 по протоколу TCP.

Подготовка ВМ для использования в сервисной цепочке

Существуют предварительно подготовленные ВМ с включенной опцией «Подготовлена для SFC» (sfc-ready). При использовании таких машин, все что пользователю нужно сделать - это запустить ПО для обработки трафика на интерфейсе brN (например br0, br1 и т.д.) внутри данной ВМ.

Чтобы создать такую ВМ пользователю необходимо:

  1. Зайди в Вычисления -> Инстансы.

  2. Нажать Создать инстанс.

  3. Убедиться что во время заполнения параметров инстанса был выбран вариант загрузки, при котором в загружаемой ОС будут установлены службы udev или devd.

  4. На самой последней стадии открыть скрытый раздел Дополнительные опциии.

  5. В открывшемся списке заполняемых полей найти параметр Использовать инстанс для SFC и включить его.

../../../_images/sfc_ready.png

Если используется ВМ без такой опции, пользователю необходимо (после создания сервисной функции на основе данной ВМ):

  1. Подключиться к ВМ (например по SSH под Linux).

  2. В системе появятся 2 новых интерфейса в состоянии UP без IP-адреса (например, eno3 и eno4).

  3. Необходимо объединить эти интерфейсы в бридж и запустить ПО для анализа/фильтрации трафика.

Пример команд (от пользователя root):

brctl addbr br0
brctl addif br0 eno3
brctl addif br0 eno4
ifconfig eno3 up
ifconfig eno4 up
ifconfig br0 up
tcpdump -i br0