Прежде всего важно знать, как работает преобразование сетевых адресов (NAT). Вы устанавливаете соединение с сервером в интернете. На самом деле вы отправляете пакеты на ваш маршрутизатор, выходя из компьютера через какой-то случайно выбранный порт:
Your computer Router
+------------+ +-----------+
| | | |
| port 31746 o====>o |
| | | |
+------------+ +-----------+
Ваш роутер, в свою очередь, устанавливает соединение с сервером, с которым вы хотите общаться. Он говорит, что это собственный случайно выбранный порт:
Router www.google.com
+-----------+ +----------------+
| | | |
| port 21283o====>o port 80 |
| | | |
+-----------+ +----------------+
Когда веб-сервер Google отправляет вам информацию обратно, он на самом деле отправляет ее обратно на ваш маршрутизатор (так как ваш маршрутизатор - это парень в Интернете):
Router www.google.com
+-----------+ +----------------+
| | | |
| port 21283o<====o port 80 |
| | | |
+-----------+ +----------------+
Пакет прибывает на ваш маршрутизатор через порт 21283
из www.google.com
. Что должен сделать с ним роутер?
В этом случае маршрутизатор ведет учет вас и трафика, который он отправляет www.google.com:80
с порта 21283
от вашего имени. Таким образом, маршрутизатор передаст пакет на ваш компьютер:
Your computer Router
+------------+ +-----------+
| | | |
| port 31746 o<====o |
| | | |
+------------+ +-----------+
Открытый NAT
В открытом NAT любая машина в Интернете может отправлять трафик на порт вашего маршрутизатора 21283
, и пакет будет возвращен вам:
Your computer Router
+------------+ +-----------+ {www.google.com:80
| | | | {www.google.com:443
| port 31746 o<====o port 21283o<===={serverfault.com:80
| | | | {fbi.gov:32188
+------------+ +-----------+ {botnet.cn:11288
Закрытый NAT
Закрытый нат более ограничен. Он ничего не пропустит, если он не получен с исходного адреса и порта, с которыми вы хотели поговорить, то есть с www.google
порта 80
:
Your computer Router
+------------+ +-----------+ {www.google.com:80
| | | | | (rejected) www.google.com:443
| port 31746 o<====o port 21283o<====+ (rejected) serverfault.com:80
| | | | (rejected) fbi.gov:32188
+------------+ +-----------+ (rejected) botnet.cn:11288
Умеренный NAT
Умеренный NAT представляет собой смесь, где ваш маршрутизатор будет принимать любой трафик с любого порта , но только с одного хоста :
Your computer Router
+------------+ +-----------+
| | | | {www.google.com:80
| port 31746 o<====o port 21283o<===={www.google.com:443
| | | | (rejected) serverfault.com:80
+------------+ +-----------+ (rejected) fbi.gov:32188
(rejected) botnet.cn:11288
Это один из определений. Другой это:
- Открыть: позволяет компьютерам в локальной сети использовать UPNP для открытия портов
- Умеренный: некоторые портовые форварды были созданы и работают
- Закрыто: статическая переадресация портов отсутствует
Но терминология действительно туманна.
Смотрите также