У пакетного фильтра PF есть возможность использовать для настройки, как ip адреса так и название сетевых интерфейсов. К примеру:
bsd# ee /etc/pf.conf
prov_if="rl0" # Название внешнего интерфейса
int_if="fxp0" # Название внутреннего интерфейса
internal_net="{192.168.0.0/24}" # Внутренняя подсеть
me="{192.168.0.1}"
и т.д
Все просто и самое главное работает. Только вот если усложнить задачу, добавляем PPPOE и все сразу перестает работать. При PPPOE соединении, ifconfig показывает rl0, fxp0 и tun0(то самое PPPOE). Физически в системе две сетевые карты, а tun0 устройство появляется при PPPOE соединении. Ошибка в названии внешнего интерфейса там я писал и prov_if="rl0" и prov_if="tun0", PF при загрузке ругается на то и надругое. Задача присвоить переменной prov_if название внешнего сетевого интерфеиса.