purecopper Posted December 23, 2013 (edited) · Report post dantist А пробовали сделать выдачу адресов из пула RADIUS, а не accel-ppp? Вот рабочий конфиг, который используется для соединения клиентов с офисной сетью с RADIUS-авторизацией на Windows RRAS и выдачей ip из пула accel-ppp: [modules] log_file pptp l2tp auth_mschap_v2 radius ippool sigchld pppd_compat [core] log-error=/var/log/accel-ppp/core.log thread-count=4 [common] #single-session=replace #sid-case=upper #sid-source=seq [ppp] verbose=1 min-mtu=1280 mtu=1380 mru=1380 ccp=1 #check-ip=0 mppe=require 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=20 #lcp-echo-failure=3 lcp-echo-timeout=120 #unit-cache=1000 [auth] #any-login=0 #noauth=0 [pptp] verbose=1 #echo-interval=30 [pppoe] verbose=1 #ac-name=xxx #service-name=yyy #pado-delay=0 #pado-delay=0,100:100,200:200,-1:500 #ifname-in-sid=called-sid #tr101=1 #padi-limit=0 #ip-pool=pppoe #interface=eth1,padi-limit=1000 interface=eth0 [l2tp] verbose=1 #dictionary=/usr/local/share/accel-ppp/l2tp/dictionary #hello-interval=60 #timeout=60 #rtimeout=5 #retransmit=5 #host-name=accel-ppp #dir300_quirk=0 #secret= #dataseq=allow #reorder-timeout=0 #ip-pool=l2tp [ipoe] verbose=1 username=ifname #password=username lease-time=600 max-lease-time=3600 #unit-cache=1000 #l4-redirect-table=4 #l4-redirect-ipset=l4 #l4-redirect-on-reject=300 shared=0 ifcfg=1 mode=L2 start=dhcpv4 #proxy-arp=0 #nat=0 #proto=100 #relay=10.10.10.10 #attr-dhcp-client-ip=DHCP-Client-IP-Address #attr-dhcp-router-ip=DHCP-Router-IP-Address #attr-dhcp-mask=DHCP-Mask #attr-l4-redirect=L4-Redirect #local-net=192.168.0.0/16 #lua-file=/etc/accel-ppp.lua #offer-delay=0,100:100,200:200,-1:1000 #vlan-mon=eth0,10-200 #vlan-timeout=60 #vlan-name=%I.%N #ip-pool=ipoe interface=eth0 [dns] dns1=192.168.2.5 dns2=192.168.3.4 [wins] #wins1=172.16.0.1 #wins2=172.16.1.1 [radius] dictionary=/usr/share/accel-ppp/radius/dictionary nas-identifier=pptpd nas-ip-address=192.168.2.2 gw-ip-address=192.168.2.2 server=192.168.2.4,,auth-port=1812,acct-port=1813,req-limit=1,fail-time=0 verbose=9 [client-ip-range] disable [ip-pool] gw-ip-address=192.168.2.2 attr=Framed-Pool 192.168.2.100-254 [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=3 [log-pgsql] conninfo=user=log log-table=log [pppd-compat] 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.2.2 [shaper] up-limiter=police down-limiter=tbf verbose=1 [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 Edited December 23, 2013 by purecopper Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
dansit Posted December 23, 2013 · Report post Спасибо за конфиг.Попробую. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Victor Safronov Posted December 23, 2013 · Report post Засабмитил баг в redhat по поводу их косяка с ядром в 6.5. Пока идут в несознанку. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
dansit Posted December 23, 2013 · Report post Попробывал предложенный конфиг. Лог стал очень коротким [2013-12-23 19:10:41]: info: ppp0: send [RADIUS(1) Access-Request id=1 <User-Name "testuser"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address$ [2013-12-23 19:10:41]: info: ppp0: recv [RADIUS(1) Access-Accept id=1 <Framed-IP-Netmask 255.255.255.255> <Framed-Protocol PPP> <PPPD-Upst$ [2013-12-23 19:10:41]: warn: ppp0: ppp: no free IPv4 address [2013-12-23 19:10:41]: info: ppp0: testuser: authentication succeeded [2013-12-23 19:10:41]: warn: ppp0: IPCP: discarding packet [2013-12-23 19:10:41]: info: ppp0: disconnected Но суть осталась таже. Не выделяются адреса. К тому же в дрогом логе появилось Это iprange: iprange module disabled so improper ip address assigning may cause kernel soft lockup! radius: no dm_coa_secret specified, DM/CoA disabled... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
xeb Posted December 23, 2013 · Report post [ip-pool] gw-ip-address=192.168.10.1 attr=Framed-Pool 192.168.10.5-100,name=ippool_god_mode 192.168.20.1-100,name=ippool_all_users Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Victor Safronov Posted December 23, 2013 (edited) · Report post xeb а есть мысли что делать с центос/рхел 6.5? проблема в том, что они бэкпортировали в новое своё ядро 2.6.32-431 модуль gre.c, причём ни в одном из ванильных ядер с 2.6.37 по 3.12 этого файла нет в том виде, в котором он у RH. Судя по содержимому это их вольная компиляция из gre_demux.c и gre_offload.c. Если при этом пробовать собрать поверх этого pptp.c из какого-нибудь из свежих ядер, то оно ругается на отсутствующий хедер-файл ppp_ioctl.h В общем, надо что-нибудь делать :) Edited December 23, 2013 by Victor Safronov Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
GreyBox Posted December 23, 2013 · Report post Abram, спасибо, уже нашел по таймауту аттрибут Radius: Session-Timeout, все ок. Насчет "не отвечаю" - так и не понял, как это сделать во FreeRadius. Если возвращать из скрипта вместо RLM_MODULE_OK - RLM_MODULE_REJECT, accel начинает сыпать аккаунтинги один за другим. А чтобы совсем не ответить - не нашел опции. Повесил пока в acct-interim-update проверку услуги и обрыв через accel-cmd terminate. Правда, при этом FreeRadius отбрасывает stop-пакет аккаунтинга из accel-cmd. Не слать бы его тогда совсем. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ALex_hha Posted December 23, 2013 · Report post А кто-нибудь сталкивался с тем, что macos клиенты не получают ДНС сервер, указанный в accel-ppp? Быстрое гугление не дало внятного ответа Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ALex_hha Posted December 23, 2013 · Report post Засабмитил баг в redhat по поводу их косяка с ядром в 6.5. Пока идут в несознанку. а можно линк? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kayot Posted December 23, 2013 · Report post Victor Safronov Собрать нормальное, свежее, не ванильное ядро не вариант? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ALex_hha Posted December 23, 2013 · Report post А поддерживать такое ядро на пару десятках серверов дядя вася будет? :) Я проверил на ядре 3.10.x из ELRepo все отлично работает, так как попросил включить модуль l2tp, который по дефолту выключен, обещали со следующего релиза исправить. Но все таки хотелось бы работать на родной ядре CentOS, имхо Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Abram Posted December 23, 2013 · Report post Насчет "не отвечаю" - так и не понял, как это сделать во FreeRadius. Если возвращать из скрипта вместо RLM_MODULE_OK - RLM_MODULE_REJECT, accel начинает сыпать аккаунтинги один за другим. А чтобы совсем не ответить - не нашел опции. Сейчас в своём коде посмотрел - я возвращаю RLM_MODULE_REJECT. Да, accel в таком случае несколько раз переспрашивает, но это нормально. На самом деле, здесь виноват протокол RADIUS (sic!). Я искал этот момент в RFC - написано, что если RADIUS-сервер не может сделать запись accounting, то он не должен отвечать вообще. Reject-а у accounting не предусмотрено. accel, как порядочный RADIUS-клиент, сначала пытается повторить попытку (а вдруг проблема с сетью? а вдруг ещё ответит?), после чего вырубает сессию. FreeRADIUS, кстати, умеет кешировать запросы и для 2-3 одинаковых accounting request-ов может запустить обработчик всего один раз. Посмотрите в эту сторону. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
dansit Posted December 24, 2013 · Report post [ip-pool] gw-ip-address=192.168.10.1 attr=Framed-Pool 192.168.10.5-100,name=ippool_god_mode 192.168.20.1-100,name=ippool_all_users Я понял что в этом куске какой то косяк. Но какой? Я никак не пойму.Не тот диапазон Адресов? Хорошо. Переделал на это. Раз говорят что выдаваемые адреса должны попадать в диапазон 192.168.0.0/20. Хотя это не радует, если это так. [radius] nas-identifier=accel-ppp nas-ip-address=127.0.0.1 gw-ip-address=192.168.5.1 server=127.0.0.1,password,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0 dae-server=127.0.0.1:3799,password verbose=5 timeout=2 max-try=1 acct-interim-interval=60 [client-ip-range] 192.168.0.0/20 [ip-pool] gw-ip-address=192.168.5.1 attr=Framed-Pool 192.168.5.5-100,ippool_god_mode 192.168.5.100-150,ippool_all_users Но результат тот же - адреса не выдаются. Что еще может быть? Да и еще. Насколько информативность сообщения изменяется при сборке с ключами дебуг или релиз? Сейчас собран с релиз. Добавит ли инфо для анализа дебуг? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
xeb Posted December 24, 2013 · Report post 192.168.5.5-100,ippool_god_mode => 192.168.5.5-100,name=ippool_god_mode Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
GreyBox Posted December 24, 2013 · Report post Насчет "не отвечаю" - так и не понял, как это сделать во FreeRadius. Если возвращать из скрипта вместо RLM_MODULE_OK - RLM_MODULE_REJECT, accel начинает сыпать аккаунтинги один за другим. А чтобы совсем не ответить - не нашел опции. Сейчас в своём коде посмотрел - я возвращаю RLM_MODULE_REJECT. Да, accel в таком случае несколько раз переспрашивает, но это нормально. На самом деле, здесь виноват протокол RADIUS (sic!). Я искал этот момент в RFC - написано, что если RADIUS-сервер не может сделать запись accounting, то он не должен отвечать вообще. Reject-а у accounting не предусмотрено. accel, как порядочный RADIUS-клиент, сначала пытается повторить попытку (а вдруг проблема с сетью? а вдруг ещё ответит?), после чего вырубает сессию. FreeRADIUS, кстати, умеет кешировать запросы и для 2-3 одинаковых accounting request-ов может запустить обработчик всего один раз. Посмотрите в эту сторону. Стоял большой таймаут ожидания ответов RADIUS, поэтому accel и слал аккаунтинг один за другим... Все ок :) Чем отличается soft и hard? terminate csid <id> [soft|hard]- terminate session by calling station id Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Victor Safronov Posted December 24, 2013 · Report post Засабмитил баг в redhat по поводу их косяка с ядром в 6.5. Пока идут в несознанку. а можно линк? Он относится к ветке kernel и потому закрыт по дефолту от посторонних. https://bugzilla.redhat.com/show_bug.cgi?id=1044593 вот линк, который вас, скорее всего пошлёт :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Victor Safronov Posted December 24, 2013 · Report post xeb хоть как-нибудь отзовитесь по проблеме :) просто нужно понимать, есть ли смысл ждать фикса через сам модуль, или ничего не остаётся как использовать в центосе свежее ядро, с уже включённым модулем? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ALex_hha Posted December 24, 2013 · Report post вот линк, который вас, скорее всего пошлёт :) да, не захотели показывать - редиски :) Неужели никто не сталкивался с багом/фичей на MacOS (я насчет не получения ДНС сервера) ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
xeb Posted December 24, 2013 · Report post хоть как-нибудь отзовитесь по проблеме :) ну можно конечно бэкпортировать пптп, но сейчас времени нет, может в новогодние каникулы... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
xeb Posted December 24, 2013 · Report post Неужели никто не сталкивался с багом/фичей на MacOS (я насчет не получения ДНС сервера) ? лог подключения есть ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ALex_hha Posted December 24, 2013 (edited) · Report post лог подключения есть ? Нужно с каким то уровнем отладки или достаточно простого? Edited December 24, 2013 by ALex_hha Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
xeb Posted December 24, 2013 · Report post лучше 5 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ALex_hha Posted December 24, 2013 (edited) · Report post Держи Dec 24 10:34:54 perflect accel-pppd: accel-ppp version 1.7.3 Dec 24 10:48:42 perflect accel-pppd: pptp: new connection from 46.4.xxx.xxx Dec 24 10:48:42 perflect accel-pppd: :: recv [PPTP Start-Ctrl-Conn-Request <Version 1> <Framing 1> <Bearer 1> <Max-Chan 0>] Dec 24 10:48:42 perflect accel-pppd: :: send [PPTP Start-Ctrl-Conn-Reply <Version 1> <Result 1> <Error 0> <Framing 3> <Bearer 3> <Max-Chan 1>] Dec 24 10:48:42 perflect accel-pppd: :: recv [PPTP Outgoing-Call-Request <Call-ID 466> <Call-Serial 0> <Min-BPS 300> <Max-BPS 100000000> <Bearer 3> <Framing 3> <Window-Size 64> <Delay 0>] Dec 24 10:48:42 perflect accel-pppd: :: send [PPTP Outgoing-Call-Reply <Call-ID e> <Peer-Call-ID 466> <Result 1> <Error 0> <Cause 0> <Speed 100000000> <Window-Size 64> <Delay 0> <Channel 0>] Dec 24 10:48:42 perflect accel-pppd: ppp0:: connect: ppp0 <--> pptp(46.4.xxx.xxx) Dec 24 10:48:42 perflect accel-pppd: ppp0:: send [LCP ConfReq id=1 <auth MSCHAP-v2> <magic 41a7c4c9> <mru 1396>] Dec 24 10:48:42 perflect accel-pppd: ppp0:: recv [PPTP Set-Link-Info] Dec 24 10:48:42 perflect accel-pppd: ppp0:: recv [LCP ConfReq id=1 < 2 6 0 0 0 0 > <magic 7ace0c2> <pcomp> <accomp>] Dec 24 10:48:42 perflect accel-pppd: ppp0:: send [LCP ConfRej id=1 < 2 6 0 0 0 0 > <pcomp> <accomp>] Dec 24 10:48:42 perflect accel-pppd: ppp0:: recv [LCP ConfReq id=2 <magic 7ace0c2>] Dec 24 10:48:42 perflect accel-pppd: ppp0:: send [LCP ConfAck id=2 ] Dec 24 10:48:45 perflect accel-pppd: ppp0:: send [LCP ConfReq id=1 <auth MSCHAP-v2> <magic 41a7c4c9> <mru 1396>] Dec 24 10:48:45 perflect accel-pppd: ppp0:: recv [LCP ConfAck id=1 <auth MSCHAP-v2> <magic 41a7c4c9> <mru 1396>] Dec 24 10:48:45 perflect accel-pppd: ppp0:: send [MSCHAP-v2 Challenge id=1 <a9713561a3f535dc6b2fc862aa7b2d8>] Dec 24 10:48:45 perflect accel-pppd: ppp0:: recv [MSCHAP-v2 Response id=1 <4dd1befce42b6bfaefb7a3b4566f142>, <1d1048e55e53ba13fb894a77723235a0d6291a48acab8b64>, F=0, name="adomoradov"] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [MSCHAP-v2 Success id=1 "S=B16FB07072D20A586F1AB7A779BBC5914EAB1847 M=Authentication succeeded"] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [CCP ConfReq id=1 <mppe +H -M +S -L -D -C>] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [iPCP ConfReq id=1 <addr 192.168.1.1>] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: adomoradov: authentication succeeded Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: recv [CCP ConfReq id=1 <mppe +H -M +S -L -D -C> (mppe enabled)] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [CCP ConfAck id=1] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: recv [CCP ConfAck id=1 <mppe +H -M +S -L -D -C>] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: recv [iPCP TermAck id=1] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: recv [iPCP ConfReq id=1 <addr 0.0.0.0> <dns1 0.0.0.0> <dns2 0.0.0.0>] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [iPCP ConfNak id=1 <addr 192.168.1.10> <dns2 8.8.8.8>] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: IPV6CP: discarding packet Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [LCP ProtoRej id=3 <8057>] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: recv [iPCP ConfReq id=2 <addr 192.168.1.10> <dns1 0.0.0.0> <dns2 8.8.8.8>] Dec 24 10:48:45 perflect accel-pppd: ppp0:adomoradov: send [iPCP ConfAck id=2] Dec 24 10:48:48 perflect accel-pppd: ppp0:adomoradov: send [iPCP ConfReq id=1 <addr 192.168.1.1>] Dec 24 10:48:48 perflect accel-pppd: ppp0:adomoradov: recv [iPCP ConfAck id=1 <addr 192.168.1.1>] Конфиг accel [modules] log_syslog pptp l2tp ippool auth_mschap_v2 chap-secrets [core] log-error=/var/log/accel-ppp/core.log thread-count=4 [ppp] verbose=1 min-mtu=1280 mtu=1396 mru=1396 ipv4=require mppe=require ipv6=deny single-session=deny [lcp] echo-interval=30 echo-failure=3 [pptp] verbose=1 mppe=require [l2tp] verbose=1 mppe=require secret=1234567 [dns] dns2=8.8.8.8 dns2=8.8.4.4 [client-ip-range] disable [ip-pool] gw-ip-address=192.168.1.1 192.168.1.10-50 [log] log-emerg=/var/log/accel-ppp/emerg.log syslog=accel-pppd,daemon copy=1 level=5 [chap-secrets] chap-secrets=/etc/ppp/chap-secrets [cli] telnet=127.0.0.1:2000 tcp=127.0.0.1:2001 password=1234567 P.S. пока делал вроде нашел причину. Проблема была в том, что у меня была очепятка в конфиге [dns] dns2=8.8.8.8 dns2=8.8.4.4 после исправления на [dns] dns1=8.8.8.8 dns2=8.8.4.4 все заработало, только вот не понятно, почему windows/linux работали даже с такой очепяткой, а macos нет Edited December 24, 2013 by ALex_hha Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
dansit Posted December 25, 2013 · Report post 192.168.5.5-100,ippool_god_mode => 192.168.5.5-100,name=ippool_god_mode Ну это уже переделал. на это. Кусок уже привел выше, но повторю [radius] nas-identifier=accel-ppp nas-ip-address=127.0.0.1 gw-ip-address=192.168.5.1 server=127.0.0.1,password,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0 dae-server=127.0.0.1:3799,password verbose=5 timeout=2 max-try=1 acct-interim-interval=60 [client-ip-range] 192.168.0.0/20 [ip-pool] gw-ip-address=192.168.5.1 attr=Framed-Pool 192.168.5.5-100,ippool_god_mode 192.168.5.100-150,ippool_all_users Но результат тот же. Не выделяются адреса и все тут. Уже всякая фигня чудится. Может я как ко не так собираю аксель? Я для теста поднял 32 бит дебиан на другой машине. Собрал ассель на нем. Результат все такой же :( Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
srg555 Posted December 25, 2013 · Report post dansit опять нет name= Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...