В настоящее время я работаю над решением по формированию трафика для компаний уровня ISP, и пришел к интересной (своего рода философской) проблеме.
Глядя на количество конечных точек, которые должна обрабатывать система (что составляет около ~ 20 тыс.), Я немного беспокоился о том, что произойдет, когда мне понадобится настроить / настроить трафик большего числа пользователей. Поскольку в настоящее время я использую дерево формирования HFSC (см. Tc-hfsc, в основном то же самое, но более крутое, что и более известный HTB) для всей сети, мне нужно будет использовать больше ClassID (очевидно, по крайней мере один для каждого пользователя в сети). Проблема, которую я обнаружил, заключалась в том, что идентификаторы TC ClassID ограничены - это 16-битные числа, что дает мне возможный максимум 64 тыс. Пользователей, сформированных этим решением.
Точно так же, если я хочу эффективно управлять фильтрами TC (например, не используя «метод очистки всех»), мне нужно иметь возможность удалять или изменять отдельные записи фильтра. (Я использую что-то похожее на хеш-таблицу из LARTC [1]). Опять же, единственный метод, который, кажется, работает с этим, состоит в том, чтобы пронумеровать все фильтры, используя индивидуальные приоритеты (tc filter add dev ... prio 1). Нет другого параметра, который можно было бы использовать для этой цели, и, к сожалению, prio также работает только в 16-битном режиме.
Мой вопрос заключается в следующем: существует ли какой-нибудь хороший метод для расширения доступного «пространства идентификаторов», например, 32-битные clsid для команды 'tc class' и 32-битные приоритеты (или любые другие дескрипторы модификации) для 'tc filter' команда?
Огромное спасибо,
-MK
(Кстати, я надеюсь, что это не пойдет на сценарий "64k пользователей должно быть достаточно для всех" ...)