Установка и настройка PPPoE сервера под Linux

Внимание! Материалы данной статьи морально устарели. Просьба воспринимать текст статьи исключительно в ознакомительных целях.

Простейшая установка и настройка PPPoE сервера под Linux

Исправление ошибки LCP Config Request

Протестировано на:

  • ASP Linux 12 Carbon
  • ppp 2.4.4
  • rp-pppoe 3.8

1. Установка ppp

На момент написания данного документа на всех системах от Red Hat, pppoe отказывался работать в режиме демона (по поводу kernel mode ничего сказать не могу потому как не пробовал). Ошибка кроется в демоне ppp, который отказывается посылать ответы на клиентские запросы LCP Config Request.

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

В /var/log/messages можно наблюдать такие ошибки:

Jan 30 03:24:51 Dark-server pppd[1979]: LCP: timeout sending Config-Requests
Jan 30 03:24:51 Dark-server pppd[1979]: Connection terminated.
Jan 30 03:24:51 Dark-server pppd[1979]: Modem hangup

Для устранения данной ошибки необходимо исправить файл main.c из комплекта pppd. После чего ppp надо заново откомпелировать и установить.

 

1.1 Качаем ppp 2.4.4 , распоковываем, заходим в дирректорию pppd, правим файл main.c:


Строки 1567-1572

if (errfd == 0 || errfd == 1)
errfd = dup(errfd);
closelog(); ## ДОБАВЛЯЕМ СТРОКУ!!!
/* dup the in, out, err fds to 0, 1, 2 */
if (infd != 0)
dup2(infd, 0);


Строки 1575-1581

if (errfd != 2)
dup2(errfd, 2);
## УДАЛЯЕМ СТРОКУ!!!!
if (log_to_fd > 2)
close(log_to_fd);
if (the_channel->close)

(Скачать патч и более подробно о данной проблеме можно прочитать
здесь: https://bugzilla.redhat.com/show_bug.cgi?id=222295)

Как вариант можно просто скачать RPM пакет с пропатченым бинарником, например от Fedora Core 9

здесь: http://mirror.yandex.ru/fedora/.../Packages/

1.2 Выясняем где распологается старая версия:

whereis pppd
pppd: /usr/sbin/pppd


Т.е. Старая версия находится в /usr/sbin/

1.3 Запускаем скрипт конфигурации ppp, указывая параметр "prefix",имея в виду, что установка должна выполняться заменяя предидущую версию.

Компелируем, устанавливаем:

/configure --prefix=/usr
make
make install

2. Установка pppoe

Тут всё довольно тривиально и обычно.

2.1 Качаем rp-pppoe 3.8, распоковываем, запускаем скрипт

./go

По идеи если не будет не каких ошибок, то на этом установка завершена.

2.2 Редактируем файл опций /etc/ppp/pppoe-server-options, это самый
обычный файл конфигурации ppp. Пример файла который работает у меня:

name pppoe
logfile /var/log/log.pppoe
require-pap
require-chap
require-mschap
require-mschap-v2
lcp-echo-interval 20
lcp-echo-failure 3
ms-dns 212.188.4.10
ms-dns 195.34.32.116
netmask 255.255.255.0
nobsdcomp
lock

2.3 Заводим пользователей в файлах /etc/ppp/pap-secrets и
/etc/ppp/chap-secrets

Приведу пример такого файла:

# Secrets for authentication using CHAP
# client server secret IP addresses
"testlogin" * "testpass" *

Т.е. Именем пользователя будет testlogin а паролем testpass
2.4 Запускаем сервер:

pppoe-server -I eth0 -L 192.168.0.1 -R 192.168.0.2
Где:

eth0 - имя интерфейса на котором запущен сервер
192.168.0.1- IP адрес сервера
192.168.0.2 - начальный IP адрес клиентов

Всё, сервер запущен и работает, теперь к нему можно подсоединяться.

Добавить комментарий

Защитный код
Обновить

Краткая информация

об авторах блога Bazon

Demo

Hrumer

Программист, дизайнер
Demo

S'Turle

Программист, ИТ-специалист

Дислокация

Набережные Челны, Татарстан
Индекс цитирования Tatarstan.Net - все сайты
Татарстана