Windows server 2018 r2 nat настройка: Настройка проброса сетевых портов (порт форвардинг) в Windows
Содержание
Записки IT-специалиста — ЖЖ
01:00 10.05.2019
Установка и настройка Hyper-V Server 2016
Продолжая тему виртуализации на основе Hyper-V в данном материале мы рассмотрим установку и настройку бесплатного гипервизора Hyper-V Server 2016. Основным отличием этой версии от Hyper-V как роли Windows Server является его полная бесплатность — вам не требуются лицензии на серверную версию ОС и благодаря минимальному числу служб повышается стабильность, уменьшается возможный периметр атаки и сокращаются затраты на обслуживание. За это приходится платить более сложным процессом установки и настройки о которых мы расскажем в данной статье.
На момент написания данной статьи Hyper-V Server 2016 является предпоследней версией гипервизора, однако в Hyper-V Server 2019 были обнаружены ошибки и релиз был отозван, в настоящий момент он недоступен для скачивания. А с учетом здоровой консервативности, версию 2016 можно смело рассматривать как основной гипервизор для современных внедрений, актуальность которого будет сохраняться еще как минимум в течении года — полутора, пока в новой версии найдут и исправят все ошибки, а также отшлифуют огрехи.
Получить Hyper-V Server 2016 можно на официальном сайте, для скачивания вам потребуется учетная запись Microsoft, либо будет необходимо заполнить небольшую анкету. При этом мы настоятельно не рекомендуем скачивать установочный образ из иных, непроверенных источников.
Установка и первоначальная настройка Hyper-V Server
Мы не будем подробно останавливаться на процессе установки — он ничем не отличается от установки других продуктов Microsoft и не должен вызвать каких-либо сложностей.
При первой загрузке вы попадете в интерфейс командной строки, в которой вам предложат изменить пароль Администратора, будьте внимательны, в русской системе по умолчанию активирована русская раскладка.
После чего нас встретит уже знакомый с версии Hyper-V Server 2012 текстовый интерфейс конфигурации сервера.
Если вы случайно закрыли это окно, то повторно его можно вызвать командой:
sconfig
Если же вы закрыли все окна и оказались перед пустым экраном, то нажмите Ctrl+Shift+Esc, данное сочетание клавиш работает в том числе и в RDP-сессии и вызывает диспетчер задач, с помощью которого вы можете запустить командную строку или утилиту конфигурации.
Далее идем практически по порядку. Но первым шагом следует изменить имя сервера на что-нибудь более информативное и удобное, в нашем случае это будет HV-CORE-2016. Затем, при необходимости, изменяем рабочую группу или присоединяем сервер к домену. Также рекомендуется добавить локального администратора, чтобы не использовать встроенную учетную запись.
Если вы хотите, чтобы ваш сервер отвечал на пинги, то следует явно разрешить такое поведение в пункте 4) Настройка удаленного управления, которое также должно быть включено.
Следующий пункт — Параметры центра обновления Windows имеют по умолчанию настройку Только скачивание, это означает, что установку обновлений вам надо будет запускать вручную. Если ваши виртуальные машины не предполагают режима работы 24/7 есть смысл рассмотреть вариант настройки Автоматически, тем более новая система обновлений предусматривает получение накопительного пакета один раз в месяц.
Затем включаем удаленный рабочий стол (пункт 7) и настраиваем сетевые параметры (пункт 8). Отдельным пунктом нас ожидает телеметрия (куда же без нее), полностью отключить ее невозможно, поэтому устанавливаем минимальный уровень — Безопасность.
После того, как вы настроили сеть дальнейшую работу с сервером удобнее производить по RDP, как минимум это позволить вам просто скопировать некоторые длинные команды. Но перед тем, как двигаться дальше следует скачать и установить доступные обновления (пункт 6).
В этом выпуске разработчики учли свои ошибки (в версии 2012 требовалось указывать совсем иные буквы, нежели было написано) и все параметры соответствуют указанным на экране, также, во избежание разночтений, используются только буквы латинского алфавита. Обновлений немного, всего три пакета, однако накопительный пакет старый — май 2018. Поэтому после установки обновлений их поиск следует повторить.
Действительно, теперь нам стал доступен последний накопительный пакет. Данный пример очень хорошо иллюстрирует все достоинства новой модели обновления. Чтобы привести в актуальное состояние систему, выпущенную более 2,5 лет назад, нам потребовалось всего четыре пакета обновления и менее часа времени.
Для полноценного удаленного управления данным сервером нужно включить соответствующие правила брандмауэра, для этого выйдем в командную строку и запустим оболочку PowerShell:
powershell
Цвет окна при этом останется черным, но в начале приглашения командной строки появятся буквы PS. Затем последовательно выполним следующие команды:
Enable-NetFireWallRule -DisplayName "Инструментарий управления Windows (DCOM - входящий трафик)"
Enable-NetFireWallRule -DisplayGroup "Удаленное управление журналом событий"
Enable-NetFireWallRule -DisplayGroup "Удаленное управление Windows"
Enable-NetFireWallRule -DisplayGroup "Удаленное управление томами"
Enable-NetFireWallRule -DisplayGroup "Удаленное управление брандмауэром Windows"
Enable-NetFireWallRule -DisplayGroup "Удаленное управление назначенными задачами"
для англоязычного выпуска Hyper-V эти команды будут выглядеть следующим образом:
Enable-NetFireWallRule -DisplayName "Windows Management Instrumentation (DCOM-In)"
Enable-NetFireWallRule -DisplayGroup "Remote Event Log Management"
Enable-NetFireWallRule -DisplayGroup "Remote Service Management"
Enable-NetFireWallRule -DisplayGroup "Remote Volume Management"
Enable-NetFireWallRule -DisplayGroup "Windows Firewall Remote Management"
Enable-NetFireWallRule -DisplayGroup "Remote Scheduled Tasks Management"
На этом настройку сервера можно считать законченной, и мы перейдем к настройке клиентского ПК.
Настройка клиента для работы с Hyper-V Server
Для работы с Hyper-V Server 2016 вам потребуется ПК с операционной системой Windows 10 версий Pro или Enteprise х64, иные редакции или 32-х разрядные версии не подойдут, так как в них нет возможности установить диспетчер Hyper-V.
Прежде всего проверим, что сервер доступен по своему сетевому имени, в доменной сети ему должна соответствовать A-запись на DNS-сервере, в одноранговой сети такую запись потребуется создать вручную на локальном DNS, либо добавить нужную запись в файл hosts клиентской машины, в нашем случае она выглядит следующим образом:
192.168.16.146 HV-CORE-2016
Если учетная запись под которой вы работаете на клиентском ПК отличается от учетных данных администратора Hyper-V, а это практически всегда так, даже если вы работаете в доменной сети (мы надеемся, что вы не используете в повседневной деятельности учетку Администратора домена), то следует явно указать учетные данные для соединений с сервером:
cmdkey /add:HV-CORE-2016 /user:Администратор /pass:MyPa$$word
В особых пояснениях данная команда не нуждается, мы указали сетевой узел и учетные данные для подключения к нему. Если вы будете подключаться к нескольким серверам, то необходимо выполнить данное действие для каждого из них.
Теперь запустим консоль PowerShell от имени Администратора и выполним следующую команду:
winrm quickconfig
Утвердительно отвечаем на все вопросы, при этом будет настроен автоматический запуск службы WinRM и созданы разрешающие правила в брандмауэре.
После чего добавим наш сервер в доверенные узлы:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "HV-CORE-2016"
Если серверов несколько — добавляем в доверенные каждый из них.
Теперь через командную строку или команду Выполнить (Win + R) запустим оснастку dcomcnfg, в ней разверните дерево Службы компонентов — Компьютеры — Мой компьютер. После чего по щелчку правой кнопки мыши выберите Свойства и перейдите на закладку Безопасность COM — Права доступа — Изменить ограничения и в открывшемся окне установите для пользователя АНОНИМНЫЙ ВХОД права Удаленный доступ.
Теперь попробуем подключиться к удаленному серверу. Запустите оснастку Управление компьютером и щелкнув правой кнопкой на верхнем уровне выберите Подключиться к другому компьютеру.
После чего вы сможете управлять удаленным сервером используя привычные инструменты. Можно просмотреть журнал событий:
Управлять заданиями планировщика, дисками, службами:
Единственной недоступной оснасткой останется Диспетчер устройств, при желании его можно включить, но особого смысла в этом нет, так как он будет доступен только на чтение.
Теперь установим Диспетчер Hyper-V, для этого откроем оснастку Программы и компоненты и перейдем во Включение или отключение компонентов Windows. В открывшемся окне найдем пункт Hyper-V и отметим для установки Средства управления Hyper-V.
После чего запустим установленную оснастку и подключимся к серверу Hyper-V. В первую очередь обеспечим связь наших виртуальных машин с внешним миром, для этого перейдем в Диспетчер виртуальных коммутаторов и создадим новый коммутатор с типом Внешний и укажем для него ту сетевую карту, которая смотрит в локальную сеть. Более подробно о настройке сети в Hyper-V вы можете прочитать здесь.
Для того, чтобы установить ОС на виртуальную машину нам потребуется передать на сервер Hyper-V установочный образ, это можно легко сделать через подключение к стандартным общим ресурсам, например, набрав в адресной строке проводника:
\\HV-CORE-2016\C$
мы попадем на диск C сервера.
Мы не будем подробно рассматривать процесс создания новой виртуальной машины, но обратим внимание на некоторые моменты. Прежде всего Снимки они же Контрольные точки, это удобно для целей настройки и тестирования, но не следует использовать их в продакшене, поэтому использование снимков у рабочих виртуальных машин следует отключить (можно оставить на период настройки, но обязательно выключить перед вводом в эксплуатацию).
Также обязательно настройте поведение виртуальной машины при перезагрузке сервера. Для этого в пунктах Автоматическое действие при запуске и Автоматическое действие при завершении укажите желаемое поведение. Обратите внимание, что при выборе пункта Сохранять состояние виртуальной машины следует проверить поведение прикладного ПО в этом режиме, так как не все приложения корректно ведут себя при выходе виртуальной машины из этого режима.
Для примера мы создали новую виртуалку и без каких-либо проблем установили туда свежую Ubuntu 19.04.
Как видим, работа с Hyper-V Server 2016 не доставляет никаких сложностей, достаточно лишь один раз выполнить ряд действий по настройке сервера и клиента, в чем вам поможет данная статья.
read more at Записки IT специалиста
rss2lj
Метки: hyper-v, windows server, windows server 2016, windows server core, Виртуализация, Системному администратору
Настройка преобразования сетевых адресов (NAT) для переадресации трафика в инфраструктуре SDN с помощью VMM.
Twitter
LinkedIn
Facebook
Адрес электронной почты
-
Статья -
-
Важно!
Поддержка этой версии Virtual Machine Manager (VMM) завершена. Мы рекомендуем выполнить обновление до VMM 2022.
В этой статье описывается, как настроить преобразование сетевых адресов (NAT) для переадресации трафика в инфраструктуре программно-конфигурируемой сети (SDN), настроенной в структуре System Center Virtual Machine Manager (VMM).
NAT позволяет виртуальным машинам в изолированной виртуальной сети SDN устанавливать внешние подключения. VMM настраивает виртуальный IP-адрес (VIP) для переадресации исходящего и входящего трафика из внешней сети.
VMM поддерживает следующие два типа NAT:
- NAT для исходящего трафика — переадресовывает трафик сети виртуальных машин из виртуальной сети во внешние расположения.
- NAT для входящего трафика — переадресовывает внешний трафик в определенную виртуальную машину в виртуальной сети.
В этой статье приводятся сведения о настройке подключения NAT для виртуальных сетей SDN с помощью VMM.
VMM 2022 поддерживает два стека. Правила NAT для сетей виртуальных машин с двойным стеком не поддерживаются в консоли VMM. Правила NAT можно указать с помощью командлетов PowerShell. Дополнительные сведения см. в разделе Добавление правил к подключению NAT.
Примечание
- В VMM 2019 UR1 тип сети Одна подключенная изменен на Подключенная сеть.
- В VMM 2019 UR2 и более поздних версий поддерживается IPv6.
Перед началом работы
Убедитесь, что:
- Развернуты сетевой контроллер SDN и программная подсистема балансировки нагрузки SDN.
- Создана сеть виртуальных машин SDN с виртуализацией сети.
Создание подключения NAT
Выполните перечисленные ниже действия.
В консоли VMM выберите Виртуальные машины и сети виртуальных машин служб>. Щелкните правой кнопкой мыши выбранную сеть виртуальных машин, для которой требуется создать подключение NAT, и выберите Свойства.
Выберите Подключение на отображаемой странице мастера.
На странице Подключение выберите параметр Подключать напрямую к дополнительной логической сети, а затем выберите для него значение Преобразование сетевых адресов (NAT).
В поле Пул IP-адресов выберите пул IP-адресов, из которого должен быть выбран виртуальный IP-адрес. В поле «IP-адрес» выберите IP-адрес из выбранного пула. Щелкните ОК.
- Чтобы включить IPv6, выберите пул IPv6-адресов и укажите IPv6-адрес.
Подключение NAT будет создано для этой сети виртуальных машин.
Примечание
- Вместе с подключением NAT при этом также создается правило NAT по умолчанию для исходящего трафика, которое обеспечивает исходящие подключения в сети виртуальных машин.
- Чтобы разрешить входящие подключения и переадресовывать внешний трафик в определенную виртуальную машину, необходимо добавить правила NAT к подключению NAT.
Добавление правил к подключению NAT
VMM 2022 поддерживает два стека. Правила NAT для сетей виртуальных машин с двумя стеками не поддерживаются в консоли VMM. Правила NAT можно указать с помощью командлетов PowerShell.
$vmNetwork = Get-SCVMNetwork -ID <VMNetwork ID> $vmSubnet = Get-SCVMSubnet -Name <VMSubnet Name> | where { $_.ID -eq <VMSubnet ID> } $gatewayDevice = Get-SCNetworkGateway -ID <Gateway Device ID> $VmNetworkGateway = Add-SCVMNetworkGateway -Name "TenantDS_Gateway" -EnableBGP $false -NetworkGateway $gatewayDevice -VMNetwork $vmNetwork
Для IPv6-подключения NAT
$externalIpPoolVar = Get-SCStaticIPAddressPool -ID <VIP Pool Id> $natConnectionIPv6 = Add-SCNATConnection -VMNetwork $vmNetwork -Name "TenantDS_NatConnection_IPv6" -ExternalIPPool $externalIpPoolVar -ExternalIPAddress <IP From IPv6 VIP Pool> Add-SCNATRule -Name "NATIPv6" -Protocol "TCP" -InternalIPAddress <IP From IPv6 subnet> -ExternalPort <External Port> -NATConnection $natConnectionIPv6 -InternalPort <Internal Port>
Для IPv4-подключения NAT
$externalIpPoolVar1 = Get-SCStaticIPAddressPool -Name "PublicVIP_IPAddressPool_0" $natConnectionIPv4 = Add-SCNATConnection -VMNetwork $vmNetwork -Name "TenantDS_NatConnection_IPv4" -ExternalIPPool $externalIpPoolVar1 -ExternalIPAddress <IP From IPv4 VIP Pool> Add-SCNATRule -Name "NATIPv4" -Protocol "TCP" -InternalIPAddress <IP From IPv4 subnet>" -ExternalPort <External Port> -NATConnection $natConnectionIPv4 -InternalPort <Internal Port>
Процедура добавления правил к подключению NAT:
В консоли VMM выберите Виртуальные машины и сети виртуальных машин служб>.
Щелкните правой кнопкой мыши выбранную сеть виртуальных машин и выберите пункт Свойства.
Выберите Преобразование сетевых адресов в мастере.
В разделе Укажите правила преобразования сетевых адресов (NAT) выберите Добавить.
Укажите следующие сведения:- Имя — имя правила NAT для входящего трафика.
- Протокол — протокол входящего сетевого трафика. Поддерживаются протоколы TCP и UDP.
- Входящий порт — номер порта, который необходимо использовать вместе с виртуальным IP-адресом для доступа к виртуальной машине.
- IP-адрес назначения — IP-адрес виртуальной машины, в которую должен направляться внешний трафик.
- Порт назначения — номер порта виртуальной машины, на который должен переадресовываться внешний трафик.
Щелкните ОК.
Примечание
Для переадресации трафика в несколько виртуальных машин, относящихся к сети виртуальных машины, можно создать несколько правил NAT.
Удаление правила NAT
Выполните перечисленные ниже действия.
- В консоли VMM выберите Виртуальные машины и сети виртуальных машин служб>. Щелкните правой кнопкой мыши выбранную сеть виртуальных машин и выберите пункт Свойства.
- Выберите Преобразование сетевых адресов в мастере.
- Выберите правило NAT, которое требуется удалить, нажмите кнопку Удалить, а затем нажмите кнопку ОК.
Удаление подключения NAT
- В консоли VMM выберите Виртуальные машины и сети виртуальных машин служб>. Щелкните правой кнопкой мыши выбранную сеть виртуальных машин и выберите пункт Свойства.
- Выберите Подключение в мастере.
- Снимите флажок Подключиться непосредственно к дополнительной логической сети и нажмите кнопку ОК.
Настройка сети NAT
- Статья
Windows 10 Hyper-V позволяет использовать собственную трансляцию сетевых адресов (NAT) для виртуальной сети.
Это руководство поможет вам:
- создать сеть NAT
- подключение существующей виртуальной машины к вашей новой сети
- подтверждение правильности подключения виртуальной машины
Требования:
- Юбилейное обновление Windows 10 или более поздняя версия
- Hyper-V включен (инструкции здесь)
Примечание: В настоящее время вы ограничены одной сетью NAT на хост.
Дополнительные сведения о реализации, возможностях и ограничениях Windows NAT (WinNAT) см. в блоге возможностей и ограничений WinNAT
.
Обзор NAT
NAT предоставляет виртуальной машине доступ к сетевым ресурсам с использованием IP-адреса и порта хост-компьютера через внутренний виртуальный коммутатор Hyper-V.
Преобразование сетевых адресов (NAT) — это сетевой режим, предназначенный для сохранения IP-адресов путем сопоставления внешнего IP-адреса и порта с гораздо большим набором внутренних IP-адресов. По сути, NAT использует таблицу потоков для маршрутизации трафика с внешнего (хостового) IP-адреса и номера порта на правильный внутренний IP-адрес, связанный с конечной точкой в сети (виртуальная машина, компьютер, контейнер и т. д.)
Кроме того, NAT позволяет нескольким виртуальным машинам размещать приложения, которым требуются идентичные (внутренние) коммуникационные порты, путем сопоставления их с уникальными внешними портами.
По всем этим причинам сеть NAT очень распространена в технологии контейнеров (см. Сеть контейнеров).
Создание виртуальной сети NAT
Давайте рассмотрим настройку новой сети NAT.
Откройте консоль PowerShell от имени администратора.
Создать внутренний переключатель.
New-VMSwitch -SwitchName "SwitchName" -SwitchType Internal
Найдите индекс интерфейса только что созданного виртуального коммутатора.
Вы можете найти индекс интерфейса, запустив
Get-NetAdapter
Вывод должен выглядеть примерно так:
PS C:\> Get-NetAdapter Название Интерфейс Описание ifIndex Статус MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --- ------ vEthernet (intSwitch) Hyper-V Virtual Ethernet Adapter 24 Up 00-15-5D-00-6A-01 10 Гбит/с Wi-Fi Marvell AVASTAR Wireless-AC Net... 18 Up 98-5F-D3-34-0C-D3 300 Мбит/с Сеть Bluetooth... Устройство Bluetooth (Личный кабинет... 21 Отключено 98-5F-D3-34-0C-D4 3 Мбит/с
Внутренний коммутатор будет иметь имя
vEthernet (SwitchName)
и описание интерфейсаHyper-V Virtual Ethernet Adapter
.Обратите внимание на его
ifIndex
, чтобы использовать его на следующем шаге.Настройте шлюз NAT с помощью New-NetIPAddress.
Вот общая команда:
New-NetIPAddress -IPAddress
-PrefixLength <длина префикса подсети NAT> -InterfaceIndex Для настройки шлюза вам потребуется немного информации о вашей сети:
IP-адрес — IP-адрес шлюза NAT указывает адрес IPv4 или IPv6 для использования в качестве IP-адреса шлюза NAT.
Общая форма будет a.b.c.1 (например, 172.16.0.1). Хотя конечная позиция не обязательно должна быть .1, обычно она равна (в зависимости от длины префикса). Этот IP-адрес находится в диапазоне адресов, используемых гостевыми виртуальными машинами. Например, если гостевые виртуальные машины используют диапазон IP-адресов 172.16.0.0, вы можете использовать IP-адрес 172.16.0.100 в качестве шлюза NAT.Общий IP-адрес шлюза: 192.168.0.1
PrefixLength — Длина префикса подсети NAT определяет размер локальной подсети NAT (маску подсети).
Длина префикса подсети будет целым числом от 0 до 32.0 будет отображать весь Интернет, 32 позволит только один сопоставленный IP-адрес. Общие значения варьируются от 24 до 12 в зависимости от того, сколько IP-адресов необходимо подключить к NAT.
Общая длина PrefixLength равна 24 — это маска подсети 255.255.255.0
InterfaceIndex — ifIndex — это индекс интерфейса виртуального коммутатора, который вы определили на предыдущем шаге.
Для создания шлюза NAT выполните следующее:
New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 24
Настройте сеть NAT с помощью New-NetNat.
Вот общая команда:
New-NetNat -Name
-InternalIPInterfaceAddressPrefix <префикс подсети NAT> Чтобы настроить шлюз, вам необходимо предоставить информацию о сети и шлюзе NAT:
Имя — NATOOutsideName описывает имя сети NAT.
Вы будете использовать это, чтобы удалить сеть NAT.
InternalIPInterfaceAddressPrefix — Префикс подсети NAT описывает как префикс IP шлюза NAT, указанный выше, так и длину префикса подсети NAT, указанный выше.
Общая форма будет a.b.c.0/NAT Subnet Prefix Length
Из приведенного выше для этого примера мы будем использовать 192.168.0.0/24
В нашем примере выполните следующую команду для настройки сети NAT:
New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24
Поздравляем! Теперь у вас есть виртуальная сеть NAT! Чтобы добавить виртуальную машину в сеть NAT, следуйте этим инструкциям.
Подключение виртуальной машины
Чтобы подключить виртуальную машину к вашей новой сети NAT, подключите внутренний коммутатор, созданный на первом шаге раздела «Настройка сети NAT», к вашей виртуальной машине с помощью меню «Настройки виртуальной машины».
Поскольку WinNAT сам по себе не выделяет и не назначает IP-адреса конечной точке (например, виртуальной машине), вам нужно будет сделать это вручную из самой виртуальной машины, т. е. установить IP-адрес в пределах диапазона внутреннего префикса NAT, установить IP-адрес шлюза по умолчанию. , установите информацию о DNS-сервере. Единственное предостережение — когда конечная точка подключена к контейнеру. В этом случае Host Network Service (HNS) выделяет и использует Host Compute Service (HCS) для назначения IP-адреса, IP-адреса шлюза и информации DNS непосредственно контейнеру.
Пример конфигурации: подключение виртуальных машин и контейнеров к сети NAT
Если вам нужно подключить несколько виртуальных машин и контейнеров к одному NAT, вам необходимо убедиться, что префикс внутренней подсети NAT достаточно велик, чтобы охватить диапазоны IP-адресов, назначается различными приложениями или службами (например, Docker для Windows и Windows Container — HNS). Для этого потребуется либо назначение IP-адресов и настройка сети на уровне приложения, либо ручная настройка, которая должна выполняться администратором и гарантирует отсутствие повторного использования существующих назначений IP-адресов на том же хосте.
Docker для Windows (виртуальная машина Linux) и контейнеры Windows
Приведенное ниже решение позволит Docker для Windows (виртуальная машина Linux с контейнерами Linux) и контейнерам Windows совместно использовать один и тот же экземпляр WinNAT с использованием отдельных внутренних виртуальных коммутаторов. Связь между контейнерами Linux и Windows будет работать.
Пользователь подключил виртуальные машины к сети NAT через внутренний виртуальный коммутатор с именем «VMNAT» и теперь хочет установить функцию контейнера Windows с механизмом докера
PS C:\> Get-NetNat «VMNAT»| Remove-NetNat (это удалит NAT, но сохранит внутренний vSwitch). Установить функцию контейнера Windows НЕ ЗАПУСКАТЬ службу Docker (демон) Отредактируйте аргументы, передаваемые демону docker (dockerd), добавив параметр –fixed-cidr=<префикс контейнера>. Это говорит докеру создать сеть nat по умолчанию с IP-подсетью <префикс контейнера> (например, 192.168.1.0/24), чтобы HNS мог выделять IP-адреса из этого префикса.PS C:\> Пуск-Сервис Docker; Докер остановки службы PS C:\> Get-NetNat | Remove-NetNAT (опять же, это удалит NAT, но сохранит внутренний vSwitch) PS C:\> New-NetNat -Name SharedNAT -InternalIPInterfaceAddressPrefix <общий префикс> PS C:\> Докер Start-Service
Docker/HNS назначит IP-адреса контейнерам Windows, а администратор назначит IP-адреса виртуальным машинам из разностного набора двух.
Пользователь установил функцию контейнера Windows с работающим механизмом докера и теперь хочет подключить виртуальные машины к сети NAT
PS C:\> Stop-Service docker PS C:\> Get-ContainerNetwork | Remove-ContainerNetwork-force PS C:\> Get-NetNat | Remove-NetNat (это удалит NAT, но сохранит внутренний vSwitch) Отредактируйте аргументы, переданные демону докеров (dockerd), добавив параметр -b «none» в конец команды демона докеров (dockerd), чтобы указать докеру не создавать сеть NAT по умолчанию. PS C:\> New-ContainerNetwork –name nat –Mode NAT –subnetprefix <префикс контейнера> (создайте новый NAT и внутренний vSwitch – HNS будет выделять IP-адреса конечным точкам контейнера, подключенным к этой сети, из <префикса контейнера>) PS C:\> Get-Netnat | Remove-NetNAT (опять же, это удалит NAT, но сохранит внутренний vSwitch) PS C:\> New-NetNat -Name SharedNAT -InternalIPInterfaceAddressPrefix <общий префикс> PS C:\> New-VirtualSwitch -Type internal (присоединить виртуальные машины к этому новому vSwitch) PS C:\> Докер Start-Service
Docker/HNS назначит IP-адреса контейнерам Windows, а администратор назначит IP-адреса виртуальным машинам из разностного набора двух.
В итоге у вас должно быть два внутренних коммутатора ВМ и один общий NetNat между ними.
Несколько приложений, использующих один и тот же NAT
В некоторых сценариях требуется, чтобы несколько приложений или служб использовали один и тот же NAT. В этом случае необходимо следовать следующему рабочему процессу, чтобы несколько приложений / служб могли использовать больший префикс внутренней подсети NAT 9.0013
В качестве примера мы подробно рассмотрим виртуальную машину Docker 4 Windows — Docker Beta — Linux, сосуществующую с функцией контейнера Windows на одном хосте. Этот рабочий процесс может быть изменен
C:> net stop docker
Остановить Docker4Windows MobyLinux VM
PS C:> Get-ContainerNetwork | Remove-ContainerNetwork-force
PS C:> Get-NetNat | Remove-NetNat
Удаляет все ранее существовавшие контейнерные сети (т. е. удаляет vSwitch, удаляет NetNat, очищает)New-ContainerNetwork -Name nat -Mode NAT – префикс подсети 10.
0.76.0/24 (эта подсеть будет использоваться для функции контейнеров Windows)
Создает внутренний vSwitch с именем nat
Создает сеть NAT с именем «nat» с префиксом IP 10.0.76.0/24Remove-NetNAT
Удаляет сети DockerNAT и nat NAT (сохраняет внутренние vSwitch)New-NetNat -Name DockerNAT -InternalIPInterfaceAddressPrefix 10.0.0.0/17 (это создаст большую сеть NAT для совместного использования D4W и контейнеров)
Создает сеть NAT с именем DockerNAT с большим префиксом 10.0.0.0/17Запустить Docker4Windows (MobyLinux.ps1)
Создает внутренний vSwitch DockerNAT
Создает сеть NAT с именем «DockerNAT» с префиксом IP 10.0.75.0/24Docker Net start
Docker будет использовать определяемую пользователем сеть NAT по умолчанию для подключения контейнеров Windows
В итоге у вас должно быть два внутренних виртуальных коммутатора — один с именем DockerNAT, а другой с именем nat. У вас будет только одна сеть NAT (10.0.0.0/17), подтвержденная запуском Get-NetNat. IP-адреса для контейнеров Windows будут назначаться службой хост-сети Windows (HNS) из подсети 10.0.76.0/24. На основе существующего скрипта MobyLinux.ps1 IP-адреса для Docker 4 Windows будут назначаться из подсети 10.0.75.0/24.
Устранение неполадок
Несколько сетей NAT не поддерживаются
В этом руководстве предполагается, что на хосте нет других NAT. Однако приложения или службы потребуют использования NAT и могут создать его как часть установки. Поскольку Windows (WinNAT) поддерживает только один внутренний префикс подсети NAT, попытка создать несколько NAT переведет систему в неизвестное состояние.
Чтобы узнать, может ли это быть проблемой, убедитесь, что у вас есть только один NAT:
Get-NetNat
Если NAT уже существует, удалите его
Get-NetNat | Remove-NetNat
Убедитесь, что у вас есть только один «внутренний» vmSwitch для приложения или функции (например, контейнеры Windows). Запишите имя vSwitch
Get-VMSwitch
Проверьте, есть ли частные IP-адреса (например, IP-адрес шлюза NAT по умолчанию — обычно x . y . z .1) из старого NAT, все еще назначенные адаптеру
Get-NetIPAddress -InterfaceAlias "vEthernet (<имя виртуального коммутатора>)"
Если используется старый частный IP-адрес, удалите его
Remove-NetIPAddress -InterfaceAlias "vEthernet (<имя виртуального коммутатора>)" -IPAddress
Удаление нескольких NAT
Мы видели сообщения о нескольких сетях NAT, созданных непреднамеренно. Это связано с ошибкой в последних сборках (включая сборки Windows Server 2016 Technical Preview 5 и Windows 10 Insider Preview). Если вы видите несколько сетей NAT, после запуска docker network ls или Get-ContainerNetwork выполните следующие действия из PowerShell с повышенными правами:
$keys = Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Services\vmsmp\parameters\SwitchList" foreach ($ ключ в $ ключах) { если ($key.GetValue("FriendlyName") -eq 'nat') { $newKeyPath = $KeyPath+"\"+$key.PSChildName Remove-Item -Path $newKeyPath -Recurse } } Удалить-NetNat-Подтвердить: $false Get-ContainerNetwork | Remove-ContainerNetwork Get-VmSwitch -Name физ | Remove-VmSwitch # ожидается сбой Докер Stop-Service Докер Set-Service - StartupType отключен
Перезагрузите операционную систему перед выполнением последующих команд ( Перезагрузить компьютер
)
Get-NetNat | Remove-NetNat Докер Set-Service -StartupType Automatic Докер Start-Service
См. это руководство по установке для нескольких приложений, использующих один и тот же NAT, чтобы при необходимости перестроить среду NAT.
Ссылки
Подробнее о сетях NAT
Моя пошаговая настройка DirectAccess в Windows Server 2012 R2.
Windows Server DirectAccess — замечательная и интересная функция. Это служба роли Windows Server, которая позволяет компьютерам, присоединенным к домену Windows, постоянно и беспрепятственно подключаться к корпоративной инфраструктуре, безопасно через Интернет без необходимости использования традиционной виртуальной частной сети (VPN). Инфраструктура DirectAccess состоит из множества движущихся частей. Любая дисфункция или неправильная конфигурация в одном из его компонентов может остановить и нарушить все развертывание DirectAccess. Некоторые ключевые моменты:
а) Это значительно упрощает процесс реализации групповой политики истечения срока действия пароля и изменения групповой политики для удаленных пользователей.
b) Это устраняет необходимость в инициируемых конечным пользователем VPN (или других) подключениях. (что делает работу конечного пользователя еще проще)
c) Администраторы службы поддержки могут более легко решать проблемы с билетами удаленных пользователей (Управление возможностями).
d) Безопасное и беспрепятственное расширение моей ИТ-инфраструктуры. Инфраструктурная среда через Интернет. IPSec и HTTPS (сертификат SSL) шифруют трафик между клиентом и сервером DirectAccess для предотвращения перехвата. Кроме того, брандмауэр Windows должен быть включен сквозным образом, прежде чем можно будет установить успешное подключение DirectAccess.
e) DirectAccess использует IPv6. Начиная с Windows Server 2012 DirectAccess теперь можно настроить за брандмауэром, используя NAT (преобразование сетевых адресов) с одной сетевой картой. Для этой модели развертывания требуется технология перехода IP-HTTPS.
В следующих разделах описаны шаги по настройке и развертыванию.
1) Создание виртуальной машины Windows Server 2012 R2:
Начните с подготовки виртуальной машины Server 2012 R2 на узле Hyper-V (подойдет любой узел гипервизора). Виртуальная машина настроена с возможностью использования одного сетевого адаптера. Присоедините сервер к домену и настройте для него статический IP-адрес, соответствующий вашей внутренней подсети. Загрузите и установите обновления операционной системы. Позже этот компьютер будет настроен как сервер прямого доступа.
2) Настройте внешнюю запись DNS:
Создайте общедоступную запись DNS у своего поставщика DNS или на общедоступном DNS-сервере. В моем случае я создал da.labcompany. com. Эта DNS-запись будет позже настроена на корпоративном брандмауэре так, чтобы она указывала на сервер DirectAccess.
3) Настройка правил брандмауэра для DirectAccess:
Службе DirectAccess в первую очередь требуется настроить порт 443 на брандмауэре периметра. Настройте политику NAT и правило доступа брандмауэра для порта 443, чтобы они указывали на IP-адрес внутренней виртуальной машины DirectAccess.
4) Подготовьтесь к требованиям сертификата и установите сертификат на сервер DirectAccess:
Модель безопасности DirectAccess сильно зависит от служб сертификатов. Я начал с попытки развернуть службы сертификатов Active Directory и настроить точки распространения CRL (Certificate Revocation List). Это сложный процесс, о котором я надеюсь вскоре написать в блоге. Но для этого поста я использовал общедоступный SSL-сертификат с подстановочными знаками, полученный от Godaddy. Убедитесь, что имя субъекта сертификата соответствует полному доменному имени записи DNS на шаге 2 выше «da. labcompany.com». Мой подстановочный ssl-сертификат — «*.labcompany.com». Загрузите сертификат и импортируйте его в личное хранилище сертификатов сервера DirectAccess с помощью консоли Certificates mmc. Рекомендуется использовать сертификат, выданный общедоступным ЦС, таким как Godaddy. Это избавляет вас от долгой и сложной задачи настройки внутренней точки распространения списка отзыва сертификатов для доступа из Интернета.
5) Создать группу безопасности Active Directory:
Служба роли DirectAccess дает возможность включить DirectAccess для всех мобильных компьютеров, присоединенных к домену, или для подмножества мобильных компьютеров, определенных в группе Active Directory. Я создал группу безопасности Active Directory для всех мобильных компьютеров, которые будут лицензированы для DirectAccess. На следующем снимке экрана я использовал PowerShell для создания группы AD «DirectAccessComputers». Первый скрипт использовал параметр «-WhatIf», чтобы подтвердить правильность синтаксиса:
Используйте следующий командлет, чтобы добавить один или несколько компьютеров (несколько объектов компьютеров должны быть разделены запятыми) в группу безопасности Active Directory:
Add-ADGroupMember -Identity DirectAccessComputers -Members "CN=W10LAPTOP,OU= IT,OU=Hardware,DC=labcompany,DC=net"
6) Проверка требований к операционной системе клиента Windows:
DirectAccess включен только в корпоративных версиях клиентских операционных систем Windows. Windows 7 Корпоративная и Максимальная, Windows 8.1 Корпоративная и Windows 10 Корпоративная. В моей среде мы находимся в процессе развертывания Windows 10 для всех клиентов. По этой причине моя конфигурация DirectAccess ориентирована на клиентов Windows 10 Enterprise. Это избавляет от необходимости настраивать сертификаты проверки подлинности рабочей станции для клиентов Windows 7 Enterprise.
7) Установка и настройка DirectAccess:
Установите службу роли DirectAccess, запустив Диспетчер серверов, щелкнув вкладку «Управление» и выбрав команду «Добавить роли и компоненты». Нажмите следующие три раза на странице «Мастер добавления ролей и компонентов», пока не перейдете на страницу «Выбор ролей сервера» и установите флажок «Удаленный доступ»:
Нажмите следующие три раза и выберите «DirectAccess and VPN (RAS)». ” на странице «Выбрать службы ролей»:
Нажмите, чтобы добавить функции, и продолжайте нажимать «Установить», чтобы установить службу роли DirectAccess. После установки перезапуск не требуется. Откройте консоль управления удаленным доступом на вкладке «Инструменты» в диспетчере серверов, чтобы начать настройку DirectAccess.
В консоли управления удаленным доступом выберите службу ролей DirectAccess и VPN и нажмите «Запустить мастер настройки удаленного доступа».
На странице «Настройка удаленного доступа» выберите Развернуть только DirectAccess:
a) После проверки предварительных требований на странице «Настройка» щелкните «Настроить» в задаче «Шаг 1», чтобы настроить параметры удаленного клиента. На странице «Настройка клиента DirectAccess» выберите «Развернуть полный DirectAccess для клиентского доступа и удаленного управления». Нажмите «Далее.
На странице «Выбор групп» я выбрал «Не включать DirectAccess только для мобильных компьютеров», поскольку хочу контролировать, на каких устройствах включен DirectAccess. Я также решил не включать «форсированное туннелирование». Используйте кнопку «Добавить», чтобы добавить группу Active Directory для компьютеров, для которых будет включен DirectAccess. Эта группа была создана и заполнена на шаге 6 выше. Нажмите далее:
На странице «Помощник по подключению к сети» введите адрес электронной почты службы поддержки и при необходимости переименуйте имя подключения DirectAccess. Выберите параметр «Разрешить клиентам DirectAccess использовать локальное разрешение имен». В таблице добавьте ресурс, который будет использоваться для определения подключения к внутренней сети. Веб-зонд по умолчанию создается автоматически, если не настроен другой ресурс. Вы можете настроить эту задачу с полным доменным именем ресурса домена, к которому можно получить доступ через ping или порт 80 http. Я оставил таблицу пустой, чтобы позволить DirectAccess настроить веб-зонд по умолчанию на сервере DirectAccess. Нажмите «Готово».
b) Нажмите «Настроить» в шаге 2 задачи «Сервер удаленного доступа». На странице «Топология сети» введите имя общедоступного полного доменного имени сервера DirectAccess, настроенного на шаге 2 выше (это имя соответствует имени субъекта сертификата IP-HTTPS на шаге 2 выше). В своей среде я выбрал топологию развертывания «За пограничным устройством (с одним сетевым адаптером)». Нажмите «Далее»:
c) На странице «Сетевой адаптер» подтвердите сведения об адаптере Ethernet на сервере DirectAccess. Используйте кнопку Обзор, чтобы выбрать сертификат IP-HTTPS, установленный на шаге 4 выше. Нажмите далее:
d) На странице «Аутентификация» выберите использование «Учетных данных Active Directory» для аутентификации пользователя. Мне не нужно включать DirectAccess на клиентах Windows 7, так как мои клиенты работают под управлением Windows 10 Enterprise. В настоящее время мне не нужно обеспечивать соблюдение NAP. Нажмите «Готово».
e) Нажмите «Настроить» в задаче «Сервер инфраструктуры» для шага 3. На странице «Сервер сетевого расположения» я выбрал использование сервера удаленного доступа в качестве сервера сетевого расположения и выбрал вариант использования самозаверяющего сертификата. Сеть Сервер местоположения используется клиентами DirectAccess, чтобы определить, находятся ли они внутри корпоративной сети или за ее пределами. В зависимости от доступности NLS клиент DirectAccess решает, следует ли ему пытаться установить подключение DirectAccess к конечным точкам туннеля, указанным в конфигурации DirectAccess. Если клиент DirectAccess может подключиться к NLS, предполагается, что он находится внутри корпоративной сети и не устанавливает подключение DirectAccess. Если он не может подключиться к NLS, клиент DirectAccess предполагает, что он находится за пределами корпоративной сети, и пытается установить подключение DirectAccess. По этой причине важно, чтобы NLS был исключен из таблицы политик разрешения имен (NRPT), а его имя хоста разрешалось только во внутренней сети. Имя хоста NLS никогда не следует настраивать в общедоступном DNS. Кроме того, NLS не должен быть доступен через общедоступный Интернет. Нажмите далее:
f) На странице DNS мастер DirectAccess автоматически заполняет «Таблицу политики разрешения имен» (Nrpt) суффиксом вашего внутреннего домена DNS и IPv4-адресом сервера DirectAccess. Он также создает внутреннюю DNS-запись DirectAccess-NLS по умолчанию, как показано на следующем снимке экрана:
Однако после первоначальной настройки DirectAccess я заметил, что состояние операций для DNS было указано как Критическое. После некоторых исследований я нашел решение этой ошибки. Адрес IPv4 DNS-сервера, указанный в таблице, — это адрес, присвоенный внутреннему сетевому интерфейсу сервера DirectAccess. Но этот адрес должен быть адресом IPv6, а не адресом IPv4. Чтобы решить эту проблему, щелкните правой кнопкой мыши текущий суффикс DNS и выберите «Удалить», чтобы удалить текущий суффикс DNS и конфигурацию IPv4:
Щелкните правой кнопкой мыши пустое поле и выберите «Создать», чтобы создать новую запись DNS-сервера,
На странице «Адреса DNS-серверов» введите DNS-суффикс имени вашей внутренней сети и нажмите «Обнаружить», затем нажмите подтвердить. Адрес IPv6 будет добавлен автоматически. Нажмите «Применить», чтобы продолжить. Это IPv6-адрес службы DNS64, запущенной на сервере DirectAccess, и именно так следует настроить DNS-сервер для правильной работы DirectAccess.
Для параметра разрешения локального имени выберите рекомендуемый «Использовать разрешение локального имени, если имя не существует в DNS или DNS-серверы недоступны, когда клиентский компьютер находится в частной сети» и нажмите «Далее».
g) Страницу «Список поиска суффиксов DNS» можно оставить без изменений с конфигурацией суффикса DNS по умолчанию и нажать «Далее»:
h) На странице управления добавить полное доменное имя любого доступного SCOM 2012R2 или SCCM 2012 R2 машины в вашей сети. DirectAccess может автоматически определять любые серверы управления в вашей сети и автоматически заполнять это поле после первоначальной настройки. Нажмите «Готово»:
Нажмите «Готово» на странице «Настройка удаленного доступа», сохраните копию настроек на рабочем столе для последующего просмотра и нажмите «Применить».
Мастер автоматически создает 2 ключевые политики GPO: настройки сервера DirectAccess и настройки клиента DirectAccess. Перезагрузите сервер после применения настроек. В развертывании с удаленным доступом настройка серверов приложений является необязательной задачей, поэтому я решил проигнорировать задачи на этом шаге. Страница состояния операций должна выглядеть так, как показано на снимке экрана после завершения всех задач. О любых ошибках будет сообщено на этой странице:
Перед успешным тестированием развертывания DirectAccess обязательным условием является правильная настройка конфигурации брандмауэра на сервере и клиенте. Я создал две групповые политики брандмауэра:
1) «Брандмауэр-Настройки-DirectAccess-Server» связан с OU сервера DirectAccess, и фильтрация безопасности была применена конкретно к серверу DirectAccess.
2) «Брандмауэр-Настройки-DirectAccess-Клиенты» связан с подразделением «Клиенты DirectAccess». Фильтрация безопасности была применена к группе безопасности Active Directory DirectAccessComputers.
В каждой из групповых политик необходимо включить профили доменного, частного и общедоступного брандмауэра, а для входящих и исходящих подключений установить значение «Разрешено» в соответствии с установленными вами правилами. Правила DirectAccess уже были автоматически созданы на сервере на основе автоматически сгенерированных во время настройки DirectAccess. Ниже приведены снимки экрана с настройками объекта групповой политики:
Я бы добавил, что групповые политики брандмауэра должны быть правильно настроены для успешного подключения DirectAccess. Кроме того, необходимо правильно настроить групповые политики брандмауэра домена, чтобы в консоли «Статус удаленного клиента» на сервере DirectAccess отображалось текущее состояние всех подключенных клиентов IPHTTPS. По моему опыту, настройки объекта групповой политики брандмауэра не следует путать с настройками брандмауэра в хранилище локальных компьютеров как клиентов, так и сервера. Доступ к настройкам локального магазина и их редактирование можно получить с помощью:
1) Netsh advfirewall показать
и Netsh advfirewall установить
cmds.
2) Командлеты Get-NetFirewallProfile
и Set-NetFirewallProfile
.
Хотя успешные подключения DirectAccess могут быть установлены, если параметры локального хранилища брандмауэра на клиенте и сервере совпадают, статус «Подключенные клиенты» не будет отображаться в консоли «Статус удаленного клиента». Только после настройки групповых политик брандмауэра, как описано выше, я смог получить отчет о соединениях IPHTTPS. Следующий сценарий PowerShell будет отображать исторические данные для ConnectionType DirectAccess за последний день:
Get-RemoteAccessConnectionStatistics -StartDateTime (Get-Date).AddDays(-2) -EndDateTime (Get-Date) | ?{$_.ConnectionType -eq 'DirectAccess'}|ft ClientIPAddress, UserName, ConnectionDuration, ConnectionType, ConnectionStartTime
Вы можете протестировать развертывание с помощью клиента Windows 10 Enterprise DirectAccess. Отключитесь от внутренней сети и подключитесь к внешней сети по Wi-Fi или любым доступным способом. В клиенте на вкладке DirectAccess отображается состояние успешного подключения:
Командлет PowerShell Get-DAConnectionStatus
показывает состояние успешного подключения:
DirectAccess (DA) и VPN-подключения и статистика исторических подключений DA и VPN за указанный период времени. Ниже приведен снимок экрана с результатом командлета:
Я могу успешно проверить внутренние сетевые ресурсы. Поскольку DirectAccess в основном работает с IPv6, ping возвращает IPv6-адреса внутренних сетевых ресурсов. Для работы DirectAccess на клиентах должен быть включен IPv6. Я быстро добавлю, что DirectAccess использует технологию перехода IP-HTTPS IPv6, чтобы позволить ему работать в средах IPv4:
Командлет Get-DAClientExperienceConfiguration
возвращает конфигурацию взаимодействия с клиентом DirectAccess:
Вот так:
Нравится Загрузка…
Эта запись была опубликована в DirectAccess, Powershell 4.0, удаленный доступ, Windows Server 2012 R2 и помеченный сертификат, DirectAccess, DNS64, профили брандмауэра, групповая политика, технология перехода IP-HTTPS, IPv6, локальное хранилище, NCA, Netsh advfirewall, сервер сетевого расположения, NLS, Nrpt, PowerShell 5.0, удаленный доступ, SSL, Windows 10 Корпоративная, Брандмауэр Windows.