как поднять nat на windows 10
Настройка NAT сети на виртуальном коммутаторе Hyper-V
Виртуальный коммутатор Hyper-V в Windows Server 2016 / Windows 10 имеет встроенную поддержку организации NAT подключения, когда виртуальные машины подключаются к внешнему миру через NAT. Данная функция не настраивается через графический интерфейс Hyper-V, настроить NAT коммутатор можно только через консоль PowerShell. Рассмотрим, как включить NAT на виртуальном коммутаторе Hyper-V.
Создадим виртуальный коммутатор Hyper-V
New-VMSwitch –SwitchName “NATSwitch” –SwitchType Internal
Настроим IP адрес шлюза NAT (это тот самый виртуальный адаптер, который создался при создании внутреннего виртуального коммутатора).
Теперь можно настроить правило NAT.
New-NetNat –Name MyNATnetwork –InternalIPInterfaceAddressPrefix «192.168.1.0/24»
После, того, как вы создали сеть NAT, вы можете использовать ее для подключения виртуальных машин. Их адреса должны находится в диапазоне от 192.168.1.2-192.168.1.254.
Далее можно создать правило перенаправления NAT. Чтобы перенаправить трафик, приходящий на определенный порт хоста Hyper-V в гостевую ОС одной из виртуальных машин, выполните следующую команду (правило в примере перенаправляет трафик, пришедший на 80 порт хостового Hyper-V, на 80 порт виртуальной машины с адресом 192.168.1.20
Если нужно перенаправить трафик на другой порт (к примеру, чтобы перенаправить трафик на 443 порт), выполните команду:
Set up a NAT network
Windows 10 Hyper-V allows native network address translation (NAT) for a virtual network.
This guide will walk you through:
Note: Currently, you are limited to one NAT network per host. For additional details on the Windows NAT (WinNAT) implementation, capabilities, and limitations, please reference the WinNAT capabilities and limitations blog
NAT Overview
NAT gives a virtual machine access to network resources using the host computer’s IP address and a port through an internal Hyper-V Virtual Switch.
Network Address Translation (NAT) is a networking mode designed to conserve IP addresses by mapping an external IP address and port to a much larger set of internal IP addresses. Basically, a NAT uses a flow table to route traffic from an external (host) IP Address and port number to the correct internal IP address associated with an endpoint on the network (virtual machine, computer, container, etc.)
Additionally, NAT allows multiple virtual machines to host applications that require identical (internal) communication ports by mapping these to unique external ports.
For all of these reasons, NAT networking is very common for container technology (see Container Networking).
Create a NAT virtual network
Let’s walk through setting up a new NAT network.
Open a PowerShell console as Administrator.
Create an internal switch.
Find the interface index of the virtual switch you just created.
You can find the interface index by running Get-NetAdapter
Your output should look something like this:
Configure the NAT gateway using New-NetIPAddress.
Here is the generic command:
In order to configure the gateway, you’ll need a bit of information about your network:
A common gateway IP is 192.168.0.1
0 would map the entire internet, 32 would only allow one mapped IP. Common values range from 24 to 12 depending on how many IPs need to be attached to the NAT.
Run the following to create the NAT Gateway:
Configure the NAT network using New-NetNat.
Here is the generic command:
In order to configure the gateway, you’ll need to provide information about the network and NAT Gateway:
The generic form will be a.b.c.0/NAT Subnet Prefix Length
From the above, for this example, we’ll use 192.168.0.0/24
For our example, run the following to setup the NAT network:
Congratulations! You now have a virtual NAT network! To add a virtual machine, to the NAT network follow these instructions.
Connect a virtual machine
To connect a virtual machine to your new NAT network, connect the internal switch you created in the first step of the NAT Network Setup section to your virtual machine using the VM Settings menu.
Configuration Example: Attaching VMs and Containers to a NAT network
If you need to attach multiple VMs and containers to a single NAT, you will need to ensure that the NAT internal subnet prefix is large enough to encompass the IP ranges being assigned by different applications or services (e.g. Docker for Windows and Windows Container – HNS). This will require either application-level assignment of IPs and network configuration or manual configuration which must be done by an admin and guaranteed not to re-use existing IP assignments on the same host.
Docker for Windows (Linux VM) and Windows Containers
The solution below will allow both Docker for Windows (Linux VM running Linux containers) and Windows Containers to share the same WinNAT instance using separate internal vSwitches. Connectivity between both Linux and Windows containers will work.
User has connected VMs to a NAT network through an internal vSwitch named “VMNAT” and now wants to install Windows Container feature with docker engine
Docker/HNS will assign IPs to Windows containers and Admin will assign IPs to VMs from the difference set of the two.
User has installed Windows Container feature with docker engine running and now wants to connect VMs to the NAT network
Docker/HNS will assign IPs to Windows containers and Admin will assign IPs to VMs from the difference set of the two.
In the end, you should have two internal VM switches and one NetNat shared between them.
Multiple Applications using the same NAT
Some scenarios require multiple applications or services to use the same NAT. In this case, the following workflow must be followed so that multiple applications / services can use a larger NAT internal subnet prefix
Stop Docker4Windows MobyLinux VM
PS C:> Get-NetNat | Remove-NetNat
Removes any previously existing container networks (i.e. deletes vSwitch, deletes NetNat, cleans up)
Remove-NetNAT
Removes both DockerNAT and nat NAT networks (keeps internal vSwitches)
Run Docker4Windows (MobyLinux.ps1)
Creates internal vSwitch DockerNAT
Creates NAT network named “DockerNAT” with IP prefix 10.0.75.0/24
Net start docker
Docker will use the user-defined NAT network as the default to connect Windows containers
In the end, you should have two internal vSwitches – one named DockerNAT and the other named nat. You will only have one NAT network (10.0.0.0/17) confirmed by running Get-NetNat. IP addresses for Windows containers will be assigned by the Windows Host Network Service (HNS) from the 10.0.76.0/24 subnet. Based on the existing MobyLinux.ps1 script, IP addresses for Docker 4 Windows will be assigned from the 10.0.75.0/24 subnet.
Troubleshooting
Multiple NAT networks are not supported
This guide assumes that there are no other NATs on the host. However, applications or services will require the use of a NAT and may create one as part of setup. Since Windows (WinNAT) only supports one internal NAT subnet prefix, trying to create multiple NATs will place the system into an unknown state.
To see if this may be the problem, make sure you only have one NAT:
If a NAT already exists, delete it
Make sure you only have one “internal” vmSwitch for the application or feature (e.g. Windows containers). Record the name of the vSwitch
Check to see if there are private IP addresses (e.g. NAT default Gateway IP Address – usually x.y.z.1) from the old NAT still assigned to an adapter
If an old private IP address is in use, please delete it
Removing Multiple NATs
We have seen reports of multiple NAT networks created inadvertently. This is due to a bug in recent builds (including Windows Server 2016 Technical Preview 5 and Windows 10 Insider Preview builds). If you see multiple NAT networks, after running docker network ls or Get-ContainerNetwork, please perform the following from an elevated PowerShell:
Reboot the operating system prior executing the subsequent commands ( Restart-Computer )
See this setup guide for multiple applications using the same NAT to rebuild your NAT environment, if necessary.
Настройка сети NAT
Windows 10 Hyper-V разрешает использовать для виртуальной сети собственное преобразование сетевых адресов (NAT).
В этом руководство рассматриваются следующие темы:
Примечание. Сейчас можно создать только одну сеть NAT для узла. Дополнительные сведения о реализации, возможностях и ограничениях NAT для Windows (WinNAT) см. в блоге, посвященном возможностям и ограничениям WinNAT.
Обзор NAT
NAT предоставляет виртуальной машине доступ к сетевым ресурсам с помощью IP-адреса и порта главного компьютера через внутренний виртуальный коммутатор Hyper-V.
Преобразования сетевых адресов (NAT) — это сетевой режим, предназначенный для экономии IP-адресов за счет сопоставления внешнего IP-адреса и порта с гораздо большим набором внутренних IP-адресов. По сути, NAT использует таблицу потоков для маршрутизации трафика с внешнего IP-адреса (адреса узла) и номера порта на правильный внутренний IP-адрес, связанный с конечной точкой в сети (виртуальной машиной, компьютером, контейнером и т. д.).
Кроме того, NAT позволяет нескольким виртуальным машинам размещать приложения, которым требуются одинаковые (внутренние) порты связи, сопоставляя их с уникальными внешними портами.
По всем этим причинам NAT часто применяется в технологии контейнеров (см. статью Сетевые подключения контейнеров).
Создание виртуальной сети NAT
Давайте рассмотрим настройку новой сети NAT.
Откройте консоль PowerShell от имени администратора.
Создайте внутренний коммутатор.
Найдите индекс интерфейса созданного виртуального коммутатора.
Этот индекс интерфейса можно определить, выполнив команду Get-NetAdapter
Выходные данные должны иметь следующий вид:
Настройте шлюз 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 на одном узле. Эта процедура может быть изменена.
Stop Docker4Windows MobyLinux VM
PS C:> Get-NetNat | Remove-NetNat.
Позволяет удалить все ранее существовавшие сети контейнера (т. е. удаляется vSwitch, NetNat и выполняется очистка).
Remove-NetNAT
Позволяет удалить сети NAT с именами nat и DockerNAT (сохраняя внутренние коммутаторы Vswitch).
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-адрес, удалите его.
Удаление нескольких NAT
Мы встречали сообщения о нескольких случайно созданных сетях NAT. Это вызвано ошибкой, присутствующей в последних сборках (включая Windows Server 2016 Technical Preview 5 и Windows 10 Insider Preview). Если после запуска команд ls или Get-ContainerNetwork сети Docker появится несколько сетей NAT, в командной строке PowerShell с повышенными привилегиями выполните следующее:
Перезагрузите операционную систему перед выполнением последующих команд ( Restart-Computer )
Как настроить NAT в Windows Server 2016
Привет, недавно столкнулся с ситуацией — есть выделенный сервер, на сервер установлен Hyper-V, провайдер выдает один белый IP на сервер. Обратились ко мне с вопросом — как можно сделать так, что бы не покупая дополнительные адреса, на создаваемых на сервере виртуальных машинах работал интернет.
В случае, например с VirtualBox вопрос решается подключением виртуальной машины к сети с типом NAT, но как же быть с Hyper-V, в нем нельзя подключить виртуальный свитч к сети NAT.
Ответ очевиден — нужно подключить свитч к внутренней сети, и с него трафик натить через физический порт. Сделать это совсем не сложно.
Ниже я расскажу как можно настроить NAT на Windows Server 2016 через PowerShell, а так же как можно настроить NAT на более старых версиях ОС Windows, через RRAS (к слову и на Windows Server 2016, через RRAS то же можно делать).
Теперь опишу способ, как можно сделать NAT, который работает практически на всех версиях винды (на 2003, 2008, 2012 и 2016 соответсвенно), будем делать NAT через RRAS.
Сперва нужно поставить роль RAS, для этого заходим в диспетчер сервера, жмем управление и выбираем — добавить роли и компоненты.
В мастере добавления ролей, в ролях сервера, выбираем Удаленный доступ.
В службах ролей удаленного доступа, выбираем маршрутизация,
и добавляем необходимые компоненты.
После завершения установки, перезагружаем сервер, возвращаемся в диспетчер сервера и выбираем: средства — маршрутизация и удаленный доступ.
Дальше выбираем сетевой интерфейс, который подключен к интернету.
На этом настройка NAT на Windows Server 2016 закончена, вернемся в консоль управления RRAS, развернем наш сервер, перейдем в IPv4, и зайдем в преобразование сетевых адресов.
Здесь можно посмотреть свойства сетевых интерфейсов. Например для внутреннего свойства выглядят так:
А для внешнего так:
Здесь же можно сделать проброс портов, например, сделаю проброс ssh до виртуальной машины. Заходим в службы и порты и жмем добавить,
Здесь указываем понятное имя службы, входящий порт (порт по которому нужно ломиться на сервер), адрес сервера к которому пробрасываем порт, и порт сервера.
Всё порт проброшен. Можно пробовать подключиться.
Как сделать nat открытым Windows 10?
Как открыть nat своего роутера?
Компьютер подключается к глобальной сети несколькими способами.
Это может быть прямое подключение, в этом случае имеется внешний IP адрес (динамический или статический), который виден из интернета. Или же подключение может осуществляться через маршрутизатор.
При таком подключении внешний адрес имеет только роутер, а все подключенные к нему пользователи являются клиентами другой сети. Роутер берет на себя распределение входящего и исходящего трафика между клиентами и интернетом.
Возникает ряд проблем при подключении через маршрутизатор:
Решить проблему помогает правильная настройка маршрутизатора, а именно сервиса NAT на нем. Для того, чтобы понять, как настроить NAT на роутере, необходимом узнать, что такое трансляция адресов и для чего это используется.
NAT: общие определения
NAT (network address translation) или трансляция сетевых адресов — это процесс перевода внутренних или локальных адресов во внешние. NAT используется абсолютно всеми маршрутизаторами независимо от их конфигурации, назначения и стоимости. По умолчанию роутер запрещает напрямую обращаться к любому устройству, находящимися внутри сети. Он блокирует доступ на любые порты для входящих соединений поступающие из интернета.
Но NAT и Firewall это суть разные понятия. Firewall просто запрещает доступ к ресурсу по определенному TCP или UDP порту, может устанавливаться на локальной машине для ограничения доступа только к ней или же на сервере для фильтрации трафика по всей локальной сети.
Перед NAT задача стоит более развернуто. Сервис запрещает или разрешает доступ внутри сети по конкретному IP адресу или диапазону адресов. Таким образом клиент, который обращается к ресурсу не видит действительного IP адреса ресурса.
NAT переводит внутренний IP в адрес, который будет виден из интернета.
Чтобы проверить находится ли компьютер за NAT или транслирует в интернет реальный адрес можно следующим образом:
Вывод команды показывает следующие данные:
Как теперь разобрать является ли адрес локальным или же напрямую «смотрит» в интернет. Согласно спецификации, существует четыре диапазона адресов, которые ни при каких обстоятельствах не используются в интернете, а являются исключительно локальными:
В том случае, когда адрес машины попадает в один из этих диапазонов, следует считать, что компьютер находится в локальной сети или «за» NAT. Можно также дополнительно использовать специальные службы, которых есть множество в интернете для определения реального IP адреса. Теперь стало понятнее находится ли компьютер за NAT в роутере что это за сервис, и за то он отвечает.
С момента появления NAT сразу же стали проявляться проблемы. Невозможно было получить доступ по отдельному протоколу или в работе отдельных программ. Данные проблемы так и не удалось полностью устранить, получилось только найти некоторые варианты решения только с использованием трансляции адресов, но ни один вариант решения не является правильным с точки зрения спецификаций администрирования.
В качестве примера можно рассмотреть протокол передачи файлов (FTP), который был саммым распространенным к появлению NAT. Для файловых серверов (FTP) ключевым является реальный IP адрес компьютера, который посылает запрос на доступ. Здесь преобразование адресов не работает, потому что запрос на сервер отправляется с IP, невидимого из интернета.
Нет возможности создать сессию клиент-сервер для загрузки файлов. Обойти проблему помогает использование FTP в пассивном режиме. В этом режиме используется другой набор команд, и работа ведется через специальный прокси-сервер, который дополнительно открывает другой порт для соединения и передает его программе клиенту.
Проблемой такого решения является то, что необходимо использовать сторонние FTP клиенты.
Полностью избавиться от проблемы доступа получилось только с появлением SOCKS (Socket Secure) протокола. Этот протокол позволяет обмениваться данными через прокси-сервер в «прозрачном» режиме. То есть сервер не будет знать, что происходит подмена адресов с локальных на глобальные и наоборот. Изобретение SOCKS позволило избавиться от ряда проблем и упростить работу администрирования сети:
Использование NAT и SOCKS не всегда оправдано с точки зрения сетевого администрирования. Иногда более целесообразным является использование специализированных прокси, которых существуете множество для любого протокола передачи данных.
Настройка NAT на компьютере
Все современные операционные системы имеют уже встроенный NAT. В Windows эта функция реализована с 1999 года с появлением Windows XP. Управление NAT осуществляется непосредственно через свойства сетевого подключения. Чтобы настроить службу нужно сделать следующее:
Если при выведется сообщение что невозможно запустить службу общего доступа, нужно убедиться, что запущена служба DHCP-клиент. При необходимости можно установить запуск службы принудительно, а не по запросу автоматически.
Что такое NAT в роутере, целесообразность его использования и проблемы, которые он может создать было описано выше, теперь можно перейти непосредственно к реализации задачи. Настройка службы на роутере зависит от его модели, используемой прошивки и других параметров. Но достаточно понять механизм, чтобы не возникало сложностей и вопросов по настройке отдельного устройства. Для настройки выполняются следующие действия (в качестве примера настройки выполняются на роутере Zyxel на прошивке v1):
Открывшаяся страница и будет той, которая управляет политиками доступа и маршрутизацией. Здесь необходимо включить службу, активировав переключатель в положение «Enable». Сами настройки выполняются в группе «Criteria». Выбираются параметры NAT по нескольким категориям фильтров:
В качестве объекта перенаправления можно выбрать следующие варианты:
В каждом отдельно взятом роутере настройки и название пунктов меню может отличаться, но принцип построения NAT остается неизменным.
NAT в роутере и на сервере – что это такое и где используется
NAT (происходит от английского термина Network Address Translation, который переводится как «преобразование сетевых адресов») при помощи этой функции в сетях TCP/IP преобразовываются IP-адреса транзитных пакетов. Он есть у всех роутеров, имеет название port forwarding.
Преимущество данной технологии в том, что не надо изменять конфигурацию маршрутизаторов и окончательных узлов внутренней сети. Эти технологии не применяются там, где в работе с внешними сетями задействовано много внутренних узлов.
Static NAT
Как правило, не используется физическими лицами для их потребностей, а применяется компаниями, в которых есть много IP адресов с необходимостью, чтобы они для некоторых серверов оставались постоянными и были доступны из вне. Чтобы открыть какой-нибудь сервис (почта, сайт и т.д.
) необходимо знать 2 параметра: IP адрес (DNS имя) и порт. При этом порт обычно не вводится (если он не был изменен), поскольку программы вводят его автоматически и, следовательно, пользователь даже не задумывается о его наличии.
Для того чтобы другие пользователи глобальной паутины могли работать с определённым компьютером, им необходимы знать его IP (DNS имя) и порт сервиса.
Nat умеренный как сделать открытым
816 пользователя считают данную страницу полезной.
NAT (происходит от английского термина Network Address Translation, который переводится как «преобразование сетевых адресов») при помощи этой функции в сетях TCP/IP преобразовываются IP-адреса транзитных пакетов. Он есть у всех роутеров, имеет название port forwarding.
Преимущество данной технологии в том, что не надо изменять конфигурацию маршрутизаторов и окончательных узлов внутренней сети. Эти технологии не применяются там, где в работе с внешними сетями задействовано много внутренних узлов.
Dynamic NAT
В отличие от статического имеет одно исключение: из глобальной паутины нет возможности увидеть сервера, с которыми производится работа. Клиент получает несколько IP, но здесь их распределяет роутер. Когда клиент находится в интерне, роутер сам выбирает среди полученных один адрес, выдаёт его и заносит в таблицу Network Address Translation. Но сама запись долго не хранится, когда пользователь вышел из интернета она вытирается из таблицы.
Большим недостатком является то, что необходимое число входов в глобальную паутину не может быть больше количества IP адресов, которые выдал провайдер. Пока не найдутся свободные, новые пользователи не смогут подключиться к компьютеру. Но по сравнению с первым типом есть большое превосходство, другие пользователи не смогут свободно зайти на жёсткий диск компьютера, так как адреса постоянно меняются. Также самим клиентам не надо распределять IP адреса, их распределит роутер.
Port Address Translation (PAT), NAT Overload и Masquerading
Данный тип актуальнее физическому лицу, поскольку выдается единственный внешний адрес, а пользователь только назначает порт любому серверу. Скажем, кому-то необходимо, чтобы к нему могли зайти в торрент, для этого понадобятся не только внутренние, но и внешние порты. Программой используется внутренний порт только на компьютере, на котором она установлена. С других же машин будут подключаться к внешнему порту, находящемуся на роутере. Очень часто, но не всегда они совпадают.
У данного метода есть преимущество: доступ открыт для определённой программы, все остальное закрыто. А недостаток в том, что очень часто порты нужно настраивать вручную.
Как изменить тип NAT
Нужно зайти на свой роутер. Для этого, в браузере набираем 192.168.1.1 или 192.168.0.1 (или другую комбинацию в зависимости от маршрутизатора). Вводим логин и пароль. Там смотрим свой IP и настройки сети.
Затем необходимо обратиться к провайдеру интернет-подключения, сообщить данные, которые смотрели в роутере и он всё перенастроит.
Терминология NAT
Для NAT важно различать внутреннюю и внешнюю сеть. К внутренней относятся все сети, которые необходимы в преобразовании, к внешней – все остальные сети.
Система имеет 4 разновидности адресов:
В задачи внутреннего входит преобразование механизмов NAT, внешний служит адресом устройства, куда необходимо войти. Под локальным понимают тот, который бывает во внутренних, а глобальным – во внешних сетях.
Как проверить находится ли компьютер за NAT
Для этого достаточно определить IP компьютера пользователя. Если какой-то адрес попадает в диапазоны (используются только для локальных сетей):
Это значит, что данный компьютер находится в локальной сети и пользователь в NAT.
Настройки NAT, как сделать его открытым
Чтобы настроить NAT в роутере, нужно зайти в браузер, набрать 192.168.1.1 или 192.168.0.1 (адрес роутера) после чего потребуется ввести логин с паролем (обычно Admin/Admin). Затем находится поле Configuration (настройки), потом Network (сеть) и Routing (маршруты или маршрутизация). В новом окне выбирают Policy Routing (новое правило). Здесь задаются условия маршрутизации. Выбрать можно по различным свойствам, таким, как: пользователи, интерфейсы, IP-адрес источников или получателей, порт назначения.
Задаем условия трафика, там есть несколько назначений: Auto перенаправит трафик в глобальный интерфейс, который указан по умолчанию, Gateway на адрес, имеющийся в настройках, Trunk — на несколько интерфейсов, Interface – на тот интерфейс, который указан.
На сервере настраивается следующим образом: в начале находится Диспетчер сервера, на который щёлкают мышкой, потом в новом окошке на добавить роли и компоненты, затем далее, устанавливают удалённый доступ, потом добавить компоненты и продолжить. Затем выбирают службы ролей и отмечают маршрутизация, нажимают на далее. В самом конце на закрыть.
После подключения компьютера к серверу необходимо его настроить в NAT. В меню пуск находится окно администрирование — маршрутизация и удалённый доступ. Для активации нужно нажать на «включить маршрутизацию и удалённый доступ». Затем на «далее» и выбрать преобразование сетевых адресовNAT. Потом нажимаем на интернет и включаем базовые службы назначения. Продолжаем несколько раз нажимать на «далее» и последний раз на «готово».
Сделать NAT открытым может помочь провайдер с которым клиент заключил договор на поставку интернет услуг, просто необходимо обратиться к нему с этим вопросом.
Технология NAT loopback и NAT Traversal
Суть NAT loopback в том, что если пакет попадает из внутренней сети на IP-адрес роутера, то такой пакет будет принят, как внешний и на него будут распространяться брандмауэрные правила для внешних соединений. После успешного прохождению пакета через брандмауэр вступит в работу Network Address Translation, который будет посредником для двух внутрисетевых машин. Получается следующее:
NAT Traversal – это возможности у сетевых приложений определить то, что они располагаются за границами устройства.
В этом случае Network Address Translation оказывает содействие в том, чтобы определить внешний IP-адрес данного устройства и сопоставлять порты, чтобы NAT пересылал используемые приложениями пакеты с внешнего порта на внутренний. Все эти процессы выполняются автоматически.
Без них пользователю пришлось бы вручную сопоставлять настройки портов и вносить в разные параметры изменения. Но есть и минусы – нужно проявлять осторожность для таких приложений – они обладают возможностями широкого контроля над устройствами, а следовательно могут появится уязвимости.
Вопрос: у меня выводится сообщение об ошибке, в котором сказано, что мой тип NAT – «строгий». Что это означает и как изменить тип NAT?
Ошибка: Тип NAT “Строгий”
Ответ: NAT расшифровывается как Network Address Translation, то есть «преобразование сетевых адресов». Это механизм, с помощью которого ваш маршрутизатор или интернет-шлюз преобразует частный IP-адрес и порт вашего компьютера в публичный IP-адрес и порт. Тип NAT говорит о том, какой метод ваше устройство использует для проведения этого преобразования и как оно фильтрует входящие пакеты.
По сути, тип NAT определяет, насколько просто игре подключаться к другим игрокам через Интернет.
Существует три типа NAT
Если ваш тип NAT – «строгий», вы не сможете подключаться напрямую к подавляющему числу игроков. Из-за этого будут возникать проблемы: высокая задержка сигнала («лаг»), меньшие по размеру игровые сессии, большее время ожидания, более частые разъединения.
При возникновении конфликтов с соединением из игры может выкинуть игрока с самым «строгим» типом NAT.
Как изменить тип NAT?
В некоторых маршрутизаторах есть специальный «игровой режим». Как правило, если включить этот режим, устанавливается более мягкий тип NAT. Чтобы узнать, поддерживает ли ваш маршрутизатор такую функцию, прочитайте руководство пользователя или поищите сведения об этом в Интернете.
Если ваш тип NAT – «строгий», он может блокировать порты, используемые игрой, или же преобразовывать частный порт в недетерминированный публичный порт при рассылке пакетов другим игрокам в сессии. Другие игроки не смогут определить, к какому порту подключаться. Чтобы устранить эту проблему, воспользуйтесь uPnP или настройте переадресацию портов на своем маршрутизаторе. Большинство маршрутизаторов в той или иной мере поддерживают переадресацию портов. Если выставить корректные настройки, маршрутизатор будет перенаправлять входящие пакеты от определенных портов на указанное устройство внутри вашей сети.
Для пользования этой функцией также может понадобиться статический IP-адрес (имеется в виду не статический адрес, назначаемый интернет-провайдером, а просто частный статический адрес компьютера в вашей внутренней сети). Инструкции по переадресации портов в вашей модели маршрутизатора можно поискать на сайте http://portforward.com. А на странице http://portforward.com/networking/staticip.htm рассказывается, как присвоить компьютеру статический IP-адрес. Для обмена пакетами данных GTA Online использует UDP-порт 6672.
После того как вашему компьютеру будет присвоен статический IP-адрес, настройте переадресацию UDP-порта 6672 на этот адрес.
Изменение тип NAT на примере роутера “ZTE”
Дополнительные порты для переадресации в GTA Online:
Если у Вас закрытый, строгий или умеренный NAT, тогда данная ситуация может препятствовать подключению к некоторым онлайн-функциям игры.
Аббревиатура NAT означает Network Address Translation, что является методом распределения трафика, получаемого из Интернет, например, вебсайт или игровой сервер или подключение P2P, на устройство — Ваш ПК, консоль, планшет и т.п., через локальную сеть. По причине того, что данный метод передачи информации включает в себя как устройство, так и источник данной передачи, Вы можете иметь как открытый тип NAT для некоторых сервисов или игр, так и закрытый для других.
Устройством, участвующем в передаче и ответственное за тип NAT в локальной сети, является роутер. Существует несколько факторов, которые могут негативно влиять на тип NAT. Первым шагом для исправления ситуации будет проверка конфигурации роутера.
Также Вам может быть полезна следующая информация, которая может оказаться как хорошей новостью в возникшей ситуации, так и не очень:
– Некоторые роутеры настроить легче, чем другие– Если Вы используете Общий доступ к подключению к Интернет (Shared internet connection) в публичном заведении, таком как общежитие, военная база, госпиталь и др., у Вас, скорее всего, не будет доступа к роутеру
– Некоторые провайдеры могут предоставить Вам роутер, но «поместить» вас за второе устройство, подобное роутеру, при этом у Вас не будет прямого доступа к второму устройству (то есть Ваш роутер подключается к Интернету не напрямую, а через дополнительную локальную сеть. Данный тип связи называется «Двойной NAT»).
NAT в роутере и на сервере – что это такое и где используется
NAT (происходит от английского термина Network Address Translation, который переводится как «преобразование сетевых адресов») при помощи этой функции в сетях TCP/IP преобразовываются IP-адреса транзитных пакетов. Он есть у всех роутеров, имеет название port forwarding.
Преимущество данной технологии в том, что не надо изменять конфигурацию маршрутизаторов и окончательных узлов внутренней сети. Эти технологии не применяются там, где в работе с внешними сетями задействовано много внутренних узлов.
Что такое NAT, как его настроить и использовать — NAT, PAT, Static NAT, Dynamic NAT — Заметки Сис.Админа
Доброго времени суток, дорогие читатели! Ну, что давайте про NAT.
Сегодня затронем подробнее тему несколько болезненную и довольно непонятную, но более непонятную, чем болезненную.
В большей степени эта проблема касается тех, кто играет в многопользовательские игры и коротко эта проблема звучит примерно так: «ПОЧЕМУ КО МНЕ НИКТО НЕ ЗАХОДИТ?». Для других эта проблема выглядит несколько иначе, а именно:
Но, однако, нет никакого заговора, виновник всех этих бед находится рядом с вами и хитро подмигивает вам лампочками, а зовут его… роутер, да-да, тот самый, который раздает вам интернет на все ваши (и может быть соседские) девайсы.
Если коротко, то пользователи из интернета просто не могут к вам подключиться, потому что ваш роутер их не пускает, но он делает это не просто из прихоти, а потому, что не знает о том, что все эти люди хотят подключиться именно к вам. Вот он и думает, что они что-то хотят от него самого.
Да, только что я вам обрисовал для чего нужен NAT. А теперь о том, что это такое.
NAT (Network Address Translation) — это такой механизм, который позволяет роутеру определять какие сервисы находятся за роутером и должны быть доступны из интернета, чтобы пользователи оттуда могли этими сервисами пользоваться (определение из вики я брать не стал, т.к. оно заумное и не всем понятное).
NAT присутствует во всех роутерах и серверных операционках в том или ином виде. В роутерах это обычно называется port forwarding, в линуксах iptables, на виндовых серверах — в специальной оснастке. А теперь давайте поговорим о различных типах NAT.
Тип первый, Static NAT
Static NAT не требуется для дома, а нужен в том случае, если провайдер выделил несколько IP адресов (внешние или «белые» адреса) вашей компании, и вам нужно, чтобы некоторые серверы всегда были видны из интернета, при этом их адреса бы не менялись.
Т.е. происходит преобразование адресов 1-1 (один внешний IP назначается одному внутреннему серверу). При такой настройке ваши серверы всегда будут доступны из интернета на любом порту.
Кстати говоря о портах, попробую несколько углубиться в эту тему, но не слишком сильно. Дело в том, что любой сервис, любая программа обращается к компьютеру, серверу, роутеру или сервису (будь то почта, веб-страничка или любой другой сервис) не только по IP адресу, но и по порту. Например, чтобы вам открыть страничку google.com со своего компьютера, вам надо ввести две вещи: IP адрес (DNS имя) и.. порт.
Но постойте, возмутитесь вы, ведь никакого порта вы не вводите и все отлично открывается!
Дело в том, что, нет, в DNS записи порт не прячется, как некоторые могли бы подумать, этот самый порт ваш браузер сам подставляет в адресную строку вместо вас. Вы можете легко это проверить. Введите в адресной строке google.com:80 и увидите, что страничка гугла открылась, но волшебные «:80» внезапно исчезли.
Так вот, чтобы пользователям из интернета вас видеть и иметь возможность к вам подключаться, они должны знать две вещи: ваш IP адрес и ваш порт, на котором расположен ваш сервис.
При статическом NAT вам будет фиолетово какой порт использует сервер или программа, т.к. сервер становится полностью доступен из интернета. Чтобы уже ограничить используемые порты, настраивается на этом сервере межсетевой экран.
Если провести параллель, то IP адрес — это адрес вашего дома, а порт — это номер вашей квартиры. Таким образом, чтобы люди могли к вам попасть, им нужно знать эти две вещи, иначе они вас просто не найдут.
Схема работы статического NAT
Попробую рассказать о схеме работы статического NAT.
Чтобы пользователи из интернета могли подключаться на эти серверы, им достаточно будет ввести внешние IP адреса серверов. Например, когда пользователь подключается на адрес 87.123.41.12, то роутер перенаправляет его на сервер 1 и пользователь уже общается с сервером, хотя не знает что реальный адрес сервера на самом деле другой (192.168.1.2). Такая запись в NAT таблице роутера будет храниться всегда.
Преимущества данного способа:
Динамический NAT отличается от статического немногим. Он используется почти также, но с тем лишь исключением, что ваши сервера не видны из интернета, но самим серверам этот интернет нужен. Суть его в том, что вам также выдаются несколько внешних IP адресов от провайдера, после чего роутер сам распределяет адреса между «нуждающимися».
Т.е. как только сервер или компьютер захотел выйти в интернет, роутер смотрит на свой список внешних адресов, выданных провайдером, и выдает один адрес из этого списка, при этом помечает что вот он выдал такой-то внешний адрес такому-то серверу или компьютеру (таблица NAT).
При этом срок жизни такой записи длится очень короткое время и как только сервер/компьютер перестал требовать доступ в интернет, этот адрес удаляется из таблицы NAT роутера.
Существенный недостаток в том, что количество серверов и компьютеров, которым требуется доступ в интернет, не должен сильно превышать кол-во выданных провайдером внешних адресов.
Недостаток и преимущества динамики
Ведь как только у роутера закончатся адреса в списке, он не сможет пустить новые компьютеры или серверы в интернет, пока не освободится хотя бы один внешний адрес.
В данном примере провайдер выдал нам всего два внешних адреса: 87.123.41.11 и 87.123.41.12. В этом случае мы IP 87.123.41.11 назначаем роутеру, а оставшийся адрес будет автоматически отдаваться тому серверу, который первым попросит доступ в интернет (в данном примере это был сервер 2), остальные серверы будут ждать, когда первый закончит и этот IP адрес освободится.
Преимущества данного способа:
Это именно то, что актуально для обычного рядового пользователя. Суть данного метода в том, что вам провайдер выдает только один внешний адрес (например 87.123.41.12), при этом вы каждому компьютеру или серверу назначаете какой-нибудь порт.
Например, нам нужно, чтобы пользователи из интернета могли подключаться к торрент-клиенту на ПК 1 и 2, к серверу Teamspeak на сервере 1, серверу FTP на сервере 2, веб-сайту на сервере 3 (по протоколу http и https), плюс ко всему на ПК 1 и 2 нужен будет удаленный доступ. Теперь затронем немного тему внутренних и внешних портов (да, такое тоже есть).
Внутренний порт — это порт, который использует программа на том компьютере или сервере, на котором находится. Внешний порт — это порт, который вы хотите открыть на роутере, чтобы на него подключались пользователи. Часто внутренний и внешний порты совпадают, но далеко не всегда.
Еще немного про порты и другие нюансы
Многие программы (не только лишь все) имеют вшитые порты без возможности перенастройки, либо, к примеру, у вас есть два Веб-сервера на винде (так называемый IIS), которые работают на 80 порту каждый и вам нужно дать доступ из интернета на оба сервера.
Здесь вы откроете на роутере одному серверу порт 80, а оставшемуся вам придется выбрать другой порт (например 8080).
Итого, на роутере мы настраиваем порты таким образом:
Имя | Приложение | Внутренний IP | Внутренний порт | Внешний IP | Внешний порт |
Сервер 1 | Teamspeak | 192.168.1.2 | 9987* | 87.123.41.12 | 9987 |
Сервер 2 | FTP сервер | 192.168.1.3 | 21* | 87.123.41.12 | 21000 |
Сервер 3 | Веб-сервер | 192.168.1.4 | 80* | 87.123.41.12 | 80 |
Сервер 3 | Веб-сервер | 192.168.1.4 | 443* | 87.123.41.12 | 444 |
ПК 1 | uTorrent | 192.168.1.10 | 26000 | 87.123.41.12 | 26000 |
ПК 2 | Bit-Torrent | 192.168.1.20 | 26100 | 87.123.41.12 | 26100 |
ПК 2 | Game Server | 192.168.1.20 | 27015* | 87.123.41.12 | 27015 |
ПК 1 | RDP | 192.168.1.10 | 3389** | 87.123.41.12 | 33891 |
ПК 2 | RDP | 192.168.1.20 | 3389** | 87.123.41.12 | 33892 |
Где * — стандартный порт, который использует программа (т.е. вы ее установили и ничего не настраивали);
** — стандартный порт, который использует сервис и который нельзя сменить.
Наглядная схемка ниже:
Теперь я постараюсь объяснить почему я написал именно эти порты.
Подытожив все это получаем, что удаленным пользователям всеравно какие у нас внутренние порты, они о них не знают и знать не могут. Эта информация нужна только нашему роутеру, чтобы он мог пересылать запросы туда, куда они и должны попадать.
Преимущества и недостатки третьего варианта
Теоретически, вы можете назначить одному IP адресу до 131072 (2 * 216) приложений. Почему я говорю «приложений», а не компьютеров/серверов?
Потому что один комп или сервер, как вы уже заметили выше, может использовать несколько различных приложений (при этом одно приложение может использовать несколько портов), при этом каждый порт может быть двух типов: TCP и UDP.
Углубляться в это в рамках этой статьи я не буду, в этом нет необходимости.
Для любой программы есть хелп, в котором написано какие порты ей нужны для работы, если их нельзя сменить. Многие приложения позволяют вам самим назначить какие порты какого типа использовать, таким образом упрощая вашу задачу. Для остальных же есть такой замечательный ресурс, как portforward.com.
Послесловие
Получилось несколько сумбурно, да и тема довольно непростая, но надеюсь теперь при слове NAT вас не будет бросать в дрожь 🙂
Как и всегда, если есть какие-то вопросы, мысли, дополнения и всё такое прочее, то добро пожаловать в комментарии к этой записи.
PS: За существование статьи отдельное спасибо другу проекта и члену нашей команды под ником “barn4k“