BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 10 май 2024, 18:19

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 27 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос про 691 ошибку
СообщениеДобавлено: 15 июн 2008, 21:55 
Не в сети

Зарегистрирован: 13 сен 2007, 13:36
Сообщения: 196
Карма: 2
Прочитал 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-страницу. Подскажите, я все верно понимаю?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 июн 2008, 07:55 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
Да так и есть.
По поводу самой схемы. Был написан простой WCCP-информер для циски, чтобы исключить применение Oops и заменить его nginx. Сейчас гоняется в тесте, отлавливаются ошибки конфигурации nginx.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 июн 2008, 08:04 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июн 2008, 00:19 
Не в сети
Клиент

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июн 2008, 06:34 
Не в сети

Зарегистрирован: 13 сен 2007, 13:36
Сообщения: 196
Карма: 2
Любые мысли полезны )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июн 2008, 08:04 
Не в сети
Клиент

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июн 2008, 12:52 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
В радиусе есть такой атрибут Replay-Message, случаем циска не умеет его передавать как-нибудь клиенту в окошко? В качестве причины отлупа. Или он не для того?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июн 2008, 17:15 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Victor писал(а):
Только проблема в том, что в непионерской сети нет фряшки в качестве маршрутизаторов/бриджей между клиентом и интернетом.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июн 2008, 20:45 
Не в сети

Зарегистрирован: 13 сен 2007, 13:36
Сообщения: 196
Карма: 2
На циске не сошелся свет клином, а то, что не используется NAS-циска так это не показатель. За советы спасибо, действительно проще на вхост апача форвардить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 июн 2008, 10:12 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
про nginx выше я тоже самое написал... просто не вижу смысла ставить монстра апачи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 июн 2008, 11:32 
Не в сети

Зарегистрирован: 13 сен 2007, 13:36
Сообщения: 196
Карма: 2
nginx не использовал, пока на него времени нет, апач не такой уж и монстр )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 дек 2008, 12:46 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 дек 2008, 14:56 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
php-шный ip2long() в этом случае начнет давать минусовые значения, можно собсно и их использовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 дек 2008, 15:41 
Не в сети

Зарегистрирован: 28 окт 2008, 11:59
Сообщения: 50
Карма: 0
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() , мона поподробнее?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 дек 2008, 18:30 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
В 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 ) )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 дек 2008, 19:37 
Не в сети

Зарегистрирован: 28 окт 2008, 11:59
Сообщения: 50
Карма: 0
В скрипте:

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.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 дек 2008, 07:50 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
ip2long() непричем, просто он показывает, что происходит со значением типа int, при превышении. Начинает использоваться отрицательные значения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 дек 2008, 15:08 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
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)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 дек 2008, 19:38 
Не в сети

Зарегистрирован: 28 окт 2008, 11:59
Сообщения: 50
Карма: 0
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 ) )


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 апр 2009, 17:28 
Не в сети

Зарегистрирован: 11 мар 2009, 19:41
Сообщения: 88
Карма: 0
вот добрался до этого раздела:

при соединении клиента с сервером выкидывает "ошибка 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!

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 апр 2009, 17:40 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
таймаут радиуса в мпд увеличить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 апр 2009, 05:13 
Не в сети

Зарегистрирован: 11 мар 2009, 19:41
Сообщения: 88
Карма: 0
snark писал(а):
таймаут радиуса в мпд увеличить?


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 апр 2009, 16:19 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
вот так все работает
Код:
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 ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про 691 ошибку
СообщениеДобавлено: 10 янв 2013, 04:47 
Не в сети
Клиент

Зарегистрирован: 25 ноя 2007, 22:48
Сообщения: 472
Карма: 8
Ссылка на wccp клиента на wiki не рабочая. Если возможно, перезалейте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про 691 ошибку
СообщениеДобавлено: 10 янв 2013, 09:55 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
Вложил в этот топик, ссылку в вики переправлю.

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


Вложения:
wccp_client.zip [2.22 КБ]
Скачиваний: 419
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про 691 ошибку
СообщениеДобавлено: 10 янв 2013, 22:10 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Victor писал(а):
Эстетичнее и правильнее это делать через route-map.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос про 691 ошибку
СообщениеДобавлено: 16 янв 2013, 09:54 
Не в сети
Клиент

Зарегистрирован: 12 фев 2007, 18:49
Сообщения: 335
Карма: 15
snark писал(а):
Victor писал(а):
Эстетичнее и правильнее это делать через route-map.

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

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.075s | 74 Queries | GZIP : On ]