STUN - Википедия - STUN

Утилиты обхода сеанса для NAT (СТУН) представляет собой стандартизованный набор методов, включая сетевой протокол, для обход из транслятор сетевых адресов (NAT) шлюзы в приложениях для передачи голоса, видео, обмена сообщениями и других интерактивных коммуникаций в реальном времени.

STUN - это инструмент, используемый другими протоколами, такими как Установление интерактивного подключения (ICE), Протокол инициирования сеанса (SIP) и WebRTC. Он предоставляет хостам инструмент для обнаружения присутствия транслятора сетевых адресов и обнаружения сопоставленных, обычно общедоступных, протокол Интернета (IP) адрес и номер порта, выделенные NAT для приложения Протокол пользовательских датаграмм (UDP) передается на удаленные узлы. Протокол требует помощи стороннего сетевого сервера (STUN-сервера), расположенного на противоположной (общедоступной) стороне NAT, обычно общедоступной. Интернет.

Первоначально STUN было аббревиатурой от Простой обход протокола пользовательских дейтаграмм (UDP) через трансляторы сетевых адресов,[1] но это название было изменено в спецификации обновленного набора методов, опубликованных как RFC  5389, сохранив ту же аббревиатуру.[2]

Дизайн

STUN - это инструмент для протоколов связи, позволяющий обнаруживать и обходить трансляторы сетевых адресов, которые расположены на пути между двумя конечными точками связи. Реализован в виде облегченного клиент-сервер протокол, требующий только простых компонентов запроса и ответа со сторонним сервером, расположенным в общей, легко доступной сети, обычно Интернет. Клиентская сторона реализована в коммуникационном приложении пользователя, таком как Голос по интернет-протоколу (VoIP) телефон или клиент для обмена мгновенными сообщениями.

Базовый протокол работает по существу следующим образом: клиент, обычно работающий внутри частная сеть, отправляет обязательный запрос на сервер STUN в общедоступном Интернете. Сервер STUN отвечает ответ успеха который содержит айпи адрес и номер порта клиента, если смотреть с точки зрения сервера. Результат запутывается через Эксклюзивный или (XOR) отображение, чтобы избежать трансляции содержимого пакета шлюзами прикладного уровня (ALG), которые выполняют глубокая проверка пакетов в попытке выполнить альтернативные методы обхода NAT.

Сообщения STUN отправляются в Протокол пользовательских датаграмм (UDP) пакеты. Поскольку UDP не обеспечивает надежных транспортных гарантий, надежность достигается за счет управляемой приложением повторной передачи запросов STUN. Серверы STUN не реализуют какой-либо механизм надежности для своих ответов.[2] Когда надежность является обязательной, можно использовать протокол управления передачей (TCP), но это вызывает дополнительные сетевые издержки. В чувствительных к безопасности приложениях STUN может передаваться и зашифровываться с помощью Безопасность транспортного уровня (TLS).

Приложение может автоматически определять подходящий сервер STUN для связи с конкретным одноранговым узлом, запрашивая система доменных имен (DNS) для оглушить (для UDP) или оглушает (для TCP / TLS) сервер (SRV ) запись ресурса, например, _stun._udp.example.com. Стандартный номер порта прослушивания для сервера STUN - 3478 для UDP и TCP и 5349 для TLS. В качестве альтернативы TLS также может быть запущен на TCP-порте, если реализация сервера может демультиплексировать пакеты TLS и STUN. В случае, если сервер STUN не найден с помощью поиска DNS, стандарт рекомендует запрашивать имя домена назначения для адресных записей (A или AAAA), которые будут использоваться с номерами портов по умолчанию.[2]

Помимо использования шифрования протокола с TLS, STUN также имеет встроенные механизмы аутентификации и целостности сообщений с помощью специализированных типов пакетов STUN.

Когда клиент оценил свой внешний адрес, он может использовать его в качестве кандидата для связи с одноранговыми узлами путем совместного использования внешнего адреса NAT, а не частного адреса, который недоступен для одноранговых узлов в общедоступной сети.

Если оба взаимодействующих одноранговых узла расположены в разных частных сетях, каждая за NAT, одноранговые узлы должны координировать свои действия, чтобы определить лучший путь связи между ними. Некоторое поведение NAT может ограничивать одноранговое соединение, даже если известна общедоступная привязка. В Установление интерактивного подключения (ICE) протокол предоставляет структурированный механизм для определения оптимального пути связи между двумя одноранговыми узлами. Протокол инициирования сеанса (SIP) расширения определены для включения использования ICE при настройке вызова между двумя хостами.

Ограничения

Трансляция сетевых адресов реализуется с помощью ряда различных схем отображения адресов и портов, ни одна из которых не стандартизирована.

STUN не является автономным решением для обхода NAT, применимым во всех NAT сценарии развертывания и не работает правильно со всеми из них. Это инструмент среди других методов, и это инструмент для других протоколов при работе с обходом NAT, в первую очередь Обход с использованием Relay NAT (ОБОРОТ) и Установление интерактивного подключения (ЛЕД).

STUN работает с тремя типами NAT: полный конус NAT, ограниченный конус NAT, и порт с ограничением конуса NAT. В случаях ограниченного конуса или ограниченного порта конусного NAT, клиент должен отправить пакет конечной точке, прежде чем NAT разрешит пакеты от конечной точки до клиента. STUN не работает с симметричный NAT (также известный как двунаправленный NAT), который часто встречается в сетях крупных компаний. Поскольку айпи адрес сервера STUN отличается от сервера конечной точки, в случае симметричного NAT отображение NAT будет другим для сервера STUN, чем для конечной точки. ПОВЕРНУТЬ предлагает лучшие результаты с симметричным NAT.

Оригинальный алгоритм характеризации NAT

Оригинальный алгоритм характеризации NAT RFC 3489.

Исходная спецификация STUN в RFC 3489 задали алгоритм для характеристики поведения NAT в соответствии с поведением сопоставления адресов и портов. Этот алгоритм не является надежно успешным и применим только к подмножеству развернутых устройств NAT.

Алгоритм состоит из серии тестов, которые должно выполнить приложение. Когда путь через схему заканчивается красным прямоугольником, связь по протоколу UDP невозможна, а когда путь заканчивается желтым или зеленым прямоугольником, связь возможна.

Методы RFC 3489 оказался слишком ненадежным, чтобы справиться с множеством различных реализаций NAT и сценариев приложений, встречающихся в производственных сетях. Протокол и метод STUN были обновлены в RFC 5389, сохранив многие из исходных спецификаций как подмножество методов, но удалив другие.

Смотрите также

Рекомендации

  1. ^ RFC  3489 STUN - простой обход протокола дейтаграмм пользователя (UDP) через трансляторы сетевых адресов (NAT)
  2. ^ а б c RFC  5389 Утилиты обхода сеанса для NAT (STUN)

внешняя ссылка