Ключевые слова:ppp, pppoe, linux, kernel, win, (найти похожие документы)
From: Андрей Орлов aka Tanga <a.orlov at kks-group.ru>
Newsgroups: email
Date: Mon, 16 Sep 2004 14:31:37 +0000 (UTC)
Subject: Настройка rp-pppoe сервера под Linux
Настройка rp-pppoe сервера в kernel-mode с pppd 2.4.2b3 под Linux (kernel 2.4.20)
Возникла следующая проблема: процессы pppd стали "подвисать", т.е.
клиент подключился-отключился, а процесс остался висеть (и висеть он
может до отупения, т.е. до kill) или клиент попытался подключиться, не
прошел логин/пароль, а pppd висит.
Клиенты подключаются через raspppoe (http://www.raspppoe.com/) или через
стандартный Windows XP/2003 драйвер.
Никакой более-менее точной информации по этой проблеме я не нашёл, но
поиски навели меня на мысль что может помочь:
а) kernel-mode pppoe (раньше у меня был user-mode)
б) pppd версии 2.4.2b3 (был 2.4.1)
Но проблема в том, что pppd 2.4.2b3 и rp-pppoe 3.5 напрочь отказывались
работать в kernel-mode (пробовал на ASPLinux 9 и RedHat 9).
Как настраивать + местами из документации к rp-pppoe:
0) Работаем на ядре 2.4.x.
Должны быть сконфигурированы след. опции в ядре:
CONFIG_PPP=m or CONFIG_PPP=y
CONFIG_PPP_ASYNC=m or CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=m or CONFIG_PPP_SYNC_TTY=y
CONFIG_PPP_DEFLATE=m or CONFIG_PPP_DEFLATE=y
CONFIG_PPP_BSDCOMP=m or CONFIG_PPP_BSDCOMP=y (этого у меня нет,
по-моему надо только для этого BSDCOMP, но сам rp-pppoe передаёт
pppd nobsdcomp)
CONFIG_PPPOE=m or CONFIG_PPPOE=y
CONFIG_N_HDLC=m or CONFIG_N_HDLC=y
CONFIG_UNIX98_PTYS=y
Также нужен файл /dev/ppp (если нет):
mknod --mode=664 /dev/ppp c 108 0
Возможно надо добавить некоторые из следующих строк в /etc/modules.conf:
alias char-major-108 ppp_generic
alias tty-ldisc-3 ppp_async
alias tty-ldisc-13 n_hdlc
alias tty-ldisc-14 ppp_synctty
alias net-pf-24 pppoe
1) Скачиваем с http://www.samba.org/ppp/download.html
ppp-2.4.2.tar.gz
и
ppp-2.4.2b3.tar.gz
Скачиваем rp-pppoe 3.5 с http://www.roaringpenguin.com/pppoe/
2) Распаковываем и устанавливаем (./configure && make && make install)
как обычно ppp-2.4.2
3) Распаковываем rp-pppoe
4) В директории rp-pppoe идём в src/ и пишем:
./configure --enable-plugin=/путь/где/директория/ppp-2.4.2
Обратите внимание, должна быть строчка
checking for Linux 2.4.X kernel-mode PPPoE support... yes
5) Делаем
make && make install
6) Распаковываем и устанавливаем (./configure && make && make install)
как обычно ppp-2.4.2b3
7) Идём в директорию куда распаковывали (и откуда устанавливали)
ppp-2.4.2b3, заходим в
pppd/plugins/rp-pppoe
копируем rp-pppoe.so в
/etc/ppp/plugins
заменяя файл который там будет.
8) В /etc/ppp/pppoe-server-options правим что необходимо, вот пример
моего конфига (описание man pppd):
require-chap
ktune
login
idle 1200
lcp-echo-interval 10
lcp-echo-failure 5
ms-dns 10.0.0.1
ms-dns 10.0.0.2
nobsdcomp
noendpoint
noipdefault
noipx
novj
logfile /var/log/pppd/log.pppd
9) Настройки доступа хранятся в файле /etc/ppp/chap-secrets в формате
логин имя_nas пароль ip_адрес_клиента
10) запускаем PPPoE сервер
/usr/sbin/pppoe-server -k -I имя_интерфейса -L локальный_ip -C имя_nas
10) Хорошо бы добавить в iptables
-A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
У меня всё завелось, указанные в начале проблемы исчезли.
Надеюсь будет полезно.
Андрей Орлов aka Tangar mailto: a.orlov at kks-group.ru