Протокол STUN: Как обнаружить двойной или двойной межсетевой экран NAT? - PullRequest
1 голос
/ 11 марта 2012

RFC 5780 для STUN определяет атрибут источника ответа для ответов на сообщения STUN, отправленные сервером обратно запрашивающему клиенту.

Он описывает это как:

Атрибут RESPONSE-ORIGIN вставляется сервером и указывает IP-адрес источника и порт, с которого был отправлен ответ. Это полезно для обнаружения двойных конфигураций NAT. Он присутствует только в ответах Binding.

Как клиент использует исходный IP-адрес и порт сервера для определения конфигурации двойного NAT? Разве информация об адресе источника не может быть так же легко считана из поля источника пакета UDP, поскольку входящий NAT перезаписывает только адрес назначения, а не адрес источника?

1 Ответ

0 голосов
/ 12 марта 2012

Сервер может сказать две вещи:

i) Какой IP-адрес он видит для вас.Если он не соответствует вашему IP-адресу, вы знаете, что между вами и сервером существует NAT.Вы были переведены.

ii) Какой IP-адрес он видит для удаленного узла и IP-адрес, который удаленный узел сообщал серверу.Если они не совпадают, удаленный узел тоже находится за NAT.

Следовательно, вы можете узнать, имеете ли вы дело с ситуацией с двойным NAT.

Теперь это не следует путатьв ситуации, когда между вами и сервером, например, есть два NAT.Но в этом случае вам не нужно беспокоиться, поскольку сервер будет работать с последним NAT на пути от вас к серверу.

...