Страница 1 из 1
Шейпер
Добавлено: 2009-03-05 21:15:56
Alteron
Господа, взяли и-нет вскладчину. Надо настроить динамический шейпинг.
Почитал форум, доки. Скажите, правильно ли я делаю?
Канал 2Мбит в обе стороны. Использую IPFW
В правилах определяем:
Код: Выделить всё
#Трафик, выходящий со внутреннего интерфейса. Для людей из локалки - входящий.
# Общая входящая труба
${ipfw} pipe 1 config bw 1900Kbit/s
# Определяем очередь. По mask на каждый IP-клиент (внутри сети) будет создаваться отдельная очередь
${ipfw} queue 1 config pipe 1 weight 50 mask dst-ip 0xffffffff
#Заворачиваем трафик в очередь
${ipfw} add 0900 queue 1 ip from not 192.168.1.0/24 to "table(2)" out via $int_if
#Трафик, выходящий в и-нет. Для людей из локалки - исходящий.
# Общая исходящая труба
${ipfw} pipe 2 config bw 1900Kbit/s
# Определяем очередь. По mask на каждый IP-клиент (внутри сети) будет создаваться отдельная очередь
${ipfw} queue 2 config pipe 2 weight 50 mask src-ip 0xffffffff
#Заворачиваем трафик в очередь
${ipfw} add 1000 queue 2 ip from "table(2)" to not 192.168.1.0/24 out via $ext_if
На сколько я понимаю, правило 1000 надо ставить перед самым divert natd
Вроде всё. Прокомментируйте.
Re: Шейпер
Добавлено: 2009-06-07 17:35:49
Alex Keda
а вы попробуйте
Re: Шейпер
Добавлено: 2009-06-12 16:08:39
Linozh
Добрый день. Втрорые сутки мучаюсь с ipfw и все безрезультатно. Задача поделить канал.
Добавил в /etc/rc.conf следующее:
Код: Выделить всё
firewall_enable="YES"
firewall_script="/etc/ipfw.rules"
firewall_logging="yes"
dummynet_enable="yes"
В /etc/ipfw.rules прописал:
Код: Выделить всё
ipfw -f flush
ipfw -f pipe flush
ipfw -f queue flush
ipfw table 1 add 192.168.1.2 #User1
ipfw table 1 add 192.168.1.7 #User2
ipfw pipe 102 config mask src-ip 0x000000ff bw 64Kbit/s queue 50
ipfw add pipe 102 all from "table(1)" to any via re0
ipfw pipe 103 config mask dst-ip 0x000000ff bw 64Kbit/s queue 50
ipfw add pipe 103 all from any to "table(1)" via re0
Канал 300Kbit/s (правда реально не бывает больше 220). По тестам
http://www.speedtest.net/ показывает 215Kbit/s входящая и 15Kbit исходящая. При попытке что-либо скачать используется весь доступный канал. В чем может быть проблема?
Re: Шейпер
Добавлено: 2009-06-12 17:21:29
hizel
ipfw pipe show
и это весь фаервол?
Re: Шейпер
Добавлено: 2009-06-12 17:45:22
Linozh
Код: Выделить всё
# ipfw pipe show
00102: 64.000 Kbit/s 0 ms 50 sl. 1 queues (64 buckets) droptail
mask: 0x00 0x000000ff/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
4 ip 0.0.0.2/0 0.0.0.0/0 170 27230 0 0 0
00103: 64.000 Kbit/s 0 ms 50 sl. 1 queues (64 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x000000ff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
2 ip 0.0.0.0/0 0.0.0.2/0 25 3652 1 100 0
Да пока весь.
Re: Шейпер
Добавлено: 2009-06-12 19:31:48
hizel
работает :-\
Re: Шейпер
Добавлено: 2009-06-12 20:01:01
Linozh
Я дома пытаюсь откатать схему для использования ее в рабочей сети (Поэтому всего 2 пользователя и такой маленький канал). Смысл в следующем. Есть сервер у которого шлюз в интернет маршрутизатор Cisco (на циске работает NAT). На сервере одна сетевая карта re0. Я хочу с помощью ipfw поделить канал. Это вообще реально или я зря трачу время?
Re: Шейпер
Добавлено: 2009-06-12 20:24:55
Linozh
hizel писал(а):работает :-\
Как то странно работает: входящую не режет а исходящую зажимает до 15Kbit/s

Re: Шейпер
Добавлено: 2009-06-14 12:20:30
Linozh
Код: Выделить всё
ipfw -f flush
ipfw -f pipe flush
ipfw -f queue flush
ipfw table 1 add 192.168.1.2 #User1
ipfw table 1 add 192.168.1.7 #User2
ipfw pipe 102 config bw 64Kbit/s
ipfw queue 102 config mask src-ip 0xffffffff pipe 102
ipfw pipe 103 config bw 64Kbit/s
ipfw queue 103 config mask dst-ip 0xffffffff pipe 103
ipfw add queue 102 ip from "table(1)" to any out xmit re0
ipfw add queue 103 all from any to "table(1)" in recv re0
Теперь исходящую режет как надо 59Kbit/s по тестам, а вот с входящей пока разобраться не смог. В чем может быть проблема?
Re: Шейпер
Добавлено: 2009-06-14 14:01:35
Burn_
Это все правила или часть ? NAT'а нет ?
Пробуй упростить правила, убери на время отладки маски и т.п.
Добавь в правила log и смотри что в них попадает ...
Re: Шейпер
Добавлено: 2009-06-14 14:25:57
Linozh
Да это все правила.NAT`а нет
Re: Шейпер
Добавлено: 2009-06-14 15:37:56
Burn_
Linozh писал(а):Да это все правила.NAT`а нет
Могу конечно ошибаться, но судя по выше написанному у Вас шлюз и тестовые пользователи в одной сети с еще одним шлюзом, шлюзом провайдера, так сказать основным для этой сети. Если так, то входящий трафик через Вас шлюз не пойдет, и соответственно резать полосу не будет.
Re: Шейпер
Добавлено: 2009-06-14 16:28:03
harmless
http://forum.lissyara.su/viewtopic.php?f=3&t=12525
Вот тут все расписано!
Выкинь то что тебе не нужно и экспериментируй дальше!???
А лучше не экспериментировать а предельно внимательно почитать хотя бы статьи лиса и остальных, а потом что-то пробовать написать(сам когда-то мучился)
Re: Шейпер
Добавлено: 2009-06-14 17:04:25
Linozh
Burn_ писал(а):Linozh писал(а):Да это все правила.NAT`а нет
Могу конечно ошибаться, но судя по выше написанному у Вас шлюз и тестовые пользователи в одной сети с еще одним шлюзом, шлюзом провайдера, так сказать основным для этой сети. Если так, то входящий трафик через Вас шлюз не пойдет, и соответственно резать полосу не будет.
Так для пользователей шлюзом выступает не Cisco а машина с FreeBSD. А если честно хочется выкинуть Cisco (по моему мнению без нее было бы проще) и оставить шлюз на FreeBSD.
Re: Шейпер
Добавлено: 2009-06-14 17:16:23
Burn_
Linozh писал(а):Так для пользователей шлюзом выступает не Cisco а машина с FreeBSD. А если честно хочется выкинуть Cisco (по моему мнению без нее было бы проще) и оставить шлюз на FreeBSD.
Пользователь идет через FreeBSD , но когда запрос возвращается, Cisco выступает в роли шлюза. т.к. у неё есть алиас из сети пользователя и пакеты идут, так сказать, по кротчайшему пути, т.е. сразу к клиенту, а не через FreeBSD.
Re: Шейпер
Добавлено: 2009-06-14 17:20:52
Linozh
Придется от кошки избавиться

Вопрос немного не по теме - покупать Cisco 2821 на которой из задач маршрутизации указан только статический маршрут до провайдера - это номально?
Re: Шейпер
Добавлено: 2009-06-14 17:27:41
Burn_
Linozh писал(а):Придется от кошки избавиться

Вопрос немного не по теме - покупать Cisco 2821 на которой из задач маршрутизации указан только статический маршрут до провайдера - это номально?
Зависит от того, что планируется ею рулить. Для небольшого трафика и FreeBSD хватит.
Re: Шейпер
Добавлено: 2009-06-14 17:31:07
Linozh
Burn_ писал(а):Пользователь идет через FreeBSD , но когда запрос возвращается, Cisco выступает в роли шлюза. т.к. у неё есть алиас из сети пользователя и пакеты идут, так сказать, по кротчайшему пути, т.е. сразу к клиенту, а не через FreeBSD.
Значит у меня впринципе эта идея не прокатит?
Re: Шейпер
Добавлено: 2009-06-14 17:34:26
Burn_
Linozh писал(а):Burn_ писал(а):Пользователь идет через FreeBSD , но когда запрос возвращается, Cisco выступает в роли шлюза. т.к. у неё есть алиас из сети пользователя и пакеты идут, так сказать, по кротчайшему пути, т.е. сразу к клиенту, а не через FreeBSD.
Значит у меня впринципе эта идея не прокатит?
Убери с Cisco алиас пользовательской сети и соедини FreeBSD и Cisco любой другой сетью.
Re: Шейпер
Добавлено: 2009-06-14 17:39:23
Linozh
Burn_ писал(а):Linozh писал(а):Burn_ писал(а):Пользователь идет через FreeBSD , но когда запрос возвращается, Cisco выступает в роли шлюза. т.к. у неё есть алиас из сети пользователя и пакеты идут, так сказать, по кротчайшему пути, т.е. сразу к клиенту, а не через FreeBSD.
Значит у меня впринципе эта идея не прокатит?
Убери с Cisco алиас пользовательской сети и соедини FreeBSD и Cisco любой другой сетью.
То есть поставить еще одну сетевую карту? Сейчас я вообще проверяю это дома и дома у меня маршрутизатор D-Link.
Re: Шейпер
Добавлено: 2009-06-14 17:45:11
Burn_
Linozh писал(а):То есть поставить еще одну сетевую карту? Сейчас я вообще проверяю это дома и дома у меня маршрутизатор D-Link.
Можно vlan настроить, если есть возможность, можно алиас повесить, можно и карту. Смотри сам по обстоятельствам....
Re: Шейпер
Добавлено: 2009-06-14 19:27:14
Linozh
harmless писал(а):http://forum.lissyara.su/viewtopic.php?f=3&t=12525
Вот тут все расписано!
Выкинь то что тебе не нужно и экспериментируй дальше!???
А лучше не экспериментировать а предельно внимательно почитать хотя бы статьи лиса и остальных, а потом что-то пробовать написать(сам когда-то мучился)
Поставил вторую сетевуху сделал по вашему рецепту и УРА все заработало

Re: Шейпер
Добавлено: 2009-10-27 20:16:19
Linozh
Вечер добрый. Объясните пожалуйста как тут можно использовать очереди для того чтобы обеспечить больший приоритет (в идеале гарантированную скорость) для пользователей со скоростью 1 мегабит?
Код: Выделить всё
############### 256Kbit/s ##############
${FwCMD} add pipe 1 ip from not ${NetIn} to table\(1\) out
${FwCMD} pipe 1 config bw 256000bit/s mask dst-ip 0xffffffff
${FwCMD} add pipe 2 ip from table\(1\) to not me in
${FwCMD} pipe 2 config bw 256000bit/s mask src-ip 0xffffffff
############### 512Kbit/s ##############
${FwCMD} add pipe 3 ip from not ${NetIn} to table\(2\) out
${FwCMD} pipe 3 config bw 512000bit/s mask dst-ip 0xffffffff
${FwCMD} add pipe 4 ip from table\(2\) to not me in
${FwCMD} pipe 4 config bw 512000bit/s mask src-ip 0xffffffff
################ 1Mbit/s ###############
${FwCMD} add pipe 5 ip from not ${NetIn} to table\(3\) out
${FwCMD} pipe 5 config bw 1000000bit/s mask dst-ip 0xffffffff
${FwCMD} add pipe 6 ip from table\(3\) to not me in
${FwCMD} pipe 6 config bw 1000000bit/s mask src-ip 0xffffffff
Re: Шейпер
Добавлено: 2009-10-28 10:41:29
harmless
Linozh писал(а):Вечер добрый. Объясните пожалуйста как тут можно использовать очереди для того чтобы обеспечить больший приоритет (в идеале гарантированную скорость) для пользователей со скоростью 1 мегабит?
Код: Выделить всё
############### 256Kbit/s ##############
${FwCMD} add pipe 1 ip from not ${NetIn} to table\(1\) out
${FwCMD} pipe 1 config bw 256000bit/s mask dst-ip 0xffffffff
${FwCMD} add pipe 2 ip from table\(1\) to not me in
${FwCMD} pipe 2 config bw 256000bit/s mask src-ip 0xffffffff
############### 512Kbit/s ##############
${FwCMD} add pipe 3 ip from not ${NetIn} to table\(2\) out
${FwCMD} pipe 3 config bw 512000bit/s mask dst-ip 0xffffffff
${FwCMD} add pipe 4 ip from table\(2\) to not me in
${FwCMD} pipe 4 config bw 512000bit/s mask src-ip 0xffffffff
################ 1Mbit/s ###############
${FwCMD} add pipe 5 ip from not ${NetIn} to table\(3\) out
${FwCMD} pipe 5 config bw 1000000bit/s mask dst-ip 0xffffffff
${FwCMD} add pipe 6 ip from table\(3\) to not me in
${FwCMD} pipe 6 config bw 1000000bit/s mask src-ip 0xffffffff
Код: Выделить всё
${FwCMD} pipe 1 config bw [bw your chanel]Mbit/s queue 20
${FwCMD} pipe 2 config bw [bw your chanel]Mbit/s queue 20
${FwCMD} queue 1 config pipe 1 weight 90 queue 20 mask dst-ip 0xffffffff
${FwCMD} queue 2 config pipe 2 weight 90 queue 20 mask src-ip 0xffffffff
${FwCMD} queue 3 config pipe 1 weight 5 queue 20 mask dst-ip 0xffffffff
${FwCMD} queue 4 config pipe 2 weight 5 queue 20 mask src-ip 0xffffffff
${FwCMD} add queue 1 ip from not ${NetIn} to table\(3\) out
${FwCMD} add queue 2 ip from table\(3\) to not ${IpIn} in
${FwCMD} add queue 1 ip from not ${NetIn} to not table\(3\) out
${FwCMD} add queue 2 ip from not table\(3\) to not ${IpIn} in
############### 256Kbit/s ##############
${FwCMD} add pipe 1 ip from not ${NetIn} to table\(1\) out
${FwCMD} pipe 1 config bw 256000bit/s mask dst-ip 0xffffffff
${FwCMD} add pipe 2 ip from table\(1\) to not me in
${FwCMD} pipe 2 config bw 256000bit/s mask src-ip 0xffffffff
############### 512Kbit/s ##############
${FwCMD} add pipe 3 ip from not ${NetIn} to table\(2\) out
${FwCMD} pipe 3 config bw 512000bit/s mask dst-ip 0xffffffff
${FwCMD} add pipe 4 ip from table\(2\) to not me in
${FwCMD} pipe 4 config bw 512000bit/s mask src-ip 0xffffffff
################ 1Mbit/s ###############
${FwCMD} add pipe 5 ip from not ${NetIn} to table\(3\) out
${FwCMD} pipe 5 config bw 1000000bit/s mask dst-ip 0xffffffff
${FwCMD} add pipe 6 ip from table\(3\) to not me in
${FwCMD} pipe 6 config bw 1000000bit/s mask src-ip 0xffffffff
${FwCMD} add allow ip from table\(3\) to not ${NetIn} in via ${LanIn} setup
${FwCMD} add allow ip from not table\(3\) to not ${NetIn} in via ${LanIn} setup
а также