Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> Мелочи —> pppoe

Настройка ADSL-модема для подключения к Интернет. (Настройка PPPoE)

Автор: nonalog2007.


Привет всем. Вот столкнулся с настройкой PPPoE. Думаю будет полезно рассказать и приведу пример рабочего конфа...

Исходные данные:
1) ФриБсд 6.2
2) многофункциональный АДСЛ-модем (сложнее говоря АДСЛ-роутер)

Начнём.
0.Добавляем Дофоулт роут на наш АДСЛ-роутер route add default ip.ip.ip.ip
ip.ip.ip.ip - Айпи адрес АДСЛ-роутера(Пр:192.168.1.1)
1. /etc/ppp/ppp.conf :

default:
  set log Phase tun command  
  set ifaddr 0 0
prov:
  set device PPPoE:rl0
  set authname YOURLOGINNAME
  set authkey YOURPASSWORD
  set dial
  set login
  add default HISADDR

PPPoE:rl0:ISP - если нужна поддержка ISP или пишите что нужно(для тех кто знает)
Да, кстате - rl0 - интерфейс через который доступен АДСЛ-роутер (см. ifconfig -a)
YOURLOGINNAME
YOURPASSWORD
 — Это Ваш Логин и Пароль для подключения к провайдеру
2. пишем команду в bash#
ppp -ddial prov

Готово !!!
Для того, чтоб Инет подключался при загрузке системы делаем:
в /etc/rc.conf добавляем :
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="prov"    -— смотрите выше что за метка стоит у Вас в ppp.conf

чтобы работал ДНС создайте /etc/resolv.conf:
nameserver 212.86.96.10

ну или
nameserver <тут собственно Ацпи ДНС-сервера который Вы спрашивайте у провайдера>

Все.
Желаю Всем успеха.
Спасибо за внимание.Алексей :)



размещено: 2008-05-19,
последнее обновление: 2008-05-19,
автор: nonalog2007


Yo>|<iG, 2008-05-19 в 9:15:23

Это описано в хэндбуке, и работает только если адсл-модем в режиме бриджа.

m0ps, 2008-05-19 в 9:43:05

Yo>|<iG
а в режиме роутера все работает как с подключением через LAN. указал шлюз и днс (адрес модема) и все :)

m0ps, 2008-05-19 в 9:44:41

переименуйте короткое название статьи с ppoe на pppoe!

Alexander Sheiko, 2008-05-19 в 18:47:07

Там есть куча подводных камней:

http://www.opennet.ru/openforum/vsluhforumID1/73951.html

max, 2008-05-19 в 21:10:44

Ждем от афтора серию статей ,посвященных настройке сетевой карты.

muzzy, 2008-05-19 в 23:52:08

2 Yo>|<iG: Хочу напомнить, что некоторые модемы, ZyXel Prestige 660XX-XX, например, поддерживаю соединение в двух режимах одновременно, так что хоть статья и из хендбука писана, на адсл роутеры она тоже частично распространяет свою справедливость.

Zer0, 2008-05-20 в 9:52:13

мдя, и для обладателей укртелекомовского калисто еще нужно
в ppp.conf:
enable lqr
set lqrperiod 3
enable lqr echo
enable echo
set cd 5
у меня с этой фигней перестал задваиваться айпишник и нормально автореконнектится
а если прописать в крон
*/1     *       *       *       *       root    /sbin/route add default `/sbin/ifconfig tun0 | /usr/bin/grep -e "inet" | /usr/bin/awk '{print $4}'`
такую фигню - то отпадет нужда в прописывании дефолтного шлюза

artem, 2008-05-20 в 11:25:46

А еще полнее будет статья если запихнуть в крон запуск скрипта проверки корректной работы инета, где
213.227.192.130 dns прова или google.com

ppp_check.sh      
#!/bin/sh
if (ping -t 1 -c 1 213.227.192.130>/dev/null 2>& 1 || ping -t 1 -c 1 195.248.191.72>/dev/null 2

then

else
 rm ./ppp_check.log
 echo "PPP is dead! Restarting..." >> ppp_check.log
 date "+DATE: %Y-%m-%d%nTIME: %H:%M:%S" >> ppp_check.log
 logger -f ppp_check.log -t ppp_check
 mail -s "ppp_check" root@localhost < ppp_check.log
 pid=`ps ax|sed -n '\/optima/p' | head -n 1|cut -c 1-5 -`
 echo $pid
 kill -9 $pid
 /usr/sbin/ppp -quiet -ddial -nat optima;
fi

seacon, 2008-05-20 в 11:49:33

Из личного опыта, лучше использовать для pppoe mpd

adsh@univ.kiev.ua, 2008-05-20 в 12:05:26

seacon

Чем? И то и то работает через нетграф.

seacon, 2008-05-20 в 12:13:56

ppp не всегда поднимает тоннель после его падения

Zer0, 2008-05-20 в 12:14:51

ppp сам проверяет наличие интернета, и в случае отсутствия делает реконнект автоматом, при наличии строчек которые я привел выше, так что надобность в скрипте отпадает

у меня при таких настройках 6 серверков работает, ни разу не было проблемм с отвалившимся соединением, если только на линии нет проблемм=)

а вот если будет нагружен канал, то пинг может завыситься, или же первый пинг будет отсутствовать -> следовательно произойдет никому не нужный реконнект

m0ps, 2008-05-20 в 13:09:13

а вообще, зачем подымать pppoe фряхой если можно это сделать модемом. они с этим прекрасно справляются!

Zer0, 2008-05-20 в 14:37:23

а мониторить соединение?=)

Бельмандо, 2008-05-20 в 14:57:12

автор мог бы указать, какие нетграф модули желательно вкомпилировать в ядро

artem, 2008-05-20 в 16:32:31

у меня два сервака и без скрипта инет иногда глючит
особенно когда у меня выходной :), пров укр оптима

artem, 2008-05-20 в 16:35:57

нужная статья для начинающих админов, которая должна была висеть на этом сайте со дня его появления, особенно для тех кому лень читать хендбук :)))

artem, 2008-05-20 в 16:44:26

и по моему статью следует перенести в раздел настройка а не мелочи т.к. фря в основном используется как интернет шлюз

Тема ната не раскрыта!?
Поддерживаю! а мониторить соединение?=)
предлагаю автору учесть пожелания фрящихся и допилить статью до совершенства

Zer0, 2008-05-21 в 12:31:54

1HAX# cat /etc/rc.conf | grep ppp_nat
ppp_nat="YES"

или в ppp.conf
enable nat

sysctl net.inet.ip.fw.one_pass=1
"огненная стенка" епстессна - без дивертов

ну, а мониторить мне понравилось с помощью кактуса(cacti)

KrivoSoft, 2008-05-22 в 13:17:20

>а мониторить мне понравилось с помощью кактуса(cacti)
php на роутере = вечный патч. (с) не помню чей

MRTG в этом плане более гуманный.

gloom, 2008-05-22 в 18:56:48

Не помешает
disable ipv6cp
 set mru 1492
 set mtu 1492

Zer0, 2008-05-23 в 1:34:46

mtu, mru - в конфиге выставляется на сколько я понимаю желательным.... т.к. если сервер не поддерживает такие параметры (я ставил сервер на MPD, и там 1486-1492 автоматом... а порой и 1392...)... выше чем сервер позволяет - поднять не получалось... да и как бы фрагментированные пакеты вроде нихто не отменял=)

2KrivoSoft
ПХП - может и вечный патч, но без него сложновато.... попробуй в записках сусанина (перле) через месяцок разобраться;-)

пока будут существовать ОС, языки прогаммирования и программы, а так же ими будут пользоваться, будут находить дыры.... ибо даже идеальную программу поломают... через ту же ОС... а зубов бояться - в рот не давать!, ПХП - хороший язык программирования! а если тебя решат взломать - то тебя взломают, не смотря на каком бы языке ни была написана программа/сайт/вэб морда...

кста... вот интересно было бы узнать... а ведь средствами ррр можно и ДНС подгружать?

freeman_tnu, 2008-06-03 в 13:03:32

2Zer0
Мой конфиг на OpenBSD 4.2 (ого, укртелебом)

set log Phase Chat LCP IPCP CCP tun command
set redial 15 0
set reconnect 15 10000

pppoe:
set device "!/usr/sbin/pppoe -i sis0"
disable acfcomp protocomp
deny acfcomp
set mtu max 1492
set speed sync
enable lqr
set lqrperiod 3
enable lqr echo
enable echo
set cd 5
set dial
set login
set timeout 0
set authname sa123456789@dsl.ukrtel.net
set authkey 1234po
add! default HISADDR
enable dns
enable mssfixup

holly, 2008-06-28 в 11:47:27

я бы рекомендовал операции с роутингом
выполнить в скриптах
/etc/ppp/
#
ppp.linkup
pppoe:
add! default HISADDR
#
ppp.linkdown
pppoe:
delete! default
#

artem, 2008-07-01 в 12:41:05

настроил себе нат форвадинг портов через ppp
/etc/ppp/ppp.conf
nat enable yes
nat port tcp 10.0.7.2:807 80
nat port tcp 10.0.7.4:21 21
nat port tcp 10.0.7.2:21 409
nat port tcp 10.0.7.2:22 410

тоесть открытый порт 80 форвадить на 10.0.7.2 на котором стоит апач,чтобы порты открытые никто сканом не заметил стоит PortSentry

uriinf, 2008-07-16 в 18:14:23

FreeBSD 7.0-RELEASE FreeBSD amd64

При настройке ppp была замечена следующая бага:

ppp не запускался при старте системы, на консоль выдавал следующее:

/libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required
by "su"

Помогло вот что:

1. #  cp /usr/local/lib/libintl.so.8 /libexec/ && cp /usr/local/lib/libiconv.so.3 /libexec/

2. В файле /etc/rc.d/ppp строку "# REQUIRE: netif isdnd" заменяем на "REQUIRE: netif isdnd ldconfig "

3. reboot

lissyara, 2008-07-16 в 19:31:26

Симлинки надо делать. Обновите систему - огребёте проблем на ровном месте.
И баг-репорты не забывать писать.

Dog, 2008-07-16 в 20:07:43

2uriinf: Если система обновлялась с 6.x до 7.x, то надо ставить /usr/ports/misc/compat6x

uriinf, 2008-07-17 в 10:39:32

2Dog: Система не обновлялась. Сразу ставил 7.0.

Симлинки сделаю, т.к. планирую обновиться до 7.1, кодгда выйдет.

noldor, 2008-11-23 в 15:38:16

У меня тоже была проблема при автозапуске ppp... Копирование библиотек и правка /etc/rc.d/ppp не помоги.. Погуглив немного попробовал сменить шелл roota c bash на родной csh. В общем это помогло.

freebsd# ldd /usr/local/bin/bash
/usr/local/bin/bash:
       libncurses.so.7 => /lib/libncurses.so.7 (0x280fa000)
       libintl.so.8 => /usr/local/lib/libintl.so.8 (0x28137000)
       libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28140000)
       libc.so.7 => /lib/libc.so.7 (0x28237000)
freebsd#

noldor, 2008-11-23 в 15:40:56

freebsd# ldd /bin/csh
/bin/csh:
       libncurses.so.7 => /lib/libncurses.so.7 (0x280be000)
       libcrypt.so.4 => /lib/libcrypt.so.4 (0x280fb000)
       libc.so.7 => /lib/libc.so.7 (0x28114000)
freebsd#

Вот из этой всей канители видно, что csh не требует бибиотек libintl.so.8 и libiconv.so.3 и не препятствует автостарту ppp

noldor, 2008-11-23 в 18:19:54

Ну и для тех кто хочет оставить bash для roota по умолчанию сделать так:
в скрипте запуска /etc/rc.d/ppp в секции ppp_start_profile()
строку su -m $ppp_user -c "$command ${rc_flags} ${_ppp_profile}" заменить на $command ${rc_flags} ${_ppp_profile} (внимание — кавычки как в примере выше не надо). Вот вроде и все.

receptor, 2008-12-09 в 7:04:42

Мой конфиг

default:
   set log Phase tun command
   set mru 1492
   set mtu 1492
   set timeout 0
   set redial 0 0
   set reconnect 1 0
   enable lqr
   set lqrperiod 10
   enable lqr echo
   enable echo
   set dial
   set login
   set openmode active 5
   disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
   deny pred1 deflate deflate24 protocomp acfcomp shortseq vj

Всё работает, само переконекчивается если что.

ARTEM, 2009-03-18 в 23:28:38

Не плохо было бы в это статейке рассказать про настройку АДСЛ мопеда,питающегося по usb ;-)

ymsssg, 2009-04-17 в 11:41:02

А как быть если такое соединение нужно использовать как второй канал, по которому в нет ходят лишь с нескольких известных ip и default route указывает на другой канал?

AIR, 2009-08-08 в 13:56:28

а если прописать в крон
*/1     *       *       *       *       root    /sbin/route add default `/sbin/ifconfig tun0 | /usr/bin/grep -e "inet" | /usr/bin/awk '{print $4}'`
такую фигню - то отпадет нужда в прописывании дефолтного шлюза

>>>> Zer0, как это зделать ?

Zer0, 2009-08-10 в 9:27:05

ээээ....
эту порнографию в крон мона не писать, будет достаточно:
add default HISADDR

AIR, 2009-08-10 в 14:22:33

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

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

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 USERNAME
set authkey PASSWORD

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


airlan:
       set device PPPoE:vr0:airlan
       set authname free
       set authkey free
       enable lqr
       set lqrperiod 10
       enable lqr echo
       enable echo
       set dial
       set login
       set timeout 0
       set redial 0 0


1.Тест в условии когда при первом запуске ррр имя службы не достижимо показал, что ррр перестает дозваниваться.
2. Фторой тест прошол успешно, ррр успешно дозванивается (если имя служби достижимо) и упешно восстанавливает линк если его оборвать (например виключить свич на некоторое время)
Почему так еще не разобралься...
ПС: кроме ррр.конф и резолф.конф ничего не трогал

AIR , 2009-08-10 в 14:24:18

в rc.conf добавоено:

ppp_enable="YES"
PPP_mode="ddial"
ppp_profile="airlan"

AIR, 2009-08-10 в 15:21:19

Решено добавлением:

airlan:
       set device PPPoE:vr0:airlan
       set authname free
       set authkey free
       enable lqr
       set lqrperiod 10
       enable lqr echo
       enable echo
       set dial
       set login
       set timeout 0
       set redial 0 0
       set reconnect 30 999

MaesTRo, 2009-09-11 в 7:16:06

Мой конфиг:
/etc/ppp/ppp.conf

default:

omkc:
       set device PPPoE:rl0
       set crtscts off
       set speed sync
       enable echo
       set echoperiod 30
       set redial 30 0
       set reconnect 30 999999
       set authname "omkcxxxxx"
       set authkey "**************"
       add default HISADDR

AIR, 2009-09-13 в 16:00:01

Можно как-то ДНС автоматически получать ? как на виндовой машине ?

Swenum, 2009-10-04 в 14:48:51

enable dns

DAndr, 2010-01-25 в 12:20:51

to uriinf, 2008-07-16 в 18:14:23
>FreeBSD 7.0-RELEASE FreeBSD amd64
>При настройке ppp была замечена следующая бага:
>ppp не запускался при старте системы, на консоль выдавал следующее:
>/libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required by "su"

Побуду немного некропостером, просьба не пинать за это :)
Т.к. проблема из-за того что bash шел у рута можно запускать ppp под другим юзером с шелом sh:
1. заводим юзера pppoe с паролем * и шелом sh
2. добавляем его в группу network (чтобы было право запускать ppp)
3. в rc.conf добавляем:
ppp_user="pppoe"

С точки зрения безопасности так даже лучше :)

DAndr, 2010-01-26 в 6:11:55

Похоже я накосячил в предыдущем посте.
Сейчас провел чистый эксперимент, ошибка осталась та же :(
Так что из вариантов без правки /etc/rc.d/ppp осталась только смена шела рута.

ОЛОЛО, 2010-05-27 в 0:34:15

Тупейшая статья, в хендбуке и то более подробно всё описано.

Artemka, 2010-06-03 в 13:53:19

Зделал как тут написано + добавил в конфиг ppp_nat="yes" и теперь эта радость грузит проц на 70% с интрентом 24мегабита, как это исправить?

Ice1374, 2010-06-07 в 15:33:35

Шелл у рута bash. Как и у писавших выше, не запускался при старте ppp. По причине не нахождения либ:
libiconv.so.3 и libintl.so.8.
Сделал симлинки на них в /lib/ и /usr/lib/.
После этого всё запустилось.
Если у вас не запускается, то раскомментируйте строку в /etc/syslog.conf для расширенного журналирования.

# uncomment this to enable logging of all log messages to /var/log/all.log
# touch /var/log/all.log and chmod it to mode 600 before it will work
*.*                                             /var/log/all.log

После этого ребуайтесь и изучайте лог на предмет ошибок запуска.

Также, по некоторым причинам мне необходимо использование natd + ppp. Известная проблема. natd стартует раньше, чем создаётся интерфейс tun0. Попытка ессно заканчивается неудачей. Обходной путь:

В /etc/rc.d/natd прописываем строку

# REQUIRE: ppp

(man rcorder)

vasil_german@yahoo.com, 2010-06-07 в 23:48:34

>>>Swenum, 2009-10-04 в 14:48:51
>>>enable dns
Добавил в /etc/ppp/ppp.conf enable dns
ДНС по умолчанию не присвоились. вот мой конф
default:
set log Phase Chat LCP IPCP CCP tun command
ident user-ppp VERSION (built COMPILATIONDATE)

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

set speed 10000000
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 USERNAME
set authkey PASSWORD

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

airlan:
     set device PPPoE:nfe0:airlan
      set authname free
      set authkey free
      enable lqr
      set lqrperiod 10
      enable lqr echo
      enable echo
      set dial
      set login
      set timeout 0
      set redial 0 0
      set reconnect 0 0
      add default HISADDR  
      enable dns



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0568 секунд
Из них PHP: 26%; SQL: 74%; Число SQL-запросов: 77 шт.
Исходный размер: 54265; Сжатая: 12817