Перейти к содержимому
Калькуляторы

technolab

Пользователи
  • Публикации

    19
  • Зарегистрирован

  • Посещение

Все публикации пользователя technolab


  1. to admf вместо include: sed -i 's/^rate_ratio.*=.*/rate_ratio = 1.5/g' /etc/sc/sc.conf или sed -i 's/^bypass_int.*=.*/bypass_int = 10.0.254.0\/24 10.208.240.1\/24/g' /etc/sc/sc.conf
  2. Как я понял, это плавающий между версиями iproute2 "нюанс" - просто "drop" работает всегда "action drop" в некоторых версиях игнорируется из-за "action" и тогда работает действие по умолчанию - "reclassify". Проще говоря лучше аргумент "action" опускать.
  3. - Shaper Control Tool (version 1.3.4, 1.5.5) + Debian Squeeze, ядро 3.2.0-4-amd64 проблемы с tb: packet reclassify loop rule prio 0 protocol 800 нет; - Shaper Control Tool (version 1.5.5, 1.5.1) + Debian Jessie, ядро 3.16.0-4-amd64, конфигурация sc по умолчанию, добавлены две сети: 19 и 24. Не классифицированный траффик блокируется, пакеты с src|dst для которых созданы фильтры, заворачиваются в свой кудиск. Даже на физических интерфейсах поверх которых есть вланы, с оффсетом по умолчанию фильтры отрабатывают корректно, поведение шейпируемого траффика соответствует ожиданиям, но в dmesg tb: packet reclassify loop rule prio 0 protocol 800 . Если изменить оффсет (добавить смещение на тег), то пакеты перестают попадать под фильтр и блокируются. Разтегировал интерфейс, т.е. вланов больше нет, ситуация не меняется: tb: packet reclassify loop rule prio 0 protocol 800 Кто виноват и что делать? Бугагага! Восемь лет назад это уже было Надо во всех фильтрах аргумент "action drop" заменить на просто "drop".
  4. В конфиге только network девятнадцатая и двадцать четвертая, остальное по умолчанию. Один интерфейс с тегом (влан). Никакого NAT.
  5. Приветствую! Shaper Control Tool (version 1.5.5, 1.5.1) Debian Jessie, ядро 3.16.0-4-amd64 сообщения в dmesg: [ 7157.573144] htb: packet reclassify loop rule prio 0 protocol 800 [ 7162.490394] net_ratelimit: 730 callbacks suppressed [ 7162.490405] htb: packet reclassify loop rule prio 0 protocol 800 [ 7162.491936] htb: packet reclassify loop rule prio 0 protocol 800 [ 7162.492108] htb: packet reclassify loop rule prio 0 protocol 800 [ 7162.493219] htb: packet reclassify loop rule prio 0 protocol 800 [ 7162.498290] htb: packet reclassify loop rule prio 0 protocol 800 [ 7162.498386] htb: packet reclassify loop rule prio 0 protocol 800 [ 7162.511801] htb: packet reclassify loop rule prio 0 protocol 800 [ 7162.519259] htb: packet reclassify loop rule prio 0 protocol 800 [ 7162.525164] htb: packet reclassify loop rule prio 0 protocol 800 [ 7162.536743] htb: packet reclassify loop rule prio 0 protocol 800
  6. У меня падает именно с bounding'ом, на 38 и 39 - 100%, а вообще, похоже появилась проблема начиная с 36.
  7. Я только за, только я не знаю, что это такое и с чем его едят :( Посвятите, если не сложно.
  8. К сожалению, пришлось отложить сравнение: 1. Изменения синтаксиса iptables с ipset: $iptables -A $chain_name -p all -m set --match-set $set_name src -j ACCEPT set --match-set вместо set --set open my $IPH, '-|', "$ipset -L $set_name" $ipset -L вместо $ipset -nsL Это поправил. 2. flow+ipset. Каждый init и sync добавляют новые правила в iptables не зависимо от их наличия, что приводит к бесчисленному множеству идентичных записей. Пока не решил, что с этим можно сделать, вернее как это проверять. 3. flow+ipset. Есть проблема с созданием и удалением chain_name. Пока не готов точно сформулировать суть, но работает с ошибками. Зато есть sc-1.3.2.add.11.05.02 с добавленным ceil и root class'ом, соответственно новые переменные в sc.conf: grate = ширина канала r2q = коэффициент для расчета quantum root qdisc'а (qdisc не имеет ключа quantum) ceil_ratio = ровно то, что и rate_ratio, только для ceil Параметр ceil - новая колонка в db, соответствено синтаксис sc dbadd 192.168.1.1 1024kibit 1024kibit. Правил код для всех режимов, но адекватно тестил только на u32. Описания и примеры нигде не правил. Тут же изменения указанные в п. 1 Название: sc-11.05.02.tar.gz Размер: 21.35 кб Доступен до: 2011-06-01 20:04:38 Ссылка для скачивания файла: http://ifolder.ru/23295806 Пароль: nag
  9. не обещаю в ближайшее время, но обязательно расскажу
  10. Раз такая пляска пошла, решил я sc под ipset помучить, 4-й - что-то устарел, решил 6 поставить. Гляжу, а что-то ни наши, ни буржуи его скомпилить не могут. А в kernel-2.6.39-rc5 само собой самого управляющего скрипта нет - все одно компилить. Вообщем... Экспресс сборка kernel 2.6.38.4 + iptables-1.4.10 + ipset-6.4 на 6-ом протоколе #wget -P /usr/src/ http://ftp.netfilter.org/pub/libmnl/libmnl-1.0.1.tar.bz2 \ http://ftp.netfilter.org/pub/iptables/iptables-1.4.10.tar.bz2 \ http://ftp.netfilter.org/pub/ipset/ipset-6.4.tar.bz2 \ http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.4.tar.bz2 накачаем исходников #for file in /usr/src/libmnl-1.0.1.tar.bz2 \ /usr/src/iptables-1.4.10.tar.bz2 \ /usr/src/ipset-6.4.tar.bz2 \ /usr/src/linux-2.6.38.4.tar.bz2; \ do tar jxf ${file} -C /usr/src/; done распакум чего накачали #if [ -d /usr/src/linux ]; then rm /usr/src/linux; fi; \ ln -s /usr/src/linux-2.6.38.4 /usr/src/linux создадим символьную ссылку #cd /usr/src/linux/ && make clean && make mrproper перейдем в папку с исходниками ядра и почистим #cp /boot/config-$(uname -r) /usr/src/linux/.config возьмем конфиг от загруженной системы за шаблон #make menuconfig >> Load an Alternate Configuration File >> OK >> Exit >> Yes загрузим "шаблон", конфигурим до "готовности" (для этой версии ipset нужна поддержка ipv6), выходим #make-kpkg clean кстати, чистит конфиг от параметров, неактуальных для этого ядра #make-kpkg -j8 --initrd --append-to-version=-\ r6-amd64 kernel_image kernel_headers kernel_source 8 - это ядер у меня, "r6-amd64" - произвольный набор букв #dpkg -i ../*.deb ну или если в /usr/src уже понакидано других пакетов - ставим по-одному #reboot грузим новое ядро #cd /usr/src/libmnl-1.0.1 && ./configure && make && make install идем в папку с библиотекой под ipset кофигурим, компилим, ставим. Сообщения, типа: "Цель `install-data-am' не требует выполнения команд." игнорируем. #cd /usr/src/linux/ && patch -p1 -f < /usr/src/ipset-6.4/netlink.patch возвращаемся к исходникам ядра и патчим #cd /usr/src/ipset-6.4 && ./autogen.sh && ./configure && make && make modules && make install && make modules_install собственно собираем ipset # ipset -v ipset v6.4, protocol version: 6 проверили #cd /usr/src/iptables-1.4.10 && ./configure && make && make install ну, научим iptables с этим добром работать Зависимости (debian 6): #aptitude install kernel-package ncurses-dev module-init-tools initramfs-tools automake libtool pkg-config остальное вытянется само. Если хотите - можно ридми почитать и исходники почистить от патча и прочего мусора. Если чего не получается - в ридми все есть... почти.
  11. Вот уж не согласен... Вообще-то у него скорее всего полисинг и планка без шейпинг = потеря пакетов. http://forum.nag.ru/forum/index.php?showtopic=48277&view=findpost&p=609502 там же и пример есть.
  12. для примера на канал 900 мегабит $TC->("qdisc add dev $dev root handle 1: htb r2q 37500"); автоматом будет посчитан quantum = 3000 ровно таким же макаром нужно считать для дочек
  13. MTU - максимальный размера блока в байтах который может быть передан. Quantum - число байт, которые может передать поток перед переходом к следующему классу, по умолчанию = MTU интерфейса. Расчет распределения канала тем точнее, чем меньше это значение. R2Q - глобальный параметр, по умолчанию R2Q = 10, если Quantum указан, то R2Q игнорируется. Немного констант: quantum = rate / r2q mtu ≤ quantum ≤ 60000 Соответственно: quantum is small => RATE / R2Q < MTU quantum is big => RATE / R2Q > 60000 Во избежании фрагментации, вероятно, quantum лучше задавать кратным значению mtu А вообще, если quantum не задавать, то он будет расчитан автоматически. Правда следует определиться со значением R2Q - юзайте константы и будет вам счастье.
  14. Точно так, но сначала его создать надо. Итого: В sc сразу после всех строк (их всего две в коде - для flow и u32) $TC->("qdisc add dev $dev root handle 1: htb"); добавляем my $grate = 'значениеKibit'; $TC->("class replace dev $dev parent 1: classid 1:1 htb rate $grate"); а в $TC->("class replace dev $dev parent 1: classid 1:$cid htb rate $rate ceil $ceil quantum $quantum"); меняем родителя тоже в двух местах на parent 1:1 затем строки с my $ceil = $rate; заменить на my $ceil = $crate; и объявить $crate в разделе "Configurable parameters" Усе, теперь имеем динамическую полосу (на u32 погонял - работает). Можно украшательством заняться ;) ps: $grate общая ширина канала
  15. :) я интересовался в контексте: Но уже понял, что речь шла исключительно о доступе снаружи. Попробовал строки с my $ceil = $rate; заменить на my $ceil = $crate и объявить $crate в разделе "Configurable psrsmeters"Получил class htb 1:75 root leaf 75: prio 0 qantum 1500 rate $rate ceil $ceil, однако не плавает :(
  16. +1 Зачем шейпирующему мосту IP и IP какого интерфейса ему нужен?
  17. в домашнем каталоге просто создай папку с тем же именем что и виртуальная на другом диске