В вычислительной технике виртуализация сети — это процесс объединения аппаратных и программных сетевых ресурсов и сетевых функций в единую программную административную сущность — виртуальную сеть . Виртуализация сети включает в себя виртуализацию платформы , часто в сочетании с виртуализацией ресурсов.
Виртуализация сети подразделяется на внешнюю виртуализацию , объединяющую множество сетей или частей сетей в виртуальную единицу, и внутреннюю виртуализацию , предоставляющую программным контейнерам на одном сетевом сервере функциональность, подобную сетевой .
При тестировании программного обеспечения разработчики программного обеспечения используют виртуализацию сети для тестирования программного обеспечения, находящегося в стадии разработки, в симуляции сетевых сред, в которых программное обеспечение должно работать. Как компонент проектирования производительности приложений , виртуализация сети позволяет разработчикам эмулировать соединения между приложениями, службами, зависимостями и конечными пользователями в тестовой среде без необходимости физического тестирования программного обеспечения на всех возможных аппаратных средствах или системном программном обеспечении. Достоверность теста зависит от точности виртуализации сети при эмуляции реального оборудования и операционных систем .
Различные поставщики оборудования и программного обеспечения предлагают виртуализацию сети, комбинируя любые из следующих вариантов:
Виртуализация внешней сети объединяет или подразделяет одну или несколько локальных сетей (LAN) в виртуальные сети для повышения эффективности большой сети или центра обработки данных. Виртуальная локальная сеть (VLAN) и сетевой коммутатор включают ключевые компоненты. Используя эту технологию, системный администратор может настраивать системы, физически подключенные к одной локальной сети, в отдельные виртуальные сети. И наоборот, администратор может объединять системы в отдельных локальных сетях (LAN) в одну VLAN, охватывающую сегменты большой сети.
Предполагается, что виртуализация внешней сети будет размещена в середине сетевого стека и поможет интегрировать различные архитектуры, предлагаемые для сетей следующего поколения. [1]
Внутренняя виртуализация сети настраивает единую систему с программными контейнерами , такими как программы управления гипервизором Xen , или псевдоинтерфейсами, такими как VNIC , для эмуляции физической сети с программным обеспечением. Это может повысить эффективность единой системы за счет изоляции приложений в отдельных контейнерах или псевдоинтерфейсах. [2]
Citrix и Vyatta создали стек протоколов виртуальной сети , объединяющий функции маршрутизации, межсетевого экрана и VPN Vyatta с балансировщиком нагрузки Netscaler от Citrix, оптимизацией глобальной сети (WAN) с помощью повторителя филиалов и VPN на уровне защищенных сокетов .
Виртуализация сети OpenSolaris обеспечивает так называемую «сеть в коробке» (см. Виртуализация сети OpenSolaris и управление ресурсами ).
Microsoft Virtual Server использует виртуальные машины для создания «сети в коробке» для систем x86 . Эти контейнеры могут работать под управлением различных операционных систем, таких как Microsoft Windows или Linux , как связанных с определенным контроллером сетевого интерфейса (NIC), так и независимых от него.
Виртуализация сети может использоваться при разработке и тестировании приложений для имитации реального оборудования и системного программного обеспечения. В проектировании производительности приложений виртуализация сети позволяет эмулировать соединения между приложениями, службами, зависимостями и конечными пользователями для тестирования программного обеспечения.
Виртуализация беспроводной сети может иметь очень широкую сферу применения, начиная от разделения спектра, виртуализации инфраструктуры и заканчивая виртуализацией радиоинтерфейса. Подобно виртуализации проводной сети, в которой физическая инфраструктура, принадлежащая одному или нескольким поставщикам, может совместно использоваться несколькими поставщиками услуг, виртуализация беспроводной сети требует, чтобы физическая беспроводная инфраструктура и радиоресурсы были абстрагированы и изолированы для ряда виртуальных ресурсов, которые затем могут быть предложены различным поставщикам услуг. Другими словами, виртуализация, независимо от проводных или беспроводных сетей, может рассматриваться как процесс, разделяющий всю сетевую систему. Однако отличительные свойства беспроводной среды с точки зрения различных по времени каналов, затухания, мобильности, вещания и т. д., усложняют проблему. Кроме того, виртуализация беспроводной сети зависит от конкретных технологий доступа, а беспроводная сеть содержит гораздо больше технологий доступа по сравнению с виртуализацией проводной сети, и каждая технология доступа имеет свои особые характеристики, что затрудняет достижение конвергенции, совместного использования и абстракции. Поэтому может быть неточным рассматривать виртуализацию беспроводной сети как подмножество виртуализации сети. [3]
До сетей 1 Гбит/с виртуализация сетей не страдала от накладных расходов на программные слои или слои гипервизора, обеспечивающие межсоединения. С ростом пропускной способности, 10 Гбит/с и выше, скорости пакетов превышают возможности обработки сетевых стеков. [ необходима цитата ] Для того чтобы продолжать предлагать высокопроизводительную обработку, некоторые комбинации программных и аппаратных помощников развертываются в так называемой «сети в коробке», связанной либо с аппаратно-зависимым контроллером сетевого интерфейса (NIC) с использованием расширений SRIOV гипервизора, либо с использованием технологии быстрого пути между NIC и полезными нагрузками (виртуальными машинами или контейнерами).
Например, в случае Openstack сеть предоставляется Neutron, который использует множество функций ядра Linux для работы в сети: iptables, iproute2, L2 bridge, L3 routing или OVS. Поскольку ядро Linux не может поддерживать скорость передачи пакетов 10G [ требуется ссылка ] , то используются некоторые технологии обхода для быстрого пути . Основные технологии обхода основаны либо на ограниченном наборе функций, таких как Open vSwitch (OVS) с его реализацией пользовательского пространства DPDK , либо на полной функции и разгрузке обработки Linux, такой как виртуальный ускоритель 6WIND .