DSL PPPoE в качестве внешнего интерфейса
Подключение к УСИ (Utel), Ethernet модем на rl0.
# ee /etc/rc.conf
...
defaultrouter="192.168.1.1" # адреc модема
ifconfig_rl0="inet 192.168.1.7 netmask 255.255.255.252"
ifconfig_xl0="inet 192.168.0.37 netmask 255.255.255.0"
gateway_enable="YES"
firewall_enable="YES"
firewall_type="/etc/rc.firewall"
named_enable="YES"
natd_enable="NO" # будем юзать NAT из PPP
ppp_enable=”YES”
ppp_mode=”ddial”
ppp_profile=”usi”
ppp_nat=”YES”
ppp_user=”root”
...
# ee /etc/ppp/ppp.conf
default:
set log Phase Warning Error Alert
set device PPPoE:rl0
set MTU 1492
set MRU 1492
set speed sync
set dial
set ctsrts off
disable deflate
disable pred1 # без компрессии
disable vjcomp
disable acfcomp
disable protocomp
add default HISADDR
nat enable yes
nat log no
nat same_ports yes
nat unregistered_only yes
#enable dns
usi:
set login
set authname 123456
set authkey 123456
В файрволе правила, в сути, обычные, так как можно обойтись без явного указания ng0. Что касается DNS, то там форвардером прописывается тот-же DSL модем. Если это не заработает, и не хочется глубоко копать, можно поступить следующим образом. Убрать коммент с enable dns, перегрузиться и посмотреть, что будет в /etc/resolv.conf. А будут там адреса DNS серверов. Переписываешь их в /etc/namedb/named.conf в секцию forwarders и ставишь обратно ремарку на enable dns.
Скрипты для поднятия упавшего линка (thanx to lissyara.ru):
# cd /usr/local/etc
# touch ppptest.sh
# ee ppptest.sh
#!/bin/sh
tz=$(/bin/ps ax | grep -c "ppptest2.sh")
if (test $tz -gt "0")
then
/usr/local/etc/ppptest2.sh
fi
# touch ppptest2.sh
# ee ppptest2.sh
#!/bin/sh
nr=""
ni=""
while !(test $ni)
do
is=$(/sbin/ping -c 4 www.yahoo.com | grep -c "64 bytes")
if !(test $is -gt "0")
then
if !(test $nr)
then
date1=$(date "+%d/%m/%Y %H:%M:%S")
nr=1
fi
/usr/bin/killall ppp
sleep 10
/usr/sbin/ppp -ddial usi
sleep 50
else
if (test $nr)
then
date2=$(date "+%d/%m/%Y %H:%M:%S")
echo Link down from $date1 to $date2 >> /var/log/ppplinkdown.log
else
#date1=$(date "+%d/%m/%Y %H:%M:%S")
#echo Link OK at $date1 >> /var/log/ppplinkdown.log
fi
ni=1
fi
done
# chmod 700 ppptest.sh
# chmod 700 ppptest2.sh
# ee /etc/crontab
...
#minute hour mday month wday who command
*/5 * * * * root /usr/local/etc/ppptest.sh
...
# reboot