Daemontools and pppoe (Русский)

Tango-user-trash-full.png

Tango-user-trash-full.png

This article or section is being considered for deletion.

Reason: This article is only in Russian, uses lots of "simple language" (like a blog article), a lot of broken links, inaccurate installing process, there is also pppd (Русский), so delete this and remove from ArchWiki Translation Team (Discuss in Talk:Daemontools and pppoe (Русский)#)

Tango-preferences-desktop-locale.png

Tango-preferences-desktop-locale.png

Эта страница нуждается в сопроводителе

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Иногда нам нужно собрать небольшой роутер и раздавать интернет в локалке. Технология, по которой мы получаем этот самый интернет от провайдера, может быть разной: кому-то оптика в конвертор воткнута, кому-то модем подключен, но, думается, что сейчас намного чаще используется технология xDSL и подключение с помощью PPPoE.

Все хорошо, мы можем прочитать эту статью, настроить выход в интернет командами pon/poff или даже автоматически при старте системы (добавив в DAEMONS демон ppp), но... Но возникает ситуация, когда ты далеко от офиса/дома/сервера вообще, и тут происходит обрыв PPPoE сессии... Что делать?

В данной статье рассмотрим бегло что есть Daemontools и рассмотрим как при помощи него автоматически поднимать PPPoE соединение. Статью пишу на основе своих заметок по этому поводу.

Daemontools

Daemontools это набор утилит для управления сервисами в UNIX системах, в частности, в комплексе позволяет запускать процессы, останавливать, перезапускать, если процесс завершился аварией. Подробности можно посмотреть на домашней странице.

В репозитариях ArchLinux пакета нет, но есть в AUR: [1], так же есть там другая вариация на эту тему: freedtAUR, но рассмотривать будем именно первый.

Сборка, установка

всё, после этого появится директирия /service в которую помещаются, обычно, симплинки на сервисы которые будут управляться с помощью daemontools. При этом, эти сервисы НЕ нужно помещать в rc.conf в список DAEMONS.

pppd и pppoe

Ставим пакеты ppp и rp-pppoe:

pacman -S ppp rp-pppoe

pppd + pppoe + daemontools

Ну и заключающий шаг собрать всё это вместе и запустить.

  • создаём директорию /etc/ppp-internet
  • создаём файл /etc/ppp-internet/run с следующим содержимым:
#!/bin/bash

# тут укажи сетевую которая у тебя подключена
ip link set dev eth0 up

# nodetach - обязательно. за подробностями в документацию.
pppd nodetach call dsl-provider
  • делаем его исполняемым: chmod +x /etc/ppp-internet/run
  • создаём этот самый dsl-provider, файл /etc/ppp/peers/dsl-provider с примерно следующим содержимым (можно посмотреть эту статью):
plugin rp-pppoe.so
# network interface
eth0
# login name
name "pppoe-login"
# use assigned DNS
usepeerdns
# add default route to connection
defaultroute
hide-password
noauth
# create interface with name ppp999 (in my case others users from LAN have access to Internet via VPN for accounting purposes)
unit 999

В конфиге никоим образом не должно быть опции «persist». Логин/пароль должны быть прописаны в /etc/pap-secrets или /etc/chap-secrets

  • ну и последний пасс:
ln -s /etc/ppp-internet /service/

управлять процессами daemontools можно при помощи команды svc

После последнего действия проверьте список процессов, на предмет запущенного svscan и pppd