- ipfw dynamic rules, Мандип, 10:03 , 26-Дек-06 (1)
>FreeBSD 4.11, ipfw, Squid transparent proxy. ipfw настроен динамически. И, в принципе, >работает. Но есть проблема: юзеры жалуются на "скорость интернета", то есть >доступа по HTTP в основном. При этом канал к провайдеру не >загружен, полки не бывает практически никогда. > > > >ipfw.conf: > >cmd='ipfw -q add' # command string > >tun='tun0' # Tunelled PPP Interface >pif='fxp0' # Public Interface NIC >lif='xl0' # Local interface NIC > >lnet='192.168.0.0/24' # Local Network > >fwd='fwd 127.0.0.1,3128' # Transparent proxy forward > >stks='setup keep-state' # Outgoing TCP client connection > ># Flush rules >ipfw -q -f flush > ># Local traffic >$cmd 1001 pass all from $lnet to any in recv $lif >$cmd 1001 pass all from any to $lnet out xmit $lif > ># Match packet to current dynamic rules >$cmd 1002 check-state > ># Deny ACK packets that did not match current dynamic rules >$cmd 1003 deny log tcp from any to any established > >... > ># HTTP request from me >$cmd 2102 pass tcp from me to any 80 out xmit $tun >$stks > ># HTTP Transparent Proxy >$cmd 2103 $fwd tcp from $lnet to any 80 out xmit $tun >$stks > >... > >#### Default denial >$cmd 4000 deny log all from any to any > > > >При этом правило 1003 отбрасывает очень много пакетов на 80 порт и >с 80 порта. Направления: > - из локальной сети в мир [local_ip] -> [website_ip] > - от сервера в мир [my_ext_ip] -> [website_ip] > - из мира к серверу [website_ip] -> [my_ext_ip] > >Dec 10 15:50:59 gate /kernel: ipfw: 1003 Deny TCP 192.168.0.200:1486 [website_ip]:80 out >via tun0 >Dec 10 15:50:59 gate /kernel: ipfw: 1003 Deny TCP [website_ip]:80 [my_ext_ip]:4919 in >via tun0 >Dec 10 15:51:00 gate /kernel: ipfw: 1003 Deny TCP [website_ip]:80 [my_ext_ip]:3561 in >via tun0 >Dec 10 15:51:00 gate /kernel: ipfw: 1003 Deny TCP 192.168.0.200:1487 [website_ip]:80 out >via tun0 >Dec 10 15:51:03 gate /kernel: ipfw: 1003 Deny TCP 192.168.0.200:1489 [website_ip]:80 out >via tun0 >Dec 10 15:51:03 gate /kernel: ipfw: 1003 Deny TCP [my_ext_ip]:3561 [website_ip]:80 out >via tun0 >Dec 10 15:51:04 gate /kernel: ipfw: 1003 Deny TCP [my_ext_ip]:4919 [website_ip]:80 out >via tun0 >Dec 10 15:51:05 gate /kernel: ipfw: 1003 Deny TCP 192.168.0.200:1486 [website_ip]:80 out >via tun0 >Dec 10 15:51:05 gate /kernel: ipfw: 1003 Deny TCP 192.168.0.200:1487 [website_ip]:80 out >via tun0 > > > >Насколько я понимаю, проблема может быть в том, что правила слишком быстро >устаревают. Сначала setup-пакет из лана в мир проходит до правила 2103, >форвардится Squid, и создается динамическое правило. Дальше, если Squid не имеет >страницы в кэше, он обращается к сайту: setup-пакет от сервера в >мир доходит до правила 2102 и создается динамическое правило. Когда же >одно из этих правил устаревает, пакеты с флагом ACK (?), соотвествующие >установленному TCP-соединению, начинают отбрасываться. И так происходит, пока не будет предпринята >попытка утсановления нового соединения, то есть пока не появится новый setup-пакет. >На этом мысль обрывается. > >Пытался увеличить время жизни правил. На текущий момент ipfw-related переменные sysctl установлены >следующим образом. > ># sysctl -a | grep net.inet.ip.fw. >net.inet.ip.fw.enable: 1 >net.inet.ip.fw.one_pass: 1 >net.inet.ip.fw.debug: 1 >net.inet.ip.fw.verbose: 1 >net.inet.ip.fw.verbose_limit: 1000 >net.inet.ip.fw.dyn_buckets: 256 >net.inet.ip.fw.curr_dyn_buckets: 256 >net.inet.ip.fw.dyn_count: 12 >net.inet.ip.fw.dyn_max: 8192 >net.inet.ip.fw.static_count: 66 >net.inet.ip.fw.dyn_ack_lifetime: 300 >net.inet.ip.fw.dyn_syn_lifetime: 20 >net.inet.ip.fw.dyn_fin_lifetime: 1 >net.inet.ip.fw.dyn_rst_lifetime: 1 >net.inet.ip.fw.dyn_udp_lifetime: 10 >net.inet.ip.fw.dyn_short_lifetime: 300 >net.inet.ip.fw.dyn_grace_time: 10 > >FreeBSD 4.11 не понимает переменной net.inet.ip.fw.dyn_keepalive. > >Какие-нибудь мысли по этому поводу? Заранее спасибо. я не крутой спец. но попробуй отключит кэширование в squid. может сам сервер тормаживает. в squid.conf поменяй acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY на acl test src 0/0 no_cache deny test может поможет.
|