👋
🟣Зачем он нужен: допустим, у вас дома работает игровой сервер, но роутер использует NAT. Снаружи никто не может подключиться к серверу, потому что роутер просто не знает, куда отправлять входящие соединения.
🟣Ситуация становится ещё веселее, если провайдер использует CGNAT. Теперь между сервером и интернетом сразу два NAT, причём один из них вообще вам не принадлежит.
🟣Что делает PCP: устройство отправляет запрос на PCP-сервер, обычно работающий на маршрутизаторе или CGNAT-шлюзе, и просит создать отображение порта.
Например:
Если сервер разрешает такое отображение, он возвращает выделенный внешний адрес и порт. Теперь входящие соединения на
🟣Интересная часть - PCP не ограничивается домашними роутерами. Он умеет работать с NAT на стороне провайдера, если тот поддерживает протокол и разрешает клиентам создавать отображения. А ещё PCP умеет управлять правилами на межсетевых экранах даже там, где NAT вообще нет.
🟣У протокола две основные операции:
• MAP - создать или продлить отображение порта для входящих соединений.
• PEER - управлять отображением, связанным с конкретным удалённым узлом. Полезно для приложений, которым важно сохранить существующее соединение через NAT.
Запросы PCP отправляются по UDP на порт 5351.
🟣Проверить работу можно через
🟣PCP описан в RFC 6887 и пришёл на смену более ограниченным механизмам вроде NAT-PMP. Его используют для автоматического управления доступностью сервисов, P2P-соединений и приложений, которым нужно принимать входящий трафик.
По сути, это способ договориться с NAT напрямую: не пытаться угадать, как он работает, а попросить его создать нужное правило.
🤖Бесплатный ChatGPT
Привет, сетевой друг!Сегодня про 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