Меню

Как настроить nat hyper v

Hyper-V и виртуальные машины

Jan 13, 2019 · 6 min read

Как настроить Hyper-V и сделать виртуальные машины доступными из Интернета, включая проброс портов.

Все началось с задачки, которую я пытался решить раньше.

Виртуализация

Вот вы всеговорите виртуализация виртуализация. А у меня вот появилась интересная задача, легкое решение, которой я так…

До этого момента с Hyper-V мне приходилось сталкиваться очень косвенно, только в одном из проектов и все IP были публичными. Поэтому некоторые вещи мне показались как минимум крайне своеобразными.

Уверен, что для тех, кто раньше видел Hyper-V и джедаев PowerShell это покажется смешным и очень простым (в итоге так и оказалось). Но портянки текста (как я тогда думал) PowerShell меня просто парализовывали изначально.

Этот текст больше для самого себя, но если кому-то поможет я буду только рад.

Задача

Н а помню задачу. В общем виде она сводилась к тому, чтобы на хостовой машине VHOST разместить несколько виртуальных машин с публичными и приватными IP адресами, дать им доступ в интернет и прокидывать на виртуалки нужные нам порты.

Решение

Для решения задачи был выбран Windows 2016 Server с ролью Hyper-V.

Настройка Windows 2016 Server для виртуальной машины с публичным IP адресом

На сервере у нас одна физическая сетевая карта с IP адресом 212.248.А.А/29. Для VM1 нам надо назначить следующий адрес из /29 подсети и вынести ее в “большой интернет”. Для этого у Hyper-V есть решение в лоб — External Network Switch.

Чтобы его сделать нужно через Hyper-V manager создать виртуальный свитч, у которого Connection Type будет External Network и который будет использовать нашу единственную сетевую карту.

После этого на некоторое время пропадет связь с хостом и восстановится. После этого у нас останется наша сетевая карта WAN и появится новое подключение.

Дальше для нашей виртуальной машины VM1, прописываем идентичные VHOST сетевые настройки (изменив только IP адрес). Данный интерфейс привязываем к нашей виртуальной машине.

Как результат получаем работающие VHOST и VM1. Это все было очень и очень просто. И изначально у меня проблем не вызвало. Все это делалось уже много раз.

Настройка Windows 2016 Server для виртуальной машины с приватным IP адресом

А вот эта часть меня неожиданно подкосила. Нам надо вывести в большой и взрослый интернет VM2 и VM3 с приватными адресами. Для этого нам нужен хоть какой-нибудь роутинг.

И вот тут я честно скажем затупил. Решение в виде установки роли Remote Access, чтобы получить Routing тянуло за собой полный IIS. Мне совсем не понятно зачем это Microsoft и поэтому от этой идеи я отказался. Тут я подумал что это тупик. Но потом вспомнил, а зачем нам полноценный роутинг, если нам надо просто выпустить машины в интернет. Для этого же есть NAT. Осталось каким-то образом получить виртуальный сетевой интерфейс, к которому мы потом будет подключать виртуальные машины. И вот тут незнание Windows меня очень сильно затормозило. Но в итоге решение оказалось в паре команд на PowerShell.

Создаем виртуальный адаптер / сеть для Hyper-V NAT

Самый простой вариант — это создать через знакомый нам Hyper-V manager еще один Virtual Switch, но уже с типом Internal. Назовем его NAT

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

Но мы так и не сделали трансляцию адресов. Тот самый NAT. В Linux это было бы сделано парой команд, но у нас же Windows и нам ой как не хочется ставить IIS для роутинга. И тут произошло то, чего я боялся больше всего — PowerShell спасает отца русской демократии.

PowerShell для Hyper V NAT и не только

Согласно условию у нас для приватных адресов используется подсеть 10.0.0.0/24. Поэтому сначала для нашего NAT интерфейса, который мы сделали на предыдущем шаге надо назначить IP — 10.0.0.1

Это все, что нам потребуется на данном этапе. У нас есть интерфейс, у него есть IP адрес. Нам остается только каким-то образом в PowerShell сделать трансляцию адресов и радоваться тому, что у нас все получилось. Итак, запускаем PowerShell и вводим первую команду.

Читайте также:  Как настроить резак для бумаги

Этим самым мы умоляем Windows — дружище, сделай нам NAT с именем VNAT для всех адресов подсети 10.0.0.0/24

И все. Это работает. Я сам был в шоке. Это все боязнь PowerShell. Боязнь одной команды.

Остается только прописать адреса из этой подсети нашим виртуальным машинам VM2-VMX и не забыть прописать gateway в 10.0.0.1 и DNS сервера по вашему вкусу. Получаем следующее

Но мы кое-что забыли. Нам же еще нужно чтобы наши VM были доступны из интернета. Сделать их прямо доступными у нас не получится, но вот сделать доступ к определенным портам на виртуальных машинах мы сможем. Во всем мире это называется DNAT, но у Microsoft как всегда делается портянкой в PowerShell

Проброс портов / DNAT в Hyper -V

Пускай у нас на VM2 на 80 порту будет веб сервер, а на VM3 на 22 порту SSH сервер. Нам надо к ним получить доступ из интернета.

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

Как я уже говорил MAGIC во всем мире называется DNAT, но у Microsoft это StaticMapping и в нашем случае будет выглядеть следующей командой на PowerShell.

Все что пришло на 80 порт VHOST отправляем на 80 порт VM2

Все верно для VM3 на надо сделатб доступным 22 порт. Но мы же крутые админы и хотим чтобы для всего мира он был доступен не по 22 порту, а по 50022. Получаем задачу

Для этого просто меняем IP и порты в команде, которую мы уже знаем.

Вот так незнание двух команд на PowerShell несколько меня затормозили. Но главное, что решение найдено, оно работает. В общем всем PowerShell, пацаны!

Источник



Настройка сети в Hyper-V через NAT (проброс портов)

Сегодня поговорим о сети в Hyper-V, особенно о таких случаях, когда компьютер подключен по wifi, что в домашних условиях бывает часто.

В таких продуктах, как Vmware Player и Virtualbox изначально идет заточка под десктоп и там легко заводится тип подключения мост на wifi адаптер, когда ip адреса прокидываются в вашу беспроводную сеть. Но Hyper-V заточен больше под серверное применение, можете попробовать установить Linux на virtualbox или vmware (тут не говорю про серверный аналог, только десктопный продукт) и пингануть сеть, то пинги будут слегка больше иметь задержки, чем на Hyper-V, к тому же, Hyper-V еще имеет автозапуск в фоне независимо от того зашел пользователь в систему или нет.

Всё это и многое другое, к примеру скорость дисковой подсистемы, определяет выбор в пользу Hyper-V для домашнего Linux-сервера на Windows машине.

Но вот в Hyper-V нет никаких специальных сетевых драйверов-прослоек, которые бы позволяли его использовать по wifi в режиме моста (внешняя сеть), при таком использовании начнутся проблемы с обрывами между машинами и самым правильным решением будет использовать внутреннюю сеть или NAT.

Установка Hyper-V на Windows 10

Hyper-V работает только на редакциях Windows 10 pro, для его активации нужно запустить настройки — приложения -программы и компоненты

Далее нужно зайти в «включени и отключение компонентов»

И тут отметить галочкой Hyper-V, после перезагрузки в пуске появится Диспетчер Hyper-V

Создание внутренней сети в Hyper-V

Первым делом нужно создать виртуальный коммутатор, использовать Default Switch с недавнего времени стало невероятно, т.к. при каждой перезагрузке он сбрасывает ip на свой автоматический.

Для создания виртуального коммутатора, нужно зайти в диспетчер виртуальных коммутаторов

А дальше создать виртуальный сетевой коммутатор, выбрав для него режим внутренняя сеть

Назовем его к примеру VirtMachines

Настройка NAT на Windows 10 в PowerShell для Hyper-v (и не только)

Допустим, все виртуальные машины у нас будут в подсети 192.168.200.0, а шлюз у них будет 192.168.200.1, для этого этот айпи укажем у адаптера для virtmachines

Читайте также:  Как настроить perfect world mobile

А далее открываем PowerShell от имени администратора (правый клик по кнопке пуск)

И начинаем колдовать.

Первым делом нам нужно настроить сам nat, это snat или прямой нат или подмена источника. Он же маскарадинг. Дело в том, что если во внешнюю сеть улетит ip источника 192.168.200.100, то ответа никак не получит эта машина, для этого всю внутреннюю подсеть нужно скрывать за своим внешним или почти внешним айпи

Теперь в обратную сторону, то что приходит на физическую машину на 80 порт отправим на виртуальную машину с айпи 192.168.200.100

Обратите внимание, что в прямом и обратном NAT применяется один NatName.

Перенос профиля Firefox

К примеру при переустановке системы (полной) и тем более при смене жесткого…

Коротко о клавиатуре Microsoft All in One keyboard.

Коротко расскажу о клавиатуре Microsoft All In One, как на ней сделать скриншот, где скачать драйвера и другие полезные советы.…

Источник

Создание виртуальной сети Create a virtual network

Вашей виртуальной машине потребуется виртуальная сеть, чтобы предоставить вашему компьютеру доступ к сети. Your virtual machines will need a virtual network to share a network with your computer. Создание виртуальной сети — необязательный шаг. Если виртуальную машину не требуется подключать к Интернету или сети, перейдите к шагу создания виртуальной машины Windows. Creating a virtual network is optional — if your virtual machine doesn’t need to be connected to the internet or a network, skip ahead to creating a Windows Virtual Machine.

Подключение виртуальных машин к Интернету Connect virtual machines to the internet

Hyper-V поддерживает три типа виртуальных коммутаторов: внешние, внутренние и частные. Hyper-V has three types of virtual switches — external, internal, and private. Создайте внешний коммутатор, чтобы предоставить доступ к сети вашего компьютера виртуальным машинам, работающим на нем. Create an external switch to share your computer’s network with the virtual machines running on it.

В этом упражнении выполняется создание внешнего виртуального коммутатора. This exercise walks through creating an external virtual switch. После завершения этого шага на узле Hyper-V будет виртуальный коммутатор, который сможет подключать виртуальные машины к Интернету через сетевое подключение вашего компьютера. Once completed, your Hyper-V host will have a virtual switch that can connect virtual machines to the internet through your computer’s network connection.

Создание виртуального коммутатора с помощью диспетчера Hyper-V Create a Virtual Switch with Hyper-V Manager

Откройте диспетчер Hyper-V. Open Hyper-V Manager. Чтобы сделать это быстро, нажмите кнопку или клавишу Windows и введите «Hyper-V Manager». A quick way to do this is by hitting the Windows button or key then type «Hyper-V Manager».
Если диспетчер Hyper-V найти не удается, это значит, что Hyper-V или средства управления Hyper-V отключены. If search doesn’t find Hyper-V Manager, Hyper-V or the Hyper-V management tools are not enabled. Инструкции по включению см. в разделе Включение Hyper-V. See the instructions to enable Hyper-V.

Выберите сервер в левой области или нажмите кнопку «Подключиться к серверу. » в правой области. Select the server in the left pane, or click «Connect to Server. » in the right pane.

В диспетчере Hyper-V выберите пункт Диспетчер виртуальных коммутаторов. в меню «Действия» справа. In Hyper-V Manager, select Virtual Switch Manager. from the ‘Actions’ menu on the right.

В разделе «Виртуальные коммутаторы» выберите пункт Создать виртуальный сетевой коммутатор. Under the ‘Virtual Switches’ section, select New virtual network switch.

В окне «Виртуальный коммутатор какого типа вы хотите создать?» выберите Внешний. Under ‘What type of virtual switch do you want to create?’, select External.

Нажмите кнопку Создать виртуальный коммутатор. Select the Create Virtual Switch button.

В разделе «Свойства виртуального коммутатора» назначьте ему имя, например Внешний коммутатор виртуальных машин. Under ‘Virtual Switch Properties’, give the new switch a name such as External VM Switch.

В разделе «Тип подключения» убедитесь, что выбрана Внешняя сеть. Under ‘Connection Type’, ensure that External Network has been selected.

Выберите физический сетевой адаптер для связывания с новым виртуальным коммутатором. Select the physical network card to be paired with the new virtual switch. Этот сетевой адаптер физически подключен к сети. This is the network card that is physically connected to the network.

Читайте также:  Как настроить кроссовер для сабвуфера

Щелкните Применить, чтобы создать виртуальный коммутатор. Select Apply to create the virtual switch. На этом этапе, скорее всего, появится приведенное ниже сообщение. At this point you will most likely see the following message. Щелкните Да, чтобы продолжить. Click Yes to continue.

Щелкните ОК, чтобы закрыть окно диспетчера виртуальных коммутаторов. Select OK to close the Virtual Switch Manager Window.

Создание виртуального коммутатора с помощью PowerShell Create a Virtual Switch with PowerShell

Чтобы создать виртуальный коммутатор с внешним подключением с помощью PowerShell: The following steps can be used to create a virtual switch with an external connection using PowerShell.

Используйте командлет Get-NetAdapter, чтобы получить список сетевых адаптеров, подключенных к системе Windows 10. Use Get-NetAdapter to return a list of network adapters connected to the Windows 10 system.

Выберите сетевой адаптер для использования с коммутатором Hyper-V и разместите экземпляр в переменной с именем $net. Select the network adapter to use with the Hyper-V switch and place an instance in a variable named $net.

Выполните следующую команду, чтобы создать новый виртуальный коммутатор Hyper-V. Execute the following command to create the new Hyper-V virtual switch.

Виртуальная сеть на ноутбуке Virtual networking on a laptop

режим NAT. NAT networking

Механизм преобразования сетевых адресов (NAT) предоставляет виртуальной машине доступ к сети вашего компьютера путем объединения IP-адреса главного компьютера с портом через внутренний виртуальный коммутатор Hyper-V. Network Address Translation (NAT) gives a virtual machine access to your computer’s network by combining the host computer’s IP address with a port through an internal Hyper-V Virtual Switch.

У этого механизма есть ряд полезных возможностей. This has a few useful properties:

  1. NAT экономит IP-адреса за счет сопоставления внешнего IP-адреса и порта с гораздо большим набором внутренних IP-адресов. NAT Conserves IP addresses by mapping an external IP address and port to a much larger set of internal IP addresses.
  2. NAT позволяет нескольким виртуальным машинам размещать приложения, которым требуются одинаковые (внутренние) порты связи, сопоставляя их с уникальными внешними портами. NAT allows multiple virtual machines to host applications that require identical (internal) communication ports by mapping these to unique external ports.
  3. NAT использует внутренний коммутатор. После создания внутреннего коммутатора вы можете не использовать сетевое подключение. Кроме того, за счет этого снижается нагрузка на сет компьютера. NAT uses an internal switch — creating an internal switch doesn’t cause you to use network connection and tends to interfere less with a computer’s networking.

Чтобы настроить сеть NAT и подключить ее к виртуальной машине, см. Руководство пользователя по созданию сети NAT. To set up a NAT network and connect it to a virtual machine, follow the NAT networking user guide.

Подход с использованием двух коммутаторов The two switch approach

Если вы используете Hyper-V в Windows 10 на ноутбуке и часто переключаетесь между беспроводной и проводной сетями, вы можете создать виртуальный коммутатор как для сетевой карты Ethernet, так и для карты беспроводной сети. If you’re running Windows 10 Hyper-V on a laptop and frequently switch between wireless networking and a wired network, you may want to create a virtual switch for both the ethernet and wireless network cards. В зависимости от того, как ноутбук подключается к сети, можно переключать виртуальные машины между этими коммутаторам. Depending on how the laptop connects to the network, you can change your virtual machines between these switches. Виртуальные машины не переключаются между проводными и беспроводными сетями автоматически. Virtual machines do not switch between wired and wireless automatically.

Подход, при котором задействованы два коммутатора, не поддерживают внешний виртуальный коммутатор с использованием платы беспроводных сетей. Такой подход следует использовать только для тестирования. The two switch approach does not support External vSwitch over wireless card and should be used for testing purposes only.

Источник