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

photon

Активный участник
  • Публикации

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

  • Посещение

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


  1. Следует договориться с ближайшими российскими провайдерами о NAT и маршрутизации через их сети.
  2. Да, если 4 байта из ipv6 совпадают с ipv4, то в базе можно хранить только их. С другой стороны, можно делать хэш-фильтрацию по двум байтам, т.к. классов все равно максимум 2^16-1, т.е. совпадать должны только два.
  3. Если раздавать IPv6 блоками по /64, как это обычно и делается, то изменятся только смещения для src/dst ip. Просто хэширование будет не по всем октетам IPv6-адреса, а только по четырем.
  4. Исправил, там не хватало проверок в двух местах.
  5. Поддержку нескольких интерфейсов на вход и выход добавить несложно. Однако, будет ли такая возможность востребована кем-то еще?
  6. Дело в том, что я тестирую скрипт в простой конфигурации с двумя интерфейсами. Невозможно воспроизвести и предусмотреть все выкрутасы с вланами на шейпере. Это ваши личные дела.
  7. red_neon, какие изменения внесены по сравнению со стандартным конфигом?
  8. Это странно, т.к. там везде натыканы if $i_if_enabled; ... if $o_if_enabled. Посмотрю.
  9. Какая разница, ipv6 или ipv4, если классов все равно не больше 2^16-1? Классификацию по хэшам можно делать абсолютно так же, по уникальным четырем байтам из IPv6-адреса, изменится только смещение.
  10. Превышение суммы rate всех классов над скоростью корневого класса, иначе говоря, oversubscription -- это нормальная ситуация для провайдера, так же как и для банка, который выдает кредитов больше, чем у него есть наличных денег. Главное -- с помощью Nagios/Cacti/Zabbix или чего-то еще измерять суммарную полосу, которую реально загружают пользователи и следить за тем, чтобы она не упиралась в полку, иначе начнутся потери пакетов. Генерация правил с хэш-фильтрами уже давно автоматизирована: http://sourceforge.net/projects/sc-tool/
  11. Перед запуском создайте в базе аккаунт для шейпера или пропишите default-класс fffe в самом скрипте, если нужно пропускать весь неклассифицированный трафик. По умолчанию они не создаются. default-класс появился в sc 1.5.x потому что без него не работало в дистрибутивах с новыми ядрами и iproute.
  12. Аналогичный результат может быть достигнут без всяких исправлений кода, если отключить внешний интерфейс out_if = disable limit_method = shaping
  13. Во всех функциях hybrid_* нужно найти и отключить все вызовы функций policer_dev_*. Например, sub hybrid_add { my ($ip, $cid, $rate) = @_; my $ceil = $rate; my ($ht, $key) = ip_leafht_key($ip); # policer_dev_add($i_if, $rate, $ceil, "ip src $ip", $ht, $key); shaper_dev_add($i_if, $cid, $rate, $ceil, "ip dst $ip", $ht, $key); return $?; }
  14. Для увеличения аплоада нужно поставить большие значения policer_burst_ratio или использовать режим shaping. Полисер по определению не может гарантировать полосу пропускания, он только обрезает избыточный пакетрейт. Баг с неработающей в режиме hybrid командой sc list починил в 1.5.1.
  15. txqueuelen нужно поднять до 4096, limit - минимум до 100 пакетов.
  16. Так с ходу сложно сказать. Какие настройки используются для распределения нагрузки от softirq? Включен ли MSI-X? На этот счет есть противоречивые сведения: на одном железе помогает interrupt pinning и отключение msi-x, на другом -- наоборот помогает распределение по всем процессорам и включение msi-x: http://natsys-lab.blogspot.de/2012/09/linux-scaling-softirq-among-many-cpu.html . Какие размеры rx/tx rings установлены с помощью ethtool? Каков размер виртуальной очереди для отправки пакетов (параметр txqueuelen в ifconfig). Возможно, для отдельных классов, в которых появляются дропы, стоит увеличить размер очереди (параметр limit) и использовать краевую дисциплину codel.
  17. Если поставить 10-гигабитные сетевухи, то вполне возможно. Максимум, что я видел -- до 700 kpps в пиках на спаренных гигабитных портах.
  18. Если трафик не проходит через созданные для него фильтры и режется этим правилом, то он и шейпиться не будет. Нужно использовать простые конфигурации: шейпер на выделенной машине в режиме моста, без вланов. Вланы нужно маршрутизировать до шейпера на L3-коммутаторе.
  19. В старом конфиге было: out_if = ifb0 in_if = eth0.199 а в новом стало: out_if = eth0.504 in_if = eth0.199 Возможно, причина в этом. Проверьте через tcpdump, ходит ли через интерфейсы тегированный трафик, у которого все поля смещены на 4 байта.
  20. В версии 1.5 немного поменялся конфиг. Нужно убедиться, что все совместимо. Я не гарантирую работоспособности на vlan-интерфейсах, потому что не тестирую скрипт в такой конфигурации. Межвлановую маршрутизацию нужно делать на другом оборудовании, а не вместе с per-user QoS.
  21. Нужно хранить в базе номера классов, чтобы не вычислять их из IP-адресов. Это позволит обойти данное ограничение.
  22. Да, нужно размещать пользователей по подсетям более компактно.
  23. Я могу сделать такое решение, адаптированное под ваш биллинг. Обращайтесь в личку. Поскольку между IP-адресами и классами не будет взаимооднозначного соответствия, номера классов (id пользователя) должны храниться в базе.
  24. Живя в Германии, я вообще забыл о том, что такое "платежный терминал", поскольку оплата происходит безналом с банковского счета, через платежные поручения. При подключении, провайдер подписывает с вами договор, по которому имеет право ежемесячно списывать со счета определенную сумму. Банк в этом случае является третьей стороной, обеспечивающей безопасность платежей. В России так не принято, потому что все друг другу не доверяют и пытаются обмануть: и клиенты, и поставщики, и банкиры.
  25. Скорее всего, у вас проблема в том, что скорости дочерних классов слишком мелкие (десятки килобит), а MTU у Ethernet слишком большой (1500 байт). Эмулировать такое медленное соединение поверх толстого канала можно только таким образом, что между пакетами будут огромные задержки. Пример с HFSC: tc qdisc add dev eth0 root handle 1: hfsc default fffe tc class add dev eth0 parent 1: classid 1:1 hfsc sc rate 9.7Mbit ul rate 9.7Mbit tc class add dev eth0 parent 1:1 classid 1:100 hfsc sc umax 1540 dmax 10ms rate 12.8Kbit ul rate 9.7Mbit tc qdisc add dev eth0 parent 1:100 handle 100 codel limit 10