Как виртуализировать сеть: часть последняя, построение наложенной сети на Tungsten Fabric
В предыдущей публикации, посвященной виртуализации, мы рассмотрели два основных практических подхода к построению наложенных виртуальных сетей: запуск overlay с ToR-а и запуск overlay с хоста. Теперь же рассмотрим построение overlay-сети с хоста на конкретном примере: опенсорсной SDN-платформы OpenContrail, известной также как Tungsten Fabric.
У каждого физической машины имеется vRouter – виртуальный маршрутизатор, получающий информацию о том, какие сети к нему подключены и каким клиентам они принадлежат, и похожий в этом плане на provider edge-маршрутизатор. Для каждого клиента им поддерживается изолированная таблица маршрутизации. Собственно именно vRouter осуществляет overlay-туннелирование. Каждая виртуальная машина, находящаяся на гипервизоре, подключается к vRouter-у этой машины через TAP (Terminal Access Point) - виртуальный интерфейс в ядре linux, с помощью которого реализуется сетевое взаимодействие. Когда за vRouter-ом находится несколько сетей, для каждой из них генерируется виртуальный интерфейс, к которому приписывается IP-адрес, становящийся адресом шлюза по умолчанию. Все сети одного клиента помещаются в одну VRF -таблицу, а разных клиентов, соответственно, в разные. Взаимодействие vRouter-ов и, следовательно, находящихся за ними виртуальными машинами, обеспечивается работой SDN-контроллера, через который проходит информация о маршрутах. Все коммуникации, осуществляющиеся внутри overlay-сети построенной по такому принципу можно разделить на две группы: коммуникации между виртуальными машинами, расположенными на разных физических машинах и коммуникации внутри одной физической машины. В последнем случае пакеты информации не попадают в физическую сеть, а маршрутизируются внутри vRouter-а.
Overlay-сеть может изменяться в реальном времени. Задачи по поддержанию конфигурации и контроля таблиц ложатся на плечи центрального контроллера, а задачи по коммутации и маршрутизации – на плечи vRouter-а. В общем случае контроллер осуществляет пиринговое соединение со всеми vRouter-ами по BGP (или схожему с ним протоколу) и просто транслирует дальше маршрутную информацию. Важной характеристикой протокола является наличие в нем Address-Family для передачи метода инкапсуляции MPLS-in-GRE или MPLS-in-UDP. При этом конфигурация underlay-сети остается неизменной, что, как мы уже говорили в предыдущей статье, важно т.к. ее автоматизация на порядок сложнее, а риск нарушения работы в ходе модернизации – выше.
Для выхода из виртуальной сети во внешний мир также практикуется два основных подхода. Первый заключается в установке аппаратного маршрутизатора. Второй – в запуске какого-либо appliance, выполняющего функции маршрутизатора, т.е. по сути создается особый VNGW-шлюз (Virtual Network GateWay). В контексте анализа механизмов виртуализации этот подход является более интересным. Его преимуществом является дешевая горизонтальная масштабируемость: в ситуации нехватки мощности всегда можно запустить еще одну виртуальную машину со своим шлюзом. Это гораздо проще, чем искать свободные стойки, юниты, выводы питания на физической машине, а потом заказывать железо и разбираться с его установкой, настройкой и коммутацией. Недостатком же виртуального шлюза является то, что единица физического маршрутизатора всё же куда мощнее многоядерной виртуальной машины, а его софт, подогнанный под его же аппаратную основу, работает куда стабильнее. Кроме того, программно-аппаратный комплекс нуждается лишь в настройке, в то время как запуск и обслуживание виртуального шлюза – требует от системных администраторов знаний более высокого уровня.
В заключение этого цикла статей нужно отметить, что это весьма поверхностное описание работы виртуальной сети с overlay с хоста и SDN-контроллером. Однако какая бы платформа виртуализации ни была избрана вами, принцип ее работы будет не сильно отличаться от остальных, будь то VMWare, ACI, OpenStack, CloudStack, Juniper Contrail или Tungsten Fabric, на которую мы опирались в этом разборе. Неизбежны различия в видах инкапсуляций и заголовков, протоколов доставки информации на конечные сетевые устройства, однако сам принцип программно настраиваемой overlay-сети, которая запускается поверх относительно простой и статичной underlay-сети еще долго останется неизменным. Скорее всего, популярность технологий виртуализации сети продолжит расти т.к. overlay-сети полностью воспроизводят структуру физической сети, давая возможность для выполнения приложений в виртуальной сети так же, как в физической. При этом увеличивается эксплуатационная эффективность и нивелируется зависимость от оборудования.