FreeBSD в качестве коммутатора (QoS)
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- рядовой
- Сообщения: 29
- Зарегистрирован: 2010-02-13 15:20:16
FreeBSD в качестве коммутатора (QoS)
Здравствуйте, есть небольшая сеть на 4 компьютера и маршрутизатор Cisco 871 предоставляющий доступ в интернет и сеть провайдера, на плечи которого возложены обязанности в том числе и по ограничению канала для пользователей с помощью rate-limit-а, функционала и гибкости которого естественно не хватает, нужен QoS. Скажите, как можно настроить FreeBSD бриджом (как я понимаю) чтобы с интерфесов смотрящих в сторону пользователей и в сторону Cisco можно было шейпить трафик плюс приоритезация по портам, протоколам и т.д.
Заранее пять раз спасибо.
Заранее пять раз спасибо.
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
- baton4eg
- сержант
- Сообщения: 274
- Зарегистрирован: 2009-10-11 14:36:35
- Контактная информация:
Re: FreeBSD в качестве коммутатора (QoS)
Ethernet,vpn,pppoe какой способ связи с провайдером?
FreeBSD может выступать вместо вашей циски, вышеперечисленное в роли клиента без проблем. соответственно можно от циски избавится. У вас будет такая схема:
Провайдера--(pppoe)--->FreeBSD(Nat,dummynet)--->свитч-(5 портов)--->Пользователи
FreeBSD может выступать вместо вашей циски, вышеперечисленное в роли клиента без проблем. соответственно можно от циски избавится. У вас будет такая схема:
Провайдера--(pppoe)--->FreeBSD(Nat,dummynet)--->свитч-(5 портов)--->Пользователи
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих файлов вообще нет!" (c)
"Я ем руками, она вилкой и ножом, я бью вилкой и ножом, она руками" (с)
"Я ем руками, она вилкой и ножом, я бью вилкой и ножом, она руками" (с)
-
- рядовой
- Сообщения: 29
- Зарегистрирован: 2010-02-13 15:20:16
Re: FreeBSD в качестве коммутатора (QoS)
Это всё понятно, но вот только от циски избавляться я не хочу, так как на ней у меня реализован DMVPN и масса других прибамбасов которые мне нужны именно на Cisco. От FreeBSD нужен только QoS. Дальше по мере набирания опыта с BSD буду думать.
- baton4eg
- сержант
- Сообщения: 274
- Зарегистрирован: 2009-10-11 14:36:35
- Контактная информация:
Re: FreeBSD в качестве коммутатора (QoS)
Какие задачи вы хотите реализовать по ограничениям, что, кому, какие приоритеты и т.д
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих файлов вообще нет!" (c)
"Я ем руками, она вилкой и ножом, я бью вилкой и ножом, она руками" (с)
"Я ем руками, она вилкой и ножом, я бью вилкой и ножом, она руками" (с)
-
- рядовой
- Сообщения: 29
- Зарегистрирован: 2010-02-13 15:20:16
Re: FreeBSD в качестве коммутатора (QoS)
Есть необходимость реализовать следующие задачи:
1) для клиентов установить ограничения по скорости загрузка/отдача (512к интернет)
2) для клиентов установить ограничения по скорости загрузка/отдача (4м сеть пров. (192.168.0.0/16))
3) если кто-то не загружает канал до своих лимитов то остатки делятся между остальными
4) ну и на Bittorent минимальный приоритет
пожалуй пока всё
P.S. Есть ли во FreeBSD поддержка механизма NBAR ?
1) для клиентов установить ограничения по скорости загрузка/отдача (512к интернет)
2) для клиентов установить ограничения по скорости загрузка/отдача (4м сеть пров. (192.168.0.0/16))
3) если кто-то не загружает канал до своих лимитов то остатки делятся между остальными
4) ну и на Bittorent минимальный приоритет
пожалуй пока всё

P.S. Есть ли во FreeBSD поддержка механизма NBAR ?
-
- проходил мимо
Re: FreeBSD в качестве коммутатора (QoS)
Во FreeBSD нет пакетного QoS, только тупой шейпинг и диверт, но вы же не будете писать на С фильтр пакетов через divert для Ipfw. Но надежда всеже есть. В OpenBSD есть Hierarchical Fair Service Curve - это то что вам нужно, работает оно через PF который есть, и синхронизирован с новой версией OpenBSD PF в FreeBSD, я не пробовал это во фре, но в OpenBSD все идиально работает. Если успешно настроите во фре - отпишите.
http://dreamcatcher.ru/2009/11/30/Испол ... в-openbsd/
http://dreamcatcher.ru/2009/11/30/Испол ... в-openbsd/
-
- рядовой
- Сообщения: 29
- Зарегистрирован: 2010-02-13 15:20:16
Re: FreeBSD в качестве коммутатора (QoS)
Итак потратил сегодняшний день на изучение ALTQ, по пунктам 1, 2, 3, всё получилось про 4-ый можно забыть, на мой взгляд не выйдет.
Мой pf.confg
Мой pf.confg
Код: Выделить всё
ext="rl0"
int="re0"
table <PRNET> {192.168.0.0/16,10.100.0.0/14}
Server=10.10.77.2
User1=10.10.77.3
User2=10.10.77.4
User3=10.10.77.5
altq on $int bandwidth 100Mb hfsc queue{pri_iinternet,std_internet, pri_provider, std_provider, default}
altq on $ext bandwidth 100Mb hfsc queue{pri_ointernet,std_internet, pri_provider, std_provider, default}
# ОЧЕРЕДИ ДЛЯ ПРИВЕЛИГИРОВАННЫХ ПОЛЬЗОВАТЕЛЕЙ #
queue pri_iinternet bandwidth 9Mb hfsc (upperlimit 9Mb){iinet_server,iinet_user1}
queue iinet_server bandwidth 48% priority 3 qlimit 500 hfsc (realtime 2Mb)
queue iinet_user1 bandwidth 48% priority 3 qlimit 500 hfsc (realtime 2Mb)
queue pri_ointernet bandwidth 9Mb hfsc (upperlimit 9Mb){oinet_server,oinet_user1}
queue oinet_server bandwidth 48% priority 4 qlimit 500 hfsc (realtime 2Mb)
queue oinet_user1 bandwidth 48% priority 3 qlimit 500 hfsc (realtime 2Mb)
queue pri_provider bandwidth 20Mb hfsc (upperlimit 20Mb) {pr_server, pr_user1}
queue pr_server bandwidth 49% priority 1 qlimit 500 hfsc (realtime 9Mb)
queue pr_user1 bandwidth 49% priority 2 qlimit 500 hfsc (realtime 9Mb)
# ОЧЕРЕДИ ДЛЯ ОБЫЧНЫХ ПОЛЬЗОВАТЕЛЕЙ #
queue std_internet bandwidth 1Mb hfsc (upperlimit 1Mb){inet_user2,inet_user3}
queue inet_user2 bandwidth 48% priority 2 qlimit 500 hfsc (realtime 500Kb)
queue inet_user3 bandwidth 48% priority 2 qlimit 500 hfsc (realtime 500Kb)
queue std_provider bandwidth 4Mb hfsc(red,upperlimit 4096Kb){pr_user2,pr_user3}
queue pr_user2 bandwidth 49% hfsc (realtime 2Mb)
queue pr_user3 bandwidth 49% hfsc (realtime 2Mb)
queue default bandwidth 66% priority 0 hfsc (default)
# ИСХОДЯЩИЕ ОТ ПОЛЬЗОВАТЕЛЕЙ В СЕТЬ ПРОВАЙДЕРА
pass out quick on $ext from $Server to <PRNET> queue pr_server no state
pass out quick on $ext from $User1 to <PRNET> queue pr_user1 no state
pass out quick on $ext from $User2 to <PRNET> queue pr_user2 no state
pass out quick on $ext from $User3 to <PRNET> queue pr_user3 no state
# ВХОДЯЩИЕ ИЗ СЕТИ ПРОВАЙДЕРА К ПОЛЬЗОВАТЕЛЯМ
pass out quick on $int from <PRNET> to $Server queue pr_server no state
pass out quick on $int from <PRNET> to $User1 queue pr_user1 no state
pass out quick on $int from <PRNET> to $User2 queue pr_user2 no state
pass out quick on $int from <PRNET> to $User3 queue pr_user3 no state
# ИСХОДЯЩИЕ ОТ ПОЛЬЗОВАТЕЛЕЙ В ИНТЕРНЕТ
pass out quick on $ext from $Server to any queue oinet_server no state
pass out quick on $ext from $User1 to any queue oinet_user1 no state
pass out quick on $ext from $User2 to any queue inet_user2 no state
pass out quick on $ext from $User3 to any queue inet_user3 no state
# ВХОДЯЩИЕ ИЗ ИНТЕРНЕТА К ПОЛЬЗОВАТЕЛЯМ
pass out quick on $int from any to $Server queue iinet_server no state
pass out quick on $int from any to $User1 queue iinet_user1 no state
pass out quick on $int from any to $User2 queue inet_user2 no state
pass out quick on $int from any to $User3 queue inet_user3 no state
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: FreeBSD в качестве коммутатора (QoS)
по-моему pf не умеет шейпить входящий трафик, только исходящий с интерфейса
ядерный взрыв...смертельно красиво...жаль, что не вечно...
-
- рядовой
- Сообщения: 29
- Зарегистрирован: 2010-02-13 15:20:16
Re: FreeBSD в качестве коммутатора (QoS)
Извиняюсь, и причем здесь это?
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: FreeBSD в качестве коммутатора (QoS)
ну так, что б знали, мало ли 

ядерный взрыв...смертельно красиво...жаль, что не вечно...