👋 Привет, сетевой друг!

Сегодня про PCP (Port Control Protocol) - протокол, через который устройство может само попросить роутер открыть ему порт. Без захода в веб-интерфейс и ручной настройки проброса.

🟣Зачем он нужен: допустим, у вас дома работает игровой сервер, но роутер использует NAT. Снаружи никто не может подключиться к серверу, потому что роутер просто не знает, куда отправлять входящие соединения.

🟣Ситуация становится ещё веселее, если провайдер использует CGNAT. Теперь между сервером и интернетом сразу два NAT, причём один из них вообще вам не принадлежит.

🟣Что делает PCP: устройство отправляет запрос на PCP-сервер, обычно работающий на маршрутизаторе или CGNAT-шлюзе, и просит создать отображение порта.

Например:

Внутри сети: 192.168.1.50:25565
Внешний адрес: 203.0.113.10:40000
Протокол: TCP
Время жизни: 3600 секунд


Если сервер разрешает такое отображение, он возвращает выделенный внешний адрес и порт. Теперь входящие соединения на 203.0.113.10:40000 могут попасть на игровой сервер.

🟣Интересная часть - PCP не ограничивается домашними роутерами. Он умеет работать с NAT на стороне провайдера, если тот поддерживает протокол и разрешает клиентам создавать отображения. А ещё PCP умеет управлять правилами на межсетевых экранах даже там, где NAT вообще нет.

🟣У протокола две основные операции:

• MAP - создать или продлить отображение порта для входящих соединений.

• PEER - управлять отображением, связанным с конкретным удалённым узлом. Полезно для приложений, которым важно сохранить существующее соединение через NAT.
Запросы PCP отправляются по UDP на порт 5351.

🟣Проверить работу можно через pcp-client из реализации libpcp, если она доступна в вашей системе. Но важно понимать: наличие PCP-клиента ещё не означает, что роутер или провайдер поддерживает запросы. И даже успешное создание отображения не гарантирует доступность сервиса, если трафик блокируется другим firewall.

🟣PCP описан в RFC 6887 и пришёл на смену более ограниченным механизмам вроде NAT-PMP. Его используют для автоматического управления доступностью сервисов, P2P-соединений и приложений, которым нужно принимать входящий трафик.
По сути, это способ договориться с NAT напрямую: не пытаться угадать, как он работает, а попросить его создать нужное правило.

🤖Бесплатный ChatGPT
Просмотры: 102
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти