radpppd - ошибки и настройка

Ответить
alex

radpppd - ошибки и настройка

Сообщение alex »

Abills стоит давно и радует своей работой в плане VPN, надо было сделать сервер доступа dialin. Начал копать в сторону expppd, radpppd. Мне показалось что radpppd лучше будет, поэтому скачал дистрибутив, посмотрел доки, а их оказалось немного.

Установил свежий дистрибутив фряхи (6.1) на новый сервер, поставил мультипортовые карты, скоиптлил ядро, поставил и настроил mgetty. Потом дело подошло к radpppd, но после компиляции меня ожидал сюрприз - прога не запускалась. После дозвона модема отображалось сообщение:


This system lacks kernel support for PPP. To include PPP support
in the kernel, please follow the steps detailed in the README.bsd
file in the ppp-2.2 distribution


Начал копать в исходниках, потом по форумам. На все про все потратил 3 дня. В результате выкладываю патч исправляющий это безобразие, вылезающее во фрях начиная с 5.2

Код: Выделить всё

diff -ruN ppp-2.3.11.orig/pppd/sys-bsd.c ppp-2.3.11/pppd/sys-bsd.c
--- pppd/sys-bsd.c	Tue Aug 24 14:25:54 1999
+++ pppd/sys-bsd.c	Thu Apr 22 10:40:42 2004
@@ -180,22 +180,22 @@
 int
 ppp_available()
 {
-    int s, ok;
-    struct ifreq ifr;
+    const char *modname = "if_ppp";
     extern char *no_ppp_msg;
 
-    if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
-	return 1;		/* can't tell */
+    if (modfind(modname) != -1) {
+	return 1;
+    }
 
-    strlcpy(ifr.ifr_name, "ppp0", sizeof (ifr.ifr_name));
-    ok = ioctl(s, SIOCGIFFLAGS, (caddr_t) &ifr) >= 0;
-    close(s);
+    if (getuid() == 0 && kldload(modname) != -1)
+	return 1;
 
     no_ppp_msg = "\
 This system lacks kernel support for PPP.  To include PPP support\n\
-in the kernel, please follow the steps detailed in the README.bsd\n\
-file in the ppp-2.2 distribution.\n";
-    return ok;
+in the kernel, please add \"device ppp\" to your kernel config or \n\
+load the if_ppp module.\n";
+
+    return 0;
 }
После чего компилируем прогу и радуемся.

....продолжение следует

alex

Сообщение alex »

Продолжаем как и обещал.

Не зря я в нете видел инфу, что radpppd не шлет ALIVE пакетов, у меня так и получилось. Упорные поиски увенчались с успехом.
Патч исправляющий данное безобразие таки нашелся.

Поэтому сразу выкладываю линк.
http://www.nibs.net.ua/src/radpppd/radp ... .patch.bz2

Радуемся, качаем, патчим, компилим radpppd, заменяем уже установленный бинарник. Коннектимся модемом (ну вобщем кто чем :D ).

И проверяем результат. У меня сразу множество багов испарилось. Количество зависших сессий свелось к минимуму.

Валентин

Re: radpppd - ошибки и настройка

Сообщение Валентин »

как конкретно применить данный patch ? у меня такая же проблема... :x :(

Alex Povolotsky
Сообщения: 26
Зарегистрирован: Чт сен 21, 2006 3:16 pm
Контактная информация:

Сообщение Alex Povolotsky »

alex писал(а):Продолжаем как и обещал.

Не зря я в нете видел инфу, что radpppd не шлет ALIVE пакетов, у меня так и получилось. Упорные поиски увенчались с успехом.
Патч исправляющий данное безобразие таки нашелся.

Поэтому сразу выкладываю линк.
http://www.nibs.net.ua/src/radpppd/radp ... .patch.bz2

Радуемся, качаем, патчим, компилим radpppd, заменяем уже установленный бинарник. Коннектимся модемом (ну вобщем кто чем :D ).

И проверяем результат. У меня сразу множество багов испарилось. Количество зависших сессий свелось к минимуму.
Forbidden :(

Eugene
Сообщения: 27
Зарегистрирован: Пн июл 17, 2006 9:26 am
Контактная информация:

Сообщение Eugene »

завел на одном сервере MPD и RADPPPD - два NAS-а одновременно
вроде работает
кто заинтересуется могу рассказать как все завелось

SLIP
Сообщения: 21
Зарегистрирован: Пт ноя 30, 2007 4:18 pm
Контактная информация:

Сообщение SLIP »

Вопрос такого плана:
Как и где прописать чтобы radpppd дёргал радиус как клиент с определённого айпи?

Проблема в том что у меня стоит мпд4 и радппд на одной машине. На ней же радиус и абиллс. Прописал два наса - для мпд4 взял айпи 127.0.0.1, а для радппд - реальный айпи интерфейса который смотрит в мир (ну чтобы они как-то отличались).

Так вот юзер диалапщик может законнектится только тогда когда ему разрешён коннект с обоих насов (ну или только с мпд4) - оно то всё работает, но не есть корректно....

Что я могу предпринять?

kaats
Сообщения: 99
Зарегистрирован: Пн ноя 19, 2007 8:43 pm
Контактная информация:

Re:

Сообщение kaats »

SLIP писал(а):Вопрос такого плана:
Как и где прописать чтобы radpppd дёргал радиус как клиент с определённого айпи?

Проблема в том что у меня стоит мпд4 и радппд на одной машине. На ней же радиус и абиллс. Прописал два наса - для мпд4 взял айпи 127.0.0.1, а для радппд - реальный айпи интерфейса который смотрит в мир (ну чтобы они как-то отличались).

Так вот юзер диалапщик может законнектится только тогда когда ему разрешён коннект с обоих насов (ну или только с мпд4) - оно то всё работает, но не есть корректно....

Что я могу предпринять?
К теме наверное не очень относится но почему не применить для диалапщикоа mpd.
Проверено - работает

Ck-NoSFeRaTU
Сообщения: 54
Зарегистрирован: Ср фев 20, 2008 12:17 pm
Контактная информация:

Re: Re:

Сообщение Ck-NoSFeRaTU »

kaats писал(а):К теме наверное не очень относится но почему не применить для диалапщикоа mpd.
Проверено - работает
Потому что по-мимо инет-дайлапщиков, там могут висеть факсы, фидошка и ещё куча всякой всячины, поэтому функциональнее юзать связку mgetty+radpppd. Также radpppd можно прикрутить, скажем, к stunnel`ю и будет ещё возможность пускать особо параноидальных юниксоводов. Да и вообще комбаин mpd - это не unix-way ^_^.В связи с чем очень прискорбно, что поддержку ppp-интерфейсов из freebsd7+ выпилили похоже безвозвратно.

Ответить