Страница 1 из 1

Проблема с natd?

Добавлено: 2010-04-29 8:38:17
AnteC
Здравствуйте.
Настроен FreeBSD 8.0 Stable как раутер со squid 3.1.1.
включен ipfw и natd.
Проблема с загрузкой файлов из внутренней сети в интернет: например при попытке приаттачить файл (больше 30Кб) через web на mail.ru на FreeBSD natd начинает загружать 1 ядро на 100%, и файл в итоге так и не прикрепляется.
Если же прикреплять файл меньшим размером (например 5Кб) - все Ок - прикрепляется нормально. То же самое и на yandex.ru и на zalil.ru и тд.

Если же отключить natd (при этом естественно перестают работать почтовые клиенты и тд), то прикрепление файлов работает на ура.
Пробовал играться с mtu на внешнем интерфейсе (ставил и 1460, 1300) - никакого эффекта. Отключал pool'ы в squid'е - тоже самое.

rc.conf

Код: Выделить всё

freebsd# cat /etc/rc.conf
amd_enable="NO"
amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
hostname="freebsd.m-tisiz.local"
ifconfig_em0="inet 192.168.100.216  netmask 255.255.255.0"
ifconfig_em1="inet 192.168.5.1  netmask 255.255.255.0"
defaultrouter="192.168.5.5"
inetd_enable="NO"
gateway_enable="YES"
sendmail_enable="NONE"
keymap="ru.koi8-r"
keyrate="fast"
mousechar_start="3"
saver="daemon"
scrnmap="koi8-r2cp866"
sshd_enable="YES"
firewall_enable="YES"
firewall_script="/usr/local/etc/rc.firewall"
firewall_type="/usr/local/etc/rc.firewall"
natd_enable="YES"
natd_interface="em1"
natd_flags=""
tcp_extensions="NO"
cupsd_enable="NO"
smbd_enable="YES"
nmbd_enable="YES"
winbindd_enable="YES"
squid_enable="YES"
mpd_enable="YES"
mpd_flags="-b"
rc.firewall

Код: Выделить всё

freebsd# cat /usr/local/etc/rc.firewall
#!/bin/sh
ipfw='/sbin/ipfw -q'

${ipfw} flush

${ipfw} add 115 divert natd ip4 from any to any via em1
${ipfw} add 120 allow ip from any to any via lo0
${ipfw} add 125 deny ip from any to 127.0.0.0/8
${ipfw} add 126 deny ip from 127.0.0.0/8 to any

${ipfw} add 131 allow log logamount 1000 tcp from any to me 1723
${ipfw} add 131 allow gre from any to any


${ipfw} add 170 allow ip from any to me 4095
${ipfw} add 175 allow ip from me 4095 to any

${ipfw} add 210 allow icmp from any to any icmptypes 0,8,11

${ipfw} add 300 allow ip from me to any out
${ipfw} add 310 allow ip from any 80 to me established
${ipfw} add 350 allow udp from any 123 to any 123
${ipfw} add 361 allow tcp from 192.168.100.0/24 to 213.142.217.104 9091
${ipfw} add 366 allow tcp from 213.142.217.104 9091 to 192.168.100.0/24 establis                                                                              hed

${ipfw} add 371 allow ip from any to me 5007
${ipfw} add 381 allow ip from me 5007 to any established

${ipfw} add 400 allow udp from any to any 53
${ipfw} add 420 allow udp from any 53 to 192.168.100.244
${ipfw} add 430 allow udp from any 53 to 192.168.100.250
${ipfw} add 420 deny ip from any to any 520

${ipfw} add 600 allow ip from 192.168.100.0/24 to me

${ipfw} add 700 allow tcp from 192.168.100.0/24 to any 25,110
${ipfw} add 710 allow tcp from any 25,110 to 192.168.100.0/24 established
${ipfw} add 730 allow ip from any 443 to any

${ipfw} add 6000 deny log ip from any to any
при попытке загрузки файла:

Код: Выделить всё

netstat -w1
            input        (Total)           output
   packets  errs idrops      bytes    packets  errs      bytes colls
         3     0     0        180          1     0        218     0
         1     0     0         60          1     0        170     0
         2     0     0        120          1     0        170     0
         4     0     0       1001          4     0       1238     0
       180     0     0     186265        187     0     177797     0
     26612     0     0    1606327      26626     0    1587351     0
     62510     0     0    3625716      62509     0    3631014     0
     63999     0     0    3737572      64020     0    3743162     0
top:

Код: Выделить всё

  PID USERNAME  THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
 1137 root        1 113    0  3616K  1516K CPU0    0   7:56 83.89% natd
 1010 squid       1  44    0 84200K 77264K kqread  0   0:23  0.00% squid
 1001 root        1  44    0 13880K  7568K select  0   0:00  0.00% winbindd
  991 root        1  44    0 13884K  7164K select  1   0:00  0.00% winbindd
 1002 root        1  47    0 13996K  7496K select  3   0:00  0.00% winbindd
........................

Re: Проблема с natd?

Добавлено: 2010-04-29 11:58:18
arkan
двести раз уже обсуждалось про проблеммный натд в восьмерке
IPNAT используй

А зачем вот такое я так и не понял
firewall_script="/usr/local/etc/rc.firewall"
firewall_type="/usr/local/etc/rc.firewall"

Re: Проблема с natd?

Добавлено: 2010-04-29 12:39:08
AnteC
Разрешил squid'у коннектится до ната... и все заработало)))

Re: Проблема с natd?

Добавлено: 2010-05-04 17:17:01
skylego
AnteC писал(а):Разрешил squid'у коннектится до ната... и все заработало)))
Плз, покажи, что в результате?

Re: Проблема с natd?

Добавлено: 2010-05-05 21:10:28
AnteC

Код: Выделить всё

00100 allow ip from me to any dst-port 80 via em1
00101 allow ip from any 80 to me established
00115 divert 8668 ip4 from any to any via em1
Т.к. натит еще и модем (в режиме раутера). ИМХО теоритически можно просто настроить маршрутизацию, но у меня почему-то не заработало.