Kettler пишет:Пока негде поэксментировать. Ну на днях обязательно тестаню).
Вас не дождался, сам "догнал" 
как всем известно при коннекте клиента к PPPoE серверу на сервере создается отдельный интерфейс пользователя, в файле chap-secret (либо любой другой файл, например: pap-secrets, смотря какой Вы выбрали файл аунтефикации) где хранятся логины и пароли для каждого пользователя мы можем задать выдачу статического ип адреса. Например: пользователю tnega, с паролем tnega мы можем назначить ип адрес 192.168.100.1
iptables -P FORWARD DROP # запрещаем хождение трафика 
iptables -I FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ppp+ -s 192.168.100.1 -j ACCEPT # разрешаем пользователю tnega с ип адресом 192.168.100.1 ходить в интернет. и не важно какой интерфейс PPP ему выдался сервером (может PPP1 или PPP4) .
Проблема следующего рода - шейпер прикручить 
Допустим - у пользователя разные тарифные планы и разная скорость, казалось бы можно сделать такой скриптик:
#!/bin/bash
/sbin/tc qdisc add dev ppp1 root handle 1: htb default 30
/sbin/tc class add dev ppp1 parent 1: classid 1:1 htb rate 100mbit burst 15k
/sbin/tc class add dev ppp1 parent 1:1 classid 1:10 htb rate 1024kbit ceil 1mbit burst 15k
/sbin/tc qdisc add dev ppp1 parent 1:10 handle 10: sfq perturb 10
/sbin/tc filter add dev ppp1 parent 1:0 protocol ip prio 1 u32 match ip dst 192.168.100.1 flowid 1:10
/sbin/tc qdisc add dev ppp1 handle ffff: ingress
/sbin/tc filter add dev ppp1 parent ffff: protocol ip prio 50 u32 match ip src 192.168.100.1 police rate 1mbit burst 10k drop flowid :1
но он будет работать только на интерфейсе ppp1, а этот интерфейс естественно может достаться кому угодно 
в rp-pppoe как я понимаю нельзя делать привязку пользователей к определенному интерфейсу?
Читал про ip-up.d в папке etc/ppp/ - надо будет покапаться... думаю, что можно будет сделать файл шейпера, и переменную интерфейса, и чтоб при поднятии каждого ppp интерфейса срабатывал скрипт шейпера. НУ и естественно указать скорость для каждого ип адреса 
правильно и понятно ли я выразился?
поидее должно сработать, если я конечно в правильном направлении думаю 
и при падении интерфейса ppp? в ip-down.d так же написать скрипт дл очистки правл tc для определенного интерфейса переменной 