Данная тема относится скорее не к работе биллинга, а к работе сопутствующего софта - pptpd и пакета iproute (утилиты TC)
В общем у меня шейпинг реализован благодаря этой статье.
http://wiki.bgbilling.ru/index.php/Настройка_шейпера_в_LINUX_PPPD и работает вполне успешно.
Но появилась такая задача.
Шейпить не весь интерфейс целиком, а некоторые сети как исключение, давать без шейпинга, либо с совершенно другими значениями (что в перспективе можно реализовать и через радиус).
Пакет утилиту tc я знаю не совсем хорошо, поэтому прошу помощи.
По логике это делается путем создания разных классов и фильтров...
Вот назрели вопросы.
Во-первых стоит ли это делать по средствам только tc, т.е задавать match ip dst x.x.x.x либо метить файрволом?
Как это отразится на производительности, если например мне потребуется исключить из шейпинга порядка 10-20 30? сетей. Ведь пакет будет по каждому правилу проходить?
Так же есть вопросы по примеру из документации.
/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
/sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u160x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
Я так понял тут есть несколько классов трафика, вопрос для чего они тогда разделены? если всеровно все шейпится одним значением???
В общем просьба гуру попомчь написать скриптик, который будет шейпить интерфейс, а так же некоторые исключения шейпить другой полосой. Рассмотрю и помощь платную!