Проблема выдачи IP, который заглючил у другого абонента

Работа с серверами доступа Juniper, Cisco, Ericsson
Makioro
Сообщения: 235
Зарегистрирован: Ср апр 27, 2011 11:09 am

Проблема выдачи IP, который заглючил у другого абонента

Сообщение Makioro » Пн июл 25, 2016 12:10 pm

Доброе время суток
Не смог придумать краткое описание проблемы для названия топика, так что получилось как получилось.
Проблема заключается в следующем: Абонент "А" запрашивает настройки по DHCP к NAS Juniper Mx80 (используем модуль Mx80.pm). Джунипер запрашивает у радиуса, радиус в базе, возвращает джуниперу, а джунипер пытается отдать абоненту, но он по какой-то причине не выдаётся.
Причина эта на текущий момент неважна, а важны два момента:
  1. в джунипере эта сессия по какой-то причине висит бесконечно. Можно на железяке увидеть нечто вроде:

    Код: Выделить всё

    > show dhcp server binding | except BOUND   
    IP address        Session Id  Hardware address   Expires     State      Interface
    *.*.*.36      1027097     c8:3a:35:1b:58:d8  -619         SELECTING  xe-0/0/1.1073741970
    (да-да, отрицательный Expires)
  2. в базе абиллса из dv_calls эта сессия удаляется через рандомное время (наблюдалось от 45 секунд до 4 минут). Отмечу, что lease time равно 1200 секундам, т.е. 20 минут.
В связи с чем когда этот IP пытается получить другой абонент, в абиллсе он появляется, но джунипер не принимает - у него же есть уже этот айпи в dhcp server binding.

Мы не смогли разобраться какой скрипт удаляет сессию из dv_calls (не похоже на billd - он запускается раз в 5 минут, а сбросы сессии почти никогда не совпадают с его запусками, да и в его логах ничего).

Вижу пару решений проблемы, но реализацию не знаю. Либо сделать чтобы такие сессии не удалялись из dv_calls пока они есть на джунипере, либо удалять также на джунипере когда удаляется из dv_calls.

p.s. abills у нас не обновлялся с декабря, если эта проблема уже была выявлена и исправлена в более новой версии - сообщите, пожалуйста.

~AsmodeuS~
Site Admin
Сообщения: 5407
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Проблема выдачи IP, который заглючил у другого абонента

Сообщение ~AsmodeuS~ » Пн июл 25, 2016 12:28 pm

Makioro писал(а):Доброе время суток
Не смог придумать краткое описание проблемы для названия топика, так что получилось как получилось.
Проблема заключается в следующем: Абонент "А" запрашивает настройки по DHCP к NAS Juniper Mx80 (используем модуль Mx80.pm). Джунипер запрашивает у радиуса, радиус в базе, возвращает джуниперу, а джунипер пытается отдать абоненту, но он по какой-то причине не выдаётся.
Причина эта на текущий момент неважна, а важны два момента:
  1. в джунипере эта сессия по какой-то причине висит бесконечно. Можно на железяке увидеть нечто вроде:

    Код: Выделить всё

    > show dhcp server binding | except BOUND   
    IP address        Session Id  Hardware address   Expires     State      Interface
    *.*.*.36      1027097     c8:3a:35:1b:58:d8  -619         SELECTING  xe-0/0/1.1073741970
    (да-да, отрицательный Expires)
  2. в базе абиллса из dv_calls эта сессия удаляется через рандомное время (наблюдалось от 45 секунд до 4 минут). Отмечу, что lease time равно 1200 секундам, т.е. 20 минут.
В связи с чем когда этот IP пытается получить другой абонент, в абиллсе он появляется, но джунипер не принимает - у него же есть уже этот айпи в dhcp server binding.

Мы не смогли разобраться какой скрипт удаляет сессию из dv_calls (не похоже на billd - он запускается раз в 5 минут, а сбросы сессии почти никогда не совпадают с его запусками, да и в его логах ничего).

Вижу пару решений проблемы, но реализацию не знаю. Либо сделать чтобы такие сессии не удалялись из dv_calls пока они есть на джунипере, либо удалять также на джунипере когда удаляется из dv_calls.

p.s. abills у нас не обновлялся с декабря, если эта проблема уже была выявлена и исправлена в более новой версии - сообщите, пожалуйста.



когда билинг выдаёт сессию посмотрите статус сессии. Скорее всего это 11 - зарезирвирован для выдачи, но акаунтинг таки не проходит соответсвенно система елси адрес больше 10 секунд в резерве старается его удалить

Makioro
Сообщения: 235
Зарегистрирован: Ср апр 27, 2011 11:09 am

Re: Проблема выдачи IP, который заглючил у другого абонента

Сообщение Makioro » Пн июл 25, 2016 12:32 pm

Да, именно так. Статус сессии в абиллсе 11ый.
После написания первого поста заметили, что это всё-таки billd удаляет эту сессию из dv_calls. Правда в лог /tmp/billd.log почему-то ничего не записывает
Есть подозрение, что он не сбрасывает эту сессию на джунипере по следующей причине:

Код: Выделить всё

> show dhcp server binding | except BOUND   
IP address        Session Id  Hardware address   Expires     State      Interface
46.175.65.132     1027235     c8:3a:35:1b:58:d8  -167        SELECTING  xe-0/0/1.1073741970

> show subscribers address 46.175.65.132
Total subscribers: 0, Active Subscribers: 0

подписчика такого нет, соответственно команды для изменения подписки не работают. А сбросить её можно с помощью "clear dhcp server binding 46.175.65.132"

~AsmodeuS~
Site Admin
Сообщения: 5407
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Проблема выдачи IP, который заглючил у другого абонента

Сообщение ~AsmodeuS~ » Пн июл 25, 2016 12:55 pm

Makioro писал(а):Да, именно так. Статус сессии в абиллсе 11ый.
После написания первого поста заметили, что это всё-таки billd удаляет эту сессию из dv_calls. Правда в лог /tmp/billd.log почему-то ничего не записывает
Есть подозрение, что он не сбрасывает эту сессию на джунипере по следующей причине:

Код: Выделить всё

> show dhcp server binding | except BOUND   
IP address        Session Id  Hardware address   Expires     State      Interface
46.175.65.132     1027235     c8:3a:35:1b:58:d8  -167        SELECTING  xe-0/0/1.1073741970

> show subscribers address 46.175.65.132
Total subscribers: 0, Active Subscribers: 0

подписчика такого нет, соответственно команды для изменения подписки не работают. А сбросить её можно с помощью "clear dhcp server binding 46.175.65.132"

~AsmodeuS~
Site Admin
Сообщения: 5407
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Проблема выдачи IP, который заглючил у другого абонента

Сообщение ~AsmodeuS~ » Пн июл 25, 2016 12:56 pm

Makioro писал(а):Да, именно так. Статус сессии в абиллсе 11ый.
После написания первого поста заметили, что это всё-таки billd удаляет эту сессию из dv_calls. Правда в лог /tmp/billd.log почему-то ничего не записывает
Есть подозрение, что он не сбрасывает эту сессию на джунипере по следующей причине:

Код: Выделить всё

> show dhcp server binding | except BOUND   
IP address        Session Id  Hardware address   Expires     State      Interface
46.175.65.132     1027235     c8:3a:35:1b:58:d8  -167        SELECTING  xe-0/0/1.1073741970

> show subscribers address 46.175.65.132
Total subscribers: 0, Active Subscribers: 0

подписчика такого нет, соответственно команды для изменения подписки не работают. А сбросить её можно с помощью "clear dhcp server binding 46.175.65.132"



для биллинга записи с статусом 11 не являются полноценными сессиями по этому идёт только чистка базы

Makioro
Сообщения: 235
Зарегистрирован: Ср апр 27, 2011 11:09 am

Re: Проблема выдачи IP, который заглючил у другого абонента

Сообщение Makioro » Пн июл 25, 2016 1:55 pm

Информация в биллинге и на джунипере должна быть синхронизирована, иначе это приводит к подобным коллизиям.

~AsmodeuS~
Site Admin
Сообщения: 5407
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Проблема выдачи IP, который заглючил у другого абонента

Сообщение ~AsmodeuS~ » Пн июл 25, 2016 2:13 pm

Makioro писал(а):Информация в биллинге и на джунипере должна быть синхронизирована, иначе это приводит к подобным коллизиям.

с такой ситуацией не встречались еще, попробуйте автосинхронизатор

Makioro
Сообщения: 235
Зарегистрирован: Ср апр 27, 2011 11:09 am

Re: Проблема выдачи IP, который заглючил у другого абонента

Сообщение Makioro » Пн июл 25, 2016 2:24 pm

Скиньте пожалуйста ссылку на описание этого автосинхронизатора - я о таком никогда не слышал ранее

~AsmodeuS~
Site Admin
Сообщения: 5407
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Проблема выдачи IP, который заглючил у другого абонента

Сообщение ~AsmodeuS~ » Пн июл 25, 2016 3:32 pm

Makioro писал(а):Скиньте пожалуйста ссылку на описание этого автосинхронизатора - я о таком никогда не слышал ранее



http://abills.net.ua/wiki/doku.php/abil ... nij_sessij

Makioro
Сообщения: 235
Зарегистрирован: Ср апр 27, 2011 11:09 am

Re: Проблема выдачи IP, который заглючил у другого абонента

Сообщение Makioro » Вт июл 26, 2016 7:17 am

Ну просто посмотреть какие сессии расходятся, мы и сами можем
А вот я в коде вижу помимо SHOW есть ещё HANGUP. Что именно эта команда делает? Сбрасывает расходящиеся сессии? Или вообще все?
В вики почему-то не упоминается эта команда

~AsmodeuS~
Site Admin
Сообщения: 5407
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: Проблема выдачи IP, который заглючил у другого абонента

Сообщение ~AsmodeuS~ » Вт июл 26, 2016 8:18 am

Makioro писал(а):Ну просто посмотреть какие сессии расходятся, мы и сами можем
А вот я в коде вижу помимо SHOW есть ещё HANGUP. Что именно эта команда делает? Сбрасывает расходящиеся сессии? Или вообще все?
В вики почему-то не упоминается эта команда



должна скидывать различия



Вернуться в «Juniper, Cisco, Ericsson»

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 18 гостей