Использую прошивку dd-wrt, но по вопросу на родном форуме dd-wrt мало кто смог помочь, а здесь специалистов больше )

Итак, предисловие (в прошивке олега поведение imq контролируется, в dd-wrt нет): imq не умеет обрабатывать маскадированный трафик в прероутинге, так как трафик он он ловит до нат => простым способом отловить весь трафик в прероутинге (куда попадёт и трафик для сервера) и маскадированный трафик - не получится.
Покопавшись с imq обнаружил, что поведение imq до/после на в прероутинге задаётся при сборке ядра. В dd-wrt imq собран именно со срабатыванием до нат, те в прероутинге imq не увидит маскадированный трафик.

Скачал исходники от прошивки, подправил ядро как надо, перекомпилил, получил два модуля - imq.o и ipt_imq.o.
Далее, удалил эти модули из памяти, затем на флешке создал каталог, туда скопировал все модули из /lib/modules/2.4.37,
переписал imq.o и ipt_imq.o новыми скомпиленными модулями,
перемонтировал mount -o bind /mnt/flash/module /lib/modules/

загрузил по новой эти модули (те загружаются уже новые модули) иии...ничего не изменилось - imq так и не стал отрабатывать после ната ((

Где я ошибся в расчётах?)

пс. сейчас выкручиваюсь через snat: весь маршрутизируемый трафик в зависимости от источника снатю на нужный диапозон портов, тогда в prerouting можно будет по диапазону исходяших портов определять кому идёт трафик, ну а дальше маркируем и шейпим...но всё это костыли, хочется нормальное решение через imq (