hda0
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору всем привет. юзал фс14, перешёл в связи с апгрейдом железа на фс16 на фс14 были настроены правила через cbqinit всё работало. резало кому надо, как надо. перенёс конфиги на фс16, и началась свистопляска с шейперами. например клиенту режет udp как положено, а вот тсп трафик опускает ниже плинтуса, на уровне диалапа. причём вроде начинает качать нормально, а потом ниже и ниже. кучу ядер персобирал, ставил и снова собирал, тестил - везде картина одна. бился я с cbqinit, плюнул на это дело, перерыл горе документашки, и решил руками создать скрипт через tc. сделал, всё вроде верно, но с другой стороны как то коряво работает. может глянете, и найдёте ошибку. но для начала опишу что и как. описание: имеем внешний канал который поступает на свитч, далее по vlan136 опрокидывается на пс-рутер, так же на свитч поступает канал на внутрегородские ресурсы по vlan137 ещё на пс-рутере есть vlan100 (локалка тоже через свитч) имеем на пс-рутере свой bgp и автономку для юзеров. и напоследок имеем tun0 интерфейс (ovpn) для раздачи инета для себя любимого - с любой точки города. задача: имеем канал 4мбита. надо ограничить скачивание клиенту1 на скорости 1280кбит, клиенту2 на скорости 1мбит, себя любимого на скорости 512кбит, оставшуюся скорость отдать остальным юзерам. причем у клиента1 и 2 должен быть высокий приоритет, если они качают, что бы их полосой никто не мог воспользоваться, даже я. но если клиент1 и/или 2 освобождают свои полосы, их канал отдавался остальным абонентам в пользование. как только они начинают качать, что бы у остальных канал отбирался в пользу клиента1 и 2. tc qdisc del dev vlan100 root tc qdisc del dev tun0 root tc qdisc add dev vlan100 root handle 1:0 cbq bandwidth 1Gbit \ avpkt 10000 cell 8 tc qdisc add dev tun0 root handle 1:0 cbq bandwidth 1Gbit \ avpkt 10000 cell 8 tc class add dev vlan100 parent 1:0 classid 1:1 cbq bandwidth 1Gbit \ rate 4Mbit weight 0.4Mbit prio 8 allot 1514 cell 8 maxburst 20 \ avpkt 10000 bounded tc class add dev tun0 parent 1:1 classid 1:2 cbq bandwidth 1Gbit \ rate 512Kbit weight 51Kbit prio 3 allot 1514 cell 8 maxburst 20 \ avpkt 10000 borrow sharing tc class add dev vlan100 parent 1:1 classid 1:3 cbq bandwidth 1Gbit \ rate 1280Kbit weight 128Kbit prio 1 allot 1514 cell 8 maxburst 20 \ avpkt 10000 borrow sharing tc class add dev vlan100 parent 1:1 classid 1:4 cbq bandwidth 1Gbit \ rate 1Mbit weight 0.1Mbit prio 2 allot 1514 cell 8 maxburst 20 \ avpkt 10000 borrow sharing tc class add dev vlan100 parent 1:1 classid 1:5 cbq bandwidth 1Gbit \ rate 4Mbit weight 0.4Mbit prio 5 allot 1514 cell 8 maxburst 20 \ avpkt 10000 borrow sharing tc qdisc add dev tun0 parent 1:2 handle 20: sfq perturb 10 tc qdisc add dev vlan100 parent 1:3 handle 30: sfq perturb 10 tc qdisc add dev vlan100 parent 1:4 handle 40: sfq perturb 10 tc qdisc add dev vlan100 parent 1:5 handle 50: sfq perturb 10 tc filter add dev tun0 parent 1:0 protocol ip prio 1 u32 match ip \ dst xxx.238.104.102 flowid 1:2 tc filter add dev vlan100 parent 1:0 prio 1 protocol ip u32 match ip \ dst xxx.238.104.62 flowid 1:3 tc filter add dev vlan100 parent 1:0 protocol ip prio 1 u32 match ip \ dst xxx.238.105.14 flowid 1:4 tc filter add dev vlan100 parent 1:0 protocol ip prio 1 u32 match ip \ dst xxx.238.105.0/24 flowid 1:5 tc filter add dev vlan100 parent 1:0 protocol ip prio 1 u32 match ip \ dst xxx.238.106.0/24 flowid 1:5 tc filter add dev vlan100 parent 1:0 protocol ip prio 1 u32 match ip \ dst xxx.238.107.0/24 flowid 1:5 что тут не так? как то всё равно коряво работает. сижу, смотрю трафик у абонента xxx.238.104.62 как шёл на максимальной возможной так и идёт, зато у абонентов с flowid 1:5 он срезается до неприличия. |