Настройка PPPoE в Linux без NetworkManager

В новых версия NetworkManager можно настраивать PPPoE без консоли, но сам NetworkManager является довольно дикой программой, я его сразу удаляю так как не вижу в нём смысла

Чтобы настроить подключение к провайдеру через PPPoE можно пойти двумя путями, простым с помощью (но вы так и не узнаете как же оно работает)

sudo pppoeconf

pppoeconf наверно самый простой мастер настройки подключения по pppoe, но он не даёт понимания всей картины и возможности настроить дополнительные параметры, но вполне подойдёт для быстрой настройки

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

За работу с протоколом PPPoE отвечает программа pppd, эта программа (даемон) требует от ядра поддержки модулей ppp_deflate, bsd_comp, ppp_async, pppoe, pppox (mod_probe ppp_generic), по умолчанию эта поддержка включена во все популярные дистрибутивы

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

в файле /etc/ppp/chap-secrets хранятся пары значений "логин" * "пароль" выданных провайдером, туда можно занести сколько угодно таких пар, только необходимо отследить права доступа к этому файлу -rw------- root root, иметь возможность читать и писать в него должен только root

исторически сложилось, что в файле /etc/ppp/peers/dsl-provider находят настройки специфичный для конкретного провайдер, а так же логин для текущего соединения с ним, например в файле chap-secrets находятся акаунты для user1 user2 провайдера RTELECOM и акаунт для GPRS соединений Beeline, для подключения под логином user2 провайдера RTELECOM в этом файле дожна быть запись user "user2", все другие упоминания user должны быть закрыты символом # или удалены

Из полезных опций отмечу usepeerdns, она нужна когда нет собственного DNS сервера, у меня такой сервер есть, поэтому я за коментировал эту опцию

Для проверки соединения выполните команду pon <имя файла с настройками для нужного провайдера>, должен появится интерфейс ppp0 и пойти пинги

sudo pon dsl-provider # влючение
sudo poff dsl-provider # выключение

Если добавить своего пользователя в группу netdev то можно будет выполнять эту команду без sudo, имя dsl-provider не обязательное, можно изменить на любое имя файла, например divan-tv, нужно только не забывать про это при подключении

Затем, скорее всего, потребуется настроить автоматическое подключение при запуске и вообще встроить подключение в ситему, например для синхронизации с фаерволом, клиентом DynDNS или например для переключение режимов DNS сервера

Для этого нужно отредактировать файл /etc/network/interfaces добавить в него новое соединение, прописать скрипты и команды предшествующие и следующие перед запуском и после остановки интерфейса, вот мой пример

iface divan inet ppp
    provider dsl-provider
    pre-up /sbin/ifconfig eth1 up
    post-up iptables-restore < /etc/iptable.rules
    post-up /etc/init.d/ddclient start
    pre-down iptables-save -c > /etc/iptable.rules
    pre-down /etc/init.d/ddclient stop
post-down /sbin/ifconfig eth1 down
# эта опция нужна для автоматического включения соединения при старте или перезапуске сети sudo /etc/init.d/networking restart
auto divan

Тут видно, что новому соединению дано имя divan, а в качестве профиля для подключения используется уже настроенный файл dsl-provider, так же видны 2 последовательности из 3 команд которые обрабатывают в соответствии с префиксом. очевидно, что событие

  1. pre-up происходит перед активацией соединения
  2. post-up - после активации
  3. соответственно pre-down и post-down до и после разрушения соедиения

Эти события удобно использовать для например, включения и остановку Ethernet интерфейса, загрузки и сохранения параметров фаервола, привязки полученного IP к DNS имени на сервисе DynDNS

Теперь для управления этим соединением достаточно использовать утилиты ifup и ipdown <название соединения> или скриптом управляющим всему соединениями sudo /etc/init.d/networking restart

Вроде бы не сложно, всего 3 файла и несколько опций, за то сколько с помощью их можно настроить и добавить всяких возможностей, например можно написать скрипт, который переключает DNS сервер на использование внешнего DNS сервера или только на обслуживание внутренней зоны и привязав его к скрипту инициализации интерфейса можно сократить время ожидания загрузки недоступных страниц из интернета или например отправлять в свой Jabber сообщение о смене динамического IP

вот мой текущий /etc/network/interfaces

auto lo
iface lo inet loopback

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider

iface eth1 inet static
    address 192.168.80.76
    netmask 255.255.255.0
auto eth1

Настройка PPPoE в Linux Gentoo

 

Комментариев 0
Нужна авторизация с помощью
Об авторе
Илья Илья

меня можно найти тут