The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"На чем шейпить или rate-limit'ить?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"На чем шейпить или rate-limit'ить?"  +/
Сообщение от weldpua2008 email(ok) on 07-Май-09, 22:07 
Привет Всем
Задача - шейпить свою локалку на 1к чел. 50% безлимитчиков, безлимиты от 1Мбита(1, 5,10).
Сейчас стоит 2-а VPN сервера на FreeBSD на них и кручу ограничения, но с этим проблоемы - канал меньше :)
Хочу поставить 2-а сервака(c CARP например) и через них пропускать трафф (до 120Мбит инет и 1Гигабит(загружено до 100Мбит) паритетная сеть).

Так же повесить там НАТ+BGP(внешка)+OSPF(внутренка)
Хотелось бы сделать так:

Каждый клиент имеет приоритет в канале и... если канал простаивает  - пользуйся не жалко, но если канал перегружен - будь добр получи определённый приоритет в канале.
Если надо кому-то дать не больше какой-то скорости - ограничиваю на ВПН-сервере и ставлю приоритет по больше...

Так вот денег на циску или что-то железное нет, так что задача организовать на писюке...

Вот сижу и думаю на чем это делать...
Желателен задел на будущее :)

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "На чем шейпить или rate-limit'ить?"  +/
Сообщение от swm (??) on 08-Май-09, 09:54 
А связка quagga + (pf+altq) такую нагрузку не тянет?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "На чем шейпить или rate-limit'ить?"  +/
Сообщение от weldpua2008 email(ok) on 08-Май-09, 10:38 
>А связка quagga + (pf+altq) такую нагрузку не тянет?

pf на 7.1 вдруг перестал udp nat'ить, что очень важно для онлайн игр :)
ЗЫ:
Меня интересует как можно больше скорости выжать...
Может взять - протестировать Linux...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "На чем шейпить или rate-limit'ить?"  +/
Сообщение от Денис Юсупов email on 18-Май-09, 14:02 
>>А связка quagga + (pf+altq) такую нагрузку не тянет?
>
>pf на 7.1 вдруг перестал udp nat'ить, что очень важно для онлайн
>игр :)

Нифига, работает. Сначала тоже с этим столкнулся, у меня ipfw + pfnat. Починилось путём явного указания для dummynet и pfnat, на каких интерфейсах шейпить и натить. И где-то встречал в рассылках такое же описание, поскольку вроде в семёрке они по изменили значения по умолчанию (лень, лень искать более подробно).

>ЗЫ:
>Меня интересует как можно больше скорости выжать...
>Может взять - протестировать Linux...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "На чем шейпить или rate-limit'ить?"  +/
Сообщение от weldpua2008 email(ok) on 18-Май-09, 16:49 
>[оверквотинг удален]
>>
>>pf на 7.1 вдруг перестал udp nat'ить, что очень важно для онлайн
>>игр :)
>
>Нифига, работает. Сначала тоже с этим столкнулся, у меня ipfw + pfnat.
>Починилось путём явного указания для dummynet и pfnat, на каких интерфейсах
>шейпить и натить. И где-то встречал в рассылках такое же описание,
>поскольку вроде в семёрке они по изменили значения по умолчанию (лень,
>лень искать более подробно).
>

Не работало вот так:

ext_if="vlan20"
scrub in all fragment reassemble
set skip on lo0
nat on $ext_if from <inat> to any -> {91.203.XXX.XXX}
pass all

То есть надо было?Или причина в нате на влане?:
ext_if="vlan20"
scrub in all fragment reassemble
set skip on lo0
nat on $ext_if from <inat> to any -> ($ext_if)
pass all

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "На чем шейпить или rate-limit'ить?"  +/
Сообщение от Денис email(??) on 18-Май-09, 17:53 
>Не работало вот так:
>

[оверквотинг удален]

У меня tcpdump показывал, что ответные UDP (и ICMP) пакеты не проходили снаружи внутрь, к абоненту. На ipfw у меня dummynet, на pf [BI-]NAT. "Вскрытие" показало, что пакеты блокируются после входа в pipe, несмотря на наличие дальнейшего разрешающего правила. В итоге сделал так.

Было:
# Rule 3000: generated by utm2shaper script from billing database
$ipfw add $shapers_rulenum queue tablearg all from any to 'table(4)'  // Incoming traffic shaping
$ipfw add $shapers_rulenum queue tablearg all from 'table(5)' to any  // Outgoing traffic shaping


Стало:
# Rule 3000: generated by utm2shaper script from billing database
$ipfw add $shapers_rulenum queue tablearg all from any to 'table(4)' xmit $int_if      // Incoming traffic shaping
$ipfw add $shapers_rulenum queue tablearg all from 'table(5)' to any xmit $ext_if       // Outgoing traffic shaping

В таблицах содержатся локальные адреса пользователей и номера pipe, в которые их нужно адресовать:
root@home-vr:/root/nasscripts (308) ipfw table 4 list |head -n 3
10.54.0.8/29 141
10.54.1.8/29 69
10.54.2.8/29 19
root@home-vr:/root/nasscripts (309) ipfw table 5 list |head -n 3
10.54.0.8/29 10141
10.54.1.8/29 10069
10.54.2.8/29 10019

PF, как теперь вспомнил, не трогал, выглядит примерно вот так:
ext_if="em0"
int_if="em1"
dst_nat1="93.92.199.0/26"
dst_nat2="93.92.199.252/29"
table <allow-nat> persist file "/etc/pf.allow-nat"
table <peering-nets> const { 84.52.101.0/24 84.52.102.0/24 84.52.106.0/24 84.52.117.0/24 84.52.118.0/24 84.52.119.0/24 84.52.121.0/24 84.52.125.0/24 172.20.0.0/14 195.177.121.0/24 }
set limit { states 200000, frags 50000, src-nodes 30000 }
set state-policy if-bound
set optimization normal
set ruleset-optimization profile
set block-policy drop
set fingerprints "/etc/pf.os"
set skip on lo0
scrub in all max-mss 1440
no nat on $ext_if from <peering-nets> to any
no nat on $ext_if from any to <peering-nets>
binat-anchor "binat"
load anchor "binat" from "/etc/pf.anchor.binat"
nat on $ext_if from <allow-nat> to any -> $dst_nat1 static-port source-hash
nat on $ext_if from 10.78.78.0/24 to any -> $dst_nat2 static-port source-hash
pass in all
pass out all

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "На чем шейпить или rate-limit'ить?"  +/
Сообщение от weldpua2008 email(ok) on 19-Май-09, 00:05 
>>Не работало вот так:
>>
>
>[оверквотинг удален]
>
>У меня tcpdump показывал, что ответные UDP (и ICMP) пакеты не проходили
>снаружи внутрь, к абоненту. На ipfw у меня dummynet, на pf
>[BI-]NAT. "Вскрытие" показало, что пакеты блокируются после входа в pipe, несмотря
>на наличие дальнейшего разрешающего правила. В итоге сделал так.

Угу примерно так, но не помню точно...
Помню, что Я делал одно правило  allow all from any to any  (вроде...)
Еще вроде компилил ядро с отключеным ipfw и отключал его при загрузке...
И это не помогло....

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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