Selles artiklis püüan ma samm-sammult kirjeldada katserveri loomise protsessi suurepärase projekti jaoks täieliku funktsionaalsuse saavutamiseks ja näidata praktilisi nippe Mikrotikuga töötamiseks: konfiguratsiooniparametrite kaudu, skriptide täitmine, värskendamine, täiendavate moodulite installimine jne.
Artikli eesmärk on julgustada kolleege loobuma võrguseadmestiku haldamisest kohutavate kraanide ja toeks olevate lahenduste, nagu käsitsi kirjutatud skriptid, Dude, Ansible jms. Seega, üles kutsuda ilutulestikku ja massilist rõõmustamist platsidel.
0. Valik
Miks freeacs, mitte genie-acs, mille kohta on mainitud , kui elavam?
Kuna genie-acs’i kohta Mikrotiku kohta on hispaanlaste postitusi. Siin on nende ja eelmisest MUM-ist. Automaatne jagamine slaididel on äge, aga sooviksin loobuda skriptide kirjutamise kontseptsioonist, et käivitada skripte, et käivitada skripte...
1. Freeacs'i installimine
Installeerime CentOS 7-s, ja kuna seadmed edastavad piisavalt palju andmeid, ning ACS töötab aktiivselt andmebaasiga — ei hakka ressursse šellama. Mugava töö jaoks eraldame 2 CPU tuuma, 4GB RAM-i ja 16GB kiiret SSD RAID10 salvestust. Mina paigaldan freeacs'i Proxmox VE LXC konteinerisse, kuid te saate töötada sellega, mis teile sobib.
Ärge unustage seadistada ACS masinal õiget aega.
Kuna süsteem on katsefaasis, siis ei hakka me keerutama ja kasutame lihtsalt lahkelt pakutud installimis skripti sellisena, nagu see on.
wget https://raw.githubusercontent.com/freeacs/freeacs/master/scripts/install_centos.sh
chmod +x install_centos.sh
./install_centos.shNii pea kui skripti töö lõpeb — pääsete kohe veebiliidesesse masina IP aadressi kaudu, kasutades sisselogimist admin/freeacs

Siin on selline meeldiv minimalistlik liides ja kui hästi ja kiiresti kõik välja tuli
2. Freeacs'i esialgne seadistamine
ACS-i haldusüksus on seade või CPE (Kliendi Ruumi Seade). Peamine, mida vajame seadmete haldamiseks, on nende Unit Type, st seadme mudel, mis määrab seadme ja selle tarkvara seadistuste kogumi. Kuid seni, kuni me ei tea, kuidas õigesti uut Unit Type luua, on parim küsida otse seadme käest, lülitades sisse Discovery Mode.
Tootmistavas sellist režiimi kindlasti kasutada ei saa, kuid meil on vaja mootorit käivitada ja süsteemi võimalusi uurida. Kõik põhiseaded on salvestatud /opt/freeacs-*. Seega avame
vi /opt/freeacs-tr069/config/application-config.conf , otsime
discovery.mode = falseja muudame selle
discovery.mode = trueLisaks oleks soovitav suurendada maksimaalseid failide suurusi, millega töötavad nginx ja mysql. Mysql jaoks lisame /etc/my.cnf faili rea
max_allowed_packet=32M, nginx-i jaoks lisame /etc/nginx/nginx.conf faili
client_max_body_size 32m;http sektsiooni. Vastasel juhul saame töötada ainult kuni 1M suuruste pühendustega.
Taaskäivitame ja oleme seadmetega töötamiseks valmis.
Ja seadmena (CPE) on meil töökindel väike .
Enne testühenduse loomist on soovitatav käsitsi seadistada CPE minimaalsetesse töökonfiguratsioonidesse, et tulevikus soovitud parameetritel oleks sisu. Ruuteri puhul on minimaalne, et lubada dhcp-klient ether1-l, installida tr-069client paket ja seada paroolid.
3. Ühendame Mikrotiki
Kõik üksused on soovitatav ühendada, kasutades sisselogimiseks kehtivat seerianumbrit. Siis on logides kõik selge. Mõned soovitavad kasutada WAN MAC-i — ärge uskuge. Mõned kasutavad kõigile ühist sisselogimist/parooli — hoiduge neist eemale.
Avame tr-069 logi „vestluste“ jälgimiseks
tail -f /var/log/freeacs-tr069/tr069-conversation.logAvame winboxi, menüüpunkt TR-069.
ACS URL: http://10.110.0.109/tr069/prov (asenda oma IP-ga)
Kasutajanimi: 9249094C26CB (kopeerige seerianumber menüüst system>routerboard)
Parool: 123456 (discovery jaoks pole vajalik, aga olgu ikkagi)
Perioodilist informatsiooni me ei muuda. Selle seadistuse anname meie ACS kaudu.
Allpool on seaded kaugühenduse initsialiseerimiseks, kuid ma ei suutnud Mikrotiki selle tööle panna. Kuigi telefonide korral töötab kaugpäring „kastist välja“. Tuleb pisut uurida.

Nuppu Apply vajutades algab andmevahetus terminalis ning veebiliideses Freeacs saab näha meie ruuteri automaatselt loodud Unit Type «hAPaclite».

Ruuter on ühendatud. Saab vaadata automaatselt loodud Unit Type'i. Avame Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Seal on kõik! Kuni 928 parameetrit (vaatasin shell'is). Kas see on palju või vähe — vaatame hiljem, aga seni vaatame kiirelt üle. Nii, mis on Unit Type? See on toetatud parameetrite loetelu koos võtmetega, kuid väärtusteta. Väärtused määratakse madalamates tasemetes — Profiilides ja Unit'ites.
4. Konfigureerime Mikrotik
On aeg alla laadida See juhend on aastast 2011 — nagu hea, peen viin. Avame selle ja laseme sel hingata.
Samal ajal klõpsame veebiliideses pliiatsi ikoonil meie unit'i kõrval ja läheme unit'i konfigureerimise režiimi. See näeb välja nii:

Vaatame kiiresti, mida huvitavat sellel lehel on:
Unit'i konfigureerimise plokk
- Profiil: See on profiil Unit Type'i sees. Hierarhia on järgmine:
UnitType > Profiil > Unit. See tähendab, et saame luua näiteks profiilehAPaclite > hotspotjahAPaclite > branch, kuid seadme mudeli piires.
Provisioning blokk nuppudega
Viiteneid märkis, et kõik nuppud Provisioning blokkis saavad konfigureerimise koheselt rakendada läbi ConnectionRequestURL. Kuid nagu ma varem ütlesin, ei tööta see, seega nuppude vajutamise järel tuleb tr-069 klient Mikrotikis käsitsi provision'i käivitamiseks restardida.
- Freq/Spread: Kui tihti nädalas konfigureerimist toimetada ± %, et vähendada serveri ja suhtluskanalite koormust. Vaikimisi on määratud 7/20, st iga päev ± 20% ja viide sellele sekundites. Hetkel pole mõtet toimetamise sagedust muuta, kuna see tekitab logides liigset müra ja ei pruugi alati seadeid oodata.
Provisioning ajaloo blokk (viimase 48 tunni jooksul)
- Esmapilgul näeb ajalugu välja nagu ajalugu, kuid kui klikkida pealkirjale — jõuate mugavasse andmebaasi otsingutööriista, mis toetab regexp-i ja lisafunktsioone.
Parameetrite blokk
Suurim ja olulisem blokk, kus tegelikult määratakse ja loetakse antud seadme parameetreid. Praegu näeme ainult kõige olulisemaid süsteemiparameetreid, ilma milleta ACS-i töö seadmega pole võimalik. Kuid me mäletame, et meie Unit Type-is on neid — 928. Vaatame kõiki väärtusi ja otsustame, millega see kõik Mikrotikis seondub.
4.1 Loeme parameetreid
Provisioning jaotisest vajutage nuppu Read all. Jaotis — punane kiri. Paremal kuvatakse veerg CPE (praegune) väärtus. Süsteemi parameetrites muutus ProvisioningMode väärtus READALL-iks.

Ja… midagi ei juhtu, välja arvatud sõnum System.X_FREEACS-COM.IM.Message Kick ebaõnnestus....
Taaskäivitage TR-069 klient või taaskäivitage ruuter ning jätkake brauseri lehe uuendamist, kuni saate paremal näha parameetreid rõõmsates hallides ristkülikutes
Kui keegi soovis vana veini juua — see režiim on käsiraamatus kirjeldatud kui 10.2 Inspection mode. See lülitatakse sisse ja töötab veidi teistmoodi, kuid sisu on täiesti selge

REAdALL režiim lülitub ise välja 15 minuti pärast, ja me proovime aru saada, mis siin on kasulik ning mis võib olla „liikvel“ parandatud, kuni me selles režiimis oleme.
Saate muuta IP-aadresse, sisse/välja lülitada liideseid, tulemüüri reegleid koos kommentaaridega (vastasel juhul on täielik segadus), WiFi ja muud pisiasjad.
See tähendab, et mikrotiki mõistlikult konfigureerida ainult TR-069 vahenditega ei ole võimalik. Aga monitoorimine on üsna hea. Liideste statistika ja nende olek, vaba mälu jne on saadaval.
4.2 Edastame parameetrid
Proovime nüüd edastada parameetreid ruuteri kaudu tr-069, "loomuliku" meetodiga. Esimese ohvrina valime Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Leiame selle seadme seadetest. Nagu näha, pole see määratud. See tähendab, et mis tahes seade võib omada igasugust Identiteeti. Piisab selle talumisest!
Märkige ruut veerus create, seadistage nimi Mr.White ja vajutage nuppu Update parameters. Mis edasi juhtub, olete juba aru saanud. Järgmise ühenduse käigus peaksite ruuteri identiteedi muutma.

Kuid see ei ole veel piisav. Identiteedi parameetrit on alati hea käepärast hoida, kui otsite vajalikku seadet. Klõpsame parameetri nimel ja aktiveerime seal ruudud Display(D) ja Searchable (S). Parameetri võti muutub RWSD-ks (Pange tähele, et nimed ja võtmed määratakse kõige kõrgemal tasemel Unit Type'i järgi).

Nüüd kuvatakse väärtus mitte ainult üldises otsingunimekirjas, vaid on ka otsingus saadaval. Support > Search > Advanced form

Käivitame provisioni ja vaatame Identiteeti. Tere, Mr.White! Nüüd ei saa te tr-069clienti töötamise ajal ise identiteeti muuta.

4.3 Käivitame skriptid
Kuna oleme välja selgitanud, et ilma nendeta ei saa, alustame nende käivitamist.
Kuid enne, kui hakkame failidega töötama, peame korrigeerima direktiive. public.url failis /opt/freeacs-tr069/config/application-config.conf
Meil on ju endiselt testkonfiguratsioon, mis on installitud ühe skriptiga. Ei ole unustatud?
# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}Taaskäivitame ACS-i ja suundume otse Failid & Skriptid.

Kuid see, mis meil praegu avaneb — kuulub Unit Type'ile, st globaalsetele kõigile hAP ac lite ruuteritele, olgu need siis harukontori ruuter, hotspot või capsman. Selline kõrge tase pole meile praegu vajalik, seetõttu, enne kui hakkame skriptide ja failidega töötama — tuleb luua profiil. Võime seda nimetada „seadmeks”.
Teeme meie pisikesest ajaserveri. Aukohus eraldi tarkvarapaketiga ja väikese arvu parameetritega. Suundume Easy Provisioning > Profiil > Loo profiil ja loome Unit Type:hAPaclite profiili timeserver. Meie vaikimisi profiilis polnud parameetreid, seega pole ka midagi kopeerida Kopeeri parameetrid: „Ära kopeeri…”

Siin pole hetkel parameetreid üldse, kuid hiljem saame määrata need, mida soovime näha oma ajaserveritel, mis on kokku pandud hAPaclite'ist. Näiteks, üldised NTP-serveri aadressid.
Siirdume üksuse konfiguratsiooni ja liigutame selle timeserveri profiili
Lõ finally suundume Failid & Skriptid, looma skripte, ja siit ootavad meid suurepärased mugavad funktsioonid.
Selleks, et skripti käivitada, peame valima Tüüp: TR069_SCRIPT ä Nimi ja Sihtnimi peavad olema laiendiga .alter
Samuti on skрипtide puhul erinevalt tarkvarast võimalik laadida valmis fail või lihtsalt kirjutada/ülevaadata see väljal Sisu. Proovime kirjutada otse sinna.
Ja et tulemus kohe näha oleks — lisame ruuteri vlan ether1-l.
/interface vlan
add interface=ether1 name=vlan1 vlan-id=1
Sisestame, vajutame Üleslaadimine ja valmis. Meie skript vlan1.alter ootab oma aega.
Noh, hakkame? Ei. Peame meie profiili jaoks veel rühma lisama. Rühmad ei kuulu seadmete hierarhiasse, kuid on vajalikud üksuste leidmiseks UnitType või Profilest ning kohustuslikud skriptide täitmiseks Advanced Provisioning kaudu. Tavaliselt on rühmad seotud asukohtadega ja neil on pesastruktuur. Teeme rühma nimega Venemaa.

Kujutage ette, et me suutsime just kitsendada otsingut „Kõik maailma serverid hAPaclitel” kuni „Kõik Venemaa serverid hAPaclitel”. Seal on veel tohutult huvitavat, mis rühmadega seondub, kuid meil pole aega. Jätkame juba skripti juurde.
Advanced Provisioning > Töö > Loo töö
Kuna oleme Advanced režiimis, saab siin määrata palju erinevaid ülesande alguse tingimusi, käitumist vigade korral, kordusi ja ajutusi. Soovitan see kõik läbi lugeda juhendites või arutame hiljem, kui rakendame tootmisse. Praegu paneme lihtsalt n1 Stop rules-sse, et ülesanne peatuks, kui see täidetakse meie 1. üksuses.
Täidame vajalikud väljad ja nüüd jääb ainult ülesanne käivitada!

Klõpsame START ja ootame. Nüüd hakkab kiiresti jooksma ebaülevaaditud skripti seadmete hävitamise number! Ei, loomulikult mitte. Sellised ülesanded võtavad kaua aega, ja see ongi nende erinevus skriptide, Ansible'i ja muu hulgas. Üksused pöörduvad ülesannete juurde vastavalt ajakavale või vastavalt nende ilmumisele võrku. ACS jälgib, millised üksused on juba ülesandeid saanud ja kuidas need on lõppenud, ning salvestab need üksuse parameetritesse. Meie grupis on 1 üksus, ja kui neid oleks 1001 — admin käivitaks selle ülesande ja läheks kalale.
No tule nüüd. Taaskäivitage ruuter või taaskäivitage TR-069 klient. Kõik peaks kulgema sujuvalt ja Mr.White saab uue vlan'i. Ja meie Stop rule ülesanne läheb seisundisse PAUSED. See tähendab, et selle saab veel kord käivitada või muuta. Kui vajutada FINISH — ülesanne arvatakse arhiivi.
4.4 Uuendame tarkvara
See on väga oluline punkt, kuna MikroTiku tarkvara on modulaarsed, kuid moodulite lisamine ei muuda seadme üldist tarkvaraversiooni. Meie ACS on normaalne ja sellisele ei ole harjunud.
Praegu teeme seda quick&dirty stiilis ja lükkame NTP mooduli kohe üldisse tarkvarasse, kuid niipea kui seadme versioon uuendatakse — ei saa me samamoodi uut moodulit lisada.
Sellist trikki tootmisjärgselt parem ei kasutada, ning paigaldada valikuteta Unit Type mooduleid ainult skriptide kaudu.
Nii et esmalt, mida me peame tegema — on ette valmistada vajalike versioonide ja arhitektuuride tarkvarapaketid ning paigutada need mõnele kergesti ligipääsetavale veebiserverile. Testimiseks sobib mis tahes, millele meie Mr.White ligi pääseb, kuid tootmiseks on parem koostada automaatselt uuenev peegel vajaliku tarkvara jaoks, mida ei ole hirmus veebis kuvada.
Oluline! Ärge unustage alati kaasata uuendustesse pakett tr-069client!
Kuidas selgus, on pakettide juurde pääsemise pikkus väga oluline! Minu katsetel kasutada midagi sellist nagu http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik sattub tsüklilisse ühendusse ressursiga, andes tr-069 logisse korduvad TRANSFERCOMPLETE. Ja ma kulutasin mõningaid närvirakke, üritades välja selgitada, mis on valesti. Seega, kuni selgumiseni, paneme selle juurkausta.
Nüüd peaks meil olema kolm npk-faili, mis on saadaval http kaudu. Mul on järgmised:
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.npkNüüd on see vaja vormindada xml-failiks FileType=„1 Firmware Upgrade Image”, mille me mikrotikule anname. Nimeks jäägu ros.xml.
Teeme vastavalt juhendile :
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.npkSilma jääb tähelepanu vajav puudus Kasutajanimi/Parool serverisse pääsemiseks. Võib proovida sisestada see nagu punktis A.3.2.8 tr-069 protokollis:
http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk
user
passVõi küsida otse Mikrotiki ametlikelt, samuti maksimaalse tee pikkuse kohta *.npk
Läheme tuntud kohtadesse Failid & Skriptid, ja loome seal tüüpi SOFTWARE faili Nimi:ros.xml, Sihtkoht:ros.xml ja Versioon:6.45.6
Tähtis! Versioon peab olema näidatud just sellises formaadis, nagu see kuvatakse seadmes ja edastatakse parameetris System.X_FREEACS-COM.Device.SoftwareVersion.
Valime allalaadimiseks meie xm-faili ning see ongi valmis.

Nüüd on meil mitmeid viise seadme uuendamiseks. Kasutades Wizardit peamenüüs, Advanced Provisioning ja SOFTWARE tüüpi ülesandeid, või lihtsalt minnes seadme konfiguratsiooni ja vajutades Upgrade. Valime kõige lihtsama tee, muidu on artikkel liiga pikk.

Vajutame nuppu, käivitame provision'i ja ongi valmis. Testprogramm on lõpetatud. Nüüd oskame Mikrotikuga rohkem teha.
5. Kokkuvõte
Kui alustin kirjutamist, tahtsin alguses kirjeldada IP-telefoniga ühendamist ja selle näitel selgitada, kui mugav on, kui TR-069 töötab lihtsalt ja vaevata. Kuid edenedes ja materjalides kaevates mõtlesin, et kellelgi, kes on Mikrotiki ühendanud, ei tee enam ükski telefon iseseisvat uurimistööd hirmutavaks.
Põhimõtteliselt on Freeacs, mida testisime, juba kasutamiseks valmis, kuid selleks tuleb seadistada turvalisus, SSL ning seadistada Mikrotikud automaatkonfigureerimiseks pärast lähtestamist. Samuti tuleb häälestada õige tüübi lisamine, uurida veebiteenuste ja fusion shelli toimimist ning veel palju muud. Proovige, looge ning kirjutage jätku!
Kõigile, aitäh tähelepanu eest! Ootan rõõmuga parandusi ja kommentaare!
Kasutatud materjalide ja kasulike linkide nimekiri:
Allikas: habr.com
