BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 10 авг 2017, 14:33 
Не в сети

Зарегистрирован: 22 июл 2009, 15:36
Сообщения: 308
Откуда: старый оскол
Карма: 5
несколько дней прикидывал как раздать в сети dhcp оптимальным способом.
входные данные
- 80 сектров(БС базовая станция) mikrotik
- 1500 абонентских комплектов mikrotik sxt lite /lgh/disk по 30 на сектор
- vlan mgmt
- vlan access

общая схема

bgp-------------L3---------несколько bras accel-ppp---------несколько L2----------несколько БС----------------------много АК



Если привязывать к устройству абонента на сервисе , то нужно добавить все АК как шлюз. Не вариант.
Можно привязывать сектора на сервисе , но при добавлении либо перемещении абонента нужно будет менять параметры на сервисе. Не вариант.
Может возможно создать папку с секторами(не пробовал). Но эта информация мне ненужна.

Текущая схема.

1. на AK включен dhcp relay , dhcp запрос уходит по vlan mgmt до bras.
2. bras получает запрос и из пакета берет адрес giaddr(ip addr АК) , подставляя его в качестве username и передает его в БГ по radius.
3. БГ возвращает адрес из пула , днс,скорость. (нужно еще network и gw , но пока не сделал.)
4. accel создает ipoeN интерфейс
5. accounting также через radius,
5.1 в информации по сессии есть ip/mac абонента/bras
PoD и CoA пока не работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 10 авг 2017, 17:47 
Не в сети

Зарегистрирован: 22 июл 2009, 15:36
Сообщения: 308
Откуда: старый оскол
Карма: 5
пока не соображу как передать из BG в accel-ppp
attr-dhcp-router-ip=атрибут
Указывает в каком радиус атрибуте передаётся ип адрес маршрутизатора (актуально только для DHCP).
attr-dhcp-mask=атрибут
Указывает в каком радиус атрибуте передаётся маска сети (актуально только для DHCP).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 10 авг 2017, 18:08 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Указывать макрос для получения параметров из IP-ресурса
параметра Шлюз:
radius.realm.default.attributes.macros=Router-Ip=$ipGate
любого параметра конфигурации:
radius.realm.default.attributes.macros=Router-Ip=$ipParam(routerIp)


Или для получения параметра из агентского устройства, если параметры зависят от него (устройства между accel и абонентом):
radius.realm.default.attributes.macros=Router-Ip=$param($agentDevice,routerIp,0.0.0.0)
В этом случае нужно, чтобы по пакету определялось агентское устройство.

https://docs.bitel.ru/pages/viewpage.ac ... 597961#id-Процессорru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor-Атрибутыреалма


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 14 авг 2017, 11:54 
Не в сети

Зарегистрирован: 22 июл 2009, 15:36
Сообщения: 308
Откуда: старый оскол
Карма: 5
Навернулась вся схема. accel-ppp слушает dhcp только в vlan абонента.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 15 авг 2017, 07:38 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 27 мар 2012, 11:59
Сообщения: 2676
Карма: 72
в vlan mgmt указан в interface акцеля?
shared какой стоит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 15 авг 2017, 16:56 
Не в сети

Зарегистрирован: 22 июл 2009, 15:36
Сообщения: 308
Откуда: старый оскол
Карма: 5
да указан
interface=eth0.340
interface=eth0.2
shared=1


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 22 авг 2017, 19:21 
Не в сети

Зарегистрирован: 22 июл 2009, 15:36
Сообщения: 308
Откуда: старый оскол
Карма: 5
перед тем как поднимать dhcp в билинге настроил на isc dhcp


что хотел реализовать.

с адреcа 192.168.242.209 dhcp_relay opt82 прилетает запрос на dhcp сервер 192.168.0.18 , если mac совпадает с agent.circuit-id
то выдаем адрес .

для того чтобы lease приходили не на unicast адрес прописал option dhcp-server-identifier 0.0.0.0


local-address 192.168.0.18;
option subnet-mask 255.255.255.0;
default-lease-time 300;

max-lease-time 3600;
option dhcp-server-identifier 0.0.0.0;
log-facility local7;
#ddns-update-style ad-hoc;
#stash-agent-option;

if exists agent.circuit-id
{

log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address),
" raw option-82 info is CID: ", binary-to-ascii (16, 8, ":", option agent.circuit-id), " AID: ",
binary-to-ascii(16, 8, ":", option agent.remote-id)));
}

shared-network ISP {

subnet 10.1.1.0 netmask 255.255.255.0 {
option broadcast-address 255.255.255.255;
# option broadcast-address 10.1.1.255;
option subnet-mask 255.255.255.0;
option routers 10.1.1.1;



class "192.168.242.209" {

match if binary-to-ascii (16, 8, ":", option agent.circuit-id) = "6c:3b:6b:d1:a3:59";
} # Circuit-ID


pool {
range 10.1.1.5;
allow members of "192.168.242.209";
}


}


subnet 192.168.242.0 netmask 255.255.255.0 {
}

subnet 192.168.0.0 netmask 255.255.255.0 {
}


}



как это перенести в bg ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 22 авг 2017, 23:59 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
Ха ! Я уже 4 года на БЖБ не могу перевести вот такую конструкцию:
Код:
default-lease-time 12000;
max-lease-time 30000;
authoritative;
local-address 192.168.22.254;
ddns-update-style none;
log-facility local7;
if exists agent.remote-id and exists agent.circuit-id {
log(info, "------------------------------------------------------------------------------");
set switch-addr = binary-to-ascii(10, 8, ".", packet(24, 4));
set switch-port = binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 5, 1));
set switch-port-vlan = binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 2, 2));
log(info, concat("- Lease: ", binary-to-ascii(10, 8, ".", leased-address), " via IP: ", switch-addr,  " on port: ", switch-port, " in VLAN: ", switch-port-vlan));
}
#
class "192_168_22_159_2257"
{match if  binary-to-ascii(10, 16, "", substring( option agent.circuit-id, 2, 2)) = "2257" and binary-to-ascii(10, 8, ".", packet(24, 4)) = "192.168.22.159";}
class "192_168_22_159_2258"
{match if  binary-to-ascii(10, 16, "", substring( option agent.circuit-id, 2, 2)) = "2258" and binary-to-ascii(10, 8, ".", packet(24, 4)) = "192.168.22.159";}
class "192_168_22_159_2259"
{match if  binary-to-ascii(10, 16, "", substring( option agent.circuit-id, 2, 2)) = "2259" and binary-to-ascii(10, 8, ".", packet(24, 4)) = "192.168.22.159";}
............
............
............
class "192_168_22_159_3280"
{match if  binary-to-ascii(10, 16, "", substring( option agent.circuit-id, 2, 2)) = "3280" and binary-to-ascii(10, 8, ".", packet(24, 4)) = "192.168.22.159";}
#
shared-network "ipoe_22" {
subnet 10.129.56.0 netmask 255.255.255.248 {
option routers 10.129.56.1;
option domain-name-servers 192.168.121.64, 8.8.8.8;
option broadcast-address 10.129.56.7;
option subnet-mask 255.255.255.248;
pool {range 10.129.56.2 10.129.56.6; allow members of "192_168_22_159_2257"; }}
............
............
............
subnet 10.129.103.248 netmask 255.255.255.248 {
option routers 10.129.103.249;
option domain-name-servers 192.168.121.64, 8.8.8.8;
option broadcast-address 10.129.103.255;
option subnet-mask 255.255.255.248;
pool {range 10.129.103.250 10.129.103.254; allow members of "192_168_22_159_3280"; }}
#
subnet 192.168.22.0  netmask 255.255.255.0 { }
}


Никто из разработчиков даже вникнуть не пытается.... :facepalm:

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 23 авг 2017, 00:36 
Не в сети

Зарегистрирован: 22 июл 2009, 15:36
Сообщения: 308
Откуда: старый оскол
Карма: 5
задел за больное :( .
мне нужно раздать адреса по circuitid,как я думаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 23 авг 2017, 06:56 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 27 мар 2012, 11:59
Сообщения: 2676
Карма: 72
ok-2004 писал(а):
Ха ! Я уже 4 года на БЖБ не могу перевести вот такую конструкцию:
Код:
default-lease-time 12000;
max-lease-time 30000;
authoritative;
local-address 192.168.22.254;
ddns-update-style none;
log-facility local7;
if exists agent.remote-id and exists agent.circuit-id {
log(info, "------------------------------------------------------------------------------");
set switch-addr = binary-to-ascii(10, 8, ".", packet(24, 4));
set switch-port = binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 5, 1));
set switch-port-vlan = binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 2, 2));
log(info, concat("- Lease: ", binary-to-ascii(10, 8, ".", leased-address), " via IP: ", switch-addr,  " on port: ", switch-port, " in VLAN: ", switch-port-vlan));
}
#
class "192_168_22_159_2257"
{match if  binary-to-ascii(10, 16, "", substring( option agent.circuit-id, 2, 2)) = "2257" and binary-to-ascii(10, 8, ".", packet(24, 4)) = "192.168.22.159";}
class "192_168_22_159_2258"
{match if  binary-to-ascii(10, 16, "", substring( option agent.circuit-id, 2, 2)) = "2258" and binary-to-ascii(10, 8, ".", packet(24, 4)) = "192.168.22.159";}
class "192_168_22_159_2259"
{match if  binary-to-ascii(10, 16, "", substring( option agent.circuit-id, 2, 2)) = "2259" and binary-to-ascii(10, 8, ".", packet(24, 4)) = "192.168.22.159";}
............
............
............
class "192_168_22_159_3280"
{match if  binary-to-ascii(10, 16, "", substring( option agent.circuit-id, 2, 2)) = "3280" and binary-to-ascii(10, 8, ".", packet(24, 4)) = "192.168.22.159";}
#
shared-network "ipoe_22" {
subnet 10.129.56.0 netmask 255.255.255.248 {
option routers 10.129.56.1;
option domain-name-servers 192.168.121.64, 8.8.8.8;
option broadcast-address 10.129.56.7;
option subnet-mask 255.255.255.248;
pool {range 10.129.56.2 10.129.56.6; allow members of "192_168_22_159_2257"; }}
............
............
............
subnet 10.129.103.248 netmask 255.255.255.248 {
option routers 10.129.103.249;
option domain-name-servers 192.168.121.64, 8.8.8.8;
option broadcast-address 10.129.103.255;
option subnet-mask 255.255.255.248;
pool {range 10.129.103.250 10.129.103.254; allow members of "192_168_22_159_3280"; }}
#
subnet 192.168.22.0  netmask 255.255.255.0 { }
}


Никто из разработчиков даже вникнуть не пытается.... :facepalm:


В ХД? У меня сейчас там безумный запрос и разрабы пытаются понять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 23 авг 2017, 10:12 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
Увы нам , увы... незабвенный Zavndw! ( кстати большое спасибо за корректные системд-юниты, любезно предоставленные Вами в вики).
к сожалению попытки уже были и в ХД и здесь на форуме.

После долгих и трагических для моей психики игрищ с ДХЦП-сервером из БЖБ я пришёл к выводу что этот сервер фундаментально не умеет две так нужные для многих вещи:
1. Не умеет отдавать статическую подсеть в влан юзера, основываясь только на имени свитча-релея и влане юзера.
2. Не умеет отдавать любой ип просто в влан юзера без всяких opt82.

Решение архитектурной проблемы всякими мелкими заплатками в ХД суть оголтелое костыление и неэстетичный шабаш.
Мне проще всё это оставить на isc-dhcd, чем долго и нудно объяснять зачем это надо и что я хочу.
Не у всех в головах ещё устаканилась мысль , что у юзера в квартире уже стало обыденностью наличие кучи ип-ов и закреплённый за клиентским договором статический ( пусть даже "серый" ип-префикс ) - залог быстрого и лёгкого ответа на некоторые запросы определённых лиц без поднятия истории сессий.

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 23 авг 2017, 11:49 
Не в сети

Зарегистрирован: 22 июл 2009, 15:36
Сообщения: 308
Откуда: старый оскол
Карма: 5
а как связываете внешний dhcp и БГ ?
p.s. глупый вопрос, а зачем выдаете подсеть ? inet + iptv ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng
СообщениеДобавлено: 23 авг 2017, 13:50 
Не в сети
Клиент

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
По-топорному просто: БЖБ нечего не знает о isc-dhcpd , а isc-dhcpd ничего не знает о БЖБ.
Допустим у нас есть N вланов на каждого юзера по влану.

Схема сети - смешенная звёздно-гирляндная с зоопарком моделей и прошивок свитчей на агрегации и на доступе. Эти свитчи ничего не знают о dhcp-relay и знать не должны.
opt-82 вствляет один-единственный свитч на всю сеть, включённый одним единственным портом , развиланеным на все вланы юзеров + один влан в котором слушает isc-dhcpd ( этот же влан- управляющий для этого свитча).
Допустим в влане 100 живёт сеть 10.129.0.0/29 ( 10.129.0.1 - адрес шлюза . 10.129.0.2 - 10.129.0.6 - ипы на клиентских устройствах.).
В влане 101 будет жить сеть 10.129.0.8/29 ( 10.129.0.9 - адрес шлюза . 10.129.0.10 - 10.129.0.14 - ипы на клиентских устройствах.)
В влане 102 будет жить сеть 10.129.0.16/29 ( 10.129.0.17 - адрес шлюза . 10.129.0.18 - 10.129.0.22 - ипы на клиентских устройствах.)
и т.д..
Все вланы терминируются на микротиках по 256 вланов на один 1100AHx2 ( ипы клиентских шлюзов стоят на них).
В принципе это роли не играет. Просто терминаторы вланов в виде микротиков выбраны из того грустного факта что люди в нашем саппорте более-менее научились ёрзать мышью по винбоксам и как огня боятся командной строки линуксов.
Файрволл на микротиках сконфигурён так ,что при закрытых инет-сервисах в договорах клиентов им можно ходить куда-угодно, кроме собственно большого инета (т.е ип клиенту выдаётся всегда , выдаётся один и тот-же и не зависит от состояния его инет.сервиса).

Теперь самое плохое , что заставляет меня всё время делать робкие попытки мигрировать всё это дело на БЖБ :

В ресурсах ип-адресов модуля инет приходится делать два списка :
-основной , содержащий записи вида :
10.129.0.0 - 10.129.0.0
10.129.0.8 -10.129.0.8
10.129.0.16 -10.129.0.16
и т.д. с шагом 8
-дочерний вида:
10.129.0.2 - 10.129.0.6
10.129.0.10 - 10.129.0.14
10.129.0.18 - 10.129.0.22
и т.д. с шагом 4

Т.е. сколько юзеров - столько и записей в этих 2-х списках. Руками набивать долго ! .Один раз я сделал это для всех потенциальных юзеров в начале бытия и больше к счастью этим делом заниматься никому не надо, но для новых инсталляций это конечно может привратиться в кошмар!

Основной список нужен для того чтобы в основной инет-сервис договора добавлять ип-адрес клиента и его влан , чтобы на микроте исполнялись правила :
Код:
sa.command.serv.create.1=/ip/firewall/address-list/add\n=address=$ip/29\n=list=ACCESS_LIST\n=comment=!!$servId!!\n=disabled=yes
sa.command.serv.create.2=/queue/simple/add\n=max-limit=0/100M\n=target=vlan$vlan\n=name=vlan$vlan\n=comment=vlan$vlan
sa.command.serv.enable=/ip/firewall/address-list/enable\n=numbers="!!$servId!!"
sa.command.serv.disable=/ip/firewall/address-list/disable\n=numbers="!!$servId!!"
sa.command.serv.cancel.1=/ip/firewall/address-list/remove\n=numbers="!!$servId!!"
sa.command.serv.cancel.2=/queue/simple/remove\n=numbers=vlan$vlan

sa.command.inetOption.1.enable=/queue/simple/set\n=max-limit=0/100M\n=numbers=vlan$vlan
sa.command.inetOption.1.disable=/queue/simple/set\n=max-limit=0/99M\n=numbers=vlan$vlan


А дочерний список нужен для того, чтобы к основному инет-сервису прибавить дочерний, ведь именно по ип-ам из этого списка идёт переобсчёт сессий по нетфлоу , идущих с бордеров на BGInetAccounting-сервер.

Так же в основной инет-сервис клиента добавляются инерфейс ( порт свитча доступа , в который воткнут клиент ) и индификатор ( ип свитча доступа клиента ).Но они нужны только в целях инвентаризации , чтобы определить куда воткнут клиент и не принимают никакого участия в управлении.

Cписки VLAN ресурсов содержат к счастью только одну запись :от vlan_min до vlan_max.
ЗЫ:
Есть наверное и вторая причина :
Конечно инициализация сессий при таком способе - по трафику из Netflow а не по сигналу , как это имеет место в случае использования БЖБ-DHCP , т.е создаются псевдосессии.
Кто-то когда то на этом фоуме поведал мне потаенную мысль, что псевдосессии хуже чем обычные ( правда не объяснил почему).
Может это действительно плохо, но у нас такая схема в работе с БЖБ 5.2 и ничего плохого мы пока не замечали...

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


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

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


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

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


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

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