TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

V tomto článku sa pokúsim krok za krokom opísať proces inštalácie testovacieho servera skvelého projektu. Freeacs do úplne funkčného stavu a ukázať praktické triky pre prácu s mikrotikmi: konfiguráciu cez parametre, vykonávanie skriptov, aktualizácie, inštaláciu doplnkových modulov atď.

Cieľom článku je povzbudiť kolegov, aby sa vzdali správy sieťových zariadení pomocou hrozných nápadov a patchworku, ako sú vlastné skripty, Dude, Ansible a podobne. A zároveň vyvolať oslavy a hromadné radosť na námestiach.

0. Výber

Prečo freeacs, a nie genie-acs, spomenutý v mikrotik-wiki, ako viac aktívny?
Pretože o genie-acs s mikrotik existujú publikácie zo Španielska. Tu sú ich pdf a videu z minuloročného MUM. Automatizácia na slidoch - to je skvelé, ale chcel by som sa vyhnúť konceptu písania skriptov, aby sa skripty spúšťali pre ďalšie skripty...

1. Inštalácia freeacs

Inštalovať budeme na Centos7, a pretože zariadenia prenášajú dosť veľa údajov, a ACS aktívne pracuje s databázou - nebudeme šetriť s prostriedkami. Pre pohodlnú prácu vyhradíme 2 jadrá CPU, 4 GB RAM a 16 GB rýchleho úložiska ssd raid10. Ja budem inštalovať freeacs v lxc kontajneri Proxmox VE, a vy môžete pracovať v akomkoľvek vám pohodlnom nástroji.
Nezabudnite nastaviť správny čas na stroji s ACS.

Systém bude testovací, takže si nebudeme komplikovať život a jednoducho využijeme láskavo poskytnutý inštalačný skript, tak ako je.

wget https://raw.githubusercontent.com/freeacs/freeacs/master/scripts/install_centos.sh
chmod +x install_centos.sh
./install_centos.sh

Keď už skrypt dokončí svoju prácu - okamžite budete mať prístup k webovému rozhraniu cez IP adresu stroja s prihlasovacími údajmi admin/freeacs.

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.
Takéto príjemné minimalistické rozhranie a ako skvele a rýchlo to všetko dopadlo.

2. Počiatočné nastavenie freeacs

Základná jednotka správy pre ACS je jednotka alebo CPE (Customer Premises Equipment). A najdôležitejšie, čo potrebujeme na správu jednotiek - je ich Unit Type, t.j. model zariadenia, ktorý určuje súbor nastaviteľných parametrov jednotky a jej softvéru. Ale pokiaľ nevieme, ako správne založiť nový Unit Type, bude najlepšie opýtať sa na to samotnej jednotky zapnutím Discovery Mode.

V produkčnom prostredí by sa takýto režim používať určite nemal, no musíme rýchlo naštartovať motor a preskúmať možnosti systému. Všetky základné nastavenia sú uložené v /opt/freeacs-*. Preto otvoríme

 vi /opt/freeacs-tr069/config/application-config.conf 

, nájdeme

discovery.mode = false

a zmeníme na

discovery.mode = true

Okrem toho by sme mali zvýšiť maximálne veľkosti súborov, s ktorými budú pracovať nginx a mysql. Pre mysql pridáme do /etc/my.cnf riadok

max_allowed_packet=32M

, a pre nginx do /etc/nginx/nginx.conf pridáme

client_max_body_size 32m;

do sekcie http. Inak budeme môcť pracovať len s firmvérmi maximálne do 1M.

Reštartujeme, a sme pripravení pracovať s zariadeniami.

A v úlohe zariadenia (CPE) budeme mať malého pracanta hAP AC lite.

Pred testovacím pripojením je vhodné ručne nakonfigurovať CPE na minimálnu pracovnú konfiguráciu, aby parametre, ktoré v budúcnosti chcete konfigurovať, boli nenulové. Pre router stačí zapnúť dhcp klienta na ether1, nainštalovať balík tr-069client a nastaviť heslá.

3. Pripájame Mikrotik

Všetky jednotky je vhodné pripojiť s použitím platného sériového čísla ako prihlasovacieho mena. Potom budete mať v logoch všetko jasné. Niektorí odporúčajú používať WAN MAC — neverte im. Niektorí používajú spoločný prihlasovací pár pre všetkých — obchádzajte ich.

Otvoríme log tr-069 na monitorovanie "priebehu rozhovorov"

tail -f /var/log/freeacs-tr069/tr069-conversation.log

Otvoríme winbox, menu TR-069.
ACS URL: http://10.110.0.109/tr069/prov (vymeniť za vašu IP)
Používateľské meno: 9249094C26CB (skopírujte sériové číslo z system>routerboard)
Heslo: 123456 (pre discovery nie je potrebné, ale aby bolo)
Periodický interval informovania nemeníme. Toto nastavenie poskytneme cez náš ACS

Nižšie sú nastavenia pre vzdialenú inicializáciu spojenia, ale z krátkeho kontaktu sa mi nepodarilo donútiť mikrotik s týmto pracovať. Aj keď s telefónmi remote request funguje "out of the box". Bude treba sa na to pozrieť.

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Po stlačení tlačidla Apply sa v termináli začne výmena údajov a v webovom rozhraní Freeacs uvidíme náš router s automaticky vytvoreným typom jednotky "hAPaclite".

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Router je pripojený. Môžete sa pozrieť na automaticky vytvorený typ jednotky. Otvoríme Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Čo tam len nie je! Celých 928 parametrov (škúlal som v shell). Je to veľa alebo málo — na tom sa dohodneme neskôr, a zatiaľ sa na to len rýchlo pozrime. Toto je to, čo znamená Typ jednotky. To je zoznam podporovaných parametrov s kľúčmi, ale bez hodnôt. Hodnoty sa zadávajú na nižších úrovniach — v Profiloch a Jednotkách.

4. Konfigurujeme Mikrotik

Prišiel čas stiahnuť príručku k webovému rozhraniu Táto príručka je z roku 2011 — ako fľaša dobrého, zrelého vína. Otvorme ju a nechajme dýchať.

A my v webovom rozhraní klikneme na ceruzku vedľa našej jednotky a prejdeme do režimu konfigurácie jednotky. Vyzerá to takto:

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Krátko sa pozrieme, čo je zaujímavé na tejto stránke:

Blok Konfigurácia jednotky

  • Profil: Toto je profil v rámci Typu jednotky. Hierarchia je takáto: TypJednotky > Profil > Jednotka. Teda, môžeme zaviesť, napríklad, profily hAPaclite > hotspot a hAPaclite > branch, ale v rámci modelu zariadenia

Blok Provisioning s tlačidlami
Nápovedy naznačujú, že všetky tlačidlá v bloku Provisioning môžu okamžite aplikovať konfiguráciu cez ConnectionRequestURL. Ale, ako som už povedal, to nefunguje, preto po stlačení tlačidiel bude potrebné reštartovať tr-069 klienta na mikrotiku na ručný štart provision.

  • Frekvencia/Sprej: Koľkokrát za týždeň doručovať konfiguráciu ± %, aby sa znížila záťaž na server a komunikačné kanály. Podľa predvoleného nastavenia je 7/20, t.j. každý deň ± 20 % a nápoveda, ako to je v sekundách. Zatiaľ nemá zmysel meniť frekvenciu doručovania, pretože to spôsobí nadbytočný šum v logoch a nie vždy očakávanú aplikáciu nastavení.

Blok História provisioning (posledných 48 hodín)

  • Na pohľad história, ako história, ale kliknutím na záhlavie — sa dostanete do pohodlného nástroja na vyhľadávanie v databáze, s regexp a ďalšími vychytávkami.

Blok Parametre

Najväčší a najdôležitejší blok, kde sa vlastne nastavujú a čítajú parametre pre danú jednotku. Teraz vidíme iba najdôležitejšie systémové parametre, bez ktorých práca ACS s jednotkou nie je možná. Ale my si pamätáme, že v Typu jednotky ich je — 928. Pozrime sa na všetky hodnoty a rozhodneme, ako to všetko funguje na mikrotiku.

4.1 Čítame parametre

V bloku Provisioning stlačíme tlačidlo Prečítať všetko. V bloku — červený nápis. Vpravo sa objaví stĺpec CPE (aktuálna) hodnota. V systémových parametroch sa ProvisioningMode zmenil na READALL.

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

A… nič sa nestane, okrem správy v System.X_FREEACS-COM.IM.Message Zlyhanie pri kick....

Reštartujte TR-069 klienta alebo reštartujte router a pokračujte v aktualizácii stránku v prehliadači, kým na pravej strane nezískate parametre v veselých šedých obdĺžnikoch.
Ak niekto chcel ochutnať starý zrelý — tento režim je v manuáli popísaný ako 10.2 Inspection mode. Zapína sa a funguje trochu inak, ale podstata je celkom jasná.

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Režim READALL sa sám vypne po 15 minútach, a my sa pokúsime zistiť, čo je tu užitočné a čo môžeme upraviť 'za behu', kým sme v tomto režime.

Môžete meniť IP adresy, zapínať/vypínať rozhrania, pravidlá firewallu, ktoré sú s komentármi (ináč by bol totálny chaos), wifi a podobne drobnosti.

To znamená, že rozumné konfigurovanie mikrotik len s pomocou TR-069 zatiaľ nie je možné. Ale môžeme veľmi dobre monitorovať. Dostupná je štatistika pre rozhrania a ich stav, voľná pamäť atď.

4.2 Doručujeme parametre

Teraz sa pokúsime doručiť parametre do routera cez tr-069, 'prirodzeným' spôsobom. Prvou obeťou bude Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Nájdeme ho v parametroch jednotky All. Ako vidno — nie je nastavený. To znamená, že akákoľvek jednotka môže sama o sebe mať akúkoľvek Identitu. Dosť toho znášania!
Zaškrtneme políčko v stĺpci create, nastavíme meno Mr.White a stlačíme tlačidlo Update parameters. Čo sa potom stane, už tušíte. Pri ďalšej komunikácii so strediskom by mal router zmeniť svoju Identitu.

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Ale to nám nestačí. Taký parameter, ako Identita, je vždy dobré mať po ruke pri hľadaní potrebnej jednotky. Klikneme na meno parametra a zaškrtneme dáta Display(D) a Searchable (S). Kľúč parametra sa mení na RWSD (Pamätajte, že mená a kľúče sú nastavené na najvyššej úrovni Unit Type)

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Hodnota sa teraz zobrazuje nielen v celkovom zozname vyhľadávania, ale je tiež dostupná na vyhľadávanie v Support > Search > Advanced form

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Iniciujeme provision a pozeráme na Identitu. Dobrý deň, Mr.White! Teraz si sami nebudete môcť zmeniť masku, kým funguje tr-069 klient.

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

4.3 Vykonávame skripty

Keďže sme zistili, že bez nich sa nedá, — poďme ich vykonávať.

Ale predtým, ako začneme pracovať s súbormi — musíme upraviť direktívu public.url v súbore /opt/freeacs-tr069/config/application-config.conf
Veď máme stále testovaciu konfiguráciu, nainštalovanú jedným skriptom. Nezabudli ste?

# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}

Reštartujeme ACS a zamierime priamo do Files & Scripts.

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

To, čo teraz otvárame, patrí typu jednotky, t.j. globálne všetkým routerom hAP ac lite, či už ide o router pobočky, hotspot alebo CAPsMAN. Takú vysokú úroveň zatiaľ nepotrebujeme, preto predtým, než pracujeme so skriptami a súbormi, je potrebné vytvoriť profil. Môžeme si to nazvať 'pozícia' zariadenia.

Poďme urobiť z nášho miláčika časový server. Dôstojná pozícia s vlastným balíkom softvéru a niekoľkými parametrami. Ideme do Easy Provisioning > Profil > Vytvoriť profil a vytvárame profil v type jednotky: hAPaclite timeserver.Parametre v našom predvolenom profile neexistovali, takže niet čo kopírovať. Kopírovať parametre z: „nekopírovať...“

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Tu zatiaľ nie sú žiadne parametre, ale neskôr môžeme zadať tie, ktoré chceme vidieť na našich časových serveroch vytvorených z hAPaclite. Napríklad, spoločné adresy NTP serverov.
Prejdeme do konfigurácie jednotky a presunieme ju do profilu timeserver.

Konečne ideme do Files & Scripts, robiť skripty, a tu nás čakajú úžasne pohodlné možnosti.

Aby sme mohli vykonať skript na jednotke, musíme zvoliť Type: TR069_SCRIPT a Názov a Cieľový názov musí mať príponu .alter.
Pre skripty, na rozdiel od softvéru, môžeme buď nahrať hotový súbor, alebo ho jednoducho napísať/úpdate do poľa Obsah. Poďme sa pokúsiť napísať to priamo tam.

Aby sme hneď videli výsledok — pridáme routeru VLAN na ether1.

/interface vlan
add interface=ether1 name=vlan1 vlan-id=1

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Napíšeme, klikneme na Nahrať a hotovo. Náš skript vlan1.alter čaká na svoj čas.

Tak čo, ideme? Nie. Musíme ešte pridať pre náš profil skupinu. Skupiny nie sú súčasťou hierarchie zariadení, ale sú potrebné na vyhľadávanie jednotiek v type jednotky alebo v profile a sú povinné na vykonávanie skriptov cez Advanced Provisioning. Zvyčajne sú skupiny spojené s lokalitami a majú vnorenú štruktúru. Poďme vytvoriť skupinu Rusko.

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Predstavte si, práve sme dokázali zúžiť vyhľadávanie z 'Všetky časové servery sveta na hAPaclite' na 'Všetky časové servery Ruska na hAPaclite'. Tam je ešte obrovský objem zaujímavých vecí so skupinami, ale niet času. Pokračujme už do skriptov.

Advanced Provisioning > Práca > Vytvoriť prácu

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Keďže sme v režime Advanced, môžeme tu nastaviť množstvo rôznych podmienok začatia úlohy, správania pri chybách, opakovaní a timeoutoch. Odporúčam prečítať si to v príručkách alebo neskôr si to preberieme pri implementácii do produkcie. Zatiaľ nastavíme n1 v Stop rules, aby sa úloha zastavila, akonáhle sa dokončí na našom 1 jednotke.

Vyplňte potrebné a už len spustiť!

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Kliknite na ŠTART a počkajte. Teraz sa rýchlo rozbehne počet zabitých nedokončeným skriptom zariadení! Nie, samozrejme. Takéto úlohy sa zadávajú na dlhú dobu, a to je ich odlišnosť od skriptov, Ansible a podobne. Jednotky sa samy prihlasujú na úlohy podľa plánu alebo pri objavení v sieti, ACS sleduje, ktoré jednotky už dostali úlohy a ako ich splnili, a zaznamenáva to do parametrov jednotky. V našej skupine je 1 jednotka, a keby ich bolo 1001 — admin by spustil túto úlohu a odišiel na ryby.

No poďte. Už reštartujte router alebo reštartujte TR-069 klienta. Všetko by malo prebehnúť hladko a Mr.White dostane nový vlan. A naša úloha v Stop rules prejde do stavu PAUSED. To znamená, že ju bude možné znovu spustiť alebo zmeniť. Ak kliknete na UKONČIŤ — úloha sa archivuje.

4.4 Aktualizácia softvéru

Toto je veľmi dôležitý bod, pretože firmvér mikrotika je modulárny, avšak pridanie modulov nemenní celkovú verziu firmvéru zariadenia. Naša ACS je normálna a na to si nezvykol.
Teraz to spravíme v štýle quick&dirty a hneď zahrnieme modul NTP do celkového firmvéru, ale akonáhle sa na zariadení aktualizuje verzia — nebudeme môcť pridať ďalší modul rovnakým spôsobom.
Do produkcie by sa takýto trik nemal používať a inštalovať voliteľné pre typ jednotky moduly len skriptami.

Prvé, čo musíme spraviť, je pripraviť balíčky softvéru potrebných verzií a architektúry a umiestniť ich na nejaký dostupný webový server. Pre test postačí akýkoľvek, na ktorý sa náš Mr.White dostane, a pre produkciu je lepšie vytvoriť automaticky aktualizované zrkadlo potrebného softvéru, ktoré nie je problém vystaviť na webe.
Dôležité! Nezabudnite vždy zahrnúť do aktualizácií balík s tr-069client!

Ako sa ukázalo, dĺžka cesty k balíčkom je veľmi dôležitá! Pri mojich pokusoch použiť niečo typu http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik mal v cyklickom pripojení na zdroj, odovzdávajúc v tr-069 log opakované TRANSFERCOMPLETE. A strávil som nejaký čas nervovaním sa, snažiac sa zistiť, čo nie je v poriadku. Preto, zatiaľ to uložme do koreňa, kým nevyjasníme

Takže, máme mať tri npk súbory dostupné cez http. Mne sa podarilo získať

http://192.168.0.241/routeros-mipsbe-6.45.6.npk
http://192.168.0.241/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk
http://192.168.0.241/routeros/stable/mipsbe/tr069-client-6.45.6-mipsbe.npk

Teraz to musíme formátovať do xml súboru s FileType="1 Firmware Upgrade Image", ktorý skrmíme mikrotiku. Nech sa volá ros.xml

Robíme podľa inštrukcií z mikrotik-wiki:

http://192.168.0.241/routeros-mipsbe-6.45.6.npk
        
        
            http://192.168.0.241/ntp-6.45.6-mipsbe.npk
        
        
            http://192.168.0.241/tr069-client-6.45.6-mipsbe.npk

Zaujme nás nedostatok Username/Password na prístup k serveru na sťahovanie. Môžeme buď skúsiť to zadať ako v bode A.3.2.8 protokolu tr-069:

http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk
user
pass

Alebo sa opýtať priamo oficiálov mikrotiku, ako aj o maximálnej dĺžke cesty k *.npk

Ideme na nám známe Files & Scripts, a vytvoríme tam súbor typu SOFTWARE s Name:ros.xml, Target Name:ros.xml a Version:6.45.6
Pozor! Verzia tu musí byť uvedená presne v takom formáte, ako je zobrazená na zariadení a prenášaná v parametre System.X_FREEACS-COM.Device.SoftwareVersion.

Vyberieme na sťahovanie náš xm súbor a hotovo.

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Teraz máme množstvo spôsobov, ako aktualizovať zariadenie. Cez Wizard v hlavnom menu, cez Advanced Provisioning a úlohy typu SOFTWARE, alebo jednoducho ísť do konfigurácie jednotky a stlačiť Upgrade. Vyberieme najjednoduchšiu cestu, lebo tento článok už aj tak narástol.

TR-069 v Mikrotik. Testujeme Freeacs ako server na automatickú konfiguráciu pre RouterOS.

Stlačíme tlačidlo, iniciujeme provision a hotovo. Testovacie programovanie skončilo. Teraz vieme robiť s mikrotik viac.

5. Záver

Keď som začínal písať, chcel som najprv opísať pripojenie ip telefónu a na jeho príklade vysvetliť, aké skvelé môže byť, keď tr-069 funguje jednoducho a bez úsilia. Ale potom, ako som pokračoval a hlbšie sa zaoberal materiálmi, si myslím, že kto pripojil mikrotik — už žiadny telefón mu nebude strašný na samostatné štúdium.

V zásade Freeacs, ktorý sme testovali, sa už dá použiť v produkcii, ale na to je potrebné nastaviť bezpečnosť, SSL, nastaviť mikrotiky na automatickú konfiguráciu po resetovaní, odladit správne pridanie typu jednotky, preskúmať fungovanie webových služieb a fusion shell a ešte veľa iného. Skúšajte, vymýšľajte a píšte pokračovanie!

Všetkým, ďakujem za pozornosť! Budem rád za opravy a komentáre!

Zoznam použitých materiálov a užitočných odkazov:

Téma fóra, na ktorú som narazil na začiatku hľadania témy
TR-069 CPE WAN Management Protocol Amendment-6
Freeacs wiki
Parametre tr-069 v mikrotiku a ich zodpovedajúce príkazy terminálu

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster