Ядро 2.6.17.2, немного патчей из pom(ipset, ROUTE, TARPIT), esfq, IMQ, iptables 1.3.5.
В целом все ок, но жуткая трабла с IMQ - оно совсем не работает.
при любом -t mangle -A PREROUTING ляля -j IMQ
вылетает:
ip_tables: IMQ target: invalid size 0 != 4
Как собственно лечить?
Без IMQ нельзя никак - куча интерфейсов, и нехочется ничего наварачивать.
modprobe IMQ, ipt_IMQ проходят нормально, вот dmesg:
IMQ starting with 4 devices...
IMQ driver loaded successfully.
Hooking IMQ before NAT on PREROUTING.
Hooking IMQ after NAT on POSTROUTING.
....-j IMQ --todev 0
Здравствуйте.Любое из правил:
$IPTABLES -t mangle -A PREROUTING -i eth0 -j IMQ --todev 0
$IPTABLES -t mangle -A PREROUTING -i eth1 -j IMQ --todev 1
$IPTABLES -t mangle -A PREROUTING -i eth2 -j IMQ --todev 2
$IPTABLES -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 3
$IPTABLES -t mangle -A POSTROUTING -o eth1 -j IMQ --todev 4
$IPTABLES -t mangle -A POSTROUTING -o eth2 -j IMQ --todev 5
теперь выдает ошибку:
iptables: Unknown error 18446744073709551615
dmesg:
ip_tables: IMQ target: invalid size 0 != 8Ядро 2.6.17.4
До этого в ядрах до 2.6.17 все работает отлично.
Подскажите куда копать ?
>Ядро 2.6.17.2, немного патчей из pom(ipset, ROUTE, TARPIT), esfq, IMQ, iptables 1.3.5.
>
>В целом все ок, но жуткая трабла с IMQ - оно совсем
>не работает.
>при любом -t mangle -A PREROUTING ляля -j IMQ
>вылетает:
>ip_tables: IMQ target: invalid size 0 != 4
>Как собственно лечить?
>Без IMQ нельзя никак - куча интерфейсов, и нехочется ничего наварачивать.
>modprobe IMQ, ipt_IMQ проходят нормально, вот dmesg:
>IMQ starting with 4 devices...
>IMQ driver loaded successfully.
> Hooking IMQ before NAT
>on PREROUTING.
> Hooking IMQ after NAT
>on POSTROUTING.без IMQ уже можно, появился IFB.
http://linux-net.osdl.org/index.php/IFB
>без IMQ уже можно, появился IFB.
>http://linux-net.osdl.org/index.php/IFB
думаю что нет, не нашел где описывается где IFB
ловит трафик, аналогия с IMQChoosing this option will make IMQ hook like this:
PREROUTING: After NAT
POSTROUTING: Before NAT
>>без IMQ уже можно, появился IFB.
>>http://linux-net.osdl.org/index.php/IFB
>думаю что нет, не нашел где описывается где IFB
>ловит трафик, аналогия с IMQ
>
>Choosing this option will make IMQ hook like this:
>PREROUTING: After NAT
>POSTROUTING: Before NATтак делаешь на нужном интерфейсе ingress qdisc и при помощи
tc filter зеркалируешь его на ifbX, а на ifbX уже настраиваешь
исходящий трафик как твоей душе угодно.
>так делаешь на нужном интерфейсе ingress qdisc и при помощи
>tc filter зеркалируешь его на ifbX, а на ifbX уже настраиваешь
>исходящий трафик как твоей душе угодно.
то-то и оно что ingress qdisc не устраивает не тем что ограничены
возможности по баланировке трафика, а тем что НЕ ТАМ его ловит,
вся сила imq именно в возможности ловить трафик:PREROUTING: After NAT/Before NAT
POSTROUTING: After NAT/Before NATа ingress qdisc на входе его ловит в PREROUTING: Before NAT
а мне надо чтобы в PREROUTING: After NAT
давая возможность например балансировать трафик
с точностью до бита в секунду на вход! сквида,
для каждого пользователя с локальным! адресом,
когда весь выхлоп по сквида совершенно не балансируется
и из кэша данные отдаются со скоростью локальной сети,
а балансируются только данные скачиваемые из и-нета
и для каждого пользователя.
>>так делаешь на нужном интерфейсе ingress qdisc и при помощи
>>tc filter зеркалируешь его на ifbX, а на ifbX уже настраиваешь
>>исходящий трафик как твоей душе угодно.
>то-то и оно что ingress qdisc не устраивает не тем что ограничены
>
>возможности по баланировке трафика, а тем что НЕ ТАМ его ловит,
>вся сила imq именно в возможности ловить трафик:
>
>PREROUTING: After NAT/Before NAT
>POSTROUTING: After NAT/Before NAT
>
>а ingress qdisc на входе его ловит в PREROUTING: Before NAT
>а мне надо чтобы в PREROUTING: After NAT
>давая возможность например балансировать трафик
>с точностью до бита в секунду на вход! сквида,
ересь, это зависит слишком от многих факторов !>для каждого пользователя с локальным! адресом,
>когда весь выхлоп по сквида совершенно не балансируется
>и из кэша данные отдаются со скоростью локальной сети,
>а балансируются только данные скачиваемые из и-нета
>и для каждого пользователя.ну так а кто мешает маркировать тебе пакеты при помощи
iptables на ifbX и уже на этой основе настраивать управление
трафиком ?
>>>так делаешь на нужном интерфейсе ingress qdisc и при помощи
>>>tc filter зеркалируешь его на ifbX, а на ifbX уже настраиваешь
>>>исходящий трафик как твоей душе угодно.
>>то-то и оно что ingress qdisc не устраивает не тем что ограничены
>>
>>возможности по баланировке трафика, а тем что НЕ ТАМ его ловит,
>>вся сила imq именно в возможности ловить трафик:
>>
>>PREROUTING: After NAT/Before NAT
>>POSTROUTING: After NAT/Before NAT
>>
>>а ingress qdisc на входе его ловит в PREROUTING: Before NAT
>>а мне надо чтобы в PREROUTING: After NAT
>>давая возможность например балансировать трафик
>>с точностью до бита в секунду на вход! сквида,
>
>ересь, это зависит слишком от многих факторов !
полагаю у Вас все работает непредсказуемо :)
а у нас с точностью до бита, и благо уже не один
сервер собран.
А называть просто так гоословно ересью то что сами не проверяли
по крайней мере глупо.>>для каждого пользователя с локальным! адресом,
>>когда весь выхлоп по сквида совершенно не балансируется
>>и из кэша данные отдаются со скоростью локальной сети,
>>а балансируются только данные скачиваемые из и-нета
>>и для каждого пользователя.
>
>ну так а кто мешает маркировать тебе пакеты при помощи
>iptables на ifbX и уже на этой основе настраивать управление
>трафиком ?смотрим сюда
http://www.docum.org/docum.org/kptd/
и понимаем что есть возможность балансировать пакеты ПОСЛЕ DENAT
т.е. сразу же после "квадратика" "INPUT ROUTING + PDBB"
а не перед в "квадратике" "QOS INGRESS"хотя и imq позволяет использовать и перед DENAT
как буд-то это полноценный "QOS EGRESS"Удачи.
>Ядро 2.6.17.2, немного патчей из pom(ipset, ROUTE, TARPIT), esfq, IMQ, iptables 1.3.5.
>
>В целом все ок, но жуткая трабла с IMQ - оно совсем
>не работает.
>при любом -t mangle -A PREROUTING ляля -j IMQ
>вылетает:
>ip_tables: IMQ target: invalid size 0 != 4
>Как собственно лечить?перекомпилить iptables c header's текущего ядра
>>Ядро 2.6.17.2, немного патчей из pom(ipset, ROUTE, TARPIT), esfq, IMQ, iptables 1.3.5.
>>
>>В целом все ок, но жуткая трабла с IMQ - оно совсем
>>не работает.
>>при любом -t mangle -A PREROUTING ляля -j IMQ
>>вылетает:
>>ip_tables: IMQ target: invalid size 0 != 4
>>Как собственно лечить?
>
>перекомпилить iptables c header's текущего ядра
свежий работающий imq можно слить здесь
http://marc.theaimsgroup.com/?l=lartc&m=115268417016668&w=2
проверено на 2.6.17.6