Есть сабж на FBSD
skif@vmware /home/skif/:uname -a
FreeBSD vmware.cts.grp 7.0-RELEASE FreeBSD 7.0-RELEASE #3: Tue Jan 13 19:51:15 EET 2009 root@vmware.cts.grp:/usr/src/sys/i386/compile/SKIF i386
Задача настроит балансировку канала. Будет линк в 100Мб/с, но сам канал 512к.
пишу в правилах:altq on $ext_if cbq bandwidth 512Kb queue { deflt, http, ssh, mail, rsets, rdp }
queue deflt bandwidth 10% priority 0 cbq(default ecn)
queue http bandwidth 0.48Mb priority 3 { http_vhosts, http_cust1 }
queue http_vhosts bandwidth 10% cbq(borrow red)
queue http_cust1 bandwidth 0.1Mb
queue mail bandwidth 10% priority 1 cbq(red)
queue ssh bandwidth 100Kb priority 7 cbq(borrow)
queue rdp bandwidth 400Kb priority 5 cbq(red)
queue rsets bandwidth 5800b priority 0 cbq(red).....
############## TS & HTTP
pass inet proto tcp from any to $tsserver port $wints keep state queue rdp
pass inet proto tcp from any to $tsserver port 80 keep state queue httpПри загрузке правил, ессно ругается:
root@vmware /home/skif/:pfctl -f /etc/pf.conf
pfctl: the sum of the child bandwidth higher than parent "root_le0"
pfctl: the sum of the child bandwidth higher than parent "root_le0"
pfctl: the sum of the child bandwidth higher than parent "root_le0"
pfctl: the sum of the child bandwidth higher than parent "root_le0"
pfctl: the sum of the child bandwidth higher than parent "root_le0"
root@vmware /home/skif/:Но мне надо сделать так, пока народ не сидит на RDP, - почти вся полоса уходит под HTTP, как только доходит дело до RDP, полоса должна освободиться по максимуму. Что я получаю. У меня загружен весь канал. По HTTP, включаюсь через RDP канал не сужается для HTTP. При этом у меня расширяется сама полоса(обращаю внимание - отработка идет в виртуальной машине, там есть куда расширяться). В итоге не 512 к, а почти 900к. короче, неработает приоретизация траффика. Как сделать:
что бы полоса жестко была 512,
что бы после подключений RDP, полоса на RDP уходила, как положено на 400к, а остальное оставалось на HTTP и остальное?
Конечно, я могу "честно" поделить каждому сервису в рамках 512к, но мне надо имено так, как описано выше. Возможно ли?
>[оверквотинг удален]
>
>queue deflt bandwidth 10% priority 0 cbq(default ecn)
>queue http bandwidth 0.48Mb priority 3 { http_vhosts, http_cust1 }
>
>queue http_vhosts bandwidth 10% cbq(borrow red)
>queue http_cust1 bandwidth 0.1Mb
>queue mail bandwidth 10% priority 1 cbq(red)
>queue ssh bandwidth 100Kb priority 7 cbq(borrow)
>queue rdp bandwidth 400Kb priority 5 cbq(red)
>queue rsets bandwidth 5800b priority 0 cbq(red)parent bandwidth всегда должен быть >= суммы bandwidth у дочерних очередей. Лучше указывать в процентах, и следить, чтобы сумма была не более 100.
>При загрузке правил, ессно ругается:
>
>root@vmware /home/skif/:pfctl -f /etc/pf.conf
>pfctl: the sum of the child bandwidth higher than parent "root_le0"Без знания английского языка хотя бы на уровне чтения манов и ошибок программ, в IT делать нечего.
>[оверквотинг удален]
>загружен весь канал. По HTTP, включаюсь через RDP канал не сужается
>для HTTP. При этом у меня расширяется сама полоса(обращаю внимание -
>отработка идет в виртуальной машине, там есть куда расширяться). В итоге
>не 512 к, а почти 900к. короче, неработает приоретизация траффика. Как
>сделать:
> что бы полоса жестко была 512,
> что бы после подключений RDP, полоса на RDP уходила, как положено
>на 400к, а остальное оставалось на HTTP и остальное?
>Конечно, я могу "честно" поделить каждому сервису в рамках 512к, но мне
>надо имено так, как описано выше. Возможно ли?У всех queue должна быть опция borrow, а у queue для RDP должны быть большая гарантированная полоса и большее значение приоритета. Вместо опции red лучше использовать ecn.
>[оверквотинг удален]
>>queue http bandwidth 0.48Mb priority 3 { http_vhosts, http_cust1 }
>>
>>queue http_vhosts bandwidth 10% cbq(borrow red)
>>queue http_cust1 bandwidth 0.1Mb
>>queue mail bandwidth 10% priority 1 cbq(red)
>>queue ssh bandwidth 100Kb priority 7 cbq(borrow)
>>queue rdp bandwidth 400Kb priority 5 cbq(red)
>>queue rsets bandwidth 5800b priority 0 cbq(red)
>
>parent bandwidth всегда должен быть >= суммы bandwidth у дочерних очередей. Лучше указывать в процентах, и следить, чтобы сумма была не более 100.Это плохо, мне как раз нужно задать "плавающий" bw
>
>>При загрузке правил, ессно ругается:
>>
>>root@vmware /home/skif/:pfctl -f /etc/pf.conf
>>pfctl: the sum of the child bandwidth higher than parent "root_le0"
>
>Без знания английского языка хотя бы на уровне чтения манов и ошибок
>программ, в IT делать нечего.1. Уровень моего английского оставим мне, хорошо? Так же и сферу моей деятельности и професилнальные знания, качества и т.д. и т.п..
2. Внимательно читайте мой пост, там четко написано, что ошибка ожидаема. Цитирую: "При загрузке правил, ессно ругается", то есть эта ошибка для меня не новость. Если не поленитесь прочитать ниже "Конечно, я могу "честно" поделить каждому сервису в рамках 512к", то убедитесь, что я знаю как избавиться от этой ошибки.Просто здесь пропадает, при подходе родитель >= суммы дочерних, смысл как таковой в приоритизации трафика(как минимум для меня). Или я не уловил смысл приоритетов в PF.
Повторюсь мне необходимо не просто очереди выставить, где на одну очередь я могу привязать несколько сервисов и так "красиво" разрулить. Мне нужно "подвинуть" очереди, если выскакивает хоть одна с более высоким приоритетом трафика, а сумма задействованных очередей "мешает" ей полноценно занять канал(ниже это я так же привел).
Если PF этого не позволяет, можно просто об этом сообщить, и никто никому ничего вкручивать не будет.
Мне, вот к примеру не понятна разница между cbq/priq. Может я не тот шедулер использую? За чем их целых три если разницы нет, покрайней мере междцу двумя последними я ничего нового не заметил для себя (ну если не считать, что более приоритетный может схавать весь канал и ничего не оставить другим). То есть оба мне не подходят. Хоть бери дополнительно какой-то шейп внутри вводи. Впрочем это тоже мысль. Уже за нее спасибо :)>[оверквотинг удален]
>>сделать:
>> что бы полоса жестко была 512,
>> что бы после подключений RDP, полоса на RDP уходила, как положено
>>на 400к, а остальное оставалось на HTTP и остальное?
>>Конечно, я могу "честно" поделить каждому сервису в рамках 512к, но мне
>>надо имено так, как описано выше. Возможно ли?
>
>У всех queue должна быть опция borrow, а у queue для RDP
>должны быть большая гарантированная полоса и большее значение приоритета. Вместо опции
>red лучше использовать ecn.Списибо, за рекомендацию, но брался чистый мановый пример, с минимальными правками, под мои "хотения". В качестве эксперементов все варианты опций для queue(borrow/red/etc...) были опробованы, но счастья мне это не принесло. Да и не в них оно.
borrow в cbq плохо работает. попробуйте hfsc, там есть все, что нужно.