У меня FreeBSD 5.3 ipfw и nat
два интерфейса xl0 и xl1
xl0 смотрит во внутреннюю сеть и подключён к простому свитчу eline, 100 mbit/s fullduplex
xl1 подключён к другой сети, где берётся инет, подключён вроде как к маршрутизатору или управляемому коммутатору dlink, 100 mbit/s halfduplex
Ну так вот при скачке из сети провайдера (xl1) фильмов при максимальной скорости (это примерно 5-6 мегабайт в секунду) просиходит зависание компа. На клаву не отвечает. На экране последние сообщения. Никаких ошибок нет. В логах ничего не пишется.
Я заметил что при скорости скачивания 6 и более мегабайт в секунду демон natd загружает CPU примерно на 10-12%.
(мой клиентский комп) ------- xl0 |FreeBSD| xl1 ------ сеть провайдера
ipfw:
add 100 divert natd ip from внутренний_ip to any out xmit xl1
add 110 divert natd ip from any to внешний_ip in via xl1
add 200 allow tcp from any to any established
add 300 allow ip from any to any via lo0
add 400 allow ip from внешний_ip to any out xmit xl1
add 410 allow ip from 10.1.10.100 to any out xmit xl0
add 420 allow ip from внутренний_ip to any
add 430 allow ip from any to внутренний_ip
# DNS
add 500 allow udp from any 53 to внешний_ip
# ICMP
add 550 allow icmp from any to внешний_ip in via xl1 icmptype 0,3,4,8,11,12
add 560 allow icmp from внешний_ip to any out via xl1 icmptype 3,8,12
add 570 allow icmp from внешний_ip to any out via xl1 frag
add 580 deny log icmp from any to any in via xl1
.... и куча других правил на открытие портов
Ядро пересобрал так:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=200
options IPDIVERT
options IPFIREWALL_FORWARD
options DUMMYNET
конфигурация компа:
AMD Sempron 2300+
MB Gigabyte 7NF-RZ
2x256 MB Kingston 400 mhz dual
2 сетевые карты 3com 980b
Помогите, уже запарился ходить перезагружать комп.