Sistema FreeBSD-4.9 RELEASEEsti 2 setki. Trafic ot provaidera 256kb.
Pervoe - mne nujno razdeliti po 128kb na kajdoi setke
Vtoroe - razdeleati porovnu kak v odnoi tak i v drugoi setke kanal (128kb) mejdu uzveriami dinamiceski (esli v internete rabotaiut 2 celoveka to 128kb deliatsia na 2 esli 10 cel. to na 10 itd. a esli uzverei oceni mnogo to stabilizirovati po 4kb na kajdovo) nadeiusi poniatno viskazalsea. :)Pomogite pojalusta kak mne vsio eto razvernuti na firwalle mne ne poluciaetsea hoti i procital mnogo, oceni nujno
Zaranee spasibo
Опции ядра:
options NETGRAPH
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_ECHO
options NETGRAPH_ETHER
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_L2TP
options NETGRAPH_LMI
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_ONE2MANY
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
options NETGRAPH_RFC1490
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJC
options DUMMYNET
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPDIVERTсоздай nat.sh, сделай его исполняемым и положи в /usr/local/etc/rc.d/
Вот содержимое nat.sh#!/bin/sh
########################## Перемненные ##################################
oif=dc0 - внешний интерфейс
oip=192.168.14.101 - внешний адрес
iip=192.168.17.0/24 - внутреняя сетка
iip2=192.168.16.0/24 - вторая сетка внутри################################## NAT ###############################
/sbin/natd -n $oif
/sbin/ipfw add 10001 divert natd all from $iip to any out via $oif
/sbin/ipfw add 10001 divert natd all from $iip2 to any out via $oif
/sbin/ipfw add 10001 divert natd all from any to $oip in via $oif
####################делёж канала на сети############################
/sbin/ipfw add pipe 50 tcp from any to 192.168.16.0/24 via $oif
/sbin/ipfw add pipe 50 tcp from any to 192.168.17.0/24 via $oif
/sbin/ipfw pipe 50 config bw 128Kbit/sУ мня именно так реализовано!
>Опции ядра:
>options NETGRAPH
>options NETGRAPH_ASYNC
>options NETGRAPH_BPF
>options NETGRAPH_ECHO
>options NETGRAPH_ETHER
>options NETGRAPH_HOLE
>options NETGRAPH_IFACE
>options NETGRAPH_KSOCKET
>options NETGRAPH_L2TP
>options NETGRAPH_LMI
>options NETGRAPH_MPPC_ENCRYPTION
>options NETGRAPH_ONE2MANY
>options NETGRAPH_PPP
>options NETGRAPH_PPTPGRE
>options NETGRAPH_RFC1490
>options NETGRAPH_SOCKET
>options NETGRAPH_TEE
>options NETGRAPH_TTY
>options NETGRAPH_UI
>options NETGRAPH_VJC
>options DUMMYNET
>options IPFIREWALL
>options IPFIREWALL_VERBOSE
>options IPFIREWALL_FORWARD
>options IPFIREWALL_VERBOSE_LIMIT=1000
>options IPDIVERT
>
>создай nat.sh, сделай его исполняемым и положи в /usr/local/etc/rc.d/
>Вот содержимое nat.sh
>
>#!/bin/sh
>########################## Перемненные ##################################
>oif=dc0 - внешний интерфейс
>oip=192.168.14.101 - внешний адрес
>iip=192.168.17.0/24 - внутреняя сетка
>iip2=192.168.16.0/24 - вторая сетка внутри
>
>################################## NAT ###############################
>/sbin/natd -n $oif
>/sbin/ipfw add 10001 divert natd all from $iip to any out via
>$oif
>/sbin/ipfw add 10001 divert natd all from $iip2 to any out via
>$oif
>/sbin/ipfw add 10001 divert natd all from any to $oip in via
>$oif
>####################делёж канала на сети############################
>/sbin/ipfw add pipe 50 tcp from any to 192.168.16.0/24 via $oif
>/sbin/ipfw add pipe 50 tcp from any to 192.168.17.0/24 via $oif
>/sbin/ipfw pipe 50 config bw 128Kbit/s
>
>У мня именно так реализовано!
А где сдесь происходит динамическое разделение ширины канала между пользователями в каждой сети?
>>/sbin/ipfw add pipe 50 tcp from any to 192.168.16.0/24 via $oif
>>/sbin/ipfw add pipe 50 tcp from any to 192.168.17.0/24 via $oif
>>/sbin/ipfw pipe 50 config bw 128Kbit/s
>>вот тут вот
>>>/sbin/ipfw add pipe 50 tcp from any to 192.168.16.0/24 via $oif
>>>/sbin/ipfw add pipe 50 tcp from any to 192.168.17.0/24 via $oif
>>>/sbin/ipfw pipe 50 config bw 128Kbit/s
>>>
>
>вот тут вотМежду сетями, но не пользователями. Я так понимаю, автору топика еще и надо динамически изменять ширину для пользователей.
>>>>/sbin/ipfw add pipe 50 tcp from any to 192.168.16.0/24 via $oif
>>>>/sbin/ipfw add pipe 50 tcp from any to 192.168.17.0/24 via $oif
>>>>/sbin/ipfw pipe 50 config bw 128Kbit/s
>>>>
>>
>>вот тут вот
>
>Между сетями, но не пользователями. Я так понимаю, автору топика еще и
>надо динамически изменять ширину для пользователей.Да ё-маё, это как раз то что нужно! Канал делится пополам между подсетями. т.е. если 1 юзер из 1 подсети законнектится и будет иметь ширину 128кб\с, а затем законнектится другой, то канал безусловно разделится на обоих по 64 кб\с.
Spasibo bolishoe za pomoshi. obezatelino sdelaiu...No ia oceni izvineaiusi za moiu grubuiu oshibcu... mne samomu stidno...
vse znaiut kak eto rabotati s 1.6kb/s, eto esli deliti na 10 cel. a esli ih voobshe 15-20-25 to zdesi konecno - torba. U nas i tac internet derimo, karoce ia imel v vidu shto esli iuzverei mnogo to dati im vsem ne menishe 4K (ne bitov a baitov). Ia znaiu shto cerez firewall mojno mnogoe sdelati no ia ne oceni spetz v nevo. A mojno dopustim shob server vicisliti skoliko uzerov aktivni v danii moment (dopustim raz v 2 sec.)
i razdelliti kanal mejdu nimi, vedi oni zagrujaiut kakuiuto stranicku i poka ee citaiut kanal stoit... i.t.d.Esli tacoe mojno to kinite ideiku ili podskajite kak eto realizovati..
Bolishoe spasibo Hammer-u
На 2 подсети то разделит, а вот с динамическим разделением ниче не получиться, точнее получиться но если кто-то запустит качалку то остальные могут пойти покурить.Я неоднакратно подымал здесь тему по поводу деления трафика динамически, но нормального ответа так и недобился, в итоге сейчас мучаю связку
(ipfw + dummynet) & squid
но всеравно куча недостатков, нехватает именно динамики
>На 2 подсети то разделит, а вот с динамическим разделением ниче не
>получиться, точнее получиться но если кто-то запустит качалку то остальные могут
>пойти покурить.
>
>Я неоднакратно подымал здесь тему по поводу деления трафика динамически, но нормального
>ответа так и недобился, в итоге сейчас мучаю связку
>(ipfw + dummynet) & squid
>но всеравно куча недостатков, нехватает именно динамики
A esli cerez firewall podati vsem porovnu po 4K i zapretiti vsem caciati
eto budet efectivno ili net?
>На 2 подсети то разделит, а вот с динамическим разделением ниче не
>получиться, точнее получиться но если кто-то запустит качалку то остальные могут
>пойти покурить.
>
>Я неоднакратно подымал здесь тему по поводу деления трафика динамически, но нормального
>ответа так и недобился, в итоге сейчас мучаю связку
>(ipfw + dummynet) & squid
>но всеравно куча недостатков, нехватает именно динамикиА если поднят сквид, дык тут вообще всё просто! Сделай пулы и поруби всех похостово на нужную скорость.
Могу кусок конфига прислать от сквида, где пулы прописаны.
>А если поднят сквид, дык тут вообще всё просто! Сделай пулы и
>поруби всех похостово на нужную скорость.вот в этом то и запара :( хочется динамику организавать, а не качать на столько а просто лазить не более столькито
нужно сделать примерно следующее,
качание на всех не более например 5Кб, но с равномерным рампределением скорости между качальщиками по ip или имени, а не по количеству закачиваемых файлов
весь остальной трафик около 6Кб тоже надо •равномерно• распределять между ip а не количеству запросовдело в том что до 128Кбит скорость слишком мала чтобы с ней что-то эффективно можно было делать :(
>Могу кусок конфига прислать от сквида, где пулы прописаны.вышли если не сложно grayich@rambler.ru
Как и просили мой конфиг сквида, весь:http_port 3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 800000 KB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 10000 KB
minimum_object_size 0 KB
cache_dir ufs /opt/cache/squid/cache 150000 64 1024
ftp_passive on
ftp_telnet_protocol on
hosts_file /etc/hosts
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
refresh_pattern ^ftp: &n... 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320acl all src "/opt/squid/etc/user.allow" в этом файле созданы
разрешения для сетей и хостов типа 10.0.0.0/255.0.0.0
192.168.1.1/255.255.255.255acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 8080 # http2
acl Safe_ports port 20 # ftp
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 2121 # ftp proxy frox
acl CONNECT method CONNECT
acl froxserver src 192.168.14.111
http_access allow froxserver
http_access allow manager all
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow all
http_reply_access allow all
icp_access allow all
miss_access allow all
visible_hostname proxy.my_domain.net
forwarded_for on
cachemgr_passwd qwerty all
acl FTP proto FTP
always_direct allow FTP
icon_directory /opt/squid/share/icons
error_directory /opt/squid/share/errors/Russian-1251
delay_pools 1
delay_class 1 2 # pool 1 is a class 2 pool
delay_access 1 allow alldelay_parameters 1 -1/-1 -1/-1 8000/8000 - здесь определено что,
общий канал на сквид unlimited, канал на сеть unlimited и канал на
хост в сети 8 кб\с.coredump_dir /opt/squid/var/cache
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header onЗЫ Сквид работает как транспарент, фтп проксирует модуль FROX система
freebsd 4.9