Настройка виртуальных сетей в Hyper-V

Если вы уже работали с Microsoft’s Virtual PC или Virtual Server, то вы знаете что эти продукты работают как обычные приложения Windows. Они находятся поверх родительской операционной системы (host operating system) и все запросы от виртуальных машин к оборудованию сервера происходят через родительскую операционную систему, которая уже непосредственно управляет оборудованием сервера. В Hyper-V реализован совершенно другой подход к виртуализации и в частности к сетевым коммуникациям, нежели во всех предыдущих продуктах. Эта статья рассказывает о том, как работает сетевое взаимодействие в Hyper-V.

Действительно, Hyper-V отделяет от остальных продуктов виртуализации Microsoft то, что теперь виртуальные машины получили непосредственный доступ к оборудованию сервера, а не через родительскую систему. Однако возникала проблема перегрузки сетевого адаптера (NIC) одновременными пакетами от разных виртуальных машин. Нужно было решение данного вопроса и Microsoft представила концепцию «виртуальных коммутаторов» (virtual switch).

Для того что бы понять как это возможно, представьте что Hyper-V это не дополнение к  Windows Server 2008, а скорее часть операционной системы. Когда вы устанавливаете роль Hyper-V, гипервизор встает как бы «прослойка» между оборудованием и операционной системой Windows 2008. Система в которой поднимается роль Hyper-V называют родительской (host operating system) и располагается она на родительском разделе (parent partition). Операционные системы виртуальных машин называют гостевыми (guest operating system) и располагаются они на отдельных дочерних разделах (child partition).

Для того чтобы сделать такую архитектуру возможной, Microsoft отвязал стек протоколов TCP/IP от серверного сетевого адаптера (NIC). Сделав это, они создали дополнительный уровень абстракции, названный — «виртуальный коммутатор» (virtual switch). В итоге «виртуальный коммутатор» (virtual switch) единственный сетевой компонент привязанный к физическому сетевому адаптеру сервера (NIC). Родительская и дочерние операционные системы используют виртуальные сетевые адаптеры (vNIC’s)? которые соединяются с «виртуальным коммутатором» (virtual switch) используя протокол — Microsoft’s Virtual Network Switch Protocol.

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

configuring-virtual-networking-with-hyper-v-1

Hyper-V позволяет создавать дополнительные «виртуальные коммутаторы» (virtual switch) помимо того о котором я только что рассказал. Для этого с права в консоли управления Hyper-V (Hyper-V Manager) зайдите в раздел Управление виртуальными сетями (Virtual Network Manager). Вы увидите окно Управления виртуальными сетями (Virtual Network Manager). Рис. 2.

configuring-virtual-networking-with-hyper-v-2

Если вы посмотрите на Рис. 1, вы увидите что «виртуальный коммутатор» (virtual switch) привязан к моему физическому сетевому адаптеру (NIC). У вас есть возможность создать новую виртуальную сеть, для этого вам и нужно будет создать новый «виртуальный коммутатор» (virtual switch). Как видите, (Рис. 2) существуют три разных типа виртуальных сетей, которыми вы можете пользоваться.

Первый тип — «внешняя» (external) — универсальный тип, который можно использовать для связи между виртуальными машинами на том же физическом сервере, включая родительский раздел, а также внешними серверами и Internet.

Есть важный момент, который вы должны учитывать при создании «внешней виртуальной сети» (external virtual networks), она должна быть привязана к физическому сетевому адаптеру (NIC). Вдобавок, каждый физический сетевой адаптер (NIC) может быть привязан только к одной виртуальной сети. Таким образом, если вы создаете вторую «внешнюю виртуальную сеть» (external virtual networks), то вам нужен и второй физический сетевой адаптер (NIC), который вы привяжете к ней.

Второй тип — «внутренняя» (internal) — используется как механизм связи между виртуальными машинами располагающимися на одном сервере. Так же внутренняя виртуальная сеть (internal virtual network) позволяет соединяться этим виртуальным машинам с родительской операционной системой.

Третий тип — «частная» (private) — используется как механизм связи только между виртуальными машинами располагающимися на одном сервере. Частная виртуальная сеть (private virtual network) не позволяет соединения во вне, а так же соединения к родительской операционной системе.

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

Если возникли какие либо вопросы, с удовольствием постараюсь на них ответить.

28 комментариев to “Настройка виртуальных сетей в Hyper-V”

  1. Ildar Nurmukhametov:

    Есть Сервер win2008 server(ip 192.168.1.1).В hyper-v Развернут Xenserver(192.168.1.2).На Xenserver установлена виртуальная машина(192.168.1.3).Устанавливаю на виртуальной машине xenserver интерфейс bridge физической машины.По сути все должно пингаваться а нет.

    с win2008 server
    ping идет до 192.168.1.2
    но не идет до 192.168.1.3
    c виртуальной машины xenserver
    ping идет до 192.168.1.2
    но не идет до 192.168.1.1
    Почему ?
    Не ругайте за такую салянку.Ради результата приходится и такое далать 🙂

    • А на 192.168.1.3 фаервол не стоит случайно?

      • Ildar Nurmukhametov:

        Нет.
        1.Запускаю пинг с 192.168.1.1 до 192.168.1.3
        2.На 192.168.1.2 запускаю снифер.
        Итог: Ни одного пакета не идет.А как только на 192.168.1.1 запускаю пинг до 192.168.1.2 то пинги идут и вижу это все снифером.
        Как так может быть ?

        • Я не особо в Xen, но очевидно? что беда на виртуалке с интерфейсом поэтому Xen не знает, что у него хостится виртуалка с ip 192.168.1.3.

  2. Евгений:

    Добрый день,

    На одном компьютере было три сервер-клиент программы (Консультант, Гарант, Кодекс)
    Хочу разнести их на три разные виртуальные машины, но чтобы сетевой интерфейс был у них один (один статический ip на три машины)
    Чтобы не перенастраивать клиентов.
    Это возможно? Видимо нужно создать одну сеть, и научить её выходить во внешний мир, через один физический интерфейс, но как…

    • Нет, один статический IP на три машины — будет не правильно, они всегда будут конфликтовать между собой. Делайте 3-и виртуальные машины, каждую со своим IP адресом, если в этом есть необходимость. Ну а клиентов придется перенастраивать, но почти всегда это возможно автоматизировать,а не бегать по каждому и менять настройки.

  3. проброс портов делай на Proxy сервере!)))

  4. Михаил:

    Доброго времени суток 🙂
    Я подключил Hyper-V через прокси-сервер, через программу. Проброс портов в Интернет выполняется также как и обычно?

Leave a Reply

*

Dansette

Рейтинг@Mail.ru Яндекс.Метрика