The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Приоритезация средствами ipfw и dummynet. Это реально?"
Отправлено Lgo, 01-Мрт-10 06:21 
>Точно задача как формулируется?

Извините за сумбур.

Задача такая: сделать 1 пользователя высокопроритетным, чтобы он получал свой гарантированный канал при любых раскладах. При этом надо сохранить старую систему нарезки трафика для всех остальных.

Ситему приоритетов я сделал ничего не меняя в системе пайпов для гораничения скорости для всех. И правила для проритето поставил после правил ограничителей скорости.

Вот та схема которая работала криво:

####################################################
# Variant 1 -  Guaranteed channel (priority users) #
# Temporary closed                                 #
####################################################

ipfw table 110 add <superuserip>

ipfw pipe 200 config bw 45Mbit/s # in
ipfw pipe 300 config bw 45Mbit/s

ipfw queue 10 config weight 90 queue 50 pipe 200 gred 0.002/5/15/0.1 mask dst-ip 0xffffffff  # in, high priority
ipfw queue 11 config weight 90 queue 50 pipe 300 gred 0.002/5/15/0.1 mask src-ip 0xffffffff  #     high priority
ipfw queue 20 config weight 10 queue 50 pipe 200 gred 0.002/5/15/0.1 mask dst-ip 0xffffffff  # in
ipfw queue 21 config weight 10 queue 50 pipe 300 gred 0.002/5/15/0.1 mask src-ip 0xffffffff

ipfw add 6001 queue 10 ip from any to "table(110)" in via em0          # high priority
ipfw add 6002 queue 11 ip from "table(110)" to any out via em0         # high priority
ipfw add 6003 queue 20 ip from any to not "table(110)" in via em0
ipfw add 6004 queue 21 ip from not "table(110)" to any out via em0

Это только приоритезация, первичные шейперы я из описания опустил.

Сейчас действует эта схема:

###########################
# Variant 2 - head attack #
###########################

ipfw pipe 210 config bw 45Mbit/s # in
ipfw pipe 220 config bw 45Mbit/s

ipfw pipe 310 config bw 5Mbit/s # in
ipfw pipe 320 config bw 5Mbit/s

ipfw add 6001 pipe 210 ip from any to not <superuserip> in via em0
ipfw add 6002 pipe 220 ip from not <superuserip> to any out via em0

ipfw add 6003 pipe 310 ip from any to <superuserip> in via em0
ipfw add 6004 pipe 320 ip from <superuserip> to any out via em0


Вот сами Старые добрые пайпы, их я не трогал.

# Pipe config
##############
ipfw pipe 10 config mask dst-ip 0xffffffff bw 256Kbits/s  # in
ipfw pipe 110 config mask src-ip 0xffffffff bw 256Kbits/s
ipfw pipe 11 config mask dst-ip 0xffffffff bw 1Mbits/s    # in
ipfw pipe 111 config mask src-ip 0xffffffff bw 512Kbits/s
ipfw pipe 12 config mask dst-ip 0xffffffff bw 5Mbits/s    # in
ipfw pipe 112 config mask src-ip 0xffffffff bw 1Mbits/s
ipfw pipe 13 config mask dst-ip 0xffffffff bw 10Mbits/s   # in
ipfw pipe 113 config mask src-ip 0xffffffff bw 2Mbits/s
ipfw pipe 14 config mask dst-ip 0xffffffff bw 5Mbits/s    # in
ipfw pipe 114 config mask src-ip 0xffffffff bw 5Mbits/s
ipfw pipe 40 config mask dst-ip 0xffffffff bw 20Mbits/s    # in
ipfw pipe 140 config mask src-ip 0xffffffff bw 5Mbits/s
ipfw pipe 41 config mask dst-ip 0xffffffff bw 50Mbits/s    # in
ipfw pipe 141 config mask src-ip 0xffffffff bw 10Mbits/s


# IPFW rules for pipes
#######################
ipfw add 5001 pipe 10 ip from any to "table(10)" in via em0
ipfw add 5002 pipe 110 ip from "table(10)" to any out via em0
ipfw add 5003 pipe 11 ip from any to "table(11)" in via em0
ipfw add 5004 pipe 111 ip from "table(11)" to any out via em0
ipfw add 5005 pipe 12 ip from any to "table(12)" in via em0
ipfw add 5006 pipe 112 ip from "table(12)" to any out via em0
ipfw add 5007 pipe 13 ip from any to "table(13)" in via em0
ipfw add 5008 pipe 113 ip from "table(13)" to any out via em0
ipfw add 5009 pipe 14 ip from any to "table(14)" in via em0
ipfw add 5010 pipe 114 ip from "table(14)" to any out via em0
ipfw add 5040 pipe 40 ip from any to "table(40)" in via em0
ipfw add 5041 pipe 140 ip from "table(40)" to any out via em0
ipfw add 5042 pipe 41 ip from any to "table(41)" in via em0
ipfw add 5043 pipe 141 ip from "table(41)" to any out via em0


 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру