Ork Yason Опубликовано 9 декабря, 2010 · Жалоба есть тазик на нем нарезка на двух интерфейсах eth0 и eth1 раньше все было через маркировку iptables, решили переделать под u32 + хеши tc filter add dev eth0 parent 1: prio 10 handle 999: protocol ip u32 divisor 64 tc filter add dev eth1 parent 1: prio 10 handle 999: protocol ip u32 divisor 64 tc filter add dev eth0 parent 1: protocol ip prio 100 u32 ht 800:: match ip src 192.168.0.0/18 hashkey mask 0x00003F00 at 16 link 999: tc filter add dev eth1 parent 1: protocol ip prio 100 u32 ht 800:: match ip dst 192.168.0.0/18 hashkey mask 0x00003F00 at 16 link 999: ну и для каждой из подсетей: tc filter add dev eth0 parent 1: prio 10 handle 3f: protocol ip u32 divisor 256 tc filter add dev eth1 parent 1: prio 10 handle 3f: protocol ip u32 divisor 256 tc filter add dev eth0 parent 1: protocol ip prio 10 u32 ht 999:3f: match ip src 192.168.63.0/24 hashkey mask 0x000000ff at 16 link 3f: tc filter add dev eth1 parent 1: protocol ip prio 10 u32 ht 999:3f: match ip dst 192.168.63.0/24 hashkey mask 0x000000ff at 16 link 3f: по итогу режет только на исходящем для клиентов интерфейсе... т.е. на eth1 - все режецо, в фильтрах есть попадания в ячейки, но на eth0 - все по нулям... была мысль создать разные таблицы: tc filter add dev eth0 parent 1: prio 10 handle 888: protocol ip u32 divisor 64 tc filter add dev eth1 parent 1: prio 10 handle 999: protocol ip u32 divisor 64 ничего не изменилось Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vitalyb Опубликовано 9 декабря, 2010 · Жалоба hashkey mask 0x000000ff at 12 ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ork Yason Опубликовано 9 декабря, 2010 · Жалоба везде или только в большой таблице? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vitalyb Опубликовано 9 декабря, 2010 · Жалоба там где не работает, 12 и 16 - это src и dst в ip заголовке Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ork Yason Опубликовано 9 декабря, 2010 · Жалоба тьфу работает! пасиба большое! tc filter add dev eth0 parent 1: prio 10 handle 999: protocol ip u32 divisor 64 tc filter add dev eth1 parent 1: prio 10 handle 999: protocol ip u32 divisor 64 хэндлы можно там и там оставить по 999???? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vitalyb Опубликовано 9 декабря, 2010 · Жалоба хэндлы можно там и там оставить по 999????вроде да Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ork Yason Опубликовано 9 декабря, 2010 · Жалоба ну попробуем вернуть одинаковые исчо раз пасиба :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
true.ru Опубликовано 8 февраля, 2011 · Жалоба Добрый день. Решил не создавать новую тему, тк вопросы похожи. Имеется роутер на linux. Необходимо шейпепить юзеров. Часть конфига шейпера, в котором абоненты фильтруются по последнему октету в ip и их пакеты попадают в свой класс для обработки : tc q a dev eth0 root handle 1: htb tc c a dev eth0 parent 1: classid 1:1 htb rate 100 Mbit tc f a dev eth0 parent 1:0 prio 5 protocol ip u32 tc f a dev eth0 parent 1:0 prio 5 handle 2: protocol ip u32 divisor 256 tc f a dev eth0 protocol ip parent 1:0 prio 5 u32 ht 800:: match ip dst ххх.ххх.206.0/23 hashkey mask 0x000000ff at 16 link 2: tc f a dev eth0 protocol ip parent 1:0 prio 5 u32 ht 800:: match ip src ххх.ххх.206.0/23 hashkey mask 0x000000ff at 12 link 2: #для примера привел один ip tc c a dev eth0 parent 1:1 classid 1:ce7b htb rate 9Mbit ceil 10Mbit tc f a dev eth0 protocol ip parent 1:0 prio 5 u32 ht 2:7b: match ip dst ххх.ххх.206.123 flowid 1:ce7b tc f a dev eth0 protocol ip parent 1:0 prio 5 u32 ht 2:7b: match ip src ххх.ххх.206.123 flowid 1:ce7b Правильно ли использование одного класса для исходящего/входящего трафика? Или лучше будет разнести потоки по разным классам? Тест скорости на яндексе показывает ~9Mbit в обоих направлениях, как понимаю, подобное тестирование синтетическое/однобокое. Попробовать ftp транзакции в различные направления одновременно? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 8 февраля, 2011 · Жалоба Правила нужно создавать на двух интерфейсах, т.к. шейпить можно только исходящий трафик. Вместо команды add лучше использовать replace, чтобы не было конфликтов при повторном создании правил. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
true.ru Опубликовано 8 февраля, 2011 · Жалоба photon конфликтов не будет, тк в начале скрипта есть строка tc qdisc del dev eth0 root 2>/dev/null Правила нужно создавать на двух интерфейсах, т.к. шейпить можно только исходящий трафик.если второго интерфейса нет? точнее есть eth0 и на нем же висит vlan.если действует аксиома про исходящий трафик, то как на том же тесте удалось увидеть скорость в рамках rate на upload/download? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 8 февраля, 2011 · Жалоба если второго интерфейса нет? точнее есть eth0 и на нем же висит vlan. vlan не интерфейс? Или вы умудряетесь принимать нетегированный траф, а отдавать - тегированный? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
true.ru Опубликовано 9 февраля, 2011 · Жалоба vlan не интерфейс?он самый. на vlan не хочу шейпер вешать, тк /23 по двум разным vlan распределится, как 2 по /24. хочется более изящного решения. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 9 февраля, 2011 · Жалоба на vlan (исходящий траф) шейпер вешать можно, работать будет Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Bulbine Опубликовано 11 февраля, 2011 · Жалоба Ну это единственный выход помоему... ________ http://malyutins.ru/ Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
true.ru Опубликовано 11 февраля, 2011 · Жалоба опишу полностью ситуацию. маршрутизатор c одним eth. на нем без тега висит внешний адрес, а так же прописан vlan, который смотрит в сторону абонентов. на vlan алиасом прописано два адреса. сетевая набортная, трафика не больше 50Мбит. 03:0a.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller --- попробовал разделить потоки: tc qdisc del dev eth0 root 2>/dev/null tc q a dev eth0 root handle 1: htb tc c a dev eth0 parent 1: classid 1:1 htb rate 100Mbit tc f a dev eth0 parent 1:0 prio 5 protocol ip u32 tc f a dev eth0 parent 1:0 prio 5 handle 2: protocol ip u32 divisor 256 tc f a dev eth0 protocol ip parent 1:0 prio 5 u32 ht 800:: match ip dst 217.197.206.0/23 hashkey mask 0x000000ff at 16 link 2: tc f a dev eth0 protocol ip parent 1:0 prio 5 u32 ht 800:: match ip src 217.197.206.0/23 hashkey mask 0x000000ff at 12 link 2: tc c a dev eth0 parent 1:1 classid 1:ce7b htb rate 9Mbit ceil 10Mbit tc c a dev eth0 parent 1:1 classid 1:cd7b htb rate 9Mbit ceil 10Mbit tc f a dev eth0 protocol ip parent 1:0 prio 5 u32 ht 2:7b: match ip dst 217.197.206.123 flowid 1:ce7b tc f a dev eth0 protocol ip parent 1:0 prio 5 u32 ht 2:7b: match ip src 217.197.206.123 flowid 1:cd7b получилось по фильтрам: tc -s f s dev eth0 filter parent 1: protocol ip pref 5 u32 filter parent 1: protocol ip pref 5 u32 fh 2: ht divisor 256 filter parent 1: protocol ip pref 5 u32 fh 2:7b:800 order 2048 key ht 2 bkt 7b flowid 1:ce7b (rule hit 818459 success 454303) match d9c5ce7b/ffffffff at 16 (success 454303 ) filter parent 1: protocol ip pref 5 u32 fh 2:7b:801 order 2049 key ht 2 bkt 7b flowid 1:cd7b (rule hit 364156 success 363757) match d9c5ce7b/ffffffff at 12 (success 363757 ) filter parent 1: protocol ip pref 5 u32 fh 800: ht divisor 1 filter parent 1: protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 link 2: (rule hit 7384336 success 0) match d9c5ce00/fffffe00 at 16 (success 3034157 ) hash mask 000000ff at 16 filter parent 1: protocol ip pref 5 u32 fh 800::801 order 2049 key ht 800 bkt 0 link 2: (rule hit 6930033 success 0) match d9c5ce00/fffffe00 at 12 (success 4343857 ) hash mask 000000ff at 12 по классам в момент передачи данных по ssh (upload/download больших файлов): tc -s c s dev eth0 class htb 1:cd7b parent 1:1 prio 0 rate 9000Kbit ceil 10000Kbit burst 1598b cburst 1600b Sent 302539337 bytes 344864 pkt (dropped 230, overlimits 0 requeues 0) rate 8454Kbit 917pps backlog 0b 76p requeues 0 lended: 324412 borrowed: 20376 giants: 0 tokens: -17109 ctokens: -18909 class htb 1:1 root rate 100000Kbit ceil 100000Kbit burst 1600b cburst 1600b Sent 779392156 bytes 783779 pkt (dropped 0, overlimits 0 requeues 0) rate 14621Kbit 1885pps backlog 0b 0p requeues 0 lended: 53826 borrowed: 0 giants: 0 tokens: 813 ctokens: 813 class htb 1:ce7b parent 1:1 prio 0 rate 9000Kbit ceil 10000Kbit burst 1598b cburst 1600b Sent 476943387 bytes 438991 pkt (dropped 368, overlimits 0 requeues 0) rate 6160Kbit 968pps backlog 0b 0p requeues 0 lended: 405541 borrowed: 33450 giants: 0 tokens: 21218 ctokens: 19110 есть одно НО. в момент одновременной передачи процентов 90 времени на ssh клиенте (нетбук) видел преобладание исходящего трафика, над входящим, т.е. заливаем со скоростью 10Мбит, скачиваем со сколько 1-2Мбит, редко потоки сравниваются, затем снова деградирует download поток. tc -s c s dev eth0 class htb 1:cd7b parent 1:1 prio 0 rate 9000Kbit ceil 10000Kbit burst 1598b cburst 1600b Sent 290965755 bytes 333739 pkt (dropped 215, overlimits 0 requeues 0) rate 9645Kbit 861pps backlog 0b 0p requeues 0 lended: 314241 borrowed: 19498 giants: 0 tokens: 21218 ctokens: 19110 class htb 1:1 root rate 100000Kbit ceil 100000Kbit burst 1600b cburst 1600b Sent 755543282 bytes 759630 pkt (dropped 0, overlimits 0 requeues 0) rate 11603Kbit 1557pps backlog 0b 0p requeues 0 lended: 51988 borrowed: 0 giants: 0 tokens: 110 ctokens: 110 class htb 1:ce7b parent 1:1 prio 0 rate 9000Kbit ceil 10000Kbit burst 1598b cburst 1600b Sent 464660733 bytes 425960 pkt (dropped 360, overlimits 0 requeues 0) rate 1941Kbit 695pps backlog 0b 69p requeues 0 lended: 393401 borrowed: 32490 giants: 0 tokens: -3728 ctokens: -18947 --- Ну это единственный выход помоему... на vlan (исходящий траф) шейпер вешать можно, работать будет переделал шейпер tc qdisc del dev eth0 root 2>/dev/null tc qdisc del dev vlan1272 root 2>/dev/null tc q a dev eth0 root handle 1: htb tc c a dev eth0 parent 1: classid 1:1 htb rate 100Mbit tc q a dev vlan1272 root handle 1: htb tc c a dev vlan1272 parent 1: classid 1:1 htb rate 100Mbit tc f a dev eth0 parent 1:0 prio 5 protocol ip u32 tc f a dev eth0 parent 1:0 prio 5 handle 2: protocol ip u32 divisor 256 tc f a dev vlan1272 parent 1:0 prio 5 protocol ip u32 tc f a dev vlan1272 parent 1:0 prio 5 handle 2: protocol ip u32 divisor 256 tc f a dev eth0 protocol ip parent 1:0 prio 5 u32 ht 800:: match ip src 217.197.206.0/23 hashkey mask 0x000000ff at 12 link 2: tc f a dev vlan1272 protocol ip parent 1:0 prio 5 u32 ht 800:: match ip dst 217.197.206.0/24 hashkey mask 0x000000ff at 16 link 2: tc c a dev eth0 parent 1:1 classid 1:ce7b htb rate 9Mbit ceil 10Mbit tc f a dev eth0 protocol ip parent 1:0 prio 5 u32 ht 2:7b: match ip src 217.197.206.123 flowid 1:ce7b tc c a dev vlan1272 parent 1:1 classid 1:ce7b htb rate 9Mbit ceil 10Mbit tc f a dev vlan1272 protocol ip parent 1:0 prio 5 u32 ht 2:7b: match ip dst 217.197.206.123 flowid 1:ce7b результат при одновременной передаче данных по ssh: по фильтрам tc -s f s dev vlan1272 filter parent 1: protocol ip pref 5 u32 filter parent 1: protocol ip pref 5 u32 fh 2: ht divisor 256 filter parent 1: protocol ip pref 5 u32 fh 2:7b:800 order 2048 key ht 2 bkt 7b flowid 1:ce7b (rule hit 719041 success 719041) match d9c5ce7b/ffffffff at 16 (success 719041 ) filter parent 1: protocol ip pref 5 u32 fh 800: ht divisor 1 filter parent 1: protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 link 2: (rule hit 1511820 success 0) match d9c5ce00/ffffff00 at 16 (success 1511816 ) hash mask 000000ff at 16 tc -s f s dev eth0 filter parent 1: protocol ip pref 5 u32 filter parent 1: protocol ip pref 5 u32 fh 2: ht divisor 256 filter parent 1: protocol ip pref 5 u32 fh 2:7b:800 order 2048 key ht 2 bkt 7b flowid 1:ce7b (rule hit 838466 success 838466) match d9c5ce7b/ffffffff at 12 (success 838466 ) filter parent 1: protocol ip pref 5 u32 fh 800: ht divisor 1 filter parent 1: protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 link 2: (rule hit 3331902 success 0) match d9c5ce00/fffffe00 at 12 (success 1854377 ) hash mask 000000ff at 12 по классам tc -s c s dev vlan1272 class htb 1:1 root rate 100000Kbit ceil 100000Kbit burst 1600b cburst 1600b Sent 536222140 bytes 410525 pkt (dropped 0, overlimits 0 requeues 0) rate 752968bit 521pps backlog 0b 0p requeues 0 lended: 36965 borrowed: 0 giants: 0 tokens: 1750 ctokens: 1750 class htb 1:ce7b parent 1:1 prio 0 rate 9000Kbit ceil 10000Kbit burst 1598b cburst 1600b Sent 536222140 bytes 410525 pkt (dropped 42854, overlimits 0 requeues 0) rate 752968bit 521pps backlog 0b 0p requeues 0 lended: 373560 borrowed: 36965 giants: 0 tokens: 19343 ctokens: 17407 tc -s c s dev eth0 class htb 1:1 root rate 100000Kbit ceil 100000Kbit burst 1600b cburst 1600b Sent 174091668 bytes 454275 pkt (dropped 0, overlimits 0 requeues 0) rate 9877Kbit 886pps backlog 0b 0p requeues 0 lended: 10174 borrowed: 0 giants: 0 tokens: 110 ctokens: 110 class htb 1:ce7b parent 1:1 prio 0 rate 9000Kbit ceil 10000Kbit burst 1598b cburst 1600b Sent 174183564 bytes 454347 pkt (dropped 131, overlimits 0 requeues 0) rate 9881Kbit 886pps backlog 0b 72p requeues 0 lended: 444101 borrowed: 10174 giants: 0 tokens: -3463 ctokens: -18943 при такой реализации шейпера при одновременной передачи данных по ssh скорость скачивания не поднималась выше мегабита, при этом отдача была в рамках rate/ceil. тест на internet.yandex.ru показывает download ~6.5Мбит, upload ~8.9Мбит. есть мысли почему при такой, вроде бы правильной реализации, download у абонент еще сильнее деградировал? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
true.ru Опубликовано 14 февраля, 2011 · Жалоба сделал два vlan на одном eth. шейпер tc qdisc del dev vlan1017 root 2>/dev/null tc qdisc del dev vlan1272 root 2>/dev/null tc q a dev vlan1017 root handle 1: htb tc c a dev vlan1017 parent 1: classid 1:1 htb rate 100Mbit tc q a dev vlan1272 root handle 1: htb tc c a dev vlan1272 parent 1: classid 1:1 htb rate 100Mbit tc f a dev vlan1017 parent 1:0 prio 5 protocol ip u32 tc f a dev vlan1017 parent 1:0 prio 5 handle 2: protocol ip u32 divisor 256 tc f a dev vlan1272 parent 1:0 prio 5 protocol ip u32 tc f a dev vlan1272 parent 1:0 prio 5 handle 2: protocol ip u32 divisor 256 tc f a dev vlan1017 protocol ip parent 1:0 prio 5 u32 ht 800:: match ip src 217.197.206.0/23 hashkey mask 0x000000ff at 12 link 2: tc f a dev vlan1272 protocol ip parent 1:0 prio 5 u32 ht 800:: match ip dst 217.197.206.0/24 hashkey mask 0x000000ff at 16 link 2: tc c a dev vlan1017 parent 1:1 classid 1:ce7b htb rate 9Mbit ceil 10Mbit tc f a dev vlan1017 protocol ip parent 1:0 prio 5 u32 ht 2:7b: match ip src 217.197.206.123 flowid 1:ce7b tc c a dev vlan1272 parent 1:1 classid 1:ce7b htb rate 9Mbit ceil 10Mbit tc f a dev vlan1272 protocol ip parent 1:0 prio 5 u32 ht 2:7b: match ip dst 217.197.206.123 flowid 1:ce7b результаты работы при одновременной передаче данных по ssh: mmm-cow:~# tc -s c s dev vlan1272 class htb 1:1 root rate 100000Kbit ceil 100000Kbit burst 1600b cburst 1600b Sent 676899179 bytes 487263 pkt (dropped 0, overlimits 0 requeues 0) rate 9663Kbit 801pps backlog 0b 0p requeues 0 lended: 48015 borrowed: 0 giants: 0 tokens: 110 ctokens: 110 class htb 1:ce7b parent 1:1 prio 0 rate 9000Kbit ceil 10000Kbit burst 1598b cburst 1600b Sent 676900693 bytes 487264 pkt (dropped 51720, overlimits 0 requeues 0) rate 9662Kbit 801pps backlog 0b 1p requeues 0 lended: 439248 borrowed: 48015 giants: 0 tokens: -8071 ctokens: -18909 mmm-cow:~# tc -s c s dev vlan1017 class htb 1:1 root rate 100000Kbit ceil 100000Kbit burst 1600b cburst 1600b Sent 95845041 bytes 493720 pkt (dropped 0, overlimits 0 requeues 0) rate 524288bit 815pps backlog 0b 0p requeues 0 lended: 5062 borrowed: 0 giants: 0 tokens: 1907 ctokens: 1907 class htb 1:ce7b parent 1:1 prio 0 rate 9000Kbit ceil 10000Kbit burst 1598b cburst 1600b Sent 95845041 bytes 493720 pkt (dropped 3593, overlimits 0 requeues 0) rate 524288bit 815pps backlog 0b 0p requeues 0 lended: 488658 borrowed: 5062 giants: 0 tokens: 21109 ctokens: 19000 mmm-cow:~# tc -s f s dev vlan1272 filter parent 1: protocol ip pref 5 u32 filter parent 1: protocol ip pref 5 u32 fh 2: ht divisor 256 filter parent 1: protocol ip pref 5 u32 fh 2:7b:800 order 2048 key ht 2 bkt 7b flowid 1:ce7b (rule hit 555549 success 555549) match d9c5ce7b/ffffffff at 16 (success 555549 ) filter parent 1: protocol ip pref 5 u32 fh 800: ht divisor 1 filter parent 1: protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 link 2: (rule hit 859843 success 0) match d9c5ce00/ffffff00 at 16 (success 859843 ) hash mask 000000ff at 16 mmm-cow:~# tc -s f s dev vlan1017 filter parent 1: protocol ip pref 5 u32 filter parent 1: protocol ip pref 5 u32 fh 2: ht divisor 256 filter parent 1: protocol ip pref 5 u32 fh 2:7b:800 order 2048 key ht 2 bkt 7b flowid 1:ce7b (rule hit 509684 success 509684) match d9c5ce7b/ffffffff at 12 (success 509684 ) filter parent 1: protocol ip pref 5 u32 fh 800: ht divisor 1 filter parent 1: protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 link 2: (rule hit 951792 success 0) match d9c5ce00/fffffe00 at 12 (success 937334 ) hash mask 000000ff at 12 наглядная картинка: как видно, ситуация изменилась с точностью наоборот... :) включать второй eth? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...