Abram Опубликовано 9 июня, 2014 Поделитесь идеологией vlan-per-user + qinq. В идеале порт агрегации на один коммутатор доступа, тогда все ясно - svlan на коммутатор, cvlan на клиента. А если за портом агрегации куст из нескольких свиче доступа, как поступаете? svlan на куст или по прежднему на коммутатор, но тогда нужен доступ с поддержкой qinq... svlan на аггрегацию. Ведем учёт cvlan-ов скриптом в MySQL-базе. При генерации конфига для свитча доступа автоматом добавляются на аплинки все "соседние" cvlan. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kayot Опубликовано 9 июня, 2014 Чем занимается accel? Как это можно поглядеть? попробуй perfа лучше callgrind К сожалению я от этого довольно далек. Можешь озвучить условия проверки(дебаг-релиз сборка софта и ядра), нужные тестовые пакеты и в идеале строки запуска утилит? strace и perf top на релизной конфигурации запускал, ничего интересного не увидел. [root@ipoe1 ~]# strace -c -p 26468 Process 26468 attached - interrupt to quit ^CProcess 26468 detached % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 100.00 2.350000 1175000 2 2 rt_sigtimedwait 0.00 0.000000 0 2 2 rt_sigreturn ------ ----------- ----------- --------- --------- ---------------- 100.00 2.350000 4 4 total [root@ipoe1 ~]# perf top -p 26468 19.42% libpthread-2.12.so [.] 0x000000000000c182 6.29% [kernel] [k] _raw_spin_lock_irq 5.53% libpthread-2.12.so [.] pthread_spin_lock 4.55% [kernel] [k] _raw_spin_lock 3.70% libtriton.so [.] triton_thread 1.76% libtriton.so [.] mempool_free 1.47% libtriton.so [.] triton_context_call 1.36% libtriton.so [.] mempool_alloc 1.30% [ip_tables] [k] ipt_do_table 1.15% [kernel] [k] __netif_receive_skb_core 1.14% [kernel] [k] try_to_wake_up 1.07% [cls_u32] [k] u32_classify 1.00% [bnx2] [k] bnx2_rx_int Samples: 4K of event 'cycles', Event count (approx.): 282284945, DSO: libpthread-2.12.so 76.29% [.] 0x000000000000c182 ◆ 17.02% [.] pthread_spin_lock ▒ 2.31% [.] pthread_mutex_lock ▒ 1.18% [.] pthread_mutex_unlock ▒ 0.98% [.] __libc_sigwait ▒ 0.72% [.] pthread_kill ▒ 0.53% [.] __pthread_enable_asynccancel ▒ 0.52% [.] __pthread_disable_asynccancel Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
byteplayer Опубликовано 10 июня, 2014 У кого взлетел accel c shared=1 mode=L2? Выдача адресов dhcp-модулем freeradius, авторизация freeradius. IP реальные. У меня что-то не взлетает. Есть кто, кому конфиг показать и ткнуть на бока? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 11 июня, 2014 xeb, static void parse_attr(struct rad_attr_t *attr, int dir, int *speed, int *burst, int *tr_id) else if (attr->attr->type == ATTR_TYPE_INTEGER) *speed = attr->val.integer; ИМХО надо else if (attr->attr->type == ATTR_TYPE_INTEGER) *speed = conf_multiplier * attr->val.integer; Сорри, что не патч, но помоему я его оформлять дольше буду, чем расскажу тут :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 11 июня, 2014 Сорри, что не патч, но помоему я его оформлять дольше буду, чем расскажу тут :) Это слишком большое изменение. Здесь pull request надо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 11 июня, 2014 (изменено) Поделитесь идеологией vlan-per-user + qinq. В идеале порт агрегации на один коммутатор доступа, тогда все ясно - svlan на коммутатор, cvlan на клиента. А если за портом агрегации куст из нескольких свиче доступа, как поступаете? svlan на куст или по прежднему на коммутатор, но тогда нужен доступ с поддержкой qinq... svlan на аггрегацию. Ведем учёт cvlan-ов скриптом в MySQL-базе. При генерации конфига для свитча доступа автоматом добавляются на аплинки все "соседние" cvlan. А если монтажник сменил порт клиенту, как вы регистрируйте клиента? Если я не отдаю атрибут DCHP-Router-IP-address , то клиент не может получить IP. Отдаю IP из радиус. man accel-ppp.conf [ipoe] gw-ip-address=x.x.x.x/mask Specifies address to be used as server ip address if radius can assign only client address. In such case if client address is matched network and mask then specified address and mask will be used. You can specify multiple such options. Поделитесь идеологией vlan-per-user + qinq. В идеале порт агрегации на один коммутатор доступа, тогда все ясно - svlan на коммутатор, cvlan на клиента. А если за портом агрегации куст из нескольких свиче доступа, как поступаете? svlan на куст или по прежднему на коммутатор, но тогда нужен доступ с поддержкой qinq... Спасибо! за gw-ip-address=x.x.x.x/mask , решило проблему , теперь не отдаю DHCP-Mask и Router-IP-Address. Изменено 11 июня, 2014 пользователем roysbike Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 13 июня, 2014 Проявилась сегодня проблемка. Клиенты перестали получать IP. Захожу cмотрю show sessions, все сессии finish и не мог скинуть их с сервера. Перезапустил , все заработало. [ipoe] verbose=5 username=ifname lease-time=60 max-lease-time=180 shared=0 ifcfg=0 mode=L2 start=dhcpv4 proxy-arp=0 proto=100 attr-dhcp-client-ip=Framed-IP-Address #attr-dhcp-client-ip=DHCP-Client-IP-Address #attr-dhcp-router-ip=DHCP-Router-IP-Address #attr-dhcp-mask=DHCP-Mask gw-ip-address=172.30.0.29/16 attr-l4-redirect=L4-Redirect l4-redirect-ipset=debtors interface=vlan2000 interface=vlan2001 interface=vlan2002 interface=vlan2003 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mr.Scamp Опубликовано 14 июня, 2014 (изменено) А как работает accel-ppp с IPv6 в режиме IPoE? Собираемся делать dual-stack с shared=1, mode=L2, vlan-mon. Изменено 14 июня, 2014 пользователем mr.Scamp Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kayot Опубликовано 14 июня, 2014 ipv6 пока только в проекте Я бы тоже не отказался от работающего v6, пора уже хотя бы в тестовом виде начинать внедрение. P.S. неделю работает IPOE на 1.8.0, vlan per user, полет отличный. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mr.Scamp Опубликовано 14 июня, 2014 Спасибо :) Еще один вопрос новичка - а как установить модуль ядра ipoe на wheezy? sasha@bras1:~/src/accel-ppp-code/build$ sudo make -C /usr/src/linux-headers-3.2.0-4-amd64/ M=/home/sasha/src/accel-ppp-code/build/drivers/ipoe/drivers/ipoe modules_install make: Entering directory `/usr/src/linux-headers-3.2.0-4-amd64' DEPMOD 3.2.0-4-amd64 Warning: you may need to install module-init-tools See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt make: Leaving directory `/usr/src/linux-headers-3.2.0-4-amd64' Модуль собирается, но не ставится в /lib/modules. Его нужно руками копировать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Lynx10 Опубликовано 14 июня, 2014 Спасибо :) Еще один вопрос новичка - а как установить модуль ядра ipoe на wheezy? sasha@bras1:~/src/accel-ppp-code/build$ sudo make -C /usr/src/linux-headers-3.2.0-4-amd64/ M=/home/sasha/src/accel-ppp-code/build/drivers/ipoe/drivers/ipoe modules_install make: Entering directory `/usr/src/linux-headers-3.2.0-4-amd64' DEPMOD 3.2.0-4-amd64 Warning: you may need to install module-init-tools See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt make: Leaving directory `/usr/src/linux-headers-3.2.0-4-amd64' Модуль собирается, но не ставится в /lib/modules. Его нужно руками копировать? можна и руками Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ykorikk Опубликовано 15 июня, 2014 ACCEL_PPP_VERSION "92aa52c116cdd1a5df42c1437fe9d68b3a1c122b" Ошибочка закралась у вас: /accel-ppp-code/accel-pppd/logs/log_pgsql.c --- log_pgsql_old.c 2014-06-15 11:28:43.502592904 +0300 +++ log_pgsql.c 2014-06-15 11:24:10.627911936 +0300 @@ -86,7 +86,7 @@ sleeping = 1; spin_unlock(&queue_lock); if (need_close) { - triton_md_unregister_handler(&pgsql_hnd); + triton_md_unregister_handler(&pgsql_hnd, 1); PQfinish(conn); conn = NULL; triton_context_unregister(&pgsql_ctx); @@ -267,7 +267,7 @@ { spin_lock(&queue_lock); if (sleeping) { - triton_md_unregister_handler(&pgsql_hnd); + triton_md_unregister_handler(&pgsql_hnd, 1); PQfinish(conn); conn = NULL; triton_context_unregister(&pgsql_ctx); Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 16 июня, 2014 Коллеги , помогите решить задачку. Планирую переводить на IPoE , интересует вопрос. Например логина eth1.1500.1 нет в базе, как мне отдать клиенту IP из спец пула чтобы кинуть на старицу регистрации. У кого так реализовано? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dimka88 Опубликовано 16 июня, 2014 (изменено) Коллеги , помогите решить задачку. Планирую переводить на IPoE , интересует вопрос. Например логина eth1.1500.1 нет в базе, как мне отдать клиенту IP из спец пула чтобы кинуть на старицу регистрации. У кого так реализовано? Это реализуется на стороне биллинга. У вас какой биллинг? Изменено 16 июня, 2014 пользователем Dimka88 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 16 июня, 2014 Коллеги , помогите решить задачку. Планирую переводить на IPoE , интересует вопрос. Например логина eth1.1500.1 нет в базе, как мне отдать клиенту IP из спец пула чтобы кинуть на старицу регистрации. У кого так реализовано? Это реализуется на стороне биллинга. У вас какой биллинг? самописный, расскажите логику , объясню программеру он впилит. Я пока до конца не въеду. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kayot Опубликовано 16 июня, 2014 roysbike Логика - радиус должен вместо отбоя неизвестному логину отвечать ok и давать ip из гостевого блока. У меня радиус отвечает ok всегда, а выдачу нужных адресов обеспечивает самописный dhcp-сервер, конечная реализация не приципиальна. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 17 июня, 2014 самописный, расскажите логику , объясню программеру он впилит. Я пока до конца не въеду. Неавторизованным обманентам выдается Access-Accept + IP из спец. пула. Всё, что из этого пула, на NAS-е редиректится на страницу "введи логин". Пользователь вводит логин-пароль. После правильного ввода следует оборвать сессию (посредством CoA либо отстуствием ответа из радиуса на Interim-Update). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ichthyandr Опубликовано 18 июня, 2014 (изменено) самописный, расскажите логику , объясню программеру он впилит. Я пока до конца не въеду. Неавторизованным обманентам выдается Access-Accept + IP из спец. пула. Всё, что из этого пула, на NAS-е редиректится на страницу "введи логин". Пользователь вводит логин-пароль. После правильного ввода следует оборвать сессию (посредством CoA либо отстуствием ответа из радиуса на Interim-Update). странице авторизации както доставляется инфа номер интерфейса + мак? Интересует ситуация именно Л2-коннектед & влан на абонента Изменено 18 июня, 2014 пользователем ichthyandr Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 18 июня, 2014 странице авторизации както доставляется инфа номер интерфейса + мак? А зачем если эти данные знает биллинг (сессия-то поднята)? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
911 Опубликовано 18 июня, 2014 а если выдать reject, accel сам выдаст ип из своего гостевого пула, есть ли способ передать биллингу username? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ichthyandr Опубликовано 18 июня, 2014 (изменено) странице авторизации както доставляется инфа номер интерфейса + мак? А зачем если эти данные знает биллинг (сессия-то поднята)? как зачем? аццель авторизует абнента по qnq интерфейсу + мак. Клиент поменял мак или вообще еще не подключался ниразу, редиректим на страницу авторизации в биллинг. В большинстве биллингов доступ к учетке авторизуется через логин/пароль, абонент вводит логин/пароль. как странице авторизации передать ЕЩЕ И qnq + мак, чтобы определить валидность этой связки? Есть подозрение - вытащить через выданный IP на страничке qnq+mac из текущей сессии? Изменено 18 июня, 2014 пользователем ichthyandr Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
911 Опубликовано 18 июня, 2014 вытащить через выданный IP на страничке qnq+mac из текущей сессии ну да Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 19 июня, 2014 Клиент поменял мак или вообще еще не подключался ниразу, редиректим на страницу авторизации в биллинг. В большинстве биллингов доступ к учетке авторизуется через логин/пароль, абонент вводит логин/пароль. как странице авторизации передать ЕЩЕ И qnq + мак, чтобы определить валидность этой связки? Биллинг выдает гостевой адрес, поднимается гостевая сессия. При вводе логина-пароля - известен айпи, т.е. известна сессия, т.е. известны логин и мак... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 19 июня, 2014 Коллеги , в продолжении темы. Настроил freeradius, чтобы при смене mac-address , кидало на страницу регистрации. Например клиент сменил устройство или монтажник сменил порт клиенту. Если auth прошла, то клиенту отдается Framed-IP-Address из базы. Если User-Name базе не известен, то разрешаем auth и отдаю Framed-Pool- guestpool в accel-ppp заведен guestpool. Вопрос, как мне быть , если Username например vlan1500.1 есть в базе, но не совпадает mac-address , клиенту отдается Framed-IP-Address и Framed-Pool, как мне выпилить Framed-IP-Address. Пока в голову не приходит. unlang в default if ("%{sql:SELECT COUNT(*) FROM `radcheck` WHERE username = '%{User-Name}' AND mac = '%{Calling-Station-Id}'}" >= 1 && NAS-Identifier == "ipoe") { ok update control { Auth-Type := "Accept" } } elsif (NAS-Identifier == "mpd") { ok } else { update control { Auth-Type := "Accept" } update reply { Framed-Pool := "guestpool" Reply-Message = "Hello , last MAC-address + %{User-name} not correct or %{User-Name} not registered" } } Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 19 июня, 2014 roysbike http://lists.freeradius.org/pipermail/freeradius-users/2008-January/024806.html - не то? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...