Graaf Опубликовано 22 декабря, 2015 · Жалоба Подскажите, может кто сталкивался с похожей ситуацией: шейпинг работает нормально, абоненты получают указанную скорость, но если включаю полисинг — удаётся выжать максимум 1 Мбит независимо от настроек полосы пропускания и burst. Не знаю где искать проблему Пробовал на ядрах 3.2 и 3.16. Сетевые карты на серверах объединены в bond по 2 Гбит Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 23 декабря, 2015 (изменено) · Жалоба Это известная особенность полисинга. По большому счету, им можно регулировать только пакетрейт, а не битрейт. Надо эмпирически настраивать burst и полосу для того, чтобы скорость соответствовала номиналу, и контролировать это дело iperf'ом. Если у вас полоса до 2 Гбит/с, то можно спокойно сидеть на шейпинге. У знакомого процессор уходил в потолок из-за глобального лока в HTB начиная где-то с 4-х Гбит/с. Изменено 23 декабря, 2015 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Graaf Опубликовано 24 декабря, 2015 · Жалоба К сожалению один из серверов довольно старый и не тянет шейпинг уже на ~1.5 Гбит, а выкинуть его нет возможности Каким-то образом всё заработало с policer_burst_ratio = 0.2 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 27 декабря, 2015 (изменено) · Жалоба Это хорошо, что линейная зависимость сохраняется даже при высоких скоростях. Поставлю 0.2 как значение по умолчанию. Изменено 27 декабря, 2015 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
linkodd Опубликовано 28 декабря, 2015 · Жалоба Я так понимаю, что создается отдельное правило на каждый ip? Можно ли создать с помощью данного решения приоритеты внутри клиента(ip адреса)? без лишних танцев с бубном. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 28 декабря, 2015 (изменено) · Жалоба Нет, в sc так делать нельзя. Это сожрет классы, которых всего 2^16-2, и их не хватит на всех клиентов. Приоритеты внутри очереди лучше делать на стороне клиента, например, продав ему пренастроенный маршрутизатор или услуги по такой настройке. В Винде оно настраивается через консоль Local Group Policy Editor. Для совсем тупых некоторые игровые материнки уже из коробки имеют софт для управления сетевым трафиком. Изменено 29 декабря, 2015 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
linkodd Опубликовано 28 декабря, 2015 · Жалоба Нет, в sc так делать нельзя. Это сожрет классы, которых всего 2^16-2, и их не хватит на всех клиентов. Приоритеты внутри очереди клиента лучше делать на стороне клиента, например, продав ему пренастроенный маршрутизатор или услуги по такой настройке. В Винде оно настраивается через консоль Local Group Policy Editor. Для совсем тупых некоторые игровые материнки уже из коробки имеют софт для управления сетевым трафиком. А я уже обрадовался было. Ваше решение 100% охвата и простой реализации не позволяет. Тем более что 65534 классов поделить на 5 классов для одного клиента(1 родительский и 4 дочерних) и получится таки вполне нормально... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 24 января, 2016 (изменено) · Жалоба Стоит ли добавить автоматический bypass для IP-адресов сетевух шейпера, чтобы его не вырубало при загрузке правил из базы, где нет его адресов? Изменено 24 января, 2016 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alex39x Опубликовано 25 января, 2016 · Жалоба Стоит ли добавить автоматический bypass для IP-адресов сетевух шейпера, чтобы его не вырубало при загрузке правил из базы, где нет его адресов? Думаю стоит. Можно для этого в конфиге параметр завести. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 25 января, 2016 · Жалоба Думаю стоит. Можно для этого в конфиге параметр завести. Сделал так. Параметр default_policy теперь может принимать три значения: block-all (блокировать строго все, чего нет в базе), block (блокировать все, кроме самого шейпера), pass (пропускать все). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bomberman Опубликовано 26 января, 2016 · Жалоба Сделал так. Параметр default_policy теперь может принимать три значения: block-all (блокировать строго все, чего нет в базе), block (блокировать все, кроме самого шейпера), pass (пропускать все). Отлично. Считаю будет необходимым. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
babay951 Опубликовано 11 февраля, 2016 (изменено) · Жалоба Photon , скажите пожалуйста почему в sub tc_batch_start "$tc -batch" поменялось на "$tc -batch -"? Что значит этот дополнительный дефис? Вчера переходил с Debian 7 на 8 и не мог долго запустить SC . У меня 1.5.1, не обновляюсь потому, что модификаций наделал. Изменено 11 февраля, 2016 пользователем babay951 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 11 февраля, 2016 (изменено) · Жалоба Вот этот коммит: https://bitbucket.org/sky/sc/commits/5ff17f4581d463e11d5755d3662890e31d7354cf?at=default Начиная с каких-то версий от 2013 года, tc -batch не читал данные из пайпа без этого дефиса, поэтому пришлось добавить. А вы с какой целью интересуетесь? С последним iproute2 все работает. Изменено 12 февраля, 2016 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
babay951 Опубликовано 12 февраля, 2016 (изменено) · Жалоба Да вот нигде не нашел в документациях, что это за дефис такой, который обнаружил после 4 часов сверки и дебага кода. Стало интересно. Всё прекрасно работает. Изменено 12 февраля, 2016 пользователем babay951 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 12 февраля, 2016 · Жалоба Вся информация об изменениях есть в истории коммитов, пользуйтесь системами контроля версий. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
u234 Опубликовано 19 апреля, 2016 (изменено) · Жалоба не подскажите по реализации команды sync. не силен в перле, по коду не понял как реализуется sync. при выполнении sync все правила дропаются и добавляются по новой из базы? или все таки происходит поиск по текущим правилам и если есть изменения с базой, то меняются только некоторые правила и добавляются\удаляются новые и отсутствующие записи? Изменено 19 апреля, 2016 пользователем u234 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 19 апреля, 2016 (изменено) · Жалоба происходит поиск по текущим правилам и если есть изменения с базой, то меняются только некоторые правила и добавляются\удаляются новые и отсутствующие записи? Да, именно так. Иначе бы не было смысла вводить отдельную команду. Изменено 19 апреля, 2016 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Morbid Опубликовано 15 июня, 2016 · Жалоба Может кто сталкивался: sc версии 1.5.1 OS: Debian 7.8 Все работает гуд, по умолчанию трафик на ипшники которых нет в базе, пропускает. Шейпит только те что есть в базе. Заключительная часть фильтров выглядит так: filter parent 1: protocol all pref 20 u32 filter parent 1: protocol all pref 20 u32 fh 803: ht divisor 1 filter parent 1: protocol ip pref 30 u32 filter parent 1: protocol ip pref 30 u32 fh 802: ht divisor 1 filter parent 1: protocol ip pref 30 u32 fh 802::800 order 2048 key ht 802 bkt 0 terminal flowid ??? match 00000000/00000000 at 0 police 0x7b rate 0bit burst 0b mtu 1b action pass overhead 0b ref 1 bind 1 Все тоже самое: sc версии 1.5.1 OS: Debian 8.4 Пропускает только те ипшники, что есть в базе, все остальное режет (кого нет в базе): filter parent 1: protocol all pref 20 u32 filter parent 1: protocol all pref 20 u32 fh 803: ht divisor 1 filter parent 1: protocol ip pref 30 u32 filter parent 1: protocol ip pref 30 u32 fh 802: ht divisor 1 filter parent 1: protocol ip pref 30 u32 fh 802::800 order 2048 key ht 802 bkt 0 terminal flowid ??? match 00000000/00000000 at 0 police 0x4 rate 0bit burst 0b mtu 1b action reclassify overhead 0b ref 1 bind 1 Очень смущает action reclassify. Конфиги идентичны, (скрипт собственно взят с первой машины). Есть подозрения, что дело все в новом tc (iproute2) пакет. Может кто подскажет, как reclassify заменить на pass? (в скрипте, в нужных секциях, поправлено уже все на pass, нету такого действия как reclassify). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Morbid Опубликовано 15 июня, 2016 · Жалоба Судя по всему нашел: Как я понял, это плавающий между версиями iproute2 "нюанс" - просто "drop" работает всегда "action drop" в некоторых версиях игнорируется из-за "action" и тогда работает действие по умолчанию - "reclassify". Проще говоря лучше аргумент "action" опускать. Буду тестить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MrZhuliK Опубликовано 25 июня, 2016 · Жалоба Привет. Подскажите пожалуйста, имеется 2 локальных сети, как указать их в конфиге? in_if = eth1, eth3 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
u234 Опубликовано 25 июня, 2016 · Жалоба 2 конфигурационных файла, 2 раза запускать sc с указанием разных конфигов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MrZhuliK Опубликовано 25 июня, 2016 · Жалоба 2 конфигурационных файла, 2 раза запускать sc с указанием разных конфигов. спасибо большое за ответ, буду пробовать, но всё же нашёл в обсуждении, что как то допилили скрипт на несколько интерфейсов, хотелось бы всё таки с одним конфигом Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 25 июня, 2016 (изменено) · Жалоба Если эти два интерфейса не для балансировки, то в локальных сетях будут разные IP. Соответственно, базы аккаунтов и экземпляры sc для каждой из сетей должны быть разными. А если интерфейсы используются для балансировки, то их проще объединить в один виртуальный (LACP bonding) и повесить sc уже на него. Изменено 26 июня, 2016 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MrZhuliK Опубликовано 26 июня, 2016 (изменено) · Жалоба Первая сеть лан, вторая wifi, объединять не нужно. Сделал 2 разных конфига с двумя разными бд, но при запуске второй выдает RTNETLINK answers: File exists Command failed -:7 внешний интерфейс один -- во втором конфиге убрал внешний интерфейс, запуская сперва конфиг без внешнего интерфеса, потом второй конфиг, пока всё ок может сделать 3 конфига на каждый из интерфейсов? ---- не катит, без указания внешнего интерфейса ограничивается и передача в локалке подскажите что делать :) Изменено 26 июня, 2016 пользователем MrZhuliK Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Nekto Опубликовано 15 августа, 2016 · Жалоба Нашел данную программу. Возник вопрос по конфигурации. Возможно ли с ее помощью создавать классы для htb. Родительский клас и так далее. Я для этого использую htb.init но поместить настройки в базу данных весьма неплохое решение и работает прога шустро. Еще не заметил возможности добавлять марки пакетов и порты. Сгенерил небольшой пример. Посмотрите как такое реализовать при помощи sc. Два класса для тарифов, внутри классов нарезка для конкретных ип или групп. Субнет вычисляется по хэшу, а классы это уже для htb. /sbin/tc qdisc del dev eth0 root /sbin/tc qdisc add dev eth0 root handle 1 htb default 30 r2q 32 /sbin/tc class add dev eth0 parent 1: classid 1:2 htb rate 100Mbit /sbin/tc filter add dev eth0 parent 1:0 prio 200 handle 3: protocol ip u32 divisor 256 /sbin/tc class add dev eth0 parent 1:2 classid 1:11 htb rate 20Mbit ceil 30Mbit burst 50k prio 3 /sbin/tc qdisc add dev eth0 parent 1:11 handle 11 esfq perturb 10 /sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 100 handle 80 fw classid 1:11 /sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 200 u32 match ip sport 443 0xffff match ip dst 192.168.1.4 classid 1:11 /sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 200 u32 ht 3:0x04 match ip dst 192.168.1.4 flowid 1:11 /sbin/tc class add dev eth0 parent 1:2 classid 1:256 htb rate 30Mbit ceil 40Mbit burst 50k prio 3 /sbin/tc qdisc add dev eth0 parent 1:256 handle 256 esfq perturb 10 /sbin/tc class add dev eth0 parent 1:256 classid 1:12 htb rate 10Mbit ceil 20Mbit burst 50k prio 3 /sbin/tc qdisc add dev eth0 parent 1:12 handle 12 esfq perturb 10 /sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 200 u32 ht 3:0x0c match ip dst 192.168.1.12 flowid 1:12 /sbin/tc class add dev eth0 parent 1:256 classid 1:16 htb rate 10Mbit ceil 20Mbit burst 50k prio 3 /sbin/tc qdisc add dev eth0 parent 1:16 handle 16 esfq perturb 10 /sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 200 u32 ht 3:0x10 match ip dst 192.168.1.16 flowid 1:16 /sbin/tc class add dev eth0 parent 1:2 classid 1:512 htb rate 40Mbit ceil 60Mbit burst 50k prio 3 /sbin/tc qdisc add dev eth0 parent 1:512 handle 512 esfq perturb 10 /sbin/tc class add dev eth0 parent 1:512 classid 1:15 htb rate 20Mbit ceil 30Mbit burst 50k prio 3 /sbin/tc qdisc add dev eth0 parent 1:15 handle 15 esfq perturb 10 /sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 200 u32 ht 3:0x0f match ip dst 192.168.1.15 flowid 1:15 /sbin/tc class add dev eth0 parent 1:512 classid 1:17 htb rate 20Mbit ceil 30Mbit burst 50k prio 3 /sbin/tc qdisc add dev eth0 parent 1:17 handle 17 esfq perturb 10 /sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 200 u32 ht 3:0x11 match ip dst 192.168.1.17 flowid 1:17 /sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 200 u32 ht 3:0x12 match ip dst 192.168.1.18 flowid 1:17 /sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 200 u32 ht 800:: match ip dst 192.168.1.0/24 hashkey mask 0x000000ff at 16 link 3: Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...