Собственно, еще на старом форуме поднималась сабжевая проблема... А именно: ipcad любых доступных на данный момент версий, не умеет полноценно работать с динамическими интерфейсами (по крайней мере - у меня в Бзде с tun*) и всегда будет "слушать" только те, которые существовали (не обязательно были up) в ifconfig на момент запуска. Естественно, что при загрузке там вообще ничего нету.

Предлагались различные варианты, в частности в перекомпиляцией ядра и т.п., но есть путь намного проще.

А именно:
1) Создаем в ppp.conf вот такую короткую секцию:
empty:
quit
2) Создаем в /usr/local/rc.d/ маленький скриптик, который будет запускаться до ipcad'а (или просто пихаем в его же скрипт непосредственно перед запуском самой проги), в котором создаем цикл - допустим от 0 до 100, - а в теле пишем (переменная $i - параметр цикла):
ppp -quiet -unit${i} empty
3) Думаю, что все уже все поняли.

По очереди инициализируются все заданные туннели и ipcad будет просто счастлив. В Бзде до пятой версии, естественно, надо, чтобы в /dev уже были созданы все tun* и bpf*.
Вот. Будут вопросы - пишите.