Имхо, юзеров каждого канала проше загнать в таблицу, либо в конфиге, либо "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
Имхо вот так все будет красиво зарезано =)