>>Для ipfw:
>>sysctl net.inet.ip.fw.dyn_udp_lifetime (по умолчанию 10)
>
>>Для natd - только исходники править (по умолчанию там 60):
>>/usr/src/lib/libalias/alias_db.c:
>>#define UDP_EXPIRE_TIME 60
>>
>>А вообще, т.к. UDP сессий не существует, как таковых, правильнее было бы
>>жестко прописать нужные порты в ipfw и redirect_port в natd.
>
>Ситуация следующая. Извне (из инета) UDP пакеты на машину с этой прогой
>прокидываются на прямую. Т.е. через redirect_port в natd. Но и сама
>программа лезет в инет, делает там какой-то запрос в некой базе,
>получает ответ. Дык вот этот самый ответ она может получать весьма
>долго, из-за этого по утверждению разработчиков прога подвисат, т.е. запрос послала,
>а ответа не получила из-за того, что обрывается UDP сессия. В
>инет лезет соотвественно через NAT. Просветите где мне надо увеличить тайм аут?
Под `UDP сессией' может пониматься разве что запомненный natd'ом факт, что с ip1:port1 ушел пакет наружу на ip2:port2, и соответственно, в течение некоторого промежутка времени (60 сек) пакеты с ip2:port2 надо перенаправлять на ip1.
Если natd'ом пакеты прокидываются через redirect_port, то никаких `UDP сессий' у тебя нету уж точно. Могут быть динамические правила в ipfw (keep-state), в таком случае пропиши статические или увеличь net.inet.ip.fw.dyn_udp_lifetime до, допустим, 60. В любом случае, tcpdump покажет, приходит ли пакет извне как таковой, natd -v покажет что с ним делает natd, и /var/log/security покажет, не режектится ли он фаирволом.
|