forum.bitel.ru
http://forum.bitel.ru/

Вопрос про 691 ошибку
http://forum.bitel.ru/viewtopic.php?f=5&t=1212
Страница 1 из 1

Автор:  S [ 15 июн 2008, 21:55 ]
Заголовок сообщения:  Вопрос про 691 ошибку

Прочитал http://wiki.bgbilling.ru/index.php/Детальное_информирование_абонентов_о_причинах_ошибки_691. В принципе саму суть уловил. Хотелось бы понять некоторые вещи, уточнить скорее, верно ли я понимаю.
Есть NAS (FreBSD,mpd4). При данной ошибке выдаем ACCEPT с необходимыми аттрибутами (длительность сессии, IP-адрес для редиректа и т.п.) и совершаем редирект данной сети (ipfw на редирект через gre сразу можно настроить) на порт прокси через gre. Немного не понятна другая ситуация, при попытке http-запроса конкретным клиентом, как он узнает о своей конкретной ошибке.
Видел табличку dialup_conn_error куда заносится ip и error, то есть в данном, моем, случае, необходимо вносить ошибку и ip, который я выдаю клиенту через новые аттрибуты.
А далее, прокси-сервер делает sql-запрос, выборку по ip и выдает http-страницу. Подскажите, я все верно понимаю?

Автор:  Victor [ 16 июн 2008, 07:55 ]
Заголовок сообщения: 

Да так и есть.
По поводу самой схемы. Был написан простой WCCP-информер для циски, чтобы исключить применение Oops и заменить его nginx. Сейчас гоняется в тесте, отлавливаются ошибки конфигурации nginx.

Автор:  S [ 16 июн 2008, 08:04 ]
Заголовок сообщения: 

Ладно, попробую реализовать, а там поглядим. В принципе и в апаче mod_proxy я где-то видел, а ngnix сам из себя прокси-сервер строит? Не уверен, что squid умеет делать sql-запросы, попробуем. Спасибо, что откликнулись.

Автор:  snark [ 17 июн 2008, 00:19 ]
Заголовок сообщения: 

не пойму, в чем Ваша проблема ... сессия инициируется, скрипт выдает параметры, выдает клиенту адрес, Вам сложно зафорвардить (ipfw fwd) этот адрес на страничку виртуал хоста (дабы апач ответил нужным хостом - поднимите Ваш error.site.ru выше остальных виртуалхостов, смотреть через httpd -S) в апаче без применения проксей и прочих gre кои необходимы только в связке wccp enabled cisco + wccp aware proxy?

Автор:  S [ 17 июн 2008, 06:34 ]
Заголовок сообщения: 

Любые мысли полезны )

Автор:  Victor [ 17 июн 2008, 08:04 ]
Заголовок сообщения: 

snark писал(а):
не пойму, в чем Ваша проблема ... сессия инициируется, скрипт выдает параметры, выдает клиенту адрес, Вам сложно зафорвардить (ipfw fwd) этот адрес на страничку виртуал хоста (дабы апач ответил нужным хостом - поднимите Ваш error.site.ru выше остальных виртуалхостов, смотреть через httpd -S) в апаче без применения проксей и прочих gre кои необходимы только в связке wccp enabled cisco + wccp aware proxy?

Только проблема в том, что в непионерской сети нет фряшки в качестве маршрутизаторов/бриджей между клиентом и интернетом.

Автор:  Администратор [ 17 июн 2008, 12:52 ]
Заголовок сообщения: 

В радиусе есть такой атрибут Replay-Message, случаем циска не умеет его передавать как-нибудь клиенту в окошко? В качестве причины отлупа. Или он не для того?

Автор:  snark [ 17 июн 2008, 17:15 ]
Заголовок сообщения: 

Victor писал(а):
Только проблема в том, что в непионерской сети нет фряшки в качестве маршрутизаторов/бриджей между клиентом и интернетом.

почитайте, пожалуйста, внимательно чем NAS-ят в этой сети:
S писал(а):
Есть NAS (FreBSD,mpd4).

я склонен считать что именно через фрю в этой сети и выпускают клиентов в инет и именно поэтому я и писал про фрю ...
перефразирую свой предыдущий ответ - ув. S все что Вам надо - это использовать тот же метод который используется при принудительном прозрачном проксировании, но только форвардить пакеты Вы будете не на сквид, а на адрес/порт виртуалхоста апача ... ну или форвардите их на сквид, а уже им решайте какие адреса пойдут в инет через сквид (для экономии полосы), а какие увидят страничку ;)

Автор:  S [ 17 июн 2008, 20:45 ]
Заголовок сообщения: 

На циске не сошелся свет клином, а то, что не используется NAS-циска так это не показатель. За советы спасибо, действительно проще на вхост апача форвардить.

Автор:  Victor [ 18 июн 2008, 10:12 ]
Заголовок сообщения: 

про nginx выше я тоже самое написал... просто не вижу смысла ставить монстра апачи.

Автор:  S [ 18 июн 2008, 11:32 ]
Заголовок сообщения: 

nginx не использовал, пока на него времени нет, апач не такой уж и монстр )

Автор:  romero [ 12 дек 2008, 12:46 ]
Заголовок сообщения: 

При реализации данного примера из WiKi возник вопрос:
адреса клиентов типа 192.168... т.е. 192.168.255.255 = 3232301055 DEC
int: до 2147483647
Соответственно нада long.
Но в API есть setIntValue(int value), а не setLongValue(long value).
Что можете подсказать? (у клиентов статические ИПы перебивать не хотелось бы)))

Автор:  Victor [ 12 дек 2008, 14:56 ]
Заголовок сообщения: 

php-шный ip2long() в этом случае начнет давать минусовые значения, можно собсно и их использовать.

Автор:  romero [ 12 дек 2008, 15:41 ]
Заголовок сообщения: 

setIntValue(int value) используем в http://wiki.bgbilling.ru/index.php/Передача_ACCEPT_вместо_REJECT_вместе_с_доп._аттрибутами , т.е. нада передать ИП в атрибуты RADIUS , а именно

// Framed-IP-Address
raIp = new RadiusAttribute( 8 );
raIp.setIntValue( login_ip );

причем тут php-шный ip2long() , мона поподробнее?

Автор:  Amir [ 12 дек 2008, 18:30 ]
Заголовок сообщения: 

В int влезает ip4 адреc:
Код:
long f = 0xFFFFFFFFL;
System.out.println(f);
int i = (int)f;
System.out.println(i);
f = (long)i&0xFFFFFFFFL;
System.out.println(f);
--
4294967295
-1
4294967295

Также raIp.setIntValue( int ) аналогично raIp.setByteValue( Utils.convertIntToBytes( int ) )

Автор:  romero [ 12 дек 2008, 19:37 ]
Заголовок сообщения: 

В скрипте:

f = 3232237110;

Ответ:
Error or number too big for integer type: 3232237110Parse error at line X, column X: Error or number too big for integer type: 3232237110

192.168.6.54 = 3232237110 DEC

наверно что то не так)

лог скрипта из WiKi:


Sourced file: inline evaluation of: ``import bitel.billing.server.call.bean.Login; import bitel.billing.server.radius. . . . '' : Method Invocation rs.getIntcom.mysql.jdbc.exceptions.MySQLDataException: '3232237110' in column '1' is outside valid range for the datatype INTEGER.

Автор:  Victor [ 15 дек 2008, 07:50 ]
Заголовок сообщения: 

ip2long() непричем, просто он показывает, что происходит со значением типа int, при превышении. Начинает использоваться отрицательные значения.

Автор:  snark [ 16 дек 2008, 15:08 ]
Заголовок сообщения: 

romero писал(а):
Error or number too big for integer type: 3232237110Parse error at line X, column X: Error or number too big for integer type: 3232237110

ерунда какая то ... влазит оно в int:
Код:
mysql> SELECT INET_NTOA(3232237110);
+-----------------------+
| INET_NTOA(3232237110) |
+-----------------------+
| 192.168.6.54          |
+-----------------------+
1 row in set (0.00 sec)

mysql> SELECT INET_ATON('192.168.6.54');
+---------------------------+
| INET_ATON('192.168.6.54') |
+---------------------------+
|                3232237110 |
+---------------------------+
1 row in set (0.00 sec)

Автор:  romero [ 16 дек 2008, 19:38 ]
Заголовок сообщения: 

Amir писал(а):
В int влезает ip4 адреc:
Код:
long f = 0xFFFFFFFFL;
System.out.println(f);
int i = (int)f;
System.out.println(i);
f = (long)i&0xFFFFFFFFL;
System.out.println(f);
--
4294967295
-1
4294967295

Также raIp.setIntValue( int ) аналогично raIp.setByteValue( Utils.convertIntToBytes( int ) )


пасиб заработало

Автор:  Net_andy [ 23 апр 2009, 17:28 ]
Заголовок сообщения: 

вот добрался до этого раздела:

при соединении клиента с сервером выкидывает "ошибка 691"

в логах mpd.log -
Apr 23 22:06:16 xxxxxxx mpd: Name: "test"
Apr 23 22:06:16 xxxxxxx mpd: [p0000] AUTH: Auth-Thread started
Apr 23 22:06:16 xxxxxxx mpd: [p0000] AUTH: Trying RADIUS
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusAuthenticate for: test
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusAddServer Adding 192.168.1.56
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusStart: rad_put_string(RAD_NAS_IDENTIFIER): xxxxxxx.xxxxxxxx.ru
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusStart: rad_put_addr(RAD_NAS_IP_ADDRESS): 192.168.1.56
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: Adding Message Authenticator
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusStart: rad_put_int(RAD_NAS_PORT): 0
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusStart: rad_put_int(RAD_NAS_PORT_TYPE): 5
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusStart: rad_put_int(RAD_SERVICE_TYPE): RAD_FRAMED
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusStart: rad_put_int(RAD_FRAMED_PROTOCOL): RAD_PPP
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusStart: rad_put_string(RAD_CALLING_STATION_ID) 192.168.1.5
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusPutAuth: RADIUS_CHAP (MD5) peer name: test
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusSendRequest: username: test
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusSendRequest: username: test trying
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: RadiusSendRequest: username: test trying
Apr 23 22:06:16 xxxxxxx mpd: [p0000] RADIUS: rad_send_request failed: No valid RADIUS responses received
Apr 23 22:06:16 xxxxxxx mpd: [p0000] AUTH: RADIUS returned undefined
Apr 23 22:06:16 xxxxxxx mpd: [p0000] AUTH: ran out of backends
Apr 23 22:06:16 xxxxxxx mpd: [p0000] AUTH: Auth-Thread finished normally
Apr 23 22:06:16 xxxxxxx mpd: [p0000] CHAP: ChapInputFinish: status failed
Apr 23 22:06:16 xxxxxxx mpd: Reply message: Login incorrect
Apr 23 22:06:16 xxxxxxx mpd: [p0000] CHAP: sending FAILURE len:15
Apr 23 22:06:16 xxxxxxx mpd: [p0000] LCP: authorization failed
Apr 23 22:06:16 xxxxxxx mpd: [p0000] LCP: parameter negotiation failed
Apr 23 22:06:16 xxxxxxx mpd: [p0000] LCP: state change Opened --> Stopping
Apr 23 22:06:16 xxxxxxx mpd: [p0000] AUTH: Cleanup

-----

в логах radius.log
04-23/22:06:16 INFO [PortListener-pool-1-thread-9] radius - AUTH:
Type=AUTHENTICATION_REQUEST
Attributes:
User-Name=test
NAS-Identifier=xxxxxxx.xxxxxxxx.ru
CHAP-Password=..в[y.~{|y.&..оS.
NAS-IP-Address=192.168.1.56
NAS-Port=0
Message-Authenticator=V..^..5.Т╦jv7КS.
Service-Type=2
Framed-Protocol=1
Calling-Station-Id=192.168.1.5
NAS-Port-Type=5
CHAP-Challenge=╩.hСЁ..Ч.eMАb.Рw..і#.╚).╙.].щNШҐ?z╟Р.╟П..=БxҐтО

04-23/22:06:16 INFO [PortListener-pool-1-thread-9] radius - RESPONSE:
Type=AUTHENTICATION_ACCEPT
Process time auth: 51 init_tariff: 2; set_ip: 2; common_auth: 39
Attributes:
Acct-Interim-Interval=60
Service-Type=2
Framed-Protocol=1
Framed-IP-Address=10.0.0.5

--------
в processor.log
04-23/22:06:16 ERROR [PortListener-pool-1-thread-9] LoggingPrintStream - Stop without start!

вопрос - как победить ?

Автор:  snark [ 27 апр 2009, 17:40 ]
Заголовок сообщения: 

таймаут радиуса в мпд увеличить?

Автор:  Net_andy [ 28 апр 2009, 05:13 ]
Заголовок сообщения: 

snark писал(а):
таймаут радиуса в мпд увеличить?


уже, вроде даже что то завелось

Автор:  snark [ 28 апр 2009, 16:19 ]
Заголовок сообщения: 

вот так все работает
Код:
radius:
        set auth disable internal
        set auth max-logins 1
        set auth timeout 60
        set auth enable radius-auth
        set auth enable radius-acct
        set auth acct-update 60
        set radius identifier mpd
        set radius timeout 60
        set radius retries 3
        set radius server ...
        set radius me ...

Автор:  iONE [ 10 янв 2013, 04:47 ]
Заголовок сообщения:  Re: Вопрос про 691 ошибку

Ссылка на wccp клиента на wiki не рабочая. Если возможно, перезалейте.

Автор:  Victor [ 10 янв 2013, 09:55 ]
Заголовок сообщения:  Re: Вопрос про 691 ошибку

Вложил в этот топик, ссылку в вики переправлю.

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

Вложения:
wccp_client.zip [2.22 КБ]
Скачиваний: 511

Автор:  snark [ 10 янв 2013, 22:10 ]
Заголовок сообщения:  Re: Вопрос про 691 ошибку

Victor писал(а):
Эстетичнее и правильнее это делать через route-map.

Правильнее это делать через WCCP (если прокся хост жив - шлем туда трафик, если мертв - не шлем), но это Cisco only, а вот роутмапы - это универсальный метод, правда если хост лежит, то пакеты уйдут в никуда.

Автор:  Victor [ 16 янв 2013, 09:54 ]
Заголовок сообщения:  Re: Вопрос про 691 ошибку

snark писал(а):
Victor писал(а):
Эстетичнее и правильнее это делать через route-map.

Правильнее это делать через WCCP (если прокся хост жив - шлем туда трафик, если мертв - не шлем), но это Cisco only, а вот роутмапы - это универсальный метод, правда если хост лежит, то пакеты уйдут в никуда.

Доступ заблокирован и так, так что куда там они уйдут - дело десятое... С WCCP при лежащем хоcте возможна ситуация работающего HTTP при заблокированном интернете.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/