Доброго дня Вам.
Постараюсь описать проблему вкратце:
Сменил на сервере FreeBSD 6 (не помню точно какую) на 8.2. Задача сервера почти стандартная для небольших компаний: раздача интернета в локалку, прокси (squid), почта (exim), ftp (ftpd), есть свой домен 2-го уровня. 2 сетевых карты - одна наружу к провайдеру, вторая внутрь.Проверил все из локалки - работает как часы. Но филиалы компании, которые сидят снаружи и стучаться к нам через интернет за почтой и на фтп обнаружили интересную проблему: соединение проходит, а вот данные получить огромная проблема. В то же время по ssh и www данные получить можно (по крайней мере из дома спокойно подключался).
Так же заметил, что при подключении (здесь и далее буду говорить только о внешних подключениях) к серверу по фтп процесс natd кушает аж 100% WCPU.
Кусочки конфигов:
rc.conf
gateway_enable="YES"
inetd_enable="YES"
natd_program="/sbin/natd"
natd_enable="YES"
natd_interface="fxp0" #Внешний интерфейс
natd_flags="-m -u"
firewall_enable="YES"
firewall_script="/etc/rc.firewall.farm"
firewall_quiet="NO"
#фтп запускаю демоном, но пробовал и через inetd. Ничего не меняется.
ftpd_enable="YES"
ftpd_flags="-l -l"
rc.firewall.farm
# oif - внешний интерфейс (fxp0) oip - внешний ip (статика от провайдера)
# Enable divert
${fwcmd} add 300 divert natd tcp from any to any via ${oif}
${fwcmd} add 400 divert natd udp from any to any via ${oif}
${fwcmd} add 500 divert natd icmp from any to any via ${oif}
# Allow access to our FTP
${fwcmd} add 1100 pass tcp from any to ${oip} 20 setup
${fwcmd} add 1200 pass tcp from any to ${oip} 21 setup
Среди остальных конфигов ничего необычного нет.
P.S. Читал уже очень много и интернета и гугла и манов, но идей уже просто не возникает, а мучаюсь уже три дня. Буду рад любой помощи и идеям, но прошу не советовать сменить софт.