Страница 1 из 1
Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-23 15:34:40
unix11
Установлена ОС FreeBSD 8 - релиз
Ядро собрано с опция:
Код: Выделить всё
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_FORWARD
options DUMMYNET
options IPDIVERT
options DEVICE_POLLING
options HZ=1000
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPSEC
options IPSEC_DEBUG
options ROUTETABLES=4
device crypto
Все работает за исключение шейпинга, скорость в трубе ставлю, например 254Kb/s, на деле же у клиента получается, всего 128Kb/s.
Изменял значение параметра options IPFIREWALL_VERBOSE_LIMIT, в диапазоне от 1000 - 5000, результат нулевой. Аналогичная проблема возникла с
freebsd 7.0. Конфигурация ядра идентично, за исключения опции - "options ROUTETABLES=4", в семерке она отсутствует.
Конфигурация фаирвола:
Код: Выделить всё
ipfw add allow all from any to any via lo
ipfw add allow all from 127.0.0.0/8 to any
ipfw add allow all from any to 127.0.0.0/8
ipfw add divert natd all from any to any via rl0
ipfw add allow all from any to me
ipfw add allow all from me to any
# Каналы:
ipfw pipe 1 config bw 128Kbit/s
ipfw pipe 2 config bw 254Kbis/s
ipfw pipe 3 config bw 512Kbit/s
# Добавляю пользователей в каналы
ipfw add pipe 1 all from "table(1)" to any
ipfw add pipe 1 all from any to "table(1)"
ipfw add pipe 2 all from "table(2)" to any
ipfw add pipe 2 all from any to "table(2)"
ipfw add pipe 3 all from any to "table(3)"
ipfw add pipe 3 all from "table(3)" to any
Помогите пожалуйста разобраться в причине не корректной работы каналов pipe.
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-23 15:44:45
hizel
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-23 15:56:04
unix11
ipfw pipe 1 show
Код: Выделить всё
00001: 128.000 Kbit/s 0 ms 50 sl. 0 queues (1 buckets) droptail
ipfw pipe 2 show
Код: Выделить всё
00002: 254.000 Kbit/s 0 ms 50 sl. 1 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
0 tcp 10.30.3.5/2852 79.165.106.65/443 237990 69365212 0 0 412
ipfw pipe 3 show
Код: Выделить всё
00003: 512.000 Kbit/s 0 ms 50 sl. 0 queues (1 buckets) droptail
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-23 16:18:42
terminus
Код: Выделить всё
# Каналы:
ipfw pipe 1 config bw 128Kbit/s
ipfw pipe 2 config bw 254Kbis/s
ipfw pipe 3 config bw 512Kbit/s
ipfw add allow all from any to any via lo
ipfw add allow all from 127.0.0.0/8 to any
ipfw add allow all from any to 127.0.0.0/8
ipfw add divert natd all from any to any in via rl0
ipfw add pipe 1 all from "table(1)" to any via rl0
ipfw add pipe 1 all from any to "table(1)" via rl0
ipfw add pipe 2 all from "table(2)" to any via rl0
ipfw add pipe 2 all from any to "table(2)" via rl0
ipfw add pipe 3 all from any to "table(3)" via rl0
ipfw add pipe 3 all from "table(3)" to any via rl0
ipfw add divert natd all from any to any out via rl0
ipfw add allow all from any to me
ipfw add allow all from me to any
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-23 17:52:42
unix11
я вас не понял, уважаемы, что это - "# make world, not bzImage!"
Вы предлагаете, повторить строку - "ipfw add divert natd all from any to any out via rl0"
Но зачем?
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-23 17:54:51
unix11
Помогите пожалуйста решить проблему.
Непонятно, где собака зарыта, почему фактическая полоса у пользователя получается 1/2 от указанной мной, при создании канала.
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-23 18:18:29
terminus
unix11 писал(а):я вас не понял, уважаемы, что это - "# make world, not bzImage!"
цэ подпись моя...
unix11 писал(а):
Вы предлагаете, повторить строку - "ipfw add divert natd all from any to any out via rl0"
Но зачем?
внимательно перечитайте, проверьте, а потом критикуйте.
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-23 18:20:13
terminus
unix11 писал(а):Помогите пожалуйста решить проблему.
Непонятно, где собака зарыта, почему фактическая полоса у пользователя получается 1/2 от указанной мной, при создании канала.
потому, что например:
срабатывает ДВА раза - на входе из локалки, и на выходе в интернет...
см. пример выше как надо сделать чтобы такого небыло.
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-23 19:07:06
unix11
Спасибо, все понял.
Тему можно закрывать
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-26 15:57:03
unix11
с закрытием я поторопился. Проблему не решает ваш вариант.
Вашим способом интернет совсем не работает, все пакеты проходят через первые три правила, включая первый divert natd
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-26 15:58:37
unix11
Это не верный вариант
Код: Выделить всё
ipfw add divert natd all from any to any in via rl0
ipfw add pipe 1 all from "table(1)" to any via rl0
ipfw add pipe 1 all from any to "table(1)" via rl0
ipfw add pipe 2 all from "table(2)" to any via rl0
ipfw add pipe 2 all from any to "table(2)" via rl0
ipfw add pipe 3 all from any to "table(3)" via rl0
ipfw add pipe 3 all from "table(3)" to any via rl0
ipfw add divert natd all from any to any out via rl0
C этим набором, выхода в интернет локальная сеть не имеет
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-03-26 16:17:35
terminus
какие сетевые интерфейсы на сервере?
как настроен natd?
как настроен
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-04-03 19:41:58
unix11
Код: Выделить всё
[root@freeBSD8 ~]# sysctl -a |grep one_pass
net.inet.ip.fw.one_pass: 1
НАТ, у меня запускается вот так: natd -n em0
em0 - интерфейс во внешний мир т.е Интернет.
Все как и должно быть, но конечно я в курсе, что можно подгрузить еще и модуль для корректной работы ftp - клиентов у пользователей и т.д, но это пока не нужно.
Re: Проблеммы с шейпингом в FreeBSD 8
Добавлено: 2010-04-04 12:07:46
budmo
Один тип шейпа:
#------------
# set defined speed for every client (from client to server)
gports="20000-30000"
${fwcmd} add 801 pipe 92 all from any to $gms1 $gports via vlan104
${fwcmd} add 801 pipe 92 all from any to $gms1 $gports via vlan205
# ${fwcmd} add 801 pipe 92 all from 10.0.0.0/8 to $gms1 $gports
${fwcmd} add 801 pipe 92 all from 1.1.0.0/16 to $gms1 $gports
# every queue 128Kbit/s
${fwcmd} pipe 92 config bw 128Kbit/s queue 64KB mask src-ip 0xffffffff dst-ip 0xffffffff buckets 48
#------------
# (from server to clients)
${fwcmd} add 802 pipe 93 all from $gms1 $gports to any via vlan104
${fwcmd} add 802 pipe 93 all from $gms1 $gports to any via vlan205
# ${fwcmd} add 802 pipe 93 all from $gms1 $gports to 10.0.0.0/8
${fwcmd} add 802 pipe 93 all from $gms1 $gports to 1.1.0.0/16
# all queues 1024Kbit/s and 30 packets in queue
${fwcmd} pipe 93 config bw 1024Kbit/s queue 32KB
${fwcmd} queue 1 config pipe 93 weight 50 queue 30 mask src-ip 0xffffffff dst-ip 0xffffffff buckets 32
#------------
${fwcmd} add 805 allow all from any to $nts2 $gports via vlan104
${fwcmd} add 806 allow all from any to $nts2 $gports via vlan205
${fwcmd} add 807 allow all from $nts2 $gports to any via vlan104
${fwcmd} add 808 allow all from $nts2 $gports to any via vlan205
Второй:
${fwcmd} add 3216 pipe 5 all from any to any in via vlan211
${fwcmd} pipe 5 config bw 5120Kbit/s queue 320KByte
${fwcmd} add 3218 pipe 6 all from any to any out via vlan211
${fwcmd} pipe 6 config bw 5120Kbit/s queue 320KByte
Проверка работы шейпов:
#! /bin/sh
while [ 1 -eq 1 ]
do
clear
echo "For exit press Ctrl+C"
echo
ipfw pipe show 92 | head -20
echo
ipfw pipe show 93 | head -20
echo
ipfw pipe show 5 | head -20
echo
ipfw pipe show 6 | head -20
sleep 1
done