PPPoE - ABillS (в поле CID пусто)

Установка, настройка, поддержка
Stas
Сообщения: 64
Зарегистрирован: Ср май 31, 2006 6:07 am

Сообщение Stas »

V1talya писал(а):Если добавить в /etc/ppp/pppoe-server-options строчку ipparam халямбалям то в CID ( у всех пользователей ) будет халямбалям.
Параметр ipparam передать pppd можно только через file /etc/ppp/pppoe-server-options ?
( если да, то можно написать патч для pppoe который будет каждый раз в файл /etc/ppp/pppoe-server-options в конец добавлять ipparam MAC (заменя старую запись ipparam MAC ), изврат но должно работать :) )
CID от pppoe передаётся не через ipparam (как в pptpd), а через remotenumber.

Причём в коде pppoe-server этого нет. Если используется kernel plugin, то всё ok - он вытаскивает это значение из сессии, если же его нет, то желательно пропатчить rp-pppoe чтоб он передавал remotenumber (типа такого, не проверял, не собирал):

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

    if (PassRemotenumberOptionToPPPD) {
        argv[c++] = "remotenumber";
        snprintf(buffer, SMALLBUF, "%02x:%02x:%02x:%02x:%02x:%02x",
             session->eth[0], session->eth[1], session->eth[2],
             session->eth[3], session->eth[4], session->eth[5]);
        argv[c++] = buffer;
    }

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

CID от pppoe передаётся не через ipparam (как в pptpd), а через remotenumber
чушь... ни от кого никому ничё не передаётся - просто радиусплагин пппд интерпретирует как цид параметр remotenumber или ipparam :D
pppd/plugins/radius/radius.c писал(а): if (*remote_number) {
rc_avpair_add(&send, PW_CALLING_STATION_ID, remote_number, 0,
VENDOR_NONE);
} else if (ipparam)
rc_avpair_add(&send, PW_CALLING_STATION_ID, ipparam, 0, VENDOR_NONE);
Если используется kernel plugin, то всё ok
потому что в этом случае пппое сервер дополнительно формирует параметр rp_pppoe_sess
root 22484 0.0 0.0 3444 1256 ? Ss 08:23 0:00 pppd plugin /etc/ppp/plugins/rp-pppoe.so nic-eth0 rp_pppoe_sess 65:00:30:4f:3b:c7:82 rp_pppoe_service Axon file /etc/ppp/pppoe-server-options 192.168.1.1:0.0.0.64 nodetach noaccomp nobsdcomp nodeflate nopcomp novj novjccomp default-asyncmap
который и переписывается плагином в remote_number
pppd/plugins/rp-pppoe/plugin.c писал(а): /* Set remote_number for ServPoET */
sprintf(remote_number, "%02X:%02X:%02X:%02X:%02X:%02X",
(unsigned) conn->peerEth[0],
(unsigned) conn->peerEth[1],
(unsigned) conn->peerEth[2],
(unsigned) conn->peerEth[3],
(unsigned) conn->peerEth[4],
(unsigned) conn->peerEth[5]);
если же его нет, то желательно пропатчить rp-pppoe чтоб он передавал remotenumber
если же его нет, то желательно его собрать а не изобретать велосипед :D

Stas
Сообщения: 64
Зарегистрирован: Ср май 31, 2006 6:07 am

Сообщение Stas »

ran писал(а):
CID от pppoe передаётся не через ipparam (как в pptpd), а через remotenumber
чушь... ни от кого никому ничё не передаётся - просто радиусплагин пппд интерпретирует как цид параметр remotenumber или ipparam :D
pppd/plugins/radius/radius.c писал(а): if (*remote_number) {
rc_avpair_add(&send, PW_CALLING_STATION_ID, remote_number, 0,
VENDOR_NONE);
} else if (ipparam)
rc_avpair_add(&send, PW_CALLING_STATION_ID, ipparam, 0, VENDOR_NONE);
Ну и где я чушь написал? :shock: В приведённой Вами же цитате из pppd/plugins/rp-pppoe/plugin.c явно видно, что используется remotenumber, а не ipparam.
ran писал(а):
Если используется kernel plugin, то всё ok
потому что в этом случае пппое сервер дополнительно формирует параметр rp_pppoe_sess
root 22484 0.0 0.0 3444 1256 ? Ss 08:23 0:00 pppd plugin /etc/ppp/plugins/rp-pppoe.so nic-eth0 rp_pppoe_sess 65:00:30:4f:3b:c7:82 rp_pppoe_service Axon file /etc/ppp/pppoe-server-options 192.168.1.1:0.0.0.64 nodetach noaccomp nobsdcomp nodeflate nopcomp novj novjccomp default-asyncmap
который и переписывается плагином в remote_number
Ну и где я этому противоречу? :shock: Если заполнять rp_pppoe_sess путь получится дольше :)
ran писал(а):
если же его нет, то желательно пропатчить rp-pppoe чтоб он передавал remotenumber
если же его нет, то желательно его собрать а не изобретать велосипед :D
Ну... это уже каждый сам волен выбирать :D Бывают случаи, что ядро поменять нельзя :P Единственно что
желательно
надо заменить на
возможно
:D

Stas
Сообщения: 64
Зарегистрирован: Ср май 31, 2006 6:07 am

Сообщение Stas »

ran писал(а):
CID от pppoe передаётся не через ipparam (как в pptpd), а через remotenumber
чушь... ни от кого никому ничё не передаётся - просто радиусплагин пппд интерпретирует как цид параметр remotenumber или ipparam :D
Постил я не для того, чтоб сказать единственно верное решение, а для того, чтоб кому-то понадобилось меньше времени в поиске граблей - в обсуждении проблемы выше не было ни малейшего намёка на сторону, в которую нужно копать :P

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

Ну и где я чушь написал?
здесь
CID от pppoe передаётся
потому что радиусплагину пппд сугубо похрен кем и как был сформирован параметр ремотенамбер/иппарам - в конфиге, строке запуска etc
В приведённой Вами же цитате из pppd/plugins/rp-pppoe/plugin.c явно видно, что используется remotenumber, а не ipparam
так лучше видно?
if (*remote_number) {
rc_avpair_add(&send, PW_CALLING_STATION_ID, remote_number, 0,
VENDOR_NONE);
} else if (ipparam)
rc_avpair_add(&send, PW_CALLING_STATION_ID, ipparam, 0, VENDOR_NONE);
Постил я не для того, чтоб сказать единственно верное решение, а для того, чтоб кому-то понадобилось меньше времени в поиске граблей - в обсуждении проблемы выше не было ни малейшего намёка на сторону, в которую нужно копать
потому что все уже давно поняли что нужно юзать ядерный пппое и давно забыли об этом топике :D

Stas
Сообщения: 64
Зарегистрирован: Ср май 31, 2006 6:07 am

Сообщение Stas »

ran, я очень рад за то, что Вы поняли, какой надо использовать pppoe лично Вам. Понятия "все" и "никто" давайте не будем использовать. Если бы я нашёл кучу решений этой проблемы в сети, я бы не постил.

Я надеюсь, что если кто-то наткнётся на эту же проблему, у него будет ориентир, на который можно взглянуть :).

По поводу
ran писал(а):лучше видно
. Пересмотрите ещё раз мой пост. Где я написал, что radius plugin воспримет только определённый параметр? Я написал, что в данном конкретном случае искать проблему нужно через remotenumber (в т.ч. в поисковиках и коде).

Я напоролся на проблему, когда при обновлении системы (мелком) перестал передаваться CID. По Вашей посылке на ipparam я потратил некоторое время впустую на поиск причины - конфиги-то не менялись, версия rp-pppoe и pppd тоже. Причина оказалась в том, что из-за проблем с заголовочным файлом configure выключил kernel plugin. Make && make install прошли успешно.

Обнаружить такую проблему, особенно без намёков на возможные причины, крайне сложно.

Давайте закончим данную неинформативную перепалку и будем проявлять уважение к собеседнику - будем читать их сообщения, отвечать по существу и не так эмоционально.

Заранее прошу извинить меня, если не отвечу на последующие сообщения.

Ответить