Мартен Опубликовано 5 сентября, 2007 (изменено) · Жалоба Стою перед нелегким выбором: использовать ли на линукс роутерах для шейпинга входящего трафика ifb или же imq. и у того и у другого есть и плюсы, и минусы. задача - шейпить входящий от клиентов трафик в при схеме влан на пользователя. итак: IMQ: + гибкая интеграция с iptables (на imq девайс можно завернуть не веть трафик, а только часть), нет проблем с метками MARK + корректно работает при наличии NAT - не включено в текущее ядро, и, видимо, не будет включено - нужно патчить ядро и iptables IFB + часть ядра начиная с 2.6.16, ничего пачтить не надо, работает из коробки + заявляется, что кода меньше, он чище, и т.п. чем в IMQ, и типа идеологически более правильно - при ingress shaping стоит ДО netfilter, отсюда ряд проблем: - не понимает iptables MARK (трафик заворачивается до того как пометится) - проблемы с NAT (веь трафик идет на NAT ip) ---- сейчас использую IFB на debian etch. nat нужен, mark тоже. есть мысли перейти на IMQ. у кого есть какие соображения по теме? стОит ли? также вопрос стабильности IMQ волнует очень. Изменено 5 сентября, 2007 пользователем Мартен Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kirya Опубликовано 5 сентября, 2007 (изменено) · Жалоба IMQ тоже работает очень стабильно. Причем давно, так как разработка достаточно древняя. IFB у себя нормально запустить не смог, правда не очень-то и хотел. Одного не понимаю, зачем при схеме влан на пользователя они вообще нужны, когда можно спокойно развесится по интерфейсам ? Изменено 5 сентября, 2007 пользователем Kirya Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 5 сентября, 2007 · Жалоба У меня работает IFB. Проблем не ощущаю, есть NAT. Стабильно с 2.6.20 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
csa Опубликовано 6 сентября, 2007 · Жалоба а в чем смысл шейпинга на входящем интерфейсе? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
edo Опубликовано 6 сентября, 2007 · Жалоба 2csa: а почему бы и нет? ;) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Мартен Опубликовано 6 сентября, 2007 · Жалоба IMQ тоже работает очень стабильно. Причем давно, так как разработка достаточно древняя.IFB у себя нормально запустить не смог, правда не очень-то и хотел. Одного не понимаю, зачем при схеме влан на пользователя они вообще нужны, когда можно спокойно развесится по интерфейсам ? может, вы и правы, но мне удобнее показалось повесить шейпер на вход аплинка, по правилу на юзера, чем на каждом интерфейсе клиентском создавать свой. так и полосой можно гибче рулить, кому-то приоритет поставить повыше и т.п.У меня работает IFB. Проблем не ощущаю, есть NAT.ifb у меня тоже работает и тоже проблем не ощущаю, за исключением озвученных выше нюансов.как правильно подружить шейпинг входящего трафика с помощью ifb на том же интерфейсе, на котором есть нат? я пока разумной схемы не нашел Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kirya Опубликовано 6 сентября, 2007 · Жалоба IMQ тоже работает очень стабильно. Причем давно, так как разработка достаточно древняя. IFB у себя нормально запустить не смог, правда не очень-то и хотел. Одного не понимаю, зачем при схеме влан на пользователя они вообще нужны, когда можно спокойно развесится по интерфейсам ? может, вы и правы, но мне удобнее показалось повесить шейпер на вход аплинка, по правилу на юзера, чем на каждом интерфейсе клиентском создавать свой. так и полосой можно гибче рулить, кому-то приоритет поставить повыше и т.п. У тебя сейчас через FWMARK трафик идет ?Что ты не можешь реализовать без IMQ/IFB ? Шейпер на общий канал ? Какая политика ? HTB ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Мартен Опубликовано 6 сентября, 2007 (изменено) · Жалоба У тебя сейчас через FWMARK трафик идет ?Что ты не можешь реализовать без IMQ/IFB ? Шейпер на общий канал ? Какая политика ? HTB ? значит так:есть роутер; аплинк интерфейс eth0; на eth0 вешается ifb. входящий на eth0 далее роутится по клиентским вланам; на ifb дисциплина htb хочется: приоритеты на воип; резать полосы анлимщикам; трафик юриков ставить приоритетом над физиками; отдельным низким приоритетом локальный трафик. как решаю сейчас: входящий воип вылавливаю по src ip (криво, знаю, хочу fwmark) исходящий воип - по fwmark, проблем нет входящий локальный - как выловить не ясно, fwmark не повесить исходящий локальный - проблем нет ситуация сильно усложнится, если захочется в схему добавить NAT -- как решить все это с помощью IMQ ясно, но терзали сомнения по поводу надежности. больше вроде не терзают. как сделать красиво с ifb пока не понятно. вот собственно такой ход мыслей. склоняюсь к использованию IMQ Изменено 6 сентября, 2007 пользователем Мартен Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 6 сентября, 2007 (изменено) · Жалоба значит так:есть роутер; аплинк интерфейс eth0; на eth0 вешается ifb. входящий на eth0 далее роутится по клиентским вланам; на ifb дисциплина htb хочется: приоритеты на воип; резать полосы анлимщикам; трафик юриков ставить приоритетом над физиками; отдельным низким приоритетом локальный трафик. как решаю сейчас: входящий воип вылавливаю по src ip (криво, знаю, хочу fwmark) исходящий воип - по fwmark, проблем нет входящий локальный - как выловить не ясно, fwmark не повесить исходящий локальный - проблем нет ситуация сильно усложнится, если захочется в схему добавить NAT -- как решить все это с помощью IMQ ясно, но терзали сомнения по поводу надежности. больше вроде не терзают. как сделать красиво с ifb пока не понятно. вот собственно такой ход мыслей. склоняюсь к использованию IMQ id=$(echo $2|tr -d p) id=$((${id}+100)) buffer=$((${3}/8*2)) rate=$((${3}*${koeftx}/100)) upburst=$((${3}*${koeftx}/100/8*60/1024)) peakrate=$((${3}*10)) $TC class add dev ifb0 classid 1:${id} parent 1: htb rate ${rate}bit quantum 1600 #TODO: "red" qdisc if [[ "${QDISCTX}" == "sfq" ]]; then $TC qdisc add dev ifb0 parent 1:${id} handle ${id}: sfq perturb 5 QDISCTXDONE=1 fi if [[ "${QDISCTX}" == "fifo" ]]; then $TC qdisc add dev ifb0 parent 1:${id} handle ${id}: bfifo limit ${buffer} QDISCTXDONE=1 fi if [[ -z "${QDISCTXDONE}" ]]; then $TC qdisc add dev ifb0 parent 1:${id} handle ${id}: bfifo limit ${buffer} fi $TC filter add dev ifb0 protocol ip pref ${id} parent 1: handle ${id} fw classid 1:${id} $TC qdisc del dev $2 ingress 1>/dev/null 2>/dev/null $TC qdisc add dev $2 ingress $TC filter add dev $2 parent ffff: protocol ip prio 10 u32 \ match u32 0 0 flowid 1:1 \ action ipt -j MARK --set-mark ${id} \ action mirred egress redirect dev ifb0 Это из одного из шейперов $2 - может быть VLAN, в моем случае pppNNN Изменено 6 сентября, 2007 пользователем nuclearcat Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Мартен Опубликовано 7 сентября, 2007 · Жалоба всем спасибо за ответы. остановился на IMQ, правда пришлось повозиться с патчами на iptables (хотелось корректно собрать deb пакет с патчем, это оказалось сложнее чем думал), но оно того стоит.если кому интересно как делал, пишите. сейчас тестирую, все нравится. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ramp Опубликовано 12 сентября, 2007 · Жалоба а все-таки, зачем вешать шейпер на убогий ingress, если есть ifb/IMQ ? они вроде для того и сделаны, чтобы был один _общий_ HTB, например, на egress ifb0, а на egress всех реальных интерфейсов - перенаправление на ifb0 У IMQ есть один серьезный минус - такое впечатление, что баг с локальным трафиком из http://wiki.nix.hu/cgi-bin/twiki/view/IMQ/...w_stable_is_IMQ так и не исправили. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Мартен Опубликовано 12 сентября, 2007 · Жалоба а все-таки, зачем вешать шейпер на убогий ingress, если есть ifb/IMQ ?они вроде для того и сделаны, чтобы был один _общий_ HTB, например, на egress ifb0, а на egress всех реальных интерфейсов - перенаправление на ifb0 а как с натом быть в этом случае? ifb на egress стоит уже после ната. метить каждого юзера mark'ом? не выход.У IMQ есть один серьезный минус - такое впечатление, что баг с локальным трафиком из http://wiki.nix.hu/cgi-bin/twiki/view/IMQ/...w_stable_is_IMQ так и не исправили. там говорится про 2.6.7 до сих пор не поправили? 8| надо попробовать смоделировать ситуацию да проверить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Мартен Опубликовано 12 сентября, 2007 · Жалоба поставил на тестовом сервере -A POSTROUTING -j IMQ --todev 0 понаблюдаем несколько дней, что да как. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kirya Опубликовано 12 сентября, 2007 · Жалоба Чейчас у меня ядрышко 2.6.20, но вообще '-A POSTROUTING -j IMQ --todev 0' работает уже без проблем уже более года. Я даже и не знал об этой проблеме... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Мартен Опубликовано 12 сентября, 2007 · Жалоба я так и подозревал, что у страха глаза велики :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dnvk Опубликовано 12 сентября, 2007 · Жалоба а ежели в IMQ загонять лишь трафик пришедший с аплинка (в случае, если нужно разрезать полосу аплинка между юзверями) - ни какого локального трафика с сервера не должно туда попать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Мартен Опубликовано 11 августа, 2009 · Жалоба ну вот, почти 2 года стабильного полета с IMQ на 2.6.18 (Debian Etch). Пришла пора переползать на Lenny (2.6.26.2) и соответственно, новые проблемы. Патч linux-2.6.26.8-imq-test2.diff не кладется на дебиновские сорцы. Немного напильника и все наложилось. Если кому надо - модифицированный патч во вложении. Новое ядро в бою пока погонять не успел, но о результатах постараюсь отписать. linux_2.6.26.8_imq_test2_lenny.diff.gz Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Gaspar Опубликовано 27 января, 2010 · Жалоба Вот и у меня возникла необходимость в ограничении ingress трафика на ppp интерфейсах. Сделал через полисинг с drop - работает мягко говоря плоховато (что собственно и ожидалось). Буду пробовать IMQ на Lenny (2.6.26-1-686). 2Мартен - как результаты? Еще было бы неплохо посмотреть, как оно настроено :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sirmax Опубликовано 27 января, 2010 · Жалоба Gaspar если это шейпинг ВПНов то с ifb решается просто в лоб. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Gaspar Опубликовано 27 января, 2010 (изменено) · Жалоба если это шейпинг ВПНов то с ifb решается просто в лоб.Да, впн надо шейпить, порядка 500 штук. Как я понял, создается виртуальный интерфейс, командой action mirred egress redirect dev ifb0 трафик с pppХХХ заворачивается на него и пишутся tc правила для ifb0. Шейпить ррр требуется с разными скоростями. Для каждого рррХХХ делается ifbХХХ и там режется или всё скидывается в один общий ifb0 и там фильтрами выделяется трафик отдельных впн и режется? И еще нат актуален. Изменено 27 января, 2010 пользователем Gaspar Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
voron Опубликовано 27 января, 2010 · Жалоба Для каждого рррХХХ делается ifbХХХ и там режется а смысл тогда в ifb? исходящий с ppp к клиенту можно и без ifb пошейпать на этом же ppp, а входящий в ppp шейпается на смотрящем в мир интерфейсе как исходящий с этого интерфейса тоже без ifb Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Jugernault Опубликовано 27 января, 2010 · Жалоба Для каждого рррХХХ делается ifbХХХ и там режется или всё скидывается в один общий ifb0 и там фильтрами выделяется трафик отдельных впн и режется?Особо интересно, какой из вариантов производительнее. p.s. Первый варианта однозначно легче реализовать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Gaspar Опубликовано 27 января, 2010 (изменено) · Жалоба Вопрос изначально стоял в шейпинге именно ingress трафика и в добавок ко всему с натом, с egress всё ясно и уже давно работает. Шейпинг исходящего с аплинк интерфейса трафика уживается с натом на этом же аплинк интерфейсе? Может есть пример реализации? Изменено 27 января, 2010 пользователем Gaspar Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
2c2i Опубликовано 2 апреля, 2010 · Жалоба может быть $tc class add dev $OUT_DEV parent 1:1 classid 1:20 htb rate 18mbit ceil 20mbit prio 1 burst 24576 cburst 24576 ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
marikoda Опубликовано 1 декабря, 2010 · Жалоба Так всё-таки, что же лучше, IFB или IMQ ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...