Назад | Перейти на главную страницу

STUN работает на большинстве NAT?

Некоторое время я в значительной степени игнорировал протокол STUN как шум, но я все время сталкиваюсь с ним здесь и там, и мне интересно его общее удобство использования.

Если я правильно понимаю, STUN полезен только в том случае, если самый внешний NAT позволяет в пакетах, отправленных из addr:port пара, чем та, которую использовал источник при установлении сопоставления.

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

Вопросы:

  1. Действительно ли много NAT, которые выполняют только фильтрацию, независимую от конечных точек?
  2. Есть ли какие-либо веские причины для использования фильтрации, независимой от конечных точек, на NAT, помимо лени, подвергая опасности системы, стоящие за ним, и взимания дополнительных долларов за функцию "p2p friendly"?

NAT не предназначен в качестве функции безопасности - это средство предотвращения исчерпания адресов IPv4 в качестве временной меры, пока IPv6 не будет полностью развернут. Таким образом, имеет смысл реализовать его таким образом, чтобы максимизировать полезность, а не безопасность.

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

Одноранговая IP-телефония (например, Skype) была бы ярким примером легитимного приложения, которое не могло бы хорошо работать без возможности пробивать дыры в NAT: s, будь то STUN или аналогичные технологии, которые используют поведение NAT: s или через такие технологии, как UPnP.