>> использовать up/down скрипты для pppoe в mpd.conf при старте/останове mpd
>> и по возможности перейти с natd на nat (но это не принципиально)
> да можно, единственное как обратно с резервного переключатся? в скриптах проверка dns
> - если нет то шлюз меняем на запасного провайдера, а обратно
> ? можно конечно попробовать пинг ip локалки провайдера где PPPoE Да что там и для чего пинговатть и переключать?!
Пример приведу ниже.
Чисто как пример, не копипастить бездумно.))
default gateway - 192.168.1.1
rl0 - 192.168.1.2 - внешний (инет)
rl1 - 192.168.2.1 - внутренний (локалка)
вешаем natd на rl0
Обеспечиваем запуск natd в /etc/rc.conf
defaultrouter="192.168.1.1"
natd_enable="YES"
natd_interface="rl0"
В фаерволе прописываем правила по минимуму
add 50 divert 8668 all from any to any via rl0
add 100 allow all from any to any via lo0
add 200 deny all from any to 127.0.0.0/8
add 300 deny all from 127.0.0.0/8 to any
add 400 allow ip from 192.168.11.202/32 to any
add 500 allow ip from any to 192.168.1.2/32
add 600 allow ip from 192.168.0.0/16 to 192.168.0.0/16
add 65000 deny ip from any to any
в /usr/local/etc/mpd5/mpd.conf
в секции pppoe
pppoe0:
create bundle static B1
# set iface route default
set iface up-script "/usr/local/etc/mpd5/up.sh"
set iface down-script "/usr/local/etc/mpd5/down.sh"
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
если есть строка set iface route default её нужно обязательно закомментировать!
это принципиально
остальное в mpd.conf
create link static L1 pppoe
set link action bundle B1
set auth authname "user"
set auth password "pass"
set link max-redial 0
set link mtu 1492
set link keep-alive 5 15
set pppoe iface rl0
open
пишем в скрипт up pppoe /usr/local/etc/mpd5/up.sh
#!/bin/sh
killall -9 natd
ipfw delete 50
natd -n ng0
ipfw add 50 divert 8668 all from any to any via ng0
route change default $4
пишем в скрипт pppoe /usr/local/etc/mpd5/down.sh
#!/bin/sh
killall -9 natd
natd -n rl0 -dynamic
ipfw delete 50
ipfw add 50 divert natd all from any to any via rl0
route change default 192.168.1.1
Делаем скрипты исполняемыми
chmod 555 /usr/local/etc/mpd5/up.sh /usr/local/etc/mpd5/down.sh
Теперь пусть при загрузке демон natd стартует раньше чем mpd - это ничуть не помешает
mpd стартанёт, pppoe поднимется, вместе с поднятием pppoe отработает скрипт up.sh автоматом сменится и шлюз по умолчанию.
Если же mpd упадёт, pppoe завалится и всё должно будет вернуться в первозданное состояние,
default gateway также сменится на прежний.
Если mpd вновь рестартанёт - pppoe снова в up и так далее..