Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OS Windows / Знакомство с Hyper-V.pdf
Скачиваний:
31
Добавлен:
22.07.2019
Размер:
4.26 Mб
Скачать

Windows назначаются сетевой службой узлов Windows (HNS) (HNS) из подсети 10.0.76.0/24. В соответствии с имеющимся сценарием MobyLinux.ps1 IP-адреса для Docker4 Windows назначаются из подсети 10.0.75.0/24.

Диагностика

Несколько сетей NAT не поддерживается.

В этом руководстве предполагается, что других NAT на узле нет. Приложениям или службам необходимо использовать NAT, и они могут создать ее в процессе установки. Поскольку Windows (WinNAT) поддерживает только один внутренний префикс подсети NAT, при попытке создать несколько NAT система переходит в неизвестное состояние.

Чтобы понять, является ли это проблемой, убедитесь, что имеется только одна

NAT.

Пример :PowerShell Get-NetNat

Если NAT уже существует, удалите ее.

Пример :PowerShell Get-NetNat | Remove-NetNat

Убедитесь, что для приложения или компонента (например, для контейнеров Windows) имеется всего один "внутренний" vmSwitch. Запишите имя vSwitch.

Пример :PowerShell Get-VMSwitch

Проверьте, есть ли частные IP-адреса (например, IP-адрес шлюза NAT по умолчанию обычно имеет значение *.1) старого NAT, по-прежнему назначенные адаптеру.

Пример :PowerShell

Get-NetIPAddress -InterfaceAlias "vEthernet (<name of vSwitch>)"

Если используется старый частный IP-адрес, удалите его.

Пример :PowerShell

Remove-NetIPAddress -InterfaceAlias "vEthernet (<name of vSwitch>)" -IPAddress <IPAddress>

Удаление нескольких NAT

Мы встречали сообщения о нескольких случайно созданных сетях NAT. Это вызвано ошибкой, присутствующей в последних сборках (включая Windows Server2016 Technical Preview5 и Windows10 Insider Preview). Если после запуска команд ls или Get-ContainerNetwork сети Docker появится несколько сетей NAT, в командной строке PowerShell с повышенными привилегиями выполните следующее:

Пример :

PS> $KeyPath = "HKLM: \SYSTEM\CurrentControlSet\Services\vmsmp\parameters\SwitchList" PS> $keys = get-childitem $KeyPath

PS> foreach($key in $keys)

PS> {

if ($key.GetValue("FriendlyName") -eq 'nat')

PS>

PS>

{

PS>

$newKeyPath = $KeyPath+"\"+$key.PSChildName

PS>

Remove-Item -Path $newKeyPath -Recurse

PS>

}

PS> }

 

PS> remove-netnat -Confirm:$false

PS> Get-ContainerNetwork | Remove-ContainerNetwork

PS> Get-VmSwitch -Name nat | Remove-VmSwitch (_failure is expected_) PS> Stop-Service docker

PS> Set-Service docker -StartupType Disabled Reboot Host

PS> Get-NetNat | Remove-NetNat

PS> Set-Service docker -StartupType automaticac PS> Start-Service docker

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

Ссылок

Дополнительные сведения о сетях NAT

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

Вашей виртуальной машине потребуется виртуальная сеть, чтобы предоставить вашему компьютеру доступ к сети. Создание виртуальной сети— необязательный шаг. Если виртуальную машину не требуется подключать к Интернету или сети, перейдите к шагу создания виртуальной машины Windows.

Подключение виртуальных машин к Интернету

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

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

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

1.Откройте диспетчер Hyper-V. Чтобы сделать это быстро, нажмите кнопку или клавишу Windows и введите "Hyper-V Manager".

Если диспетчер Hyper-V найти не удается, это значит, что Hyper-V или средства управления Hyper-V отключены. Инструкции по включению см. в разделе Включение Hyper-V.

2.Выберите сервер в левой области или нажмите кнопку «Подключиться к серверу...» в правой области.

3.В диспетчере Hyper-V выберите пункт Диспетчер виртуальных коммутаторов... в меню "Действия" справа.

4.В разделе "Виртуальные коммутаторы" выберите пункт Создать виртуальный сетевой коммутатор.

5.В окне "Виртуальный коммутатор какого типа вы хотите создать?" выберите

Внешний.

6.Нажмите кнопку Создать виртуальный коммутатор.

7.В разделе "Свойства виртуального коммутатора" назначьте ему имя,

например Внешний коммутатор виртуальных машин.

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

9.Выберите физический сетевой адаптер для связывания с новым виртуальным коммутатором. Этот сетевой адаптер физически подключен к сети.

10.Нажмите кнопку Применить, чтобы создать виртуальный коммутатор. На этом этапе, скорее всего, появится приведенное ниже сообщение. Щелкните Да, чтобы продолжить.

11.Нажмите кнопку ОК, чтобы закрыть окно диспетчера виртуальных коммутаторов.

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

Чтобы создать виртуальный коммутатор с внешним подключением с помощью

PowerShell:

1.Используйте команду Get-NetAdapter, чтобы вернуть список сетевых адаптеров, подключенных к системе Windows10.

PowerShell Копировать

PS C:\> Get-NetAdapter

Name

InterfaceDescription

 

 

ifIndex Status

 

MacAddress

LinkSpeed

 

 

 

 

 

 

----

--------------------

------- ------

----------

---------

Ethernet 2

Broadcom NetXtreme 57xx Gigabit Cont...

5

Up

BC-30-5B-A8-C1-7F

1

Gbps

Ethernet

Intel(R) PRO/100 M Desktop Adapter

3

Up

00-0E-0C-A8-DC-31

10

Mbps

2.Выберите сетевой адаптер для использования с коммутатором Hyper-V и

разместите экземпляр в переменной $net.

Пример: $net = Get-NetAdapter -Name 'Ethernet'

3.Выполните следующую команду, чтобы создать новый виртуальный коммутатор Hyper-V.

4.Пример :

New-VMSwitch -Name "External VM Switch" -AllowManagementOS $True -NetAdapterName $net.Name

Виртуальная сеть на ноутбуке

Сеть NAT

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

Уэтого механизма есть ряд полезных возможностей.

1.NAT экономит IP-адреса за счет сопоставления внешнего IP-адреса и порта с гораздо большим набором внутренних IP-адресов.

2.NAT позволяет нескольким виртуальным машинам размещать приложения, которым требуются одинаковые (внутренние) порты связи, сопоставляя их с уникальными внешними портами.

3.NAT использует внутренний коммутатор. После создания внутреннего коммутатора вы можете не использовать сетевое подключение. Кроме того, за счет этого снижается нагрузка на сет компьютера.

Чтобы настроить сеть NAT и подключить ее к виртуальной машине, см. Руководство пользователя по созданию сети NAT.

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

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

Важно!

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

Следующий шаг— создание виртуальной машины

Создание виртуальной машины Windows

Создайте собственные службы интеграции

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

Hyper-V.

В этом документе показано, как создать простую программу на основе сокетов

Hyper-V.

Поддерживаемые операционные системы узла

Windows 10 и более поздние версии

Windows Server 2016 и более поздние версии

Поддерживаемые гостевые операционные системы

Windows 10 и более поздние версии

Windows Server 2016 и более поздние версии

Гостевые ОС Linux со службами интеграции Linux Integration Services (см. статью Поддерживаемые виртуальные машины Linux и FreeBSD для Hyper-V в Windows)