Главная > Freebsd > Интернет через pppoe на Freebsd

Интернет через pppoe на Freebsd

2 998

Интернет серверу от провайдера предоставляется посредством pppoe. Что ж, поднимем штатный демон

#cat /etc/rc.conf | grep ppp

ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="pppoe0"

#cat /etc/ppp/ppp.conf

#################################################################
# PPP  Sample Configuration File
# Originally written by Toshiharu OHNO
# Simplified 5/14/1999 by wself@cdrom.com
#
# See /usr/share/examples/ppp/ for some examples
#
# $FreeBSD: src/etc/ppp/ppp.conf,v 1.11.2.2.4.1 2010/12/21 17:09:25 kensmith Exp $
#################################################################

default:
 set log Phase Chat LCP IPCP CCP tun command
 ident user-ppp VERSION

 # Ensure that "device" references the correct serial port
 # for your modem. (cuau0 = COM1, cuau1 = COM2)
 #
 set device /dev/cuau1

 set speed 115200
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
           \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
 set timeout 180                        # 3 minute idle timer (the default)
 enable dns                             # request DNS info (for resolv.conf)

papchap:
 #
 # edit the next three lines and replace the items in caps with
 # the values which have been assigned by your ISP.
 #

 set phone PHONE_NUM
 set authname имя_пользователя
 set authkey Пароль

 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
 add default HISADDR                    # Add a (sticky) default route

pppoe0:
 set device PPPoE:re0
 set authname имя_пользователя
 set authkey пароль
 set dial
 set login
 add default HISADDR

Существует такая проблема, когда при пропадании инета, pppoe со стороны клиента падает,а со стороны сервера сессия продолжает жить. Баг неприятный, т.к потом клиент дозванивается до сервера провайдера, соединяется,но остается без инета. Лечится костылем в виде скрипта, проверяющего доступность инета на любом внешнем хосте. И если инета нет, разорывает соединение и создает его снова.

#cat /etc/test_pppoe.sh

#!/usr/local/bin/bash
pings="0";
a=5;
pings=`/sbin/ping -c $a 8.8.8.8 | grep -c "ttl"`
if [ "$pings" = "$a" ]; then
echo "OK" >> /var/log/ppp_restart.log
else

/usr/bin/killall ppp
/bin/kill -9 `cat /var/run/tun0.pid`
/sbin/ifconfig tun0 destroy

sleep 5

/usr/sbin/ppp -quiet -ddial -nat pppoe0
# INSATCOM название провайдера в /etc/ppp/ppp.conf

date >> /var/log/ppp_restart.log
fi

Добавляем скрипт в крон каждую минуту:

#ee /etc/crontab

*/1 * * * *   root /usr/local/bin/bash /etc/test_pppoe.sh

Все, теперь забываем про этот сервер, на нем всегда будет и инет по pppoe от провайдера, и vpn до центрального офиса..

Categories: Freebsd Tags: , , ,
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.

.