URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 69955
[ Назад ]

Исходное сообщение
"pf  route-to  ограничение аплоуда"

Отправлено VArtem , 31-Окт-06 19:59 
Есть 2 канала в интернет. Необходимо, что бы определенные ip ходили через один канал, а другие через другой. Все это я с успехом реализовал. Схема приблизительно следующая:

# Пользователи 1-го канала
pass in route-to ($ext_if1 $ext_gw1) from 192.168.0.1  to any queue q_user1
pass in route-to ($ext_if1 $ext_gw1) from 192.168.0.2  to any queue q_user2
...
pass in route-to ($ext_if1 $ext_gw1) from 192.168.0.N1  to any queue q_userN1

# Пользователи 2-го канала
pass in route-to ($ext_if2 $ext_gw2) from 192.168.0.11  to any queue q_user11
pass in route-to ($ext_if2 $ext_gw2) from 192.168.0.12  to any queue q_user12
...
pass in route-to ($ext_if2 $ext_gw2) from 192.168.0.N2  to any queue q_userN2

# DOWNLOAD
pass out on $int_if from any to 192.168.0.1 queue d_user1
...

Вся эта схема работает. Все замечательно, если бы не одно НО!!  Пакеты, которые проходят правила типа
pass in route-to ($ext_if1 $ext_gw1) from 192.168.0.N1  to any queue q_userN1 и  
pass in route-to ($ext_if2 $ext_gw2) from 192.168.0.N2  to any queue q_userN2
они не попадают в свои очереди q_userN1 и q_userN2, а попадают в очереть DEFAULT, в следствии чего невозможно залимитировать UPLOAD-трафик и как следствие подскакивают пинги. Если кто-то имеет какие-либо соображения по этому поводу, пожалуйста выскажите.

Заранее благодарен.


Содержание

Сообщения в этом обсуждении
"pf  route-to  ограничение аплоуда"
Отправлено nagoHaK , 01-Ноя-06 12:17 
Имхо, юзеров каждого канала проше загнать в таблицу, либо в конфиге, либо "persist file", проще читать конфиг будет, но это если только для кажного юзверя не требуется своей отдельной очереди.
т.е.

table <ch1_users> persist file "/etc/ch1_users.txt"
table <ch2_users> persist file "/etc/ch2_users.txt"

altq on $ext_if1 cbq bandwidth 10Mb queue {ch1_def_queue,ch1_users_download,ch1_users_upload}
queue ch1_def_queue bandwidth 40% priority 2 cbq(default)
queue ch1_users_download bandwidth 30% priority 1
queue ch1_users_upload bandwidth 30% priority 1

altq on $ext_if2 cbq bandwidth 10Mb queue {ch2_def_queue,ch2_users_download,ch2_users_upload}
queue ch2_def_queue bandwidth 40% priority 2 cbq(default)
queue ch2_users_download bandwidth 30% priority 1
queue ch2_users_upload bandwidth 30% priority 1

pass in route-to ($ext_if1 $ext_gw1) from <ch1_users> to any queue ch1_users_upload
pass in route-to ($ext_if2 $ext_gw2) from <ch2_users> to any queue ch2_users_upload

pass out on $int_if from any to <ch1_users> queue ch1_users_download
pass out on $int_if from any to <ch2_users> queue ch2_users_download

Имхо вот так все будет красиво зарезано =)


"pf  route-to  ограничение аплоуда"
Отправлено VArtem , 01-Ноя-06 14:46 
Юзеров каждого канала в таблицу я загнал, что бы можно было НАТ запустить. Использовать предложенную Вами схему возможности не имею, т.к. нужно строго ограничить каждому юзверю свой канал и свою очередь. Но по большому счету разницы между
pass in route-to ($ext_if1 $ext_gw1) from <ch1_users> to any queue ch1_users_upload и
pass in route-to ($ext_if1 $ext_gw1) from 192.168.0.2 to any queue ch1_user1_up я не вижу.

Единственно что, очереди для download правил я пишу для внутреннего интерфейса, т.е.
altq on $int_if cbq bandwidth 10Mb queue {ch1_def_dw, ch1_user1_dw, ch2_user2_dw, ...}
...
Правда ограничение скорости по download'у работает правильно. Единственная проблема заключается в том, что весь аплоуд попадает в очереди дефолт (ch1_def_up, ch2_def_up)

Спасибо за отклик


"pf  route-to  ограничение аплоуда"
Отправлено nagoHaK , 01-Ноя-06 15:07 
мб тогда и аплоуд на внутреннем интерфейсе резать?
pass in on $int_if from 192.168.0.Xn to any queue user_Xn_up
pass in route-to ($ext_if1 $ext_gw1) from 192.168.0.Xn to any

моя ошибка - забыл объявить altq на внутренний интерфейс и прикручиваю queue от внешнего:
>pass out on $int_if from any to <ch1_users> queue ch1_users_download
>pass out on $int_if from any to <ch2_users> queue ch2_users_download

между прочим на openbsd.org в факах аплоуд режут именно на внутреннем
http://www.openbsd.org/faq/pf/queueing.html#example2


"pf  route-to  ограничение аплоуда"
Отправлено Andriy , 26-Окт-10 15:09 
> мб тогда и аплоуд на внутреннем интерфейсе резать?
> pass in on $int_if from 192.168.0.Xn to any queue user_Xn_up
> pass in route-to ($ext_if1 $ext_gw1) from 192.168.0.Xn to any
> моя ошибка - забыл объявить altq на внутренний интерфейс и прикручиваю queue
> от внешнего:
>>pass out on $int_if from any to <ch1_users> queue ch1_users_download
>>pass out on $int_if from any to <ch2_users> queue ch2_users_download
> между прочим на openbsd.org в факах аплоуд режут именно на внутреннем
> http://www.openbsd.org/faq/pf/queueing.html#example2

напишите полностью свой конфиг, у меня такая же проблема, не могу разобраться