Open vSwitch. Цикл статей

Citrix Distributed vSwitch controller. Концепция SDN

Статья опубликована в журнале «Системный Администратор»

Open vSwitch — все статьи

В цикле статей посвященных Open vSwitch (OVS) были рассмотрены основные возможности программного коммутатора, а так же некоторые особенности его настройки и функционирования. Так как данная тематика достаточно обширна, была освещена лишь работа с «отдельно стоящим» коммутатором. Но сегодня когда виртуальные инфраструктуры могут насчитывать десятки и сотни узлов, а соответственно, и коммутаторов, необходим механизм, позволяющий гибко управлять множеством хостов и учитывать динамичность виртуальной среды, избавляющий от ручной настройки каждого узла. Таким средством является протокол OpenFlow, о котором и пойдет речь в данной статье.

Читать дальше

Open vSwitch часть №12. Заключение

Open vSwitch — все статьи

В современных платформах виртуализации, включая и настольные версии, сетевая подсистема играет одну из ключевых ролей. Уже практически невозможно представить виртуальную среду где все ВМ находятся в одной плоской сети. Поэтому достойная реализация гибкой сетевой модели является одним из жирных плюсов платформы. Острота данного аспекта подтверждает наличие на рынке Cisco Nexus 1000v. Появление OVS в открытых платформах виртуализации, во многом разрешает данный вопрос. Конечно, реализация некоторых вещей а в частности средств конфигурирования оставляет желать лучшего. А отсутствие хоть какой-то документации кроме скудных  man-страниц, не позволяет задействовать имеющийся функционал по максимуму. Но, проект динамично развивается и мне думается, что многие сложности вскоре уйдут в историю. В любом случае, OVS уже используется в некоторых платформах по умолчанию и кажется что это только начало. Поэтому взглянуть на него стоит уже сейчас. Open vSwitch

Читать дальше

Open vSwitch часть №11. GRE туннелирование

Open vSwitch — все статьи

Туннель GRE (Generic Routing Encapsulation) — это наиболее простой способ соединить несколько  изолированных коммутаторов находящихся на разных узлах. Данное решение  позволяет строить распределенную приватную сеть, «размазанную» по множеству физических узлов.  Open vSwitch
В самом простом виде это можно увидеть на рисунке ниже.
OpenVSwitch_Pic_1GRE туннелирование работает на канальном уровне и не имеет не каких средств шифрования трафика а так же проблематична работа через NAT.
Итак, у нас есть два физических узла, на каждом из которых будут по два коммутатора. Один из них будет обычным, с физическим интерфейсом, а другой будет изолированным.

Читать дальше

Open vSwitch часть №10. Зеркалирование портов

Open vSwitch — все статьи

Open vSwitch позволяет, направлять копию потока трафика из одного или нескольких интерфейсов в другой. Так же, возможно перенаправление трафика из всего VLAN’a в конкретный порт или на оборот.  Может зеркалироваться только входящий, исходящий или оба типа. Понадобиться это может, например, для прослушки трафика в целях информационной безопасности или диагностики.

Выполним зеркалирование трафика из интерфейса vnet2 принадлежащего одной из ВМ в специально созданный для прослушивания порт mirror0 с типом internal.

Читать дальше

Open vSwitch часть №9. Сопоставление портов и ВМ

Open vSwitch — все статьи

В случае когда ВМ много, понять какая из них в какой порт включена затруднительно. Как я уже говорил выше, утилит способных показать текущее сопоставление не существует. Приходится выдумывать свое. Open vSwitch
Каждый автоматически создаваемый порт, представлен в хост-системе как обычный сетевой интерфейс.  Все их можно увидеть в выводе ifconfig. Там же фигурирует и MAC-адрес тот же, что и у интерфейса ВМ.
Смотрим последние три октета MAC-адресса интересующего нас интерфейса ВМ любым удобным способом, например средствами virt-manager’a

Читать дальше

Open vSwitch часть №8. Интерфейс управления хост-ситемой

Open vSwitch — все статьи

Не исключена ситуация когда в хост-ситеме нет свободного физического интерфейса для управления гипервизором. Например если все сетевые контроллеры включены в bond-интерфейс или задействованы в разных Open vSwitch коммутаторах.
В таком случае, нужно создать постоянный виртуальный интерфейс\порт в коммутаторе и назначить ему статический IP-адрес и использовать для управления хостом.

Читать дальше

Open vSwitch часть №7. Агрегируем физические интерфейсы

Open vSwitch — все статьи

Для повышения пропускной способности и уровня отказоустойчивости в Open vSwitch коммутатор могут быть включены несколько физических интерфейсов с задействованной на них агрегацией по протоколу LACP (Link Aggregation Control Protocol). Выполняется это на канальном уровне, прозрачно для высокоуровневых протоколов, путем создания специального связующего-интерфейса (Bonding).
Создадим bond-интерфейс:

Читать дальше

Open vSwitch часть №6. Организовываем виртуальные сети (VLAN)

Open vSwitch — все статьи

Это пожалуй одна из самых актуальных функций коммутатора, как физического, так и виртуального. Я думаю, что объяснять их функциональное предназначение будет лишним, поэтому просто покажу как это реализуется в Open vSwitch.
В скудной документации это предложено делать следующим способом:
Берется конкретный, уже существующий порт и ему, путем внесения изменений в базу, присваивается тег (tag) с номером желаемого VLAN-а (VLAN ID)

Читать дальше

Open vSwitch часть №5. Тонкости конфигурирования

Open vSwitch — все статьи

Конфигурация всех Open vSwitch коммутаторов, портов, настройки поддерживаемых протоколов хранятся в собственной базе данных OVS. Утилита ovs-vsctl предоставляет интерфейс для внесения изменений в эту БД. Для некоторых типичных задач существуют вполне понятные, говорящие сами за себя параметры, подобные представленным в предыдущем разделе. Но как только появится необходимость в каком либо продвинутом функционале, например, создании GRE-туннеля, необходимо будет на прямую править записи БД(в формате JSON) с помощью специального синтаксиса. В общем случае синтаксис для внесения изменений в БД выглядит так:

Читать дальше