LINUX.ORG.RU
ФорумAdmin

DNAT и чьи в лесу шишки


0

0

Имеется шлюз, на котором (допустим для примера) порт 19001 проброшен в локальную сетку DNAT'ом. На шлюзе крутятся squid и аналогичные.

Вопрос, не возникнет ли ситуации, когда, допустим сквид, будет на очередном запросе в инет ждать ответ именно на 19001 порт (т.е. ответ для сквида пойдет в лок сеть на чью-то машину)? Если такая проблема есть то как ее можно решить?


>допустим сквид, будет на очередном запросе в инет ждать ответ именно на 19001 порт

сквид будет ждать на своём порту... не?

dimon555 ★★★★★
()

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

chocholl ★★
()

Выбрать такой порт сквид может. И ничего страшного не будет. Есть conntrack, который отслеживает состояние соединений. Поэтому все пакеты, относящиеся к данному соединению будут доставлены сквиду, остальные будут подчиняться правилу -t nat -A PREROUTING (или как там у тебя)

Chumka ★★★
()
Ответ на: комментарий от Chumka

> Выбрать такой порт сквид может. И ничего страшного не будет
Почему не будет ?
Например DNAT прописан для: всё с x.x.x.x:YYYY идущее на наш n.n.n.n:MMMM перебрасывать в локальную сеть.
Если кто-то лезет через squid на тот же x.x.x.x:YYYY, и для squid-а на интерфейсе n.n.n.n выделяется порт MMMM, тогда возникнет путаница: входящие пакеты обоих соединений будут иметь вид x.x.x.x:YYYY -> n.n.n.n:MMMM.

Вот выдаст ли система squid-у этот порт, если он используется для DNAT-а или нет - без понятия.

spirit ★★★★★
()
Ответ на: комментарий от spirit

а разве порт выбирает прикладная программа а не ОС?

Zur0
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.