Готового решения, вроде, не существут. В линуксе интерфейсы можно переименовывать, то есть можно написать скрипты /etc/ppp/auth-up, /etc/ppp/ip-up, и в них в нужном месте вызывать:
ip link set $1 down
ip link set $1 name pptpXXX
ip link set pptpXXX up
Хотя с аналогичным успехом можно из этих скриптов изменять правила iptables, или вам привязка нужна для другой цели?
vnstat не знаю, скачал, посмотрел исходник. Вижу такой вариант.
В /etc/ppp/chap-secrets для каждого пользователя свой ip-aдрес, в /etc/ppp/ip-up по этому адресу ($5) делать переименование интерфейса ($1) и на переименованный интерфейс вызывать /usr/bin/vnstat -r
--enable -i.
Проблема в том, что pppd не знает, что интерфейс может быть переименован в up-скриптах, поэтому он будет вызвать /etc/ppp/ip-down c оригинальными именем интерфейса (ну ещё он будет ругать в логи, что не может получить статистику по интерфейсу). Поэтому в /etc/ppp/ip-down по ip-адресу оперделять интерфейс и делать "/usr/bin/vnstat -r --disable" для этого интерфейса, а не для $1.
если можно пример ip-up,ip-down?
# Secrets for authentication using CHAP
# client server secret IP addresses
login pptpd 12345 10.0.0.11
login1 pptpd 12345 10.0.0.12
login2 pptpd 12345 10.0.0.13
а так же у нас есть ещё PPPoE которое подымается всегда первым и занимает (вроде всегда) ррр0.