Важливо спочатку знати, як працює трансляція мережевих адрес (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
Закритий 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 для відкриття портів
- Помірний: деякі порти вперед створені та працюють
- Закрито: статичне переадресація портів не існує
Але термінологія насправді туманна.
Дивись також