Биллинговая система Nodeny
29 Марта 2024, 11:08:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 ... 16 17 [18] 19 20 ... 26
  Печать  
Автор Тема: DHCP  (Прочитано 97942 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4794



Просмотр профиля
« Ответ #255 : 13 Сентября 2017, 17:44:39 »

Узнал, что многие не вкурсе такой фичи как выбор свича из списка при привязке мак-адреса. Добавил в FAQ: http://nodeny.com.ua/wiki/index.php/%D0%92%D1%8B%D0%B1%D0%BE%D1%80_%D1%81%D0%B2%D0%B8%D1%87%D0%B0_%D0%B8%D0%B7_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%BA%D0%B5_%D0%BC%D0%B0%D0%BA-%D0%B0_%D0%B0%D0%B1%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0
Записан
fet4
Старожил
****

Карма: 2
Offline Offline

Сообщений: 324


Просмотр профиля Email
« Ответ #256 : 10 Ноября 2017, 19:07:59 »

Есть неприятная ситуация.

Есть клиенты на pon у которых стоит один на порту+фиксированное подключение, авторизация по mac свича + порт.

Сигментировали сеть, сменили vlan и подсеть.

У клиента не проходит авторизаци
Код:
10.11.2017 19:04:00 Duplicate entry 'e894f6b07995' for key 'mac'

{
  'sql' => 'UPDATE mac_uid SET time=UNIX_TIMESTAMP(), ip=INET_ATON(?), mac=? WHERE device_mac=? AND device_port=? AND oneconnect>0',
  'param' => [
    '10.194.132.19',
    'e894f6b07995',
    'e067b31533b2',
    1
  ]
};

 UPDATE mac_uid SET time=UNIX_TIMESTAMP(), ip=INET_ATON('10.194.132.19'), mac='e894f6b07995' WHERE device_mac='e067b31533b2' AND device_port='1' AND oneconnect>0
10.11.2017 19:04:00 Connecting to DBI:mysql:database=nodeny;host=localhost;port=3306;mysql_connect_timeout=5 : 0.000274 sec
10.11.2017 19:04:00 INSERT INTO mac_uid SET uid=0, mac='e894f6b07995', device_mac='e067b31533b2', device_port='1', ip=INET_ATON('10.194.132.19'), time=UNIX_TIMESTAMP() ON DUPLICATE KEY UPDATE device_mac='e067b31533b2', device_port='1', ip=INET_ATON('10.194.132.19'), time=UNIX_TIMESTAMP()
Строк: 1. Время выполнения sql: 0.0003 сек
10.11.2017 19:04:00 SELECT uid FROM mac_uid WHERE mac='e894f6b07995' AND device_mac='e067b31533b2' AND device_port='1'
Строк: 1. Время выполнения sql: 0.0001 сек
10.11.2017 19:04:00 UPDATE ip_pool SET uid=0 WHERE ip=INET_ATON('10.194.132.19') AND type='dynamic'
Строк: 1. Время выполнения sql: 0.0002 сек

10.11.2017 19:04:00 [commit] ip=10.194.132.19, mac=e8:94:f6:b0:79:95, mac_ok=e894f6b07995, port=e067b31533b2[1] | Необходима регистрация мака


Почему так? и как побороть? Вроде один на порту, всеравно какой ip и vlan, авторизуем по маку свича и порта.

Заранее спасибо.

Записан
cojiict
Старожил
****

Карма: 0
Offline Offline

Сообщений: 341


Просмотр профиля Email
« Ответ #257 : 04 Января 2018, 12:40:16 »

при ручному корегуванні/створенні нової mac_uid потрібна історія (хоча б id адміна який робив і час коли). Як реалізувати?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4794



Просмотр профиля
« Ответ #258 : 04 Января 2018, 17:00:58 »

select * from changes where tbl='mac_uid'\G
Записан
pala
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 21


Просмотр профиля Email
« Ответ #259 : 04 Января 2018, 21:57:29 »

Есть неприятная ситуация.

Есть клиенты на pon у которых стоит один на порту+фиксированное подключение, авторизация по mac свича + порт.

Сигментировали сеть, сменили vlan и подсеть.

У клиента не проходит авторизаци
Код:
10.11.2017 19:04:00 Duplicate entry 'e894f6b07995' for key 'mac'

{
  'sql' => 'UPDATE mac_uid SET time=UNIX_TIMESTAMP(), ip=INET_ATON(?), mac=? WHERE device_mac=? AND device_port=? AND oneconnect>0',
  'param' => [
    '10.194.132.19',
    'e894f6b07995',
    'e067b31533b2',
    1
  ]
};

 UPDATE mac_uid SET time=UNIX_TIMESTAMP(), ip=INET_ATON('10.194.132.19'), mac='e894f6b07995' WHERE device_mac='e067b31533b2' AND device_port='1' AND oneconnect>0
10.11.2017 19:04:00 Connecting to DBI:mysql:database=nodeny;host=localhost;port=3306;mysql_connect_timeout=5 : 0.000274 sec
10.11.2017 19:04:00 INSERT INTO mac_uid SET uid=0, mac='e894f6b07995', device_mac='e067b31533b2', device_port='1', ip=INET_ATON('10.194.132.19'), time=UNIX_TIMESTAMP() ON DUPLICATE KEY UPDATE device_mac='e067b31533b2', device_port='1', ip=INET_ATON('10.194.132.19'), time=UNIX_TIMESTAMP()
Строк: 1. Время выполнения sql: 0.0003 сек
10.11.2017 19:04:00 SELECT uid FROM mac_uid WHERE mac='e894f6b07995' AND device_mac='e067b31533b2' AND device_port='1'
Строк: 1. Время выполнения sql: 0.0001 сек
10.11.2017 19:04:00 UPDATE ip_pool SET uid=0 WHERE ip=INET_ATON('10.194.132.19') AND type='dynamic'
Строк: 1. Время выполнения sql: 0.0002 сек

10.11.2017 19:04:00 [commit] ip=10.194.132.19, mac=e8:94:f6:b0:79:95, mac_ok=e894f6b07995, port=e067b31533b2[1] | Необходима регистрация мака


Почему так? и как побороть? Вроде один на порту, всеравно какой ip и vlan, авторизуем по маку свича и порта.

Заранее спасибо.



Покажите пожалуйста конфиг вашего DHCP сервера и секцию dhcp snooping на OLT
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 201


Просмотр профиля
« Ответ #260 : 05 Января 2018, 09:12:11 »

Может кому понадобится. У меня работает и модуль DHCP, и make_config. Сам конфиг генерирует dhcp.tmpl .
На каждую ветку PON выделяется подсетка /24 в отдельном влане.  Первые 64 IP для статики, 254 - шлюз. Остальные динамика.
При подключении клиента он получает динамику, оператор по данным в биллинге сохраняет мак устроуства и порт устройства, а также галочка один на порту. После чего меняет динамику на статику. IP выдаются 10.А.В.С  А - OLT, B-порт OLT(vlan), C-номер ONU.
Часть конфига - это для PON (bdcom 3608, bdcom 3616)
Код:
log-facility local7;
option domain-name-servers 1.1.1.1;
authoritative;
allow unknown-clients;

......................... 

shared-network vlan501 {


{% for user in users %}
  {% if user.ips.0.ipa && user.ips.0.type eq 'static' && user.connection.0 && user.connection.0.oneconnect && user.ips.0.ip >= inet.aton('10.1.1.1') && user.ips.0.ip <=
    {% one_line %}
class "host{{user.ips.0.ipa}}" { match if binary-to-ascii(10,8,"",suffix(option agent.circuit-id,2))="{{user.connection.0.device_port}}"
    and suffix(option agent.remote-id,6)={{user.connection.0.device_mac|pretty_mac}}; }
    {% one_line_end %}
  {% endif %}
{% endfor %}

subnet 10.1.1.0 netmask 255.255.255.0 {
  pool {
 {% for user in users %}
  {% if user.ips.0.ipa && user.ips.0.type eq 'static' && user.connection.0 && user.connection.0.oneconnect && user.ips.0.ip >= inet.aton('10.1.1.1') && user.ips.0.ip <=
    {% one_line %}
    deny members of  "host{{user.ips.0.ipa}}";
    {% one_line_end %}
  {% endif %}
{% endfor %}
    range 10.1.1.65 10.1.1.250;
}
    interface vlan501;
    option routers 10.1.1.254;
    default-lease-time 28800;
    min-lease-time 10000;
    max-lease-time 128800;
   on commit {
        set ClientIP  = binary-to-ascii(10, 8, ".", leased-address);
        set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
        set SwitchMac = "";
        set SwitchPort ="";
        if exists agent.circuit-id
        {
            set SwitchMac = binary-to-ascii(16, 8, ":", suffix(option agent.remote-id, 6));
            set SwitchPort = binary-to-ascii(10, 8, "", suffix(option agent.circuit-id, 2));
        }
        execute("/usr/bin/perl", "/usr/local/nodeny/modules/dhcp/events.pl", "commit",
                ClientIP, ClientMac, SwitchMac, SwitchPort);
    }
    on expiry {
        set ClientIP  = binary-to-ascii(10, 8, ".", leased-address);
        execute("/usr/bin/perl", "/usr/local/nodeny/modules/dhcp/events.pl", "expiry", ClientIP);
    }
    on release {
        set ClientIP  = binary-to-ascii(10, 8, ".", leased-address);
        execute("/usr/bin/perl", "/usr/local/nodeny/modules/dhcp/events.pl", "release", ClientIP);
    }

{% for user in users %}
  {% if user.ips.0.ipa && user.ips.0.type eq 'static' && user.connection.0 && user.ips.0.ip >= inet.aton('10.1.1.1') && user.ips.0.ip <= inet.aton('10.1.1.64') %}
    {% if user.connection.0.oneconnect %}
        pool { range {{user.ips.0.ipa}}; allow members of "host{{user.ips.0.ipa}}"; }
    {% else %}
        host host{{user.ips.0.ipa}} { hardware ethernet {{user.connection.0.mac|pretty_mac}}; fixed-address {{user.ips.0.ipa}}; }
    {% endif %}
  {% endif %}
{% endfor %}

}
}
.........................
Динамика нужна только для регистрации абонентов, все остальные на статике. Включено  ip-source Все работает стабильно.
Из плохого. В данном конфиге порт, это портOLT + номер ONU. А надо бы просто порт ONU - буду переделывать.
Проблема с переключальщиками решена костылем, раз в десть минут по крону обнуляется лиза. Патч на dhcp, чесно говоря не нашел. Хоть надо подумать с временем аренды поиграть.
 
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #261 : 05 Марта 2018, 19:28:57 »

Вітаю.
є такий ньюанс. В білінг заведений користувач, в розділі мак - поставив галочку oneconnect=1. Коли новий користувач авторизується по вебу, oneconnect затирається і ставиться значення 0. Це можна виправити?
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 201


Просмотр профиля
« Ответ #262 : 05 Марта 2018, 21:46:22 »

Вітаю.
є такий ньюанс. В білінг заведений користувач, в розділі мак - поставив галочку oneconnect=1. Коли новий користувач авторизується по вебу, oneconnect затирається і ставиться значення 0. Це можна виправити?
Якщо стоїть один на порту(oneconnect=1), то це означає, що у клієнта встановлений статичний IP, і незалежно від мака він одержить свій IP без регістрації, по маку і порту обладнання. Можливо проблеми з конфігом dhcp? 
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #263 : 06 Марта 2018, 05:08:04 »

Ну наскільки я розібрався, це означає зовсім інше. І до типу ір відношення не має.
Цитировать
2) Если создать допполе:
имя в БД: _oneconnect
тип: Да/Нет
имя: один на порту

и у определенного клиента(тов) установить в значение "да", то после того как клиент авторизует свое подключение, у этого подключения будет поставлена галка "один клиент на порту". Это означает, что при смене мак-адреса (т.е при подключении другого компьютера, ноута, роутера и т.д.) у клиента пароль спрашиваться не будет. Естественно, это имет смысл только для ситуации если к текущему порту подключен только один клиент, т.е в биллинге запоминается "на этом свиче и порту клиент Иванов, неважно какой мак".

При авторизацій - заноситься обладнання і порт. І перезаписуєтсья oneconnect=0, а мало б не чіпати цей параметр.
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 201


Просмотр профиля
« Ответ #264 : 06 Марта 2018, 14:05:19 »

Тоді навіщо Вам ставити "один на порту", якщо адреси на цей порт віддаються динамічно? Наскільки я розумію, весь смисл в тому, щоб на порту X обладнання , і Y порту, був завжди один IP, не залежно від обладнання ,  яке в нього вставлене.
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #265 : 06 Марта 2018, 15:18:31 »

В мене інше розуміння. Один на порту - щоб авторизувати будького, хто є на цьому порту. Тобто провірки по маку вже не має, лише пристрій-порт. А філософія Н+, як казав Стас, пофіг який ір. Паролем для авторизації є або мак, або в даному випадку - пристрій-порт.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4794



Просмотр профиля
« Ответ #266 : 06 Марта 2018, 15:38:45 »

Вітаю.
є такий ньюанс. В білінг заведений користувач, в розділі мак - поставив галочку oneconnect=1. Коли новий користувач авторизується по вебу, oneconnect затирається і ставиться значення 0. Це можна виправити?
Когда он попадает на заглушку и с нее в личный кабинет чтоб зарегать свое подключение?
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 201


Просмотр профиля
« Ответ #267 : 06 Марта 2018, 20:16:59 »

В мене інше розуміння. Один на порту - щоб авторизувати будького, хто є на цьому порту. Тобто провірки по маку вже не має, лише пристрій-порт. А філософія Н+, як казав Стас, пофіг який ір. Паролем для авторизації є або мак, або в даному випадку - пристрій-порт.
Це получається, що в кабінеті клієнта нема IP, але є мак(де встановлений мак і порт обладнання, а також один на порту). І коли клієнт одержує динаміку , він автоматично , без регістрації попадає в інет. Не знав про таку функцію модуля.
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #268 : 06 Марта 2018, 22:42:52 »

Вітаю.
є такий ньюанс. В білінг заведений користувач, в розділі мак - поставив галочку oneconnect=1. Коли новий користувач авторизується по вебу, oneconnect затирається і ставиться значення 0. Це можна виправити?
Когда он попадает на заглушку и с нее в личный кабинет чтоб зарегать свое подключение?
Ага
Записан
tom
Постоялец
***

Карма: 2
Offline Offline

Сообщений: 216


Просмотр профиля
« Ответ #269 : 06 Марта 2018, 22:43:51 »

В мене інше розуміння. Один на порту - щоб авторизувати будького, хто є на цьому порту. Тобто провірки по маку вже не має, лише пристрій-порт. А філософія Н+, як казав Стас, пофіг який ір. Паролем для авторизації є або мак, або в даному випадку - пристрій-порт.
Це получається, що в кабінеті клієнта нема IP, але є мак(де встановлений мак і порт обладнання, а також один на порту). І коли клієнт одержує динаміку , він автоматично , без регістрації попадає в інет. Не знав про таку функцію модуля.
Абсолютно вірно. Так зараз працює
Записан
Страниц: 1 ... 16 17 [18] 19 20 ... 26
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!