Здравствуйте. Имеется DFL-1660 (F/W 2.27.00.15-14100). Один интерфейс которого смотрит в интернет, а другой в локальную сеть.
Задача: ограничить входящую скорость пользователей, согласно их тарифов, так чтобы пользователь не превышал свою пропускную способность, а неиспользуемая одними пользователями скорость перераспределялась другим (т.к общая пропускная способность канала на всех явно не делится).
Количество пользователей: ~1000
Пропускная способность канала: 200Мб/с
Тарифы: от 1.5 до 20 Мб/с.
Как это пытался сделать я:
Создал пайп total-in, у которого Total=200000, а для каждого пользователя пайп с Total=скорость_по_тарифу. Потом PipeRule для каждого, где в ReturnChain помещаются пайпы total-in и личный пользовательский. Выглядит это примерно так (для каждого):
Код:
cc Address AddressFolder ClientsAddresses
add IP4Address c_0002_0 Address=10.0.5.2
add IP4Address c_0002_1 Address=10.17.5.2
add IP4Address c_0002_2 Address=10.19.5.2
add IP4Group c_0002 Members=ClientsAddresses/c_0002_0,ClientsAddresses/c_0002_1,ClientsAddresses/c_0002_2
cc /
add Pipe c_0002 LimitKbpsTotal=1500
add PipeRule Service=all_services SourceInterface=int SourceNetwork=ClientsAddresses/c_0002 DestinationInterface=ext DestinationNetwork=all-nets Name=c_0002 ReturnChain=c_0002,total-in
Что получается в итоге:
Когда пускаю через DFL одного пользователя - все разумеется ОК. А когда всех, то даже для тестового пользователя, которому прописанно 100Мб/с скорость падает до 4-10Мб/с. Хотя если я пускаю трафик через линуксовый шлюз с шейпером на CBQ скорость находится в пределах 50-90Мб/с в зависимости от загруженности сети.
Да, и еще: скорость на интерфейсах не поднимается почему-то выше 100Mб/с.
Что я делаю не так?