Что нужно знать о программно определяемой сети в Hyper-V (часть 1)

Опубликовано: 19 Апреля, 2023

  • Что нужно знать о программно-определяемой сети в Hyper-V (часть 3)

Введение

Хотя концепция программно-определяемой сети может быть не всем знакома, возможно, это одна из самых важных новых сетевых технологий, появившихся за довольно долгое время. Программно определяемые сети абстрагируют логическую сеть от физической сети, используя новый набор технологий и методов. В этой серии статей я объясню, почему программно определяемые сети важны и как они работают в среде Hyper-V.

Прежде чем я начну

Прежде чем я начну, я хочу пояснить, что программно определяемые сети не уникальны для Microsoft. Хотя Microsoft, безусловно, имеет свои собственные программно-определяемые сетевые функции и имеет очень широкое видение способов использования этой технологии, они не изобрели концепцию программно-определяемых сетей. VMware и другие поставщики также поддерживают собственные разновидности программно-определяемых сетей. Тем не менее, эта серия статей будет посвящена исключительно технологиям Microsoft.

Что такое программно определяемая сеть?

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

Вероятно, первой технологией сетевой виртуализации, получившей широкое распространение, была маркировка VLAN. Для тех, кто не знаком с тегированием VLAN, это сетевой стандарт, который существует уже много лет и позволяет разделить физическую сеть на ряд логических сетей. Логические сети (или виртуальные сети, как их иногда называют) остаются изолированными друг от друга, даже если они используют общее сетевое оборудование.

Механизм, который позволяет VLAN оставаться отделенными друг от друга, — это тег VLAN. Тег VLAN — это просто числовой идентификатор (идентификатор VLAN), который идентифицирует логическую сеть, в которой должно обмениваться данными конкретное устройство.

Важно понимать, что виртуальные локальные сети появились раньше, чем виртуальные серверы или виртуальные сети. Сети VLAN предназначались для использования в физической среде. Таким образом, поддержка VLAN встроена в сетевое оборудование.

Технология VLAN работает достаточно хорошо и получила достаточно широкое распространение, так что остается жизнеспособным вариантом в течение многих лет. Однако одна из больших проблем с технологией VLAN заключается в том, что VLAN не очень хорошо масштабируются. Есть несколько проблем, влияющих на масштабируемость VLAN.

Первое из этих ограничений связано с общим количеством поддерживаемых VLAN. Существует теоретический предел в 4096 уникальных идентификаторов VLAN, которые можно использовать в сети. Однако большинство производителей сетевого оборудования устанавливают более жесткие ограничения. Практический предел количества идентификаторов VLAN, которые обычно можно определить, обычно ближе к 1000.

Прежде чем я расскажу о другом серьезном ограничении использования VLAN, мне нужно на мгновение обратить внимание на виртуализацию сети.

Виртуализация сети — это концепция, которая должна быть знакома большинству администраторов Hyper-V. Основная идея заключается в том, что на хост-сервере обычно больше виртуальных машин, чем физических сетевых адаптеров, поэтому один физический адаптер часто приходится использовать нескольким виртуальным машинам. Вместо установления прямого соединения между виртуальной машиной и физическим сетевым адаптером Hyper-V использует концепцию виртуального коммутатора.

Каждый физический сетевой адаптер, одобренный для использования виртуальными машинами, привязан к выделенному виртуальному коммутатору. Любая виртуальная машина, которую необходимо подключить к данному физическому сетевому адаптеру, должна быть подключена к виртуальному коммутатору, к которому привязан сетевой адаптер.

Конечно, это только один тип виртуальной сети в Hyper-V. Также можно создавать виртуальные сетевые сегменты, которые не пересекают физическое сетевое оборудование. Эти типы сегментов виртуальной сети иногда используются как способ создания безопасной магистрали сети между виртуальными серверами.

В некотором смысле VLAN и виртуальные сети похожи. Оба применяют определенный уровень виртуализации к физическому сетевому оборудованию. В случае VLAN сегменты физической сети делятся на несколько логических сетей. Однако в случае виртуальной сети Hyper-V физическое сетевое оборудование не сегментируется на логические сети, а инфраструктура виртуализации позволяет совместно использовать оборудование между подключенными виртуальными машинами.

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

Однако проблема заключается в том, что виртуализация сети изолирована от среды Hyper-V. Если вы хотите расширить изолированную виртуальную сеть до физического мира, вам необходимо отслеживать, какие сегменты сети подключены к каким виртуальным сетям. Это действительно грязный процесс.

Другая проблема заключается в том, что если организация решает начать виртуализацию некоторых своих серверов, это не означает, что их существующая сетевая инфраструктура исчезнет. Часто организация может уже иметь сложную систему VLAN задолго до того, как они виртуализируют свой первый сервер. К счастью, Hyper-V поддерживает тегирование VLAN, а VLAN можно расширить из физической сети в виртуальную.

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

Эти проблемы масштабируемости связаны не столько с ограничением количества идентификаторов VLAN, которые могут быть созданы, сколько с объемом работы, необходимой для обеспечения распознавания VLAN во всей инфраструктуре виртуализации.

Представьте, например, что определенный виртуальный сервер должен участвовать в VLAN. В такой ситуации физический коммутатор, к которому подключен хост-сервер, должен знать о VLAN. Хост-сервер также должен иметь виртуальный коммутатор, настроенный для участия в VLAN. Идентификатор VLAN также должен быть применен к виртуальному сетевому адаптеру виртуальной машины.

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

В ситуации, когда живая миграция поддерживается, виртуальный коммутатор с поддержкой VLAN необходимо будет создать на каждом хост-сервере, который потенциально может запускать виртуальную машину. Любые физические коммутаторы, подключенные к различным хостам, также должны быть обновлены. Коммутаторы агрегации также обычно обеспечивают связь между физическими коммутаторами более низкого уровня. Если используются коммутаторы агрегации, их также необходимо настроить для поддержки VLAN.

Вывод

Я пытаюсь подчеркнуть, что объем работы, связанный с поддержкой VLAN, увеличивается в геометрической прогрессии по мере роста инфраструктуры Hyper-V. Частные облака следующего поколения должны будут обеспечивать беспрецедентный уровень гибкости, сохраняя при этом сетевую изоляцию в ситуациях с несколькими арендаторами. Это просто нецелесообразно, когда VLAN используются в качестве механизма сетевой изоляции. Программно определяемые сети предлагают гораздо лучшее решение этой проблемы. Я начну обсуждение особенностей программно-определяемой сети во второй части.

  • Что нужно знать о программно-определяемой сети в Hyper-V (часть 3)