Не мучайся!
Я так понимаю биллинг стоит?1.Научи свой радиус, чтоб мог понимать mpd
# cat dictionary
ATTRIBUTE mpd-rule 1 string mpd
ATTRIBUTE mpd-pipe 2 string mpd
ATTRIBUTE mpd-queue 3 string mpd
2.После укажи в базе своих тарифов, в соответствии со скоростью
(mpd может передавать правила ipwf)
Acct-Interim-Interval = 60, Service-Type = Framed-User, mpd-pipe += '1=bw 526Kbit/s', mpd-pipe += '5=bw 526Kbit/s', mpd-rule += '1=pipe %p1 tcp from any to any in', mpd-rule += '2=pipe %p5 tcp from any to any out'
3.После этого должно получится
ipfw list | grep pipe
10000 pipe 10000 tcp from any to any in via ng1
10001 pipe 10001 tcp from any to any out via ng1
10002 pipe 10002 tcp from any to any in via ng8
10003 pipe 10003 tcp from any to any out via ng8
10004 pipe 10004 tcp from any to any in via ng10
10005 pipe 10005 tcp from any to any out via ng10
10006 pipe 10006 tcp from any to any in via ng2
10007 pipe 10007 tcp from any to any out via ng2
10008 pipe 10008 tcp from any to any in via ng9
10009 pipe 10009 tcp from any to any out via ng9
10012 pipe 10012 tcp from any to any in via ng5
10013 pipe 10013 tcp from any to any out via ng5
10014 pipe 10014 tcp from any to any in via ng15
10015 pipe 10015 tcp from any to any out via ng15
10030 pipe 10030 tcp from any to any in via ng21
10031 pipe 10031 tcp from any to any out via ng21
Прошу заметить, что шейпится интерфейс и не нужно себе ломать голову с подсетями и ip. В данном методе назначай ip какие хочешь
p.s. Извените за столь скудное описание! Небыло времени! Данное описание подходит для связки FREENIBS1.9+FREERADIUS1.1.7+MPD4.4+IPFW