Благодарю за вариант. Пока разбирался с теоретической частью вопроса шейпинга в linux и сложил мнение, что если не использовать tc class для шейпинга с "заворотом" в них через hashkey tc filters то производительность фаерволла упадёт из-за количества правил. И в целом не хочется использовать ни iptables ни ipset - поднял отдельный NAT на nftables и выглядит что про все остальные фаерволлы лучше уже забыть в 2021 (могу ошибаться) и так же не инвестировать время в разбирательства с ними.
Пока есть вариант в голове - скриптом генерировать tc filters c hashkey для всех абонентов и направлять трафик в нужные qdisc (хоть каждого в свой, хоть нескольких в один). Либо использовать для той же цели "новомодный"
nftables (по информации, которую собрал - он так же использует хеширование и как будто не должно быть разницы в производительности с tc hashkey filter) и так же иметь возможность направлять трафик в какие угодно qdisc.