Pull to refresh

Comments 14

Выбирается тот самый порт случайно (ну или не случайно, а по очереди, но это не важно, так как повлиять на его выбор извне мы не можем). Но есть определенные правила, они похожи на фильтр входящих пакетов:

Порт может оставаться всегда одним и тем же, в не зависимости от получателя (cone);
Порт может оставаться одним и тем же для конкретного адреса получателя (address);
Порт может оставаться одним и тем же лишь для конкретного адреса и порта получателя (port);


Если не секрет, где в природе можно встретить symmetic наты, которые по разному назначают порты в зависимости от адреса (и) порта получателя? Это какие-то программные решения, или может есть конкретные физические модели с такими настройками?
ну вот тот единственный который у меня знакомый делает именно так.
Я завтра уточню что за железо (я только удаленно видел).
«именно так» — это какой вариант из трех, если не секрет?
вот именно тот нат, который на каждое новое соединение выбирал последующий порт таким образом, что тот отстоял от предыдущего на случайное число, но всегда кратное 4096.

то есть фактически это симметричный нат с входящим фильтром по порту (Port-restricted), с port-dependent mapping и псевдослучайным выбором исходящего порта.
Вопрос. А если за НАТом много разных клиентов сидит, у которых много разных аппликух, открывающие много разных портов в единицу времени (ну, например, какие нить торренты). То как тогда? Ведь насколько я понял пробить NAT таким образом можно лишь в идеальных условиях — в течение некоторого времени только наша программа пытается пробиться наружу, и другие программы не мешают ей вычислять дельту перехватом портов из-под носа. Нет?
Вопрос справедливый. Разумеется за то время пока мы узнали внешний порт и отправили первый пакет пиру может случиться коннект. Для этого пиру предлагается не только «следующий» порт, а, скажем, 10 «следующих» портов, вот тут вероятность попасть выше.
Гадание на кофейной гуще? В чём прфит исследования?
вот цель как раз и понять гадание или нет.

Интерес набрать реальных примеров из жизни, а не синтетических из статей. Вот к примеру тот нат, что я описал, ни в одной заметке не приводился и глянув лишь на 4 порта из результатов я бы решил, что они выбираются просто случайно, а сейчас знаю, что бывает и так и его, пожалуй, тоже реально пробить.
FreeBSD (ipfw):
Results
— tests: 1010
NAT present: 1
first preserved port: 1
preserves port: 0
type: Port restricted NAT
mapped ports: 62251 62251 62251 62251

RouterOS (Mikrotik RB433):
Results
— tests: 1010
NAT present: 1
first preserved port: 1
preserves port: 1
type: Port restricted NAT
mapped ports: 52219 52219 52219 52219
Вот тут давно все описано для общего случая, когда порт случаен или псевдослучаен, но от этого не легче

yourcmc.ru/wiki/%D0%9F%D1%80%D0%B5%D0%BE%D0%B4%D0%BE%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B1%D0%B0%D1%80%D1%8C%D0%B5%D1%80%D0%B0_%D0%B8%D0%B7_%D0%B4%D0%B2%D1%83%D1%85_%D1%81%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D1%8B%D1%85_NAT

Провел эксперимент (что называется на коленке), в котором роль посредника (хоста3) взял на себя, т. е. по указанному алгоритму «подглядел» снифером нужные величины и вбил их в соотв. скрипты. Первый «пробой» симметричного НАТ-а (в сторону оператора мобильной связи) произошел через 8 часов после начала перебора (скорость перебора со сменой порта источника за НАТ устройством была обеспечена в 5 пакетов в секунду с помощью специфичных настроек UDP-генератора). Факт пробоя зафиксировался на сером ип хоста с 3G модемом. С наступлением ночи пробои участились, следующий был через 3 часа, еще два с разницей в час.

Поделитесь бинарником, если возможно

Спасибо за помощь спустя столькие года!

Sign up to leave a comment.

Articles