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

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

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

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

## Daemontools

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

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

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

- скачать это: https://aur.archlinux.org/packages/daemontools/daemontools.tar.gz
- распаковать: tar xzf daemontools.tar.gz
- зайти в каталог: cd daemontools
- выполнить: makepkg
- поставить пакет в систему: pacman -U ...

всё, после этого появится директирия /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

Categories:

- Русский
- Networking (Русский)
- Daemons and system services (Русский)