TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

V tem članku bom poskušal korak za korakom opisati postopek namestitve testnega strežnika odličnega projekta freeacs v popolnoma funkcionalno stanje, ter prikazati praktične tehnike dela z mikrotikom: konfiguracija preko parametrov, izvajanje skript, posodabljanje, nameščanje dodatnih modulov itd.

Namen članka je spodbuditi kolege, da zavrnejo upravljanje omrežnih naprav s strašnimi grabljami in berglami, v obliki samonapisanih skript, Dude, Ansible itd. In ob tej priložnosti povzročiti ognjemet in množično veselje v kvadrati.

0. Izbira

Zakaj freeacs in ne genie-acs omenjen v mikrotik-wikikako bolj živ?
Ker obstajajo španske publikacije o genie-acs z mikrotikom. Tukaj so pdf и Video iz lanske MUM. Avto risanke na diapozitivih so kul, vendar bi rad pobegnil od koncepta pisanja scenarijev, izvajanja scenarijev, izvajanja scenarijev ...

1. Namestitev Freeacs

Namestili bomo v Centos7 in ker naprave prenašajo veliko podatkov, ACS pa aktivno dela z bazo podatkov, ne bomo požrešni z viri. Za udobno delo bomo izbrali 2 jedri procesorja, 4 GB RAM-a in 16 GB hitrega pomnilnika ssd raid10. Freeacs bom namestil v vsebnik Proxmox VE lxc, vi pa lahko delate v katerem koli orodju, ki vam ustreza.
Ne pozabite nastaviti pravilnega časa na napravi z ACS.

Sistem bo testni, zato ne bodimo pametni in samo uporabimo prijazno ponujen namestitveni skript, kakršen je.

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

Takoj ko se skript konča, lahko takoj vstopite v spletni vmesnik prek ip-ja stroja s poverilnicami admin/freeacs

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS
Tukaj je tako lep minimalističen vmesnik in kako kul in hitro se je vse izkazalo

2. Začetna nastavitev Freeacs

Osnovna krmilna enota za ACS je enota ali CPE (Customer Premises Equipment). In kar je najpomembneje, kar potrebujemo za upravljanje enot, je njihov tip enote, tj. model strojne opreme, ki definira niz nastavljivih parametrov za enoto in njeno programsko opremo. Toda dokler ne vemo, kako pravilno pridobiti novo vrsto enote, bi bilo najbolje, da o tem vprašamo enoto samo tako, da vklopimo način odkrivanja.

V proizvodnji je ta način absolutno nemogoč uporabiti, vendar moramo čim prej zagnati motor in videti zmožnosti sistema. Vse osnovne nastavitve so shranjene v /opt/freeacs-*. Zato odpiramo

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

, najdemo

discovery.mode = false

in spremenite v

discovery.mode = true

Poleg tega bi radi povečali največje velikosti datotek, s katerimi bosta delovala nginx in mysql. Za mysql dodajte vrstico v /etc/my.cnf

max_allowed_packet=32M

, za nginx pa dodajte v /etc/nginx/nginx.conf

client_max_body_size 32m;

v razdelek http. V nasprotnem primeru bomo lahko delali z vdelano programsko opremo največ 1M.

Ponovno se zaženemo in pripravljeni smo na delo z napravami.

In v vlogi naprave (CPE) bomo imeli deloholičnega dojenčka hAP AC lite.

Pred preskusno povezavo je priporočljivo, da CPE ročno konfigurirate na minimalno delujočo konfiguracijo, tako da parametri, ki jih želite konfigurirati v prihodnosti, niso prazni. Za usmerjevalnik lahko minimalno omogočite odjemalca dhcp na ether1, namestite paket tr-069client in nastavite gesla.

3. Povežite Mikrotik

Zaželeno je, da vse enote povežete z veljavno serijsko številko kot prijavo. Potem vam bo v logih vse jasno. Nekdo svetuje uporabo WAN MAC - ne verjemite. Nekdo uporablja skupen par prijava/geslo za vse - obidite jih.

Odpiranje dnevnika tr-069 za spremljanje "pogajanj"

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

Odprite winbox, postavko menija TR-069.
AC URL: http://10.110.0.109/tr069/prov (zamenjajte s svojim IP-jem)
Uporabniško ime: 9249094C26CB (kopiraj serijo iz sistema>usmerjevalnik)
Geslo: 123456 (ni potrebno za odkritje, vendar mora biti)
Intervala periodičnega obveščanja ne spreminjamo. To nastavitev bomo izdali prek našega ACS

Spodaj so nastavitve za oddaljeno inicializacijo povezave, vendar mikrotik nisem uspel pripraviti do dela z njim z zamahom. Čeprav zahteva na daljavo deluje takoj po namestitvi s telefoni. Bo treba ugotoviti.

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Po pritisku na gumb Uporabi se bodo podatki izmenjali v terminalu, v spletnem vmesniku Freeacs pa si lahko ogledate naš usmerjevalnik s samodejno ustvarjenim tipom enote "hAPaclite".

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Usmerjevalnik je povezan. Ogledate si lahko samodejno ustvarjeno vrsto enote. Odpiramo Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Česa ni! Kar 928 parametrov (vohunil sem po lupini). Veliko ali malo – bomo ugotovili kasneje, zaenkrat pa bomo le na hitro pogledali. To pomeni vrsta enote. To je seznam podprtih možnosti s ključi, vendar brez vrednosti. Vrednosti so nastavljene v spodnjih ravneh - Profili in Enote.

4. Konfigurirajte Mikrotik

Čas je za prenos vodnik po spletnem vmesniku Ta vodnik 2011 je kot steklenica dobrega, staranega vina. Odprimo ga in mu pustimo dihati.

In sami v spletnem vmesniku kliknemo na svinčnik poleg naše enote in pojdimo v način konfiguracije enote. Videti je takole:

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Na kratko analizirajmo, kaj je zanimivega na tej strani:

Blok konfiguracije enote

  • Profil: To je profil v vrsti enote. Hierarhija je takšna: UnitType > Profile > Unit. To pomeni, da lahko ustvarimo na primer profile hAPaclite > hotspot и hAPaclite > branch, vendar znotraj modela naprave

Blokiranje zagotavljanja z gumbi
Namigi namigujejo, da lahko vsi gumbi v bloku Provisioning takoj uporabijo konfiguracijo prek ConnectionRequestURL. Toda, kot sem rekel zgoraj, to ne deluje, zato boste morali po pritisku gumbov znova zagnati odjemalca tr-069 na mikrotiku, da ročno zaženete zagotavljanje.

  • Freq/Spread: Kolikokrat na teden dostaviti konfiguracijo ± % za zmanjšanje obremenitve strežnika in komunikacijskih kanalov. Privzeto stane 7/20, tj. vsak dan ± 20 % in namignite, kako je v nekaj sekundah. Zaenkrat še nima smisla spreminjati pogostosti dostave, saj. v dnevnikih bo prišlo do dodatnega šuma in ne vedno pričakovane uporabe nastavitev

Blok zgodovine zagotavljanja (zadnjih 48 ur)

  • Na videz je zgodba kot zgodba, vendar s klikom na naslov pridete do priročnega iskalnika po bazi podatkov z regexp in dobrotami

Blok parametrov

Največji in najpomembnejši blok, kjer se pravzaprav nastavljajo in berejo parametri za to enoto. Zdaj vidimo samo najpomembnejše sistemske parametre, brez katerih ACS ne more delovati z enoto. Vendar se spomnimo, da jih imamo v vrsti enote - 928. Poglejmo vse vrednosti in se odločimo, s čim Mikrotik jemo.

4.1 Branje parametrov

V bloku Provisioning kliknite gumb Preberi vse. Blok ima rdeč napis. Na desni strani se prikaže stolpec CPE (trenutna) vrednost. ProvisioningMode spremenjen v READALL v sistemskih nastavitvah.

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

In ... zgodilo se ne bo nič razen sporočila v System.X_FREEACS-COM.IM.Message Kick failed at....

Znova zaženite odjemalca TR-069 ali znova zaženite usmerjevalnik in osvežujte stran brskalnika, dokler ne dobite parametrov v veselih sivih poljih na desni
Če želi kdo popiti požirek starega, je ta način v priročniku opisan kot 10.2 Način pregleda. Vklopi se in deluje malo drugače, vendar je bistvo precej opisano

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Način READALL se bo po 15 minutah sam izklopil, mi pa bomo poskušali ugotoviti, kaj je tukaj uporabnega in kaj lahko popravimo sproti, ko smo v tem načinu.

Lahko spremenite IP naslove, omogočite/onemogočite vmesnike, pravila požarnega zidu, ki so s komentarji (sicer popolna zmešnjava), Wi-Fi in tako naprej.

To pomeni, da mikrotik še ni mogoče razumno konfigurirati samo z orodji TR-069. Lahko pa zelo dobro spremljaš. Na voljo je statistika o vmesnikih in njihovem stanju, prostem pomnilniku itd.

4.2 Dostava parametrov

Poskusimo zdaj parametre dostaviti usmerjevalniku, preko tr-069, na "naraven" način. Prva žrtev bo Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Najdemo ga v parametrih enote Vse. Kot lahko vidite, ni nastavljeno. To pomeni, da ima lahko vsaka enota poljubno identiteto. Dovolj toleriranja tega!
Pokukamo v stolpec za ustvarjanje, nastavimo ime Mr.White in pritisnemo gumb Posodobi parametre. Kaj se bo zgodilo naprej, ste že uganili. Pri naslednji komunikacijski seji s centralo mora usmerjevalnik spremeniti svojo identiteto.

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Vendar nam to ni dovolj. Parameter, kot je Identity, je dobro imeti vedno pri roki, ko iščete pravo enoto. Pokukamo v ime parametra in tam postavimo potrditvena polja Display (D) in Searchable (S). Ključ parametra se spremeni v RWSD (ne pozabite, imena in ključi so nastavljeni na najvišji ravni tipa enote)

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Vrednost zdaj ni samo prikazana na splošnem iskalnem seznamu, ampak je na voljo tudi za iskanje Support > Search > Advanced form

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Zaženemo zagotavljanje in pogledamo Identiteto. Pozdravljeni g. White! Zdaj ne boste mogli sami spremeniti svoje identitete, medtem ko tr-069client deluje

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

4.3 Izvajanje skriptov

Ker smo ugotovili, da brez njih ne gre, jih izpolnimo.

Toda preden začnemo delati z datotekami, moramo popraviti direktivo public.url v datoteki /opt/freeacs-tr069/config/application-config.conf
Navsezadnje imamo še vedno nameščeno testno konfiguracijo z enim skriptom. Niste pozabili?

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

Ponovno zaženite ACS in pojdite naravnost na Files & Scripts.

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Toda to, kar se odpira pri nas, zdaj spada v Tip enote, tj. globalno na vse usmerjevalnike hAP ac lite, pa naj bo to podružnica usmerjevalnika, dostopna točka ali capsman. Tako visoke ravni še ne potrebujemo, zato morate pred delom s skripti in datotekami ustvariti profil. Lahko ga imenujete sami, kot "položaj" naprave.

Naj bo naš otrok časovni strežnik. Dostojen položaj z ločenim programskim paketom in majhnim številom parametrov. Pojdimo na Easy Provisioning > Profile > Create Profile in ustvarite profil v vrsti enote: hAPaclite časovni strežnik. V privzetem profilu nismo imeli parametrov, zato ni kaj kopirati Kopiraj parametre iz: "ne kopiraj ..."

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Tukaj parametrov sploh še ni, bo pa možno nastaviti tiste, ki jih bomo kasneje želeli videti na naših časovnih strežnikih, oblikovanih iz hAPaclite. Na primer, splošni naslovi strežnikov NTP.
Pojdimo na konfiguracijo enote in jo premaknimo v profil časovnega strežnika

Končno gremo na Files & Scripts, naredite skripte in tukaj čakamo na neverjetno priročne žemljice.

Če želimo izvesti skript na enoti, moramo izbrati Vrsta: TR069_SCRIPT а Ime и Ime cilja mora imeti končnico .alter
Hkrati lahko za skripte, za razliko od programske opreme, naložite končano datoteko ali jo preprosto napišete / uredite v polje Vsebina. Poskusimo pisati kar tam.

In tako, da lahko takoj vidite rezultat - dodajte usmerjevalnik vlan v ether1

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

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Vozimo, pritiskamo Pošiljanje in končano. Naš scenarij vlan1.alter čaka na krila.

No, gremo? št. Prav tako moramo dodati skupino za naš profil. Skupine niso vključene v hierarhijo opreme, ampak so potrebne za iskanje enot v UnitType ali Profile in so potrebne za izvajanje skripta prek Advanced Provisioning. Običajno so skupine povezane z lokacijami in imajo ugnezdeno strukturo. Ustvarimo skupino Rusija.

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Predstavljajte si, da smo naše iskanje pravkar zožili z »Vsi svetovni časovni strežniki na hAPaclite« na »Vsi ruski časovni strežniki na hAPaclite«. Pri skupinah je še ogromno vsega zanimivega, a nimamo časa. Pojdimo k scenarijem.

Advanced Provisioning > Job > Create Job

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Konec koncev, ker smo v naprednem načinu, lahko tukaj določite kup različnih pogojev za začetek opravila, vedenje napak, ponovitve in časovne omejitve. Priporočam, da vse to preberete v priročnikih ali pa se o tem pogovorite kasneje, ko ga implementirate v proizvodnjo. Za zdaj samo nastavimo n1 na Ustavi pravila, tako da se naloga ustavi takoj, ko je dokončana v naši 1. enoti.

Izpolnimo potrebno in ostane le še zagon!

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Pritisnite START in počakajte. Zdaj bo števec naprav, uničenih zaradi premalo razhroščenega skripta, deloval hitro! Seveda ne. Takšne naloge se dajejo dolgo časa in to je njihova razlika od skriptov, Ansiblea itd. Enote se same prijavljajo na naloge po urniku ali kot se pojavljajo v omrežju, ACS spremlja katere enote so že prejele naloge in kako so se končale ter to zapiše v parametre enote. V naši skupini je 1 enota in če bi jih bilo 1001, bi admin začel to nalogo in šel na ribolov

pridi no Ponovno zaženite usmerjevalnik ali znova zaženite odjemalca TR-069. Vse bi moralo iti gladko in Mr.White bo dobil nov vlan. In naše opravilo pravila Ustavi bo prešlo v stanje ZAUSTAVLJENO. To pomeni, da ga je še vedno mogoče znova zagnati ali spremeniti. Če pritisnete FINISH, bo opravilo odpisano v arhiv

4.4 Posodabljanje programske opreme

To je zelo pomembna točka, saj je vdelana programska oprema Mikrotika modularna, vendar dodajanje modulov ne spremeni celotne različice vdelane programske opreme naprave. Naš ACS je normalen in tega ni vajen.
Zdaj bomo to storili v slogu quick & dirty in modul NTP takoj potisnili v splošno vdelano programsko opremo, vendar takoj, ko bo različica posodobljena v napravi, ne bomo mogli dodati drugega modula na enak način .
V proizvodnji je bolje, da ne uporabite takšnega trika in namestite module, ki so neobvezni za tip enote, samo s skripti.

Torej, najprej moramo pripraviti programske pakete zahtevanih različic in arhitekture ter jih postaviti na nek razpoložljiv spletni strežnik. Za test bo šel vsakdo, ki lahko doseže našega Mr.White, za proizvodnjo pa je bolje zgraditi samodejno posodabljajoče ogledalo potrebne programske opreme, ki je ni strah dati na splet
Pomembno! Ne pozabite v posodobitve vedno vključiti paketa tr-069client!

Kot se je izkazalo, je dolžina poti do paketov zelo pomembna! Ko poskušam uporabiti nekaj podobnega http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, je mikrotik padel v ciklično povezavo z virom in pošiljal ponavljajoče se dnevnike TRANSFERCOMPLETE na tr-069. In porabil sem nekaj živčnih celic, ko sem poskušal ugotoviti, kaj je narobe. Zato, medtem ko ga postavljamo v koren, do razjasnitve

Torej bi morali imeti na voljo tri datoteke npk prek http. Dobil sem takole

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

Zdaj je treba to formatirati v datoteko xml z FileType = "1 Firmware Upgrade Image", ki jo bomo posredovali Mikrotiku. Naj bo ime ros.xml

Delamo po navodilih iz mikrotik-wiki:

<upgrade version="1" type="links">
    <config />
    <links>
        <link>
            <url>http://192.168.0.241/routeros-mipsbe-6.45.6.npk</url>
        </link>
        <link>
            <url>http://192.168.0.241/ntp-6.45.6-mipsbe.npk</url>
        </link>
        <link>
            <url>http://192.168.0.241/tr069-client-6.45.6-mipsbe.npk</url>
        </link>
    </links>
</upgrade>

Pomanjkanje je očitno Username/Password za dostop do strežnika za prenos. Lahko ga poskusite vnesti kot v odstavku A.3.2.8 protokola tr-069:

<link>
<url>http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk</url>
<Username>user</Username>
<Password>pass</Password>
</link>

Ali pa povprašajte neposredno uradnike Mikrotika, pa tudi o največji dolžini poti do * .npk

Gremo k znanemu Files & Scriptsin tam ustvarite datoteko PROGRAMSKA OPREMA z ime:ros.xml, Ime cilja:ros.xml in različica:6.45.6
Pozor! Tu je treba določiti različico točno v obliki, v kateri je prikazana na napravi in ​​posredovana v parametru System.X_FREEACS-COM.Device.SoftwareVersion.

Izberemo našo datoteko xm za nalaganje in končali ste.

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Zdaj imamo veliko načinov za posodobitev naprave. Preko čarovnika v glavnem meniju, prek naprednega zagotavljanja in opravil z vrsto PROGRAMSKA OPREMA ali pa preprosto pojdite na konfiguracijo enote in kliknite Nadgradnja. Izberimo najlažji način, sicer je članek nabrekel.

TR-069 pri Mikrotiku. Testiranje Freeacs kot samodejnega konfiguracijskega strežnika za RouterOS

Pritisnemo gumb, sprožimo zagotavljanje in končali ste. Testni program je zaključen. Zdaj lahko z mikrotikom naredimo več.

5. Zaključek

Ko sem začel pisati, sem želel najprej opisati povezavo ip-telefona in na njegovem primeru razložiti, kako kul je lahko, ko tr-069 deluje enostavno in brez truda. Potem pa, ko sem napredoval in se poglobil v gradivo, sem pomislil, da za tiste, ki so povezovali Mikrotik, noben telefon ne bo strašen za samostojno učenje.

Načeloma je Freeacs, ki smo ga preizkusili, že mogoče uporabljati v produkciji, vendar morate za to konfigurirati varnost, SSL, konfigurirati morate mikrotike za samodejno konfiguracijo po ponastavitvi, razhroščiti morate pravilen dodatek tipa enote, razstaviti delo spletnih storitev in fusion lupine ter še veliko več. Poskusite, izumite in napišite nadaljevanje!

Vsi, hvala za pozornost! Vesela bom popravkov in komentarjev!

Seznam uporabljenih materialov in uporabnih povezav:

Tema foruma, na katero sem naletel, ko sem začel iskati to temo
TR-069 Protokol upravljanja CPE WAN dopolnilo-6
freeacs wiki
Parametri tr-069 v Mikrotiku in njihova ujemanje z ukazi terminala

Vir: www.habr.com