Проблеммы с шейпингом в FreeBSD 8

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
unix11
рядовой
Сообщения: 27
Зарегистрирован: 2010-02-09 11:07:57
Откуда: Нижний Тагил

Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение unix11 » 2010-03-23 15:34:40

Установлена ОС 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.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение hizel » 2010-03-23 15:44:45

Код: Выделить всё

ipfw pipe show
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

unix11
рядовой
Сообщения: 27
Зарегистрирован: 2010-02-09 11:07:57
Откуда: Нижний Тагил

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение unix11 » 2010-03-23 15:56:04

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

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение terminus » 2010-03-23 16:18:42

Код: Выделить всё

# Каналы:
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

Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

unix11
рядовой
Сообщения: 27
Зарегистрирован: 2010-02-09 11:07:57
Откуда: Нижний Тагил

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение unix11 » 2010-03-23 17:52:42

я вас не понял, уважаемы, что это - "# make world, not bzImage!"
Вы предлагаете, повторить строку - "ipfw add divert natd all from any to any out via rl0"
Но зачем?

unix11
рядовой
Сообщения: 27
Зарегистрирован: 2010-02-09 11:07:57
Откуда: Нижний Тагил

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение unix11 » 2010-03-23 17:54:51

Помогите пожалуйста решить проблему.
Непонятно, где собака зарыта, почему фактическая полоса у пользователя получается 1/2 от указанной мной, при создании канала.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение terminus » 2010-03-23 18:18:29

unix11 писал(а):я вас не понял, уважаемы, что это - "# make world, not bzImage!"
цэ подпись моя... :"":
unix11 писал(а): Вы предлагаете, повторить строку - "ipfw add divert natd all from any to any out via rl0"
Но зачем?
внимательно перечитайте, проверьте, а потом критикуйте.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение terminus » 2010-03-23 18:20:13

unix11 писал(а):Помогите пожалуйста решить проблему.
Непонятно, где собака зарыта, почему фактическая полоса у пользователя получается 1/2 от указанной мной, при создании канала.
потому, что например:

Код: Выделить всё

ipfw add pipe 1 all from "table(1)" to any
срабатывает ДВА раза - на входе из локалки, и на выходе в интернет...
см. пример выше как надо сделать чтобы такого небыло.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

unix11
рядовой
Сообщения: 27
Зарегистрирован: 2010-02-09 11:07:57
Откуда: Нижний Тагил

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение unix11 » 2010-03-23 19:07:06

Спасибо, все понял.
Тему можно закрывать

unix11
рядовой
Сообщения: 27
Зарегистрирован: 2010-02-09 11:07:57
Откуда: Нижний Тагил

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение unix11 » 2010-03-26 15:57:03

с закрытием я поторопился. Проблему не решает ваш вариант.
Вашим способом интернет совсем не работает, все пакеты проходят через первые три правила, включая первый divert natd

unix11
рядовой
Сообщения: 27
Зарегистрирован: 2010-02-09 11:07:57
Откуда: Нижний Тагил

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение unix11 » 2010-03-26 15:58:37

Это не верный вариант

Код: Выделить всё

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 этим набором, выхода в интернет локальная сеть не имеет

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение terminus » 2010-03-26 16:17:35

какие сетевые интерфейсы на сервере?
как настроен natd?
как настроен

Код: Выделить всё

sysctl -a | grep one_pass
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

unix11
рядовой
Сообщения: 27
Зарегистрирован: 2010-02-09 11:07:57
Откуда: Нижний Тагил

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение unix11 » 2010-04-03 19:41:58

Код: Выделить всё

[root@freeBSD8 ~]# sysctl -a |grep one_pass
net.inet.ip.fw.one_pass: 1
НАТ, у меня запускается вот так: natd -n em0
em0 - интерфейс во внешний мир т.е Интернет.
Все как и должно быть, но конечно я в курсе, что можно подгрузить еще и модуль для корректной работы ftp - клиентов у пользователей и т.д, но это пока не нужно.

Аватара пользователя
budmo
рядовой
Сообщения: 18
Зарегистрирован: 2010-04-04 11:48:38

Re: Проблеммы с шейпингом в FreeBSD 8

Непрочитанное сообщение budmo » 2010-04-04 12:07:46

Один тип шейпа:
#------------
# 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