Здравствуйте! Помогите новичку.
Есть сервер (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.dev/base/net/ipfw_pipe.txt.html