URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 65003
[ Назад ]

Исходное сообщение
"нужна помощь в настройке шейпера"

Отправлено aTom , 21-Мрт-06 21:11 
Здравствуйте! Помогите новичку.
Есть сервер (FreeBSD 6) одним концом подсоеденён к ADSL-роутеру (172.16.1.1), смотрящим в инет с выделенным каналом 256Кбит/с, другим в локалку, состоящую из четырёх компов (192.168.1.2-5), пользователи через него должны попасть в инет. На нём стоит NAT.
Пытаюсь организовать динамическое деление канала (256Кбит/с) в зависимости от колчества активных в данный момент пользователей, но ничего не получается((
И так, всё по порядку:
перособрал ядро, включил следующие опции:

options  IPFIREWALL
options  IPFIREWALL_VERBOSE
options  IPFIREWALL_VERBOSE_LIMIT=10
options  IPFIREWALL_FORWARD
options  IPDIVERT
options  DUMMYNET
options  TCP_DROP_SYNFIN

теперь мои конфиги:

#####rc.conf

defaultrouter="172.16.1.1"
hostname="Inferno"
ifconfig_rl0="inet 172.16.1.3  netmask 255.255.0.0" #это внешний интерфейс, к ADSL-роутеру
ifconfig_vr0="inet 192.168.1.1  netmask 255.255.255.0" #это внутренний интерфейс, в локальную сеть
rpcbind_enable="YES"
sshd_enable="YES"
usbd_enable="YES"
router_enable="YES"
sendmail_enable="NONE"
firewall_enable="YES"
firewall_quiet="YES"
firewall_type="open"
#firewall_logging="YES"
firewall_script="/usr/local/billing/rc.firewall"
natd_enable="YES"
natd_interface="rl0"
gateway_enable="YES"

#####/usr/local/billing/rc.firewall

ipfw='sbin/ipfw -q'
${ipfw} -f flush
${ipfw} add divert natd all from any to any via rl0
${ipfw} add allow all from any to any

###### создаю скрипт rc.shaper
#делаю две очереди для входящего и исходящего трафика

ipfw -f pipe flush
ipfw -f queue flush
ipfw pipe 1 config bw 64Kbit/s queue 20
ipfw queue 1 config pipe 1 weight 50 queue 20 mask dst-ip 0xffffffff
ipfw queue 11 config pipe 1 weight 50 queue 20 mask src-ip 0xffffffff
ipfw add queue 1 ip from any to 192.168.1.2
ipfw add queue 11 ip from 192.168.1.2 to any
ipfw add queue 1 ip from any to 192.168.1.3
ipfw add queue 11 ip from 192.168.1.3 to any

#распределение трафика пытаюсь для начала осуществить между двумя компами (192.168.1.2,3)
#скрипт проверочный, скорость пайпа в 64 Кбит/с делаю умышленно

# ./rc.shaper
Flushed all pipes.
Flushed all pipes.
00300 queue 1 ip from any to 192.168.1.2
00400 queue 11 ip from 192.168.1.2 to any
00500 queue 1 ip from any to 192.168.1.3
00600 queue 11 ip from 192.168.1.3 to any

# ipfw show
00100 21  6613 divert 8668 ip from any to any via rl0
00200 96 17538 allow ip from any to any
00300  0     0 queue 1 ip from any to 192.168.1.2
00400  0     0 queue 11 ip from 192.168.1.2 to any
00500  0     0 queue 1 ip from any to 192.168.1.3
00600  0     0 queue 11 ip from 192.168.1.3 to any
65535  6   416 deny ip from any to any

# ipfw pipe show
00001:  64.000 Kbit/s    0 ms   20 sl. 0 queues (1 buckets) droptail
q00001: weight 50 pipe 1   20 sl. 0 queues (64 buckets) droptail
q00011: weight 50 pipe 1   20 sl. 0 queues (64 buckets) droptail

Никакого деления канала, и тем белее динамического не происходит, работает один NAT.
Скорость как была, так и осталась 256Кбит/с.

Буду благодарен за помощь

Пользовался http://www.opennet.me/base/net/ipfw_pipe.txt.html


Содержание

Сообщения в этом обсуждении
"нужна помощь в настройке шейпера"
Отправлено alcat , 23-Мрт-06 19:24 
запусти tcpdump глянь что происходит