Перейти к содержимому
Калькуляторы

IPOE драйвер даже без кросс-компиляций под новыми ядрами не собирается(начиная с 3.6 по-моему), загадочный он.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3.4 ведерко-то.

Ладно, буду сам пилить, мейкфайл должен быть тривиальным.

 

UPD:

Итак, поправил, оказалось что cmake не надо было насиловать. Т.е. - вызывается стандартная процедура сборки модуля.

Вот кусок мейкфайла:

        for i in $(KARCHS); do \
           mkdir -p $(BT_STAGING_DIR)/lib/modules/$(BT_KERNEL_RELEASE)-$$i/kernel/extra && \
           KDIR=$(BT_SOURCE_DIR)/linux/linux make -C $(BT_SOURCE_DIR)/linux/linux-$$i M=$(ACCEL_DIR)/drivers/ipoe && \
           gzip -9 $(ACCEL_DIR)/drivers/ipoe/ipoe.ko && \
           mv -f $(ACCEL_DIR)/drivers/ipoe/ipoe.ko.gz $(BT_STAGING_DIR)/lib/modules/$(BT_KERNEL_RELEASE)-$$i/kernel/extra && \
           depmod -ae -b $(BT_STAGING_DIR) -r -F $(BT_STAGING_DIR)/lib/modules/$(BT_KERNEL_RELEASE)-$$i/build/System.map $(BT_KERNEL_RELEASE)-$$i; \
       done

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Есть проблемы со сборкой на x86:

nm ./libpptp.so | c++filt | grep connlimit_check

U connlimit_check

которые вылеваются в:

[2013-05-20 18:35:15.678]loader: failed to load 'pptp': /usr/lib/accel-ppp/libpptp.so: undefined symbol: connlimit_check

Параметры сборки:

cmake -DBUILD_DRIVER=FALSE -DCRYPTO=OPENSSL -DSHAPER=FALSE -DRADIUS=FALSE -DNETSNMP=FALSE -DLOG_PGSQL=FALSE -DMEMDEBUG=FALSE ..

На amd64 работает без проблем.

На версии

[2013-05-18 20:32:08]: msg: accel-ppp version d38ee4ecee74f47a7fdbff7a5d77b7c6371776d6

из

EGIT_REPO_URI="git://git.code.sf.net/p/accel-ppp/code"

EGIT_BRANCH="master"

На последнем релизе (1.7.3) такое же поведение.

 

2. Хотел заставить работать ipoe в режиме mode=L2, shared=0, ifcfg=0.

Сетевые настройки выдает accel-ppp, аутентификации нет.

 

Конфиг:

 

 

[modules]

log_file

 

pptp

ipoe

chap-secrets

 

[core]

log-error=/var/log/accel-ppp/core.log

thread-count=4

 

[ppp]

verbose=1

min-mtu=1280

mtu=1400

mru=1400

ipv4=require

ipv6=deny

lcp-echo-interval=20

lcp-echo-timeout=120

 

[auth]

any-login=1

noauth=1

 

[ipoe]

verbose=1

username=ifname

lease-time=600

max-lease-time=3600

interface=vlan0050,mode=L2,shared=0,start=dhcpv4,range=192.168.1.1/24,ifcfg=0

 

[pptp]

mppe=allow

verbose=1

 

[client-ip-range]

0.0.0.0/0

 

[log]

log-file=/var/log/accel-ppp/accel-ppp.log

log-emerg=/var/log/accel-ppp/emerg.log

log-fail-file=/var/log/accel-ppp/auth-fail.log

copy=1

level=5

 

[chap-secrets]

gw-ip-address=192.168.0.250

chap-secrets=/etc/accel-ppp/chap-secrets

 

[cli]

telnet=127.0.0.1:2000

tcp=127.0.0.1:2001

#password=123

 

 

 

Лог:

 

 

[2013-05-20 21:33:04]: warn: ppp: kernel doesn't support ipv6

[2013-05-20 21:33:04]: error: libnetlink: RTNETLINK answers: No such file or directory

[2013-05-20 21:33:04]: error: genl: error talking to kernel

[2013-05-20 21:33:04]: warn: ipoe: unclassified packet handling is disabled

[2013-05-20 21:33:04]: msg: accel-ppp version e08cd5d552a80a2d3166ee1be9d49179322a553c

[2013-05-20 21:33:27]: info: : recv [DHCPv4 Discover xid=efac1cff chaddr=08:00:27:d0:4b:f1 <Message-Type Discover> <Max-Message-Size 1500> <Vendor-Class 6468637063642d352e362e343a4c696e75782d332e382e31332d67656e746f6f3a7838365f36343a47656e75696e65496e74656c> <Host-Name ebuild> <Request-List Subnet,Classless-Route,Route,Router,DNS,Host-Name,Domain-Name,MTU,Broadcast,NTP,Lease-Time,Server-ID,T1,T2,119>]

[2013-05-20 21:33:27]: warn: vlan0050: authentication failed

[2013-05-20 21:33:27]: debug: vlan0050: terminate

[2013-05-20 21:33:27]: debug: vlan0050: ipoe: session finished

 

 

возможно не правильно использую секцию [auth], но никакой информации, кроме как упоминания в changelog на sf и на 150-х страницах тут, о ней нет.

В мане ее тоже нет. Она вообще работает?

Изменено пользователем SpiderX

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите алгоритм работы per-interface padi-limit. Устанавливается минимальное время между отправками PADI-запросов или же с помощью счётчика, который уменьшается при получении PADI-запросов и растёт по мере увеличения времени?

 

В логах каждую миниту появляется сообщение(изредка и на других сабах):

May 21 14:45:28 br accel-pppd: pppoe: discarding overlimit PADI packets on interface eth2.266

May 21 14:46:28 br accel-pppd: pppoe: discarding overlimit PADI packets on interface eth2.266

May 21 14:47:29 br accel-pppd: pppoe: discarding overlimit PADI packets on interface eth2.266

May 21 14:48:29 br accel-pppd: pppoe: discarding overlimit PADI packets on interface eth2.266

May 21 14:49:30 br accel-pppd: pppoe: discarding overlimit PADI packets on interface eth2.266

 

Для этого интерфейса сконфигурировано padi-limit=200.

 

Однако tcpdump говорит, что не так уж и много PADI приходит на этот интерфейс:

 

14:46:53.806789 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:46:58.890847 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:46:58.922847 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:47:03.891017 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:47:08.975146 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:47:09.010926 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:47:13.974938 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:47:19.050997 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:47:19.087013 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:47:24.051056 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:47:29.139379 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:47:29.179062 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:47:34.139140 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:47:39.331647 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:47:39.359864 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:47:44.336777 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:47:49.420811 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:47:49.444787 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:47:54.420818 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:47:59.509194 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:47:59.536899 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:48:04.508912 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:48:09.600987 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:48:09.632970 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:48:14.601008 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:48:19.677292 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:48:19.717016 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:48:24.677114 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:48:29.769117 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:48:29.793114 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:48:34.769153 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:48:39.870226 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:48:39.894202 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:48:44.870272 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:48:49.958362 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

14:48:49.982323 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name] [Host-Uniq 0x22030000]

14:48:54.958628 bc:f6:xx:yy:zz:vv > ff:ff:ff:ff:ff:ff, ethertype PPPoE D (0x8863), length 60: PPPoE PADI [service-Name "VT"] [Host-Uniq 0x10030000]

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[2013-05-20 18:35:15.678]loader: failed to load 'pptp': /usr/lib/accel-ppp/libpptp.so: undefined symbol: connlimit_check
символы не должны резолвиться при загрузке, т.к. загрузка модулей осуществляется dlopen(RTDL_LAZY)

 

аутентификации нет.
[ipoe]

noauth=1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите алгоритм работы per-interface padi-limit. Устанавливается минимальное время между отправками PADI-запросов или же с помощью счётчика, который уменьшается при получении PADI-запросов и растёт по мере увеличения времени?
padi-limit указывает максимально кол-во padi запросов в секунду, так-же существует неуправляемое ограничение 1 padi от одного источника в секунду

алгоритм следующий: принятые padi помещаются в очередь с временной меткой, при получении очередного padi осуществляются удаление устаревших padi и проверяется кол-во элементов в очереди, так-же осуществляется проверка наличия padi с таким-же мак адресом

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

xeb

Спасибо!

 

Не могли бы ещё описать в man accel-pppd.conf для изменения каких параметров нужен restart демона, а где достаточно reload.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

xeb

1.

символы не должны резолвиться при загрузке, т.к. загрузка модулей осуществляется dlopen(RTDL_LAZY)

Забыл главное сказать - accel-ppp не стартует, в логе только вот эта ошибка.

Если закомментировать вызов connlimit_check:

//if (triton_module_loaded("connlimit") && connlimit_check(cl_key_from_ipv4(addr.sin_addr.s_addr))) {

if (triton_module_loaded("connlimit")) {

и пересобрать pptp модуль, то все сразу становится хорошо.

На том же ядре, ОС, на той же версии компилятора, но на архитектуре amd64 все работает без проблем.

 

2.

[ipoe]

noauth=1

Работает. Спасибо.

 

А есть планы по ip unnumbered?

Сейчас dhcp-серверу в accel-ppp нужен обязательно диапазон, если бы можно было указать конкретный ip, который нужно выдать с возможностью указать произвольную маску, например так:

interface=vlan0002,mode=L2,shared=0,start=dhcpv4,host=192.0.2.18/24,range=192.0.2.1/24,ifcfg=0
interface=vlan0003,mode=L2,shared=0,start=dhcpv4,host=192.0.2.19/32,range=192.0.2.1/24,ifcfg=0

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

 

При старте сессии accel-ppp создаст маршруты

192.0.2.18 dev vlan0003 src 192.0.2.1
192.0.2.19 dev vlan0003 src 192.0.2.1

сейчас он создает их без указания src.

 

Для режима работы ifcfg=1, наверно надо будет создать интерфейс, и повестить на него ip шлюза, ну или нужна директива, в которой указать на какой интерфейс повесить этот ip.

 

Сейчас такое поведение можно скорее всего получить для варианта, когда accel-ppp работает в качестве dhcp-relay, а настройки выдавать клиенту будет конечный dhcp-сервер на основе интерфейса, и он же по событию сможет прописать маршрут, но для accel-ppp такой функционал без дополнительного dhcp-сервер был бы нелишним.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почитал форум, понял, что мало понял логику работы accel-ppp.

 

Открыл для себя, что должен судя по форуму создаваться интерфейс *.ipoe, у меня он не создается.

Кто-то может поделится рабочим конфигом accel для ipoe mode=L2, ifcfg=1 или 0, shared=0 ?

 

accel-ppp стартует с такой ошибкой:

error: libnetlink: RTNETLINK answers: No such file or directory

это может быть причиной того, что не создается *.ipoe? И что ему собственно надо?

Изменено пользователем SpiderX

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

to SpiderX:

Посмотрите мои сообщения на последних нескольких страницах.

*.ipoe создается только при shared=1. И при этом используется специальный ядерный модуль ipoe.ko

Вы это http://sourceforge.net/apps/trac/accel-ppp/wiki/IPoE_ru читали?

root@debian6:/# accel-cmd show sessions
   ifname     |   username    |    calling-sid    |      ip       | rate-limit | type  | comp | state  |  uptime
---------------+---------------+-------------------+---------------+------------+-------+------+--------+----------
eth1.25       | eth1.25       | 08:00:27:f2:5c:1e | 10.206.252.83 | 4000/4000  | ipoe  |      | active | 09:27:06
eth0.24       | eth0.24       | 00:0c:42:34:39:3f | 10.206.252.82 | 4000/4000  | ipoe  |      | active | 09:27:02
eth0.20.ipoe0 | 192.168.8.2:2 | 00:0c:42:34:39:3d | 10.206.252.81 | 1000/1000  | ipoe  |      | active | 09:27:05
eth0.20.ipoe1 | 192.168.8.2:3 | 00:0c:42:34:39:3e | 192.168.20.11 | 4000/4000  | ipoe  |      | active | 09:27:04
eth1.21.ipoe0 | eth1.21       | 08:00:27:6e:4b:9d | 10.206.252.85 | 4000/4000  | ipoe  |      | active | 09:27:04
ppp1          | pppoe1        | 08:00:27:c9:8b:eb | 10.206.252.88 | 4000/4000  | pppoe |      | active | 09:26:55
root@debian6:/#

Здесь по ifname:

1)ipoe shared=0: eth1.25, eth0.24

2)ipoe shared=1: eth0.20.ipoe0, eth0.20.ipoe1, eth1.21.ipoe0

3)pppoe: ppp1

Изменено пользователем nik247

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

nik247

Спасибо.

 

А при какой конфигурации accel-ppp достигается такой эффект:

eth1.25       | eth1.25       | 08:00:27:f2:5c:1e | 10.206.252.8[b]3[/b] | 4000/4000  | ipoe  |      | active | 09:27:06
eth0.24       | eth0.24       | 00:0c:42:34:39:3f | 10.206.252.8[b]2[/b] | 4000/4000  | ipoe  |      | active | 09:27:02

?

Адреса выдает другой dhcp-сервер или радиус?

 

Как я вижу в режиме mode=L2,shared=0 accel-ppp не может сам выдавать адреса, чтобы реализовать ip unnumbered (хотя тут описано, что такой режим поддерживается). Верно?

mode=L2
shared=0
start=dhcpv4
ifcfg=1
interface=vlan0002,range=192.0.2.16/28
interface=vlan0003,range=192.0.2.16/28

На vlan0002 он выдает 192.0.2.18, и на vlan0003 он выдает 192.0.2.18.

range отличный от маски /30 он не парсит, т.е.

interface=vlan0002,range=192.0.2.18/32

interface=vlan0003,range=192.0.2.19/32

не проходит.

 

При shared=1 выдает адреса из пула как положено. Баг с shared=0 ?

 

P.S. Патч к ipoe.ko, не собирался с ядром выше 3.7. В 3.7 структуры поменяли.

http://pastebin.com/4B0LFC86

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В версии accel-ppp 1.6.1 в Auth-Request было так:

<Calling-Station-Id "мак_абонента"> <Called-Station-Id "eth6.266:мак_браса">

 

В branch 1.7(ca1d56ccb766ea9a855faaac5a757de913b73c77) стало так:

<Calling-Station-Id "eth6.266:мак_абонента"> <Called-Station-Id "мак_браса">

 

Это сделано специально или случайно так получилось?

 

В новом варианте отправки *-station-id, ланбиллинг такое съедает некорректно, вместо eth6.266:мак_абонента отображает eth6.266:три_левых_октета

 

Можно вернуть как было или сделать добавление интерфейса браса в *-station-id опционально?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А есть планы по ip unnumbered?

Сейчас dhcp-серверу в accel-ppp нужен обязательно диапазон, если бы можно было указать конкретный ip, который нужно выдать с возможностью указать произвольную маску, например так:

Как я вижу в режиме mode=L2,shared=0 accel-ppp не может сам выдавать адреса, чтобы реализовать ip unnumbered (хотя тут описано, что такой режим поддерживается). Верно?

честно говоря я не расчитывал что параметр range будет использоваться для ip unnumbered

range предполагалось использовать для выдачи серых ип, а белые выдаёт вышестоящий дхцп, радиус, ip-pool или chap-secrets

не ужели охота плодить сотни или тысячи записей interface=vlan0003,host=192.168.2.18,range=192.168.2.1/24 ?

не проще ли:

[ipoe]

mode=L2

shared=0

start=dhcpv4

ifcfg=1

interface=vlan[0-9]+

username=ifname

 

и если не хочется радиус, то

[ip-pool]

gw-ip-address=192.168.2.1

192.168.2.2/24

 

или

[chap-secrets]

gw-ip-address=192.168.2.1

chap-secrets=/etc/ppp/chap-secrets

 

и в /etc/ppp/chap-secrets:

vlan00002 * vlan00002 192.168.2.18

vlan00003 * vlan00003 192.168.2.19

 

Можно вернуть как было или сделать добавление интерфейса браса в *-station-id опционально?

[pppoe]

ifname-in-sid=calling-sid|called-sid|both

Изменено пользователем xeb

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

xeb

честно говоря я не расчитывал что параметр range будет использоваться для ip unnumbered

range предполагалось использовать для выдачи серых ип, а белые выдаёт вышестоящий дхцп, радиус, ip-pool или chap-secrets

не ужели охота плодить сотни или тысячи записей interface=vlan0003,host=192.168.2.18,range=192.168.2.1/24 ?

Я просто такой логики, что range - для немаршрутизируемых ip, сразу как-то не отследил :)

Вариант с chap-secrets меня полностью устраивает, но есть проблема.

 

Из IPoE_ru:

Варианты конфигурации аналогичны предыдущим, за исключением того что нужно заменить shared=0. В случае ip-unnumbered вспомогательный модуль ядра не требуется, клиенту локальный IP выдавать не нужно, нужно выдать только белый IP.

Выгрузил ipoe.ko

Конфиг:

 

 

[modules]

log_file

ipoe

chap-secrets

logwtmp

 

[core]

log-error=/var/log/accel-ppp/core.log

thread-count=2

 

[ppp]

verbose=1

min-mtu=1280

mtu=1400

mru=1400

ipv4=require

ipv6=deny

mppe=deny

lcp-echo-interval=20

lcp-echo-timeout=120

 

[ipoe]

#noauth=1

verbose=1

username=ifname

lease-time=600

max-lease-time=3600

mode=L2

shared=0

start=dhcpv4

ifcfg=1

interface=re:vlan[0-9]{4}

 

[pptp]

#bind=176.105.163.230

verbose=1

 

[dns]

dns1=8.8.8.8

dns2=8.8.4.4

 

[client-ip-range]

0.0.0.0/0

 

[ip-pool]

gw-ip-address=192.168.90.250

192.168.90.2-255

 

[log]

log-file=/var/log/accel-ppp/accel-ppp.log

log-emerg=/var/log/accel-ppp/emerg.log

log-fail-file=/var/log/accel-ppp/auth-fail.log

#log-debug=/dev/stdout

#syslog=accel-pppd,daemon

#log-tcp=127.0.0.1:3000

copy=1

#color=1

#per-user-dir=per_user

#per-session-dir=per_session

#per-session=1

level=5

 

[chap-secrets]

#gw-ip-address=192.168.90.250

gw-ip-address=176.105.189.17

chap-secrets=/etc/accel-ppp/chap-secrets

#encrypted=0

#username-hash=md5

 

[cli]

telnet=127.0.0.1:2000

tcp=127.0.0.1:2001

#password=123

 

[snmp]

master=0

agent-name=accel-ppp

 

# cat /etc/accel-ppp/chap-secrets

user1 * password1 192.168.90.90

user2 * password2 *

 

vlan0002 * vlan0002 176.105.189.18

vlan0003 * vlan0003 176.105.189.19

vlan0004 * vlan0004 176.105.189.20

vlan0005 * vlan0005 176.105.189.21

vlan0006 * vlan0006 176.105.189.22

vlan0007 * vlan0007 176.105.189.23

vlan0008 * vlan0008 176.105.189.24

vlan0009 * vlan0009 176.105.189.25

vlan0010 * vlan0010 176.105.189.26

vlan0011 * vlan0011 176.105.189.27

vlan0012 * vlan0012 176.105.189.28

vlan0013 * vlan0013 176.105.189.29

vlan0014 * vlan0014 176.105.189.30

 

 

 

Лог:

 

 

[2013-05-23 17:56:38]: warn: ppp: kernel doesn't support ipv6

[2013-05-23 17:56:38]: error: libnetlink: RTNETLINK answers: No such file or directory

[2013-05-23 17:56:38]: error: genl: error talking to kernel

[2013-05-23 17:56:38]: warn: ipoe: unclassified packet handling is disabled

[2013-05-23 17:56:38]: msg: accel-ppp version e08cd5d552a80a2d3166ee1be9d49179322a553c

[2013-05-23 17:56:55]: info: : recv [DHCPv4 Discover xid=b15e6cbd chaddr=08:00:27:62:31:f8 <Message-Type Discover> <Max-Message-Size 1500> <Vendor-Class 6468637063642d352e362e343a4c696e75782d332e372e31302d67656e746f6f3a693638363a47656e75696e65496e74656c> <Host-Name ebuild-x86> <Request-List Subnet,Classless-Route,Route,Router,DNS,Host-Name,Domain-Name,MTU,Broadcast,NTP,Lease-Time,Server-ID,T1,T2,119>]

[2013-05-23 17:56:55]: error: vlan0003: no free IPv4 address

[2013-05-23 17:56:55]: debug: vlan0003: terminate

[2013-05-23 17:56:55]: debug: vlan0003: ipoe: session finished

 

 

 

Если в конфиге сделать interface=re:vlan[0-9]{4},range=какой-то range, выдает адреса из этого рейнджа, и мы возвращаемся к моей проблеме "На vlan0002 он выдает 192.0.2.18, и на vlan0003 он выдает 192.0.2.18." :)

Замкнутый круг какой-то :)

Т.е. не выдавать клиенту локальный IP не получается, он является обязательным судя по всему.

Изменено пользователем SpiderX

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

исправил

в [chap-secrets] gw-ip-address надо с маской указать, а то так не понятно какую использовать:

[chap-secrets]

gw-ip-address=176.105.189.17/24

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может нужно для режима IPoE сделать игнорирование Framed-IP-Address, или тогда рабочий конфиг такого вида:

attr-dhcp-client-ip=Framed-IP-Address

Который на данный момент не отрабатывает.

это тоже должно работать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3) shaper:

- отрабатывает с консоли нормально команду: shaper change [temp] и устанавливает нужный шейпер.

- на команды "shaper restore " и "shaper restore all" происходит рестарт accel-ppp и дальше п.2

исправлено

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2) не закрываются ipoe сессии на radius сервере при перезагрузке accel-ppp (/etc/init.d/accel-ppp restart)

После такой перезагрузки клиенты не могут повторно подключится, так как сессии остались еще активными.

исправлено

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

xeb

исправил

в [chap-secrets] gw-ip-address надо с маской указать, а то так не понятно какую использовать:

[chap-secrets]

gw-ip-address=176.105.189.17/24

Отлично. Работает. Спасибо!

Вроде все задуманное сейчас работает.

Осталось только проблему с connlimit_check на x86 побороть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте.

 

Помогите пожалуйста решить проблему.

Использовались только pptp и l2tp. Появилась необходимость перенести на accel-ppp еще и pppoe, через несколько часов работы с запущенным pppoe в логах:

[2013-05-26 20:48:35]: error: : ioctl(PPPIOCNEWUNIT): Cannot allocate memory
[2013-05-26 20:48:35]:  info: : disconnected
[2013-05-26 20:48:38]: error: : ioctl(PPPIOCNEWUNIT): Cannot allocate memory
[2013-05-26 20:48:38]:  info: : disconnected
[2013-05-26 20:48:38]: error: : ioctl(PPPIOCNEWUNIT): Cannot allocate memory
[2013-05-26 20:48:38]:  info: : disconnected
[2013-05-26 20:48:38]: error: : ioctl(PPPIOCNEWUNIT): Cannot allocate memory
[2013-05-26 20:48:38]:  info: : disconnected
[2013-05-26 20:48:39]: error: : ioctl(PPPIOCNEWUNIT): Cannot allocate memory

 

статус сервера:

accel-cmd show stat
uptime: 0.07:13:06
cpu: 0%
mem(rss/virt): 21872/115644 kB
core:
 mempool_allocated: 15790938
 mempool_available: 412730
 thread_count: 4
 thread_active: 1
 context_count: 768
 context_sleeping: 0
 context_pending: 0
 md_handler_count: 2649
 md_handler_pending: 0
 timer_count: 2269
 timer_pending: 0
ppp:
 starting: 0
 active: 747
 finishing: 0
pptp:
 starting: 0
 active: 360
l2tp:
 starting: 230
 active: 28
pppoe:
 active: 359
 delayed PADO: 0
 recv PADI: 12162
 drop PADI: 0
 sent PADO: 12162
 recv PADR(dup): 11933(4)
 sent PADS: 11932
radius(1, 192.168.128.253):
 request count: 0
 queue length: 0
 auth sent: 13126
 auth lost(total/5m/1m): 1880/3/0
 auth avg query time(5m/1m): 1653/250 ms
 acct sent: 2954
 acct lost(total/5m/1m): 9/0/0
 acct avg query time(5m/1m): 19/12 ms
 interim sent: 250294
 interim lost(total/5m/1m): 716/25/0
 interim avg query time(5m/1m): 38/49 ms

 

Конфиг:

[modules]
#path=/usr/local/lib/accel-ppp
log_file
#log_syslog
#log_tcp
#log_pgsql

pptp
l2tp
pppoe

auth_mschap_v2
#auth_mschap_v1
auth_chap_md5
auth_pap

radius
#ippool
sigchld
#pppd_compat

shaper
#shaper_tbf (obsolete)
#chap-secrets
#net-snmp
logwtmp
#connlimit

#ipv6_nd
#ipv6_dhcp
#ipv6pool

[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4

[ppp]
verbose=1
min-mtu=1280
mtu=1400
mru=1400
ccp=0
#sid-case=upper
#check-ip=0
single-session=replace
#mppe=require
mppe=deny
ipv4=require
ipv6=deny
ipv6-intf-id=0:0:0:1
ipv6-peer-intf-id=0:0:0:2
ipv6-accept-peer-intf-id=1
lcp-echo-interval=10
#lcp-echo-failure=3
lcp-echo-timeout=120
#unit-cache=1000

[auth]
#any-login=0
#noauth=0

[pptp]
bind=172.16.0.1
echo-interval=0
#mppe=allow
mppe=deny
#ip-pool=pool1
verbose=1

[pppoe]
interface=vlan96
interface=vlan97
interface=vlan98
interface=vlan99
interface=vlan100
interface=vlan101
interface=vlan105
#interface=eth1,padi-limit=1000
#ac-name=xxx
#service-name=yyy
#pado-delay=0
#pado-delay=0,100:100,200:200,-1:500
#ifname-in-sid=called-sid
ifname-in-sid=both
tr101=0
#padi-limit=0
#mppe=allow
mppe=deny
#ip-pool=pool2
verbose=1

[l2tp]
bind=172.16.0.1
dictionary=/usr/local/share/accel-ppp/l2tp/dictionary
hello-interval=60
timeout=60
rtimeout=5
retransmit=5
#host-name=accel-ppp
dir300_quirk=1
avp_permissive=1
#secret=
#mppe=allow
mppe=deny
#ip-pool=pool3
verbose=1

[dns]
dns1=8.8.4.4
dns2=8.8.8.8

[wins]
#wins1=172.16.0.1
#wins2=172.16.1.1

[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
nas-identifier=accel-ppp
nas-ip-address=192.168.128.254
gw-ip-address=10.0.0.1
#auth-server=127.0.0.1:1812,testing123 (obsolete)
#acct-server=127.0.0.1:1813,testing123 (obsolete)
#server=127.0.0.1,testing123 (obsolete)
server=192.168.128.253,ХХХХХХХ,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0
dae-server=192.168.128.254:3799,ХХХХХХХХ
verbose=1
#timeout=3
#max-try=3
#acct-timeout=120
#acct-delay-time=0
sid_in_auth=1

[client-ip-range]
#10.0.0.0/8
192.168.0.0/16
172.16.0.0/12

[ip-pool]
gw-ip-address=192.168.0.1
#vendor=Cisco
#attr=Cisco-AVPair
attr=Framed-Pool
192.168.0.2-255
192.168.1.1-255,pool1
192.168.2.1-255,pool2
192.168.3.1-255,pool3
192.168.4.0/24

[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
#log-debug=/dev/stdout
#syslog=accel-pppd,daemon
#log-tcp=127.0.0.1:3000
copy=1
color=1
#per-user-dir=per_user
#per-session-dir=per_session
#per-session=1
level=3

[log-pgsql]
conninfo=user=log
log-table=log

[pppd-compat]
#ip-pre-up=/etc/ppp/ip-pre-up
ip-up=/etc/ppp/ip-up
ip-down=/etc/ppp/ip-down
ip-change=/etc/ppp/ip-change
radattr-prefix=/var/run/radattr
verbose=1

[chap-secrets]
gw-ip-address=192.168.100.1
#chap-secrets=/etc/ppp/chap-secrets
#encrypted=0
#username-hash=md5

[shaper]
vendor=Cisco
attr=Cisco-AVPair
#attr=Filter-Id
#down-burst-factor=0.1
#up-burst-factor=1.0
#latency=50
#mpu=0
#r2q=10
#quantum=1500
#cburst=1534
#cburst=0
#ifb=ifb0
#up-limiter=police
#down-limiter=tbf
#up-limiter=htb
#down-limiter=htb
#leaf-qdisc=sfq perturb 10
verbose=1

#tbf is obsolete, use shaper module
#[tbf]
#attr=Filter-Id
#down-burst-factor=0.1
#up-burst-factor=1.0
#latency=50

[cli]
telnet=127.0.0.1:2000
tcp=127.0.0.1:2001
#password=123

[snmp]
master=0
agent-name=accel-ppp

[connlimit]
limit=10/min
burst=3
timeout=60

[ipv6-pool]
fc00:0:1::/48,64
delegate=fc00:1::/36,48

[ipv6-dns]
#fc00:1::1
#fc00:1::2
#fc00:1::3
#dnssl=suffix1.local.net
#dnssl=suffix2.local.net.

[ipv6-dhcp]
verbose=1
pref-lifetime=604800
valid-lifetime=2592000
route-via-gw=1

 

Linux bras1 2.6.32-5-686 #1 SMP Mon Feb 25 01:04:36 UTC 2013 i686 GNU/Linux

 

Памяти достаточно:

 free -tm
            total       used       free     shared    buffers     cached
Mem:          3548        192       3355          0         10         34
-/+ buffers/cache:        147       3401
Swap:         9535          0       9535
Total:       13084        192      12891

 

И никто не может подключиться, у клиентов 619 ошибка.

После рестарта сервиса, работа восстанавливается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

не знаю, никогда такая ошибка не возникала

 

И как быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Чисто теоретически, если xeb подтвердит- наверное погонять под valgrind?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тут вопрос появился - а как правильно логи ротейтить? попробовал на ходу очистить лог - а он не очистился... Может демону что то шепнуть надо?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.