forum.bitel.ru http://forum.bitel.ru/ |
|
howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng http://forum.bitel.ru/viewtopic.php?f=44&t=12579 |
Страница 1 из 1 |
Автор: | a.vozny [ 10 авг 2017, 14:33 ] |
Заголовок сообщения: | howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
несколько дней прикидывал как раздать в сети 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 пока не работает. |
Автор: | a.vozny [ 10 авг 2017, 17:47 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
пока не соображу как передать из BG в accel-ppp attr-dhcp-router-ip=атрибут Указывает в каком радиус атрибуте передаётся ип адрес маршрутизатора (актуально только для DHCP). attr-dhcp-mask=атрибут Указывает в каком радиус атрибуте передаётся маска сети (актуально только для DHCP). |
Автор: | Amir [ 10 авг 2017, 18:08 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
Указывать макрос для получения параметров из 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-Атрибутыреалма |
Автор: | a.vozny [ 14 авг 2017, 11:54 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
Навернулась вся схема. accel-ppp слушает dhcp только в vlan абонента. |
Автор: | zavndw [ 15 авг 2017, 07:38 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
в vlan mgmt указан в interface акцеля? shared какой стоит? |
Автор: | a.vozny [ 15 авг 2017, 16:56 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
да указан interface=eth0.340 interface=eth0.2 shared=1 |
Автор: | a.vozny [ 22 авг 2017, 19:21 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
перед тем как поднимать 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 ? |
Автор: | ok-2004 [ 22 авг 2017, 23:59 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
Ха ! Я уже 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 { } } Никто из разработчиков даже вникнуть не пытается.... ![]() |
Автор: | a.vozny [ 23 авг 2017, 00:36 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
задел за больное ![]() мне нужно раздать адреса по circuitid,как я думаю. |
Автор: | zavndw [ 23 авг 2017, 06:56 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
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 { } } Никто из разработчиков даже вникнуть не пытается.... ![]() В ХД? У меня сейчас там безумный запрос и разрабы пытаются понять. |
Автор: | ok-2004 [ 23 авг 2017, 10:12 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
Увы нам , увы... незабвенный Zavndw! ( кстати большое спасибо за корректные системд-юниты, любезно предоставленные Вами в вики). к сожалению попытки уже были и в ХД и здесь на форуме. После долгих и трагических для моей психики игрищ с ДХЦП-сервером из БЖБ я пришёл к выводу что этот сервер фундаментально не умеет две так нужные для многих вещи: 1. Не умеет отдавать статическую подсеть в влан юзера, основываясь только на имени свитча-релея и влане юзера. 2. Не умеет отдавать любой ип просто в влан юзера без всяких opt82. Решение архитектурной проблемы всякими мелкими заплатками в ХД суть оголтелое костыление и неэстетичный шабаш. Мне проще всё это оставить на isc-dhcd, чем долго и нудно объяснять зачем это надо и что я хочу. Не у всех в головах ещё устаканилась мысль , что у юзера в квартире уже стало обыденностью наличие кучи ип-ов и закреплённый за клиентским договором статический ( пусть даже "серый" ип-префикс ) - залог быстрого и лёгкого ответа на некоторые запросы определённых лиц без поднятия истории сессий. |
Автор: | a.vozny [ 23 авг 2017, 11:49 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
а как связываете внешний dhcp и БГ ? p.s. глупый вопрос, а зачем выдаете подсеть ? inet + iptv ? |
Автор: | ok-2004 [ 23 авг 2017, 13:50 ] |
Заголовок сообщения: | Re: howto mikrotik- /dhcp relay/-accel-ppp-/radius/-bgbillng |
По-топорному просто: БЖБ нечего не знает о 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 и ничего плохого мы пока не замечали... |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |