Nat windows server 2019 задержка 3 5 секунда перед открытием сайта

Обновлено: 04.07.2024

Постановка задачи

Я хочу вас научить производить настройку статического IP адреса, маски, шлюза и DNS серверов на вашем сетевом интерфейсе, разными методами, локально и удаленно. Ситуаций может быть очень много. Лично я являюсь приверженцем того, что любой сервер должен иметь выделенный, статический ip-адрес исключительно под него, тут можно долго спорить, что можно делать резервирование на DHCP, через который потом можно быстрее менять настройки, но я придерживаюсь такой политики, так как из отказоустойчивый DHCP может ломаться, если вы можете меня переубедить в моем видении, то прошу в комментарии.

Методы настройки сети в Windows Server 2019

Существует ряд методов и инструментов позволяющих производить настройки вашего сетевого интерфейса, их можно разделить на два подхода:

  1. Локальная настройка сетевых параметров
  2. Удаленная настройка сетевыми параметрами

Среди инструментов можно выделить:

  1. Свойства сетевого интерфейса
  2. Утилита командной строки netsh
  3. Командлеты powerShell
  4. Использование Windows Admin Center
  5. Различные утилиты

Настройка сети через графический интерфейс

Первый метод, можно назвать классическим, так как он самый простой и подойдет для большинства администратором. Тут мы с вами будем использовать оснастку "Центр управления сетями и общим доступом", настроим статический IP-адрес, маску сети, основной шлюз и DNS-сервера через графический интерфейс. У меня есть сервер RDCB01, для которого я выделил IP-адрес 192.168.31.10. На текущий момент айпишник прилетает от DHCP-сервера. Проверим текущие параметры интерфейса через командную строку, в которой нужно написать команду:

ipconfig смотрим текущий ip адрес

Чтобы открыть "Центр управления сетями и общим доступом" со списком сетевых интерфейсов, мы воспользуемся быстрыми командами Windows. Открываем окно выполнить и пишем в нем:

Открываем Центр управления сетями и общим доступом

Находим нужный сетевой интерфейс, в моем примере, это единственный Ethernet0 и заходим в его свойства.

Просмотр свойств сетевого интерфейса

Далее находим пункт "IP версии 4 (TCP/Ipv4)"и открываем его свойства, далее мы видим, что выделение сетевых настроек производится в автоматическом режиме, через службу DHCP.

Настройка сети в Windows Server 2019

Чтобы вбить статические настройки выбираем пункт "Использовать следующий IP-адрес" и по порядку задаем настройки, подготовленные заранее. В моем случае

  • IP-адрес 192.168.31.10
  • Маска подсети 255.255.255.0
  • Основной шлюз 192.168.31.254
  • Предпочитаемый DNS-сервер 192.168.31.1
  • Альтернативный DNS-сервер 192.168.31.2

Настройка статического ip-адреса в Windows Server 2019

Сохраняем все настройки и проверяем через Ipconfig /all, что все видится. Так же можете попробовать пропинговать ваш основной шлюз или DNS-сервер. На этом графическая настройка сети в Windows Server 2019 окончена.

Настройка сети в Windows Server 2019

Настройка сети через Windows Admin Center

С выходом Windows Server 2019 Microsoft наконец-то создает правильный инструмент для системного администратора, я говорю, о Windows Admin Center. Я вам уже подробно рассказывал, как устанавливать Windows Admin Center и его назначение. Если в двух словах, то это крутая веб консоль позволяющая управлять серверами и рабочими станциями с любого устройства, через ваш браузер. Давайте я покажу, как вы легко можете произвести установку статического Ip-адреса, маски, основного шлюза и DNS на удаленном сервере, через WAC. Напоминаю, что делать я это буду для сервера RDCB01. Давайте его пропингуем и выясним текущий адрес. Я вижу ip-адрес 192.168.31.56.

Открываем в браузере Windows Admin Center и производим подключение к нужному серверу.

Просмотр IP-адреса в Windows Admin Center

Далее находим раздел "Сеть", тут у вас будет список всех ваших сетевых интерфейсов. Выбираем нужный, тут чем хорошо вы сразу видите много сводной информации в нижней части.

Сетевые интерфейсы в Windows Admin Center

Для настройки сети нажмите кнопку "Параметры". Как видим стоит автоматическое получение настроек.

Настройка сети в Windows Server 2019 через Windows Admin Center

Активируем пункт "Использовать следующий IP-адрес" и задаем нужные сетевые настройки, после чего сохраняем изменения.

Настройка статического ip-адреса в Windows Server 2019 через Windows Admin Center

Подтверждаем применение настроек.

Подтверждение обновления настроек ipv4 в Windows Admin Center

В правом верхнем углу вам покажут, что началось задание по обновлению.

Удаленная Настройка сети в Windows Server 2019

Проверяем, перед этим единственное нужно очистить кэш-DNS. В итоге я вижу, что сервер пингуется по новому адресу.

Настройка сети в Windows Server 2019

В итоге удаленная настройка сети на сервере Windows Server 2019 выполнена.

Настройка сети Windows Server 2019 через командную строку

Второй метод заключается в использовании утилиты командной строки netsh. На практике, это используется в скриптах, или при настройке Windows Server в режиме Core. Я опять переведу свои настройки на получение адреса от DHCP сервера. DHCP присвоил мне адрес 192.168.31.56.

Просмотр сетевых настроек через командную строку

Для того, чтобы настроить статический IP-адрес через утилиту Netsh, вам нужно знать правильное имя сетевого адаптера, он легко смотрится при выводе команды Ipconfig /all. В моем примере, это Ethernet0.

netsh interface ip set address "Ethernet0" static 192.168.31.10 255.255.255.0 192.168.31.254
  • 192.168.31.10 - это мой статический Ip-адрес
  • 255.255.255.0 - это моя маска подсети
  • 192.168.31.254 - это мой основной шлюз

Настройка сети в Windows Server 2019 через netsh

Видим, что команда успешно отработала, можно сразу проверить применение настроек сети через ipconfig. Теперь выполним настройку основного и альтернативного DNS.

netsh interface ipv4 set dnsservers Ethernet0 static 192.168.31.1 primary

Настройка основного DNS через netsh

Прописываем альтернативный DNS адрес

netsh interface ipv4 add dnsservers Ethernet0 192.168.31.2 index=2

Настройка альтернативного DNS сервера через netsh

В итоге как видим у нас появился второй адрес DNS сервера на нашем сетевом интерфейсе. Настройка выполнена.

Если вам нужно вернуть сетевые настройки на получение адреса от DHCP сервера, то введите команду:

netsh interface ipv4 set dnsservers Ethernet0 dhcp && netsh interface ip set address Ethernet0 dhcp

netsh автоматическое получение настроек на сетевом интерфейсе

Настройка сети через PowerShell

Чтобы настроить статический адрес на сетевом интерфейсе с помощью командлетов, вам необходимо открыть от имени администратора оболочку PowerShell.

Определение ip адреса через PowerShell

Прежде чем мы начнем настройку сети через PowerShell в нашей Windows Server 2019, нам как и в случае с netsh, нужно выяснить имя сетевого интерфейса. Для этого вводим команду:

В результате я вижу имя интерфейса Ethernet0.

Get-NetAdapter Windows Server 2019

Пишем команду, где обратите внимание префикс сети 255.255.255.0 задается в виде -PrefixLength 24. На выходе вы сразу увидите примененные настройки.

Get-NetAdapter -Name Ethernet0 | New-NetIPAddress -IPAddress 192.168.31.10 -PrefixLength 24 -DefaultGateway 192.168.31.254

Настройка сети в Windows Server 2019 через PowerShell

Зададим теперь оба DNS-сервера через команду

Get-NetAdapter -Name Ethernet0 | Set -DnsClientServerAddress -ServerAddresses 192.168.31.1, 192.168.31.2

Посмотрим текущие сетевые настройки через команду:

Настройка DNS на сетевом интерфейсе в Windows Server 2019

Как видите все сетевые настройки в моем Windows Server 2019 успешно применены.

Удаленная настройка сети

Выше я уже показал вам метод удаленной настройки сети через Windows Admin Center, но существует и еще несколько методов, которые мне были полезны в моей практике. Первое, это использование все того же PowerShell. И так у меня есть компьютер W10-cl01 с Windos 10 и предположим хочу с него настроить сеть на сервере RDCB01.

Хочу отметить, что для этого метода у вас должно быть настроено использование WinRM (Службы удаленного управления Windows)

Открываем PowerShell, командой hostname я показываю, что сижу на компьютере W10-cl01. Далее для удаленного подключения вводим команду:

Я успешно подключился, теперь повторно введя команду hostname, я вижу, что сижу на компьютере RDCB01, и можно вводить команды описанные выше.

Удаленное подключение через PowerShell

Второй метод удаленной настройки сети на Windows Server 2019, это использование утилиты PsExec.exe, я,о ее настройке и установке рассказывал в статье "Включить RDP Windows удаленно и локально".

Начнется запуск службы на удаленном сервере.

Удаленная настройка сети в Windows Server 2019

Введя все ту же команду hostname я вижу, что подключен к удаленному серверу RDCB01, при желании вы можете использовать для настройки сети netsh или PowerShell, что нравится больше.

Удаленная настройка сети в Windows Server 2019-2

Популярные Похожие записи:

3 Responses to Настройка сети в Windows Server 2019, за минуту

Все зависит как построена у вас топология. Классический вариант, что у сетевой карты 1 сетевой адаптер и интернет идет по нему. Если серверу нужен выделенный IP-адрес и нет оборудования проксирования, то задействуется второй сетевой адаптер. Если у вас три может есть необходимость иметь какую-то защищенную сеть или другой VLAN, если нет то можно сделать тиминг.

Иван, день добрый! У меня есть сеть из 4 компьютеров один из них сервер на котором 3 сетевые карты. Мне нужно чтобы компьютеры были в домене и получали доступ в интернет. И я имел удаленный доступ к серверу.

date

01.09.2021

directory

Hyper-V, PowerShell, Windows Server 2016, Windows Server 2019

comments

комментариев 11

Несколько раз встречался с тем, что скорость копирования файлов по сети с/на виртуальные машины на Hyper-V в Windows Server 2019 намного ниже, чем в ВМ аналогичной конфигурации на хосте с Windows Server 2016. В некоторых тестах скорость записи/чтения данных по сети на ВМ в Windows Server 2019 почти в три раза ниже, чем в WS2016 (тестировалось копирование по SMB, SSH/SCP). Эта статья не претендует на абсолютную истину, но в ней я попытался собрать различные методики улучшения производительности сети в виртуальных машинах Hyper-V на Windows Server 2019 (и последних билдах Windows 10).

Receive Segment Coalescing в Hyper-V 2019

В первую очередь нужно вспомнить про технологии Receive Segment Coalescing (RSC), которая появилась в Hyper-V на Windows Server 2019/2022 (и в Windows 10 начиная с билда 1809). Receive Segment Coalescing используется на уровне виртуального коммутатора (vSwitch), позволяет снизить нагрузку на CPU и увеличить пропускную способность сети за счет объединения нескольких TCP сегментов в меньшее количество более крупных сегментов. Увеличение производительности сети достигается за счет того, что несколько больших сегментов обрабатывают быстрее множества мелких.

В предыдущих версиях Hyper-V на Windows Server 2016/2012R2 поддерживалась только аппаратная версия Receive Segment Coalescing на уровне сетевой карты.

Наличие включенной поддержки RSC часто бывает источником дополнительной сетевой задержки в некоторых комбинациях железа.

Проблема проявляется как в полноценной Windows Server 2019 с графическим интерфейсом, так и в бесплатной редакции Windows Hyper-V Server.

По умолчанию в Windows Server 2019 RSC включен для всех внешних (External) vSwitches.

Проверить, включен ли RSC для виртуальных коммутаторов можно командой:

Get-VMSwitch | Select-Object *RSC*

Можно запретить использовать RSC для IPv4 трафика на уровне клиентского сетевого адаптера:

Disable-NetAdapterRsc -Name "Ethernet" -IPv4

Проверьте, увеличится ли скорость копирования в ВМ на Hyper-V при отключении RSC. Если скорость сети увеличилась, можно отключить RSC на виртуальном коммутаторе, к которому подключена ВМ.

Пропускную способность сети можно замерить с помощью утилиты iperf.

Чтобы отключить программный RSC для определенного виртуального коммутатора, выполните команду:

Set-VMSwitch -Name vSwitchName -EnableSoftwareRsc $false

отключить EnableSoftwareRsc в параметрах виртуального коммутатора в Hyper-V Windows Server 2019

Включить/отключить RSC можно на лету, это не повлияет на активные подключения.

Либо можно полностью отключить RSC на хосте:

netsh int tcp set global rsc=disabled

Режим VMQ в драйвере сетевого адаптера

В некоторых случаях наличие включенной опции VMQ (Virtual Machine Queue) в драйвере сетевого адаптера физического хоста Hyper-V может привести к плохой производительности сети в виртуальных машинах Hyper-V. Связано это с тем, что VMQ это аппаратная функция, и, если она не поддерживается железом, но включена в драйвере это вызывает потерю пакетов и увеличивает сетевую задержку. Эта проблема характерна для сетевых карточек Broadcom Gigabit и встречается во всех версиях Hyper-V на Windows 2012 R2/2016/2019.

VMQ предназначен для повышения производительности сети за счет передачи пакетов от физического сетевого адаптера напрямую виртуальным машинам.

Вы можете отключить VMQ в свойствах драйвера сетевого адаптера.

Virtual Machine Queue в свойствах драйвера сетевой карты broadcom

Либо вы можете вывести список сетевых адаптеров с поддержкой VMQ и их статус с помощью PowerShell:

Чтобы отключить VMQ для определенного адаптера, выполните команду (сетевой адаптер будет недоступен в течении пары секунд):

Set-NetAdapterVmq -Name “NICName” -Enabled $False

Get-NetAdapterVmq отключить VMQ (Virtual Machine Queue) для сетевых адаптеров

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

Оптимизация параметров протокола TCP для Windows Server 2019 Hyper-V

Сохраните текущие настройки TCP на хосте Hyper-V и примените новые настройки, которые сделают настройки протокола TCP в Windows Server 2019 максимально похожими на Windows Server 2016.

Сохраните текущие настройки:

Get-NetTCPSetting -SettingName Datacenter,DatacenterCustom,InternetCustom,Internet|select SettingName,CongestionProvider,CwndRestart,ForceWS|Export-csv c:\ps\nettcp_backup.csv

Новые настройки Get-NetTCPSetting в Windows Server 2019

Следующие настройки нужно применять только на Windows Server 2019 или Hyper-V 2019.

Примените новые настройка для LAN сети:

Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CongestionProvider DCTCP
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CwndRestart True
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -ForceWS Disabled

Set-NetTCPSetting -SettingName InternetCustom,Internet -CongestionProvider CTCP
Set-NetTCPSetting -SettingName InternetCustom,Internet -DelayedAckTimeoutMs 50
Set-NetTCPSetting -SettingName InternetCustom,Internet -ForceWS Disabled

Отключите методики оптимизации сетевого RSS и RSC на уровне стека TCP:

netsh int tcp show global
netsh int tcp set global RSS=Disabled
netsh int tcp set global RSC=Disabled

или на уровне сетевых адаптеров:

Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Recv Segment Coalescing (IPv4)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Recv Segment Coalescing (IPv6)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Receive Side Scaling" -DisplayValue "Disabled" –NoRestart

Отключите vRSS для всех ВМ:

Get-VM | Set-VMNetworkAdapter -VrssEnabled $FALSE

Отключите функцию Large Send Offload (LSO) на сетевых картах:

Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Large Send Offload Version 2 (IPv4)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Set-NetAdapterAdvancedProperty -DisplayName "Large Send Offload Version 2 (IPv6)" -DisplayValue "Disabled" -NoRestart
Get-NetAdapter | Restart-NetAdapter

Также эти опции можно отключить в свойствах сетевого адаптера на вкладке Advanced:
  • Recv Segment Coalescing (IPv4/IPv6) = Disabled
  • Large Send Offload V2 (IPv4/IPv6) = Disabled

отключить Large Send Offload V2

Данные настройки стека TCP максимально приблизят настройки сетевых протоколов Windows Server 2019 к предыдущим версиям Windows Server.

Windows 10 Hyper-V разрешает использовать для виртуальной сети собственное преобразование сетевых адресов (NAT).

В этом руководство рассматриваются следующие темы:

  • Создание сети NAT
  • Подключение существующей виртуальной машины к новой сети
  • Проверка правильности подключения виртуальной машины
  • Юбилейное обновление Windows 10 или более поздняя версия
  • Hyper-V включен (инструкции см. здесь)

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

Обзор NAT

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

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

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

По всем этим причинам NAT часто применяется в технологии контейнеров (см. статью Сетевые подключения контейнеров).

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

Давайте рассмотрим настройку новой сети NAT.

Откройте консоль PowerShell от имени администратора.

Создайте внутренний коммутатор.

Найдите индекс интерфейса созданного виртуального коммутатора.

Этот индекс интерфейса можно определить, выполнив команду Get-NetAdapter

Выходные данные должны иметь следующий вид:

Внутренний коммутатор будет иметь такое имя, как vEthernet (SwitchName) , и описание интерфейса Hyper-V Virtual Ethernet Adapter . Запишите его ifIndex для использования на следующем шаге.

Настройте шлюз NAT с помощью New-NetIPAddress.

Ниже приведена общая команда:

Чтобы настроить шлюз, вам потребуется некоторая информация о сети:

IPAddress — "NAT Gateway IP" задает IP-адрес шлюза NAT в формате IPv4 или IPv6.
Общая форма имеет вид a.b.c.1 (например, 172.16.0.1). Хотя последняя позиция необязательно должна быть равна 1, обычно используется именно это значение (в зависимости от длины префикса).

Общий IP-адрес шлюза имеет значение 192.168.0.1.

PrefixLength — "NAT Subnet Prefix Length" определяет размер локальной подсети NAT (маску подсети). Длина префикса подсети является целым числом от 0 до 32.

Значение 0 соответствует всему Интернету, а значение 32 — всего одному IP-адресу. Обычно используются значения в диапазоне от 24 до 12 в зависимости от того, сколько IP-адресов необходимо подключить к NAT.

Общее значение PrefixLength равно 24. Это маска подсети 255.255.255.0.

InterfaceIndex: ifIndex — это индекс интерфейса виртуального коммутатора, который вы определили на предыдущем шаге.

Выполните следующую команду, чтобы создать шлюз NAT:

Настройте сеть NAT с помощью New-NetNat.

Ниже приведена общая команда:

Чтобы настроить шлюз, потребуется указать информацию о сети и шлюзе NAT:

Name — NATOutsideName описывает имя сети NAT. Оно используется для удаления сети NAT.

InternalIPInterfaceAddressPrefix — "NAT subnet prefix" задает описанные ранее префикс IP-адреса шлюза NAT и длину префикса подсети NAT.

Общая форма имеет вид a.b.c.0/NAT Subnet Prefix Length.

Учитывая приведенные выше данные, для этого примера мы используем 192.168.0.0/24.

В рамках данного примера выполните следующую команду для настройки сети NAT:

Поздравляем! Теперь у вас есть виртуальная сеть NAT. Чтобы добавить виртуальную машину в сеть NAT, выполните эти инструкции.

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

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

Так как служба WinNAT сама по себе не выделяет и не назначает IP-адреса конечным точкам (например, виртуальной машины), вам потребуется сделать это вручную в виртуальной машине, т. е. задать IP-адреса в диапазоне внутреннего префикса NAT, задать IP-адрес шлюза по умолчанию, указать данные DNS-сервера. Единственной оговоркой является наличие подключения конечной точки к контейнеру. В этом случае служба HNS выделяет и использует службу HCS для назначения IP-адреса, IP-адреса шлюза и сведений о DNS непосредственно контейнеру.

Пример конфигурации. Подключение виртуальных машин и контейнеров к сети NAT

Чтобы подключить несколько виртуальных машин и контейнеров к одной сети NAT, необходимо убедиться, что внутренний префикс подсети NAT имеет размер, достаточный для охвата диапазонов IP-адресов, назначенных различными приложениями или службами (например, Docker для Windows и компонент контейнеров Windows — HNS). Для этого потребуется назначить IP-адреса на уровне приложения, а также выполнить сетевую настройку или настройку вручную силами администратора, исключив повторное использование существующих назначений IP-адресов в том же узле.

Docker для Windows (для виртуальных машин Linux) и компонент контейнеров Windows

Приведенное ниже решение позволит Docker для Windows (виртуальным машинам Linux с контейнерами Linux) и компоненту контейнеров Windows совместно использовать общий экземпляр WinNAT с помощью отдельных внутренних коммутаторов vSwitch. Будет работать подключение между контейнерами Linux и Windows.

Пользователь подключил виртуальные машины к сети NAT через внутренний коммутатор vSwitch с именем VMNAT и теперь хочет установить компонент "Контейнеры Windows" с подсистемой Dосker.

Docker или HNS назначит IP-адреса контейнерам Windows, а администратор назначит IP-адреса виртуальным машинам из разностного набора.

Пользователь установил компонент "Контейнеры Windows" с работающей подсистемой Docker и хочет подключить виртуальные машины к сети NAT.

Docker или HNS назначит IP-адреса контейнерам Windows, а администратор назначит IP-адреса виртуальным машинам из разностного набора.

В итоге вы должны получить два внутренних коммутатора виртуальных машин и один общий для них коммутатор NetNat.

Несколько приложений, использующих одну систему NAT

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

В качестве примера мы рассмотрим сосуществование Docker 4 Windows — Docker Beta — Linux VM и компонента контейнеров Windows на одном узле. Эта процедура может быть изменена.

C:> net stop docker

Stop Docker4Windows MobyLinux VM

PS C:> Get-ContainerNetwork | Remove-ContainerNetwork -force.

PS C:> Get-NetNat | Remove-NetNat.
Позволяет удалить все ранее существовавшие сети контейнера (т. е. удаляется vSwitch, NetNat и выполняется очистка).

New-ContainerNetwork -Name nat -Mode NAT –subnetprefix 10.0.76.0/24 (эта подсеть используется для компонента контейнеров Windows) Создает внутренний vSwitch с именем nat.
Позволяет создать сеть NAT с именем "nat" и префиксом IP-адреса 10.0.76.0/24.

Remove-NetNAT
Позволяет удалить сети NAT с именами nat и DockerNAT (сохраняя внутренние коммутаторы Vswitch).

New-NetNat -Name DockerNAT -InternalIPInterfaceAddressPrefix 10.0.0.0/17 (создает более крупную сеть NAT для совместного использования D4W и контейнерами)
Позволяет создать сеть NAT с именем DockerNAT и увеличенным префиксом 10.0.0.0/17.

Run Docker4Windows (MobyLinux.ps1)
Позволяет создать внутренний vSwitch DockerNAT.
Позволяет создать сеть NAT с именем DockerNAT и префиксом 10.0.75.0/24.

Net start docker
Docker использует пользовательскую сеть NAT по умолчанию для подключения к контейнерам Windows.

В конце вы должны получить два внутренних коммутатора vSwitch — один с именем DockerNAT, другой с именем nat. При выполнении Get-NetNat выводится только одна подтвержденная сеть NAT (10.0.0.0/17). IP-адреса для контейнеров Windows назначаются сетевой службой узлов Windows (HNS) (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.

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

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

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

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

Перезагрузите операционную систему перед выполнением последующих команд ( Restart-Computer )

Использование сервера Windows в качестве NAT роутера

windowsserver_nat_1.jpg

Недавно мне потребовалось установить тестовую сеть в своем офисе, которая использует DSL роутер для подключения к интернету. Тестовую сеть нужно было расположить в подсети, отдельной от моей офисной LAN, но при этом нужно было обеспечить подключение к интернету. Я решил установить Windows Server 2008 на отдельном модуле с двумя сетевыми картами (NIC), установить Routing и Remote Access Service (RRAS) на этом модуле, и использовать его в качестве роутера между своим рабочим местом и тестовой сетью (Рисунок 1).

Рисунок 1: Использование RRAS в качестве роутера для подключения между двумя подсетями

У меня было два варианта настройки. Во-первых, я мог настроить RRAS модуль в качестве IP роутера для пересылки трафика между двумя подсетями. Это бы позволило клиентам тестовой сети отправлять пакеты на серверы в интернете, но это не обеспечило бы возвращения трафика к клиентам. Причина заключается в том, что пакеты, входящие на DSL роутер из интернета, направлялись бы в сеть 172.16.11.0, а, следовательно, не имели бы возможности достигать клиентов в сети 10.0.0.0. Решением этой проблемы могло стать добавление статического маршрута в DSL роутер, который напрямую направлял бы все пакеты с целевым адресом 10.0.0.x на рабочий интерфейс модуля RRAS (172.16.11.220). В этом случае, когда пакет, предназначенный для 10.0.0.x, достигает этого интерфейса, модуль RRAS пересылает его на свой другой интерфейс (10.0.0.1), а оттуда пакет уже входит в тестовую сеть и, в конечном счете, доходит до клиента. К сожалению, у меня не было доступа с правами администратора к DSL роутеру, поскольку он управляется моим поставщиком интернет услуг (ISP), поэтому я выбрал другой подход. Я решил настроить RRAS модуль в качестве роутера с трансляцией сетевых адресов (Network Address Translation – NAT). NAT является IETF стандартом, обеспечивающим способ трансляции IPv4 адресов компьютеров в одной сети в IPv4 адреса компьютеров в другой сети. Конечно, DLS роутер в моей рабочей сети тоже настроен в качестве NAT роутера, поэтому в результате настройки выбранной мной конфигурации получилось то, что известно под термином каскадная NAT или двойная NAT. Интернет подключение работает отлично через 2-ух или 3-ех каскадную NAT, хотя в некоторых случаях такая топология может вызывать проблемы. Например, Windows Home Server не очень ладит с каскадными NAT.Так или иначе, после просмотра информации в интернете я обнаружил, что есть большая путаница в том, как устанавливать сеть с двумя подсетями и подключением к интернету, как показано на рисунке 1, поэтому я решил написать данную статью, которая является руководством к процессу установки такого типа сценария.

Установка серверного компьютера

  • IP адрес = 10.0.0.1
  • Маска подсети = 255.0.0.0
  • Основной шлюз = нет
  • DNS серверы = нет
  • IP адрес = 172.16.11.220
  • Маска подсети = 255.255.255.0
  • Основной шлюз = 172.16.11.1
  • DNS серверы = публичные IP адреса DNS серверов моего интернет-провайдера

Обратите внимание, что NIC, подключенная к тестовой LAN (10.0.0.0) не должна иметь основного шлюза.Также обратите внимание, что на сетевой карте, подключенной к тестовой LAN, были настроены IP адреса публичных DNS серверов. Это нужно не для того, чтобы клиенты в тестовой сети имели доступ к интернету, это нужно, если вы хотите иметь доступ к интернету с самого сервера RRAS.

Установка клиентских компьютеров в тестовой LAN

На данном этапе все «провода» присоединены, но если мы попытаемся опросить (ping) DSL роутер с клиентского компьютера в тестовой сети, или попытаемся выполнить трассировку маршрута для публичного адреса в интернете с этой клиентской машины, все попытки будут безуспешными, что указывает на отсутствие подключения к интернету нашей тестовой сети (рисунок 2):

windowsserver_nat_2.jpg

Рисунок 2: Невозможно выполнить команду ping публичного адреса IP с клиентской машины в тестовой сети

И естественно, если мы попытаемся открыть какую-нибудь веб страницу с этой машины, у нас ничего не выйдет (рисунок 3):

windowsserver_nat_3.jpg

Рисунок 3: Невозможно открыть Web страницу

Установка и настройка RRAS

Чтобы обеспечить клиентским машинам в тестовой сети доступ к интернету, нам нужно установить роль RRAS на сервере и затем настроить сервер в качестве NAT роутера. Для установки RRAS роли запускаем мастера добавления новых ролей из диспетчера сервера или в OOBE.exe и добавляем роль Network Policy and Access Services (рисунок 4):

windowsserver_nat_4.jpg

Рисунок 4: Установка RRAS – шаг 1

На следующей странице мастера выбираем Службы маршрутизации и удаленного доступа (Routing and Remote Access Services) для установки служб роли, Remote Access Service and Routing (рисунок 5):

windowsserver_nat_5.jpg

Рисунок 5: Установка RRAS – шаг 2

После завершения работы мастера открываем консоль маршрутизации и удаленного доступа в меню администрирования (Administrative Tools), нажимаем правой клавишей на локальном сервере и выбираем опции «Настроить и включить маршрутизацию и удаленный доступ» (Configure and Enable Routing and Remote Access). В результате у нас запустится мастер установки и настройки сервера маршрутизации и удаленного доступа (Routing and Remote Access Server Setup Wizard); выбираем опцию «трансляция сетевых адресов» (Network Address Translation (NAT)) на странице Конфигурация (Configuration) в мастере, как показано на рисунке 6:

windowsserver_nat_6.jpg

Рисунок 6: Настройка RRAS для NAT – шаг 1

Затем на странице NAT Internet Connection выбираем сетевой интерфейс, расположенный в рабочей LAN, который является «публичным интерфейсом» NAT роутера (рисунок 7)

windowsserver_nat_7.jpg

Рисунок 7: Настройка RRAS для NAT – шаг 2

windowsserver_nat_8.jpg

Рисунок 8: Настройка RRAS для NAT – шаг 3

После завершения работы мастера служба RRAS запустится и будет настроена для маршрутизации IPv4 и для NAT. Чтобы убедиться в этом, нажмите правой клавишей на локальном сервере в консоли RRAS и выберите Свойства (Properties). В закладке Общие (General) показано, что IPv4 маршрутизация включена, что означает, что IPv4 пакеты могут пересылаться с одной NIC на другую (рисунок 9):

windowsserver_nat_9.jpg

Рисунок 9: Проверка конфигурации RRAS – шаг 1

Выбрав узел NAT в консоли RRAS, мы можем увидеть, что три сетевых интерфейса были созданы, когда NAT была настроена на сервере с помощью мастера Routing and Remote Access Server Setup Wizard. На рисунке 10 показаны свойства сети Local Area Connection, которая в данном сценарии является сетевым подключением к тестовой сети (10.0.0.0). Обратите внимание, что NAT считает эту сеть «частной» сетью, то есть сетью, расположенной «за» NAT роутером:

windowsserver_nat_10.jpg

Рисунок 10: Проверка конфигурации RRAS – шаг 2

На рисунке 11 показаны свойства сети Local Area Connection 2, которая в данном случае является сетевым подключением к рабочей сети (172.16.11.0). Обратите внимание, что NAT считает эту сеть «публичной», то есть сетью, расположенной «перед» (в интернете) NAT роутером:

windowsserver_nat_11.jpg

Рисунок 11: Проверка конфигурации RRAS – шаг 3

Интерфейс внутренней сети также добавлен в конфигурацию NAT в качестве частного интерфейса.

Тестирование NAT

На данном этапе NAT была настроена с IP маршрутизацией, и если я попробую выполнить команду ping для DSL роутера с клиентского компьютера в тестовой сети, или если я попытаюсь выполнить трассировку маршрута с этой же машины к публичному серверу в интернете, эти попытки теперь должны быть успешными (рисунок 12):

windowsserver_nat_12.jpg

Рисунок 12: Проверка сетевого подключения между тестовой сетью и интернетом

Таким же образом, если я попробую открыть Web с клиентского компьютера в тестовой сети, это должно получиться (рисунок 13):

windowsserver_nat_13.jpg

Рисунок 13: Компьютеры за NAT могут открывать Web

Я также могу осуществлять мониторинг активности NAT с помощью консоли RRAS. Для этого открываем консоль, выбираем узел NAT и просматриваем сетевую статистику для Local Area Connection 2 («публичный» или интрнет-интерфейс), как показано на рисунке 14:

windowsserver_nat_14.jpg

Рисунок 14: Просмотр активности NAT

Наконец, правым нажатием на этом интерфейсе и выбором опции Show Mappings вы можете открыть отдельное окно, в котором сможете увидеть подробности о том, что ваш NAT роутер делает (рисунок 15):

windowsserver_nat_15.jpg

Рисунок 15: Подробная информация об активности NAT

Заключение

Используя возможности NAT и IP маршрутизации роли RRAS сервера Windows Server 2008, вы с легкостью сможете установить отдельную тестовую подсеть в своей сети и убедиться в том, что компьютеры в этой подсети имеют доступ к интернету. В этой статье я предоставил вам пошаговое руководство по этому процессу.Автор: Mitch TullochИнтересное в сети:Я уже довольно давно, правда с большими перерывами изучаю английский язык, однако как то моё самообразование очень медленно продвигается. Теперь планирую обучение за рубежом английскому языку продолжить, использовать метод погружения по полной программе.

Этот пост January 17, 2010 at 8:52 pm опубликовал molse в категории NAT, Windows Server 2008, Windows Server 2008 R2. Желающие могут оформить RSS подписку на комменты. Both comments and trackbacks are currently closed.

7 комментов оставлено (Add 1 more)

Шикарная статья, как по содержанию, так и по изложению. :)

Подскажи, можно ли получить доступ из сети 172.16.11.х в сеть 10.х.х.х ?

2. Andrey on September 4th, 2011 at 6:53 pm

Привет!

сделал всё по инструкции, но интернет в тестовой сети не работает.

Настройки на сервере:
1 сетевая карта:
IP:192.168.1.252
Subnet mask: 255.255.255.0
Gateway: 192.168.1.254
DNS: публичные провайдера

2 сетевая:
IP:10.0.0.1
Subnet mask: 255.0.0.0
Gateway: пусто
DNS: пусто

Инфраструктура сети такая же как в примере: DSL роутер, потом сервер с 2 сетевыми картами и дольше тестовая сеть с клиентами.

Пинг на DSL роутер проходит, tracert на роутер и не публичные DNS провайдера прозодят, но очень долго (хотя пишет задержку не больше 20 мс), так же прошёл на адрес указаный в примере, опять же очень долго.

в чём причина?

3. Denis on December 16th, 2010 at 6:40 pm

спасибо за статью, очень помогла!

6. guest on January 21st, 2010 at 6:17 pm

Читайте также: