Настройка виртуальных сетей в 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
Hyper-V позволяет создавать дополнительные «виртуальные коммутаторы» (virtual switch) помимо того о котором я только что рассказал. Для этого с права в консоли управления Hyper-V (Hyper-V Manager) зайдите в раздел Управление виртуальными сетями (Virtual Network Manager). Вы увидите окно Управления виртуальными сетями (Virtual Network Manager). Рис. 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 управляет соединениями между виртуальными машинами и как создавать новые виртуальные сети.
Если возникли какие либо вопросы, с удовольствием постараюсь на них ответить.
Есть Сервер 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 фаервол не стоит случайно?
Нет.
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.
Добрый день,
На одном компьютере было три сервер-клиент программы (Консультант, Гарант, Кодекс)
Хочу разнести их на три разные виртуальные машины, но чтобы сетевой интерфейс был у них один (один статический ip на три машины)
Чтобы не перенастраивать клиентов.
Это возможно? Видимо нужно создать одну сеть, и научить её выходить во внешний мир, через один физический интерфейс, но как…
Нет, один статический IP на три машины — будет не правильно, они всегда будут конфликтовать между собой. Делайте 3-и виртуальные машины, каждую со своим IP адресом, если в этом есть необходимость. Ну а клиентов придется перенастраивать, но почти всегда это возможно автоматизировать,а не бегать по каждому и менять настройки.
проброс портов делай на Proxy сервере!)))
Доброго времени суток 🙂
Я подключил Hyper-V через прокси-сервер, через программу. Проброс портов в Интернет выполняется также как и обычно?
Из вопроса не очень понятно что вы хотите сделать, уточните задачу.