Selles artiklis püüan samm-sammult kirjeldada selle suurepärase projekti testserveri installimise protsessi täielikult toimivaks, ja näidata praktilisi näpunäiteid mikrotikiga töötamiseks: konfigureerimine parameetrite kaudu, skriptide täitmine, uuendamine, lisamoodulite installimine jne.
Artikli eesmärk on julgustada kolleege loobuma võrguseadmete haldamisest kohutavate kinnitusvahendite ja ajutiste lahenduste abil, nagu isekirjutatud skriptid, Dude, Ansible jne. Ja seoses sellega soovin põhjustada ilutulestikuid ja massilisi pidustusi väljakutel.
0. Valik
Miks freeacs ja mitte genie-acs, mainitud , kui elavam alternatiiv?
Kuna genie-acs kohta mikrotikiga on hispaanlastelt avaldusi. Need on nende ja eelmisest aastast MUM. Autode jagamine slaididel on äge, aga ma tahaksin vältida skriptide kirjutamise kontseptsioonist, et käivitada skripti, et käivitada skripti…
1. Freeacs installimine
Installime Centos7-s, ja kuna seadmed edastavad piisavalt palju andmeid ning ACS töötab aktiivselt andmebaasiga — ei pea jõuressursside osas kitsi olema. Mugavaks töötamiseks määrame 2 CPU tuuma, 4GB RAM ja 16GB kiiret SSD raid10 salvestusruumi. Ma installin freeacs Proxmox VE LXC konteinerisse, te saate töötada endale sobivas tööriistas.
Ärge unustage seadistada ACS masina õige aega.
Süsteem on testimiseks, seetõttu ei hakka me keerukustega tegelema ja kasutame lihtsalt heameelega pakutud installiskripti, nagu see on.
wget https://raw.githubusercontent.com/freeacs/freeacs/master/scripts/install_centos.sh
chmod +x install_centos.sh
./install_centos.shNiipea kui skripti töö on lõppenud — pääsete kohe veebiliidesesse masina IP kaudu, kasutades administraatori lige admin/freeacs

Selline meeldiv minimalistlik liides, ja kui hästi ja kiiresti kõik korda sai
2. Freeacs algse seadistamine
ACS-i haldamise põhielement on seade või CPE (Kliendi Kliendi Seade). Ja mis on kõige olulisem, et me peame seadmeid haldama — see on nende Unit Type, st seadme mudel, mis määratleb seadme ja selle tarkvara konfigureeritavad parameetrid. Kuid kuna me ei tea, kuidas õigesti uus Unit Type luua, on kõige parem küsida seda otse seadmes, lülitades sisse Discovery Mode.
Tootmisrežiimis seda režiimi kindlasti kasutada ei tohi, kuid peame pigem mootori käivitama ja süsteemi võimalusi vaatama. Kõik põhiseaded asuvad /opt/freeacs-*. Seega avame
vi /opt/freeacs-tr069/config/application-config.conf , leiame
discovery.mode = falseja muudame selle
discovery.mode = trueLisaks on soovitatav suurendada максимальные failide suurused, millega nginx ja mysql töötavad. Mysql jaoks lisame faile /etc/my.cnf rida
max_allowed_packet=32M, ning nginx jaoks, /etc/nginx/nginx.conf lisame
client_max_body_size 32m;http sektsiooni. Muidu saame töötada ainult firmware'idega, mille suurus on kuni 1M.
Taaskäivitame ja oleme valmis seadmetega töötama.
Ja seadmena (CPE) on meil väike töörügaja .
Enne testühenduse loomist on soovitatav seadistada CPE käsitsi minimaalsesse töökonfiguratsiooniga, et tulevikus konfigureerimiseks soovitud parameetrid ei oleks tühjad. Ruuterile on minimaalne, et lubada dhcp-kliendi ether1-l, installida tr-069client pakett ning seada paroolid.
3. Ühendame Mikrotik
Kõik üksused on soovitatav ühendada, kasutades sisselogimisel kehtivat seerianumbrit. Siis on logides kõik arusaadav. Keegi soovitab kasutada WAN MAC’i — ärge uskuge. Keegi kasutab kõigile ühist sisselogimis/pöördumise paari — hoidke nendest eemale.
Avame logi tr-069 'läbirääkimiste' jälgimiseks
tail -f /var/log/freeacs-tr069/tr069-conversation.logAvame winbox’i, menüü punkt TR-069.
ACS URL: http://10.110.0.109/tr069/prov (asenda oma IP-ga)
Kasutajanimi: 9249094C26CB (kopeerime seerianumbri system>routerboard-st)
Parool: 123456 (discovery jaoks ei ole vajalik, kuid et see oleks)
Perioodiline teavitamise intervall ei muutu. Selle seadistuse edastame läbi meie ACS
Allpool on seadistused kaugühenduse initsialiseerimiseks, kuid Mikrotiki tööle saamine ei õnnestunud mul otse. Kuigi telefonides töötab kaugpäring 'karbist välja'. Pean rohkem uurima.

Pärast nupu Apply vajutamist algab terminalis andmeedastus ja Freeacs veebiliideses saab näha meie ruuterit automaatselt loodud Unit Type «hAPaclite».

Ruuter on ühendatud. Võime vaadata automaatselt loodud Unit Type. Avame Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Seal pole midagi! Kuni 928 parameetrit (ma piilusin shell'i). Kas see on palju või vähe — selgub hiljem, aga praegu vaatame lihtsalt üle. See on see, mis tähendab Unit Type. See on toetatud parameetrite nimekiri võtmetega, kuid ilma väärtusteta. Väärtused määratakse madalamates tasemetes — Profiilides ja Üksustes.
4. Konfigureerime Mikrotik
On aeg alla laadida See juhend on aastast 2011 — nagu hea, vananenud vein. Avame selle ja laseme tal hingata.
Ja ise, veebi liideses klikkame pliiatsile meie üksuse kõrval ja läheme üksuse konfiguratsiooni režiimi. See näeb välja selline:

Koheselt vaatame, mis selles leheküljel huvitavat on:
Üksuse konfiguratsiooni blokk
- Profiil: See on profiil üksuse tüübi sees. Hierarhia on järgmine:
UnitType > Profiil > Üksus. See tähendab, et me saame luua näiteks profiilehAPaclite > hotspotjahAPaclite > haru, kuid seadme mudeli piires
Provisioning blokk nuppudega
Nipid viitavad, et kõik nuppud Provisioning plokis saavad konfigureerimise koheselt rakendada ConnectionRequestURL kaudu. Aga nagu ma varem ütlesin, ei toimi see, seega pärast nuppude vajutamist tuleb tr-069 klient mikrotikis käsitsi provisioni käivitamiseks taaskäivitada.
- Freq/Spread: Kui mitu korda nädalas konfigureerimist edastada ± %, et vähendada serveri ja sidetöötlemise koormust. Vaikimisi on see 7/20, st iga päev ± 20% ja vihje, kui kaua see sekundites kestab. Hetkel ei ole mõtet edastamise sagedust muuta, kuna see tekitab logides liigset müra ja seadeid ei rakendata alati oodatult.
Provisioning ajaloo blokk (viimased 48 tundi)
- Visuaalselt ajalugu nagu ajalugu, kuid pealkirjale klikkides jõuad mugavasse andmebaasi otsimise tööriista, regulaarsete väljendusmustrite ja trikkidega.
Parameetrite blokk
Suurim ja kõige olulisem blokk, kus tegelikult määratakse ja loetakse selle üksuse parameetreid. Praegu näeme ainult kõige olulisemaid süsteemseid parameetreid, ilma milleta ACS-i töö üksusega pole võimalik. Aga me mäletame, et meil on üksuse tüübis neid — 928. Vaadakem kõiki väärtusi ja otsustame, kuidas need mikrotikus töötavad.
4.1 Loe parameetrid
Provisioning plokis vajutage nuppu Loe kõik. Blokis — punane tekst. Paremal ilmub veerg CPE (praegune) väärtus. Süsteemsetes parameetrites vahetus ProvisioningMode READING vahel.

Ja… ei juhtu midagi peale sõnumi System.X_FREEACS-COM.IM.Message Käivitamine ebaõnnestus....
Taaskäivitage TR-069 klient või taaskäivitage ruuter ja värskendage brauseri lehte, kuni paremal näete parameetreid rõõmsates hallides ristkülikutes.
Kui keegi soovib vana viinamarja mahla nautida — see režiim on manuaalis kirjeldatud kui 10.2 Kontrollimise režiim. See lülitatakse sisse ja töötab veidi erinevalt, kuid sisu on piisavalt selgelt kirjeldatud.

READALL režiim lülitub ise välja 15 minuti pärast, aga me proovime aru saada, mis siin kasulikku on ja mida saame "liikvel" parandada, seni kuni oleme selles režiimis.
Saame muuta IP-aadresse, lubada/keelata liideseid, tulemüürireegleid koos kommentaaridega (vastasel juhul on täielik segadus), Wi-Fi ja muid väiksemaid asju.
Ehkki mikrotiki seadistamine TR-069 kaudu pole veel mõistlik, on monitorimine siiski üsna tugev. Saadaval on statistika liideste ja nende oleku, vaba mälu jne kohta.
4.2 Parameetrite edastamine
Nüüd proovime edastada parameetreid ruuteri kaudu TR-069, "loomuliku" tee kaudu. Esimene ohver on Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Leiame selle All seadme parameetritest. Nagu näha -- seda ei ole määratud. See tähendab, et igal seadmel võib olla oma identiteet. Piisab sellest talumisest!
Tõestame märgise veergus create, sisestame nime Mr.White ja vajutame nuppu Update parameters. Mis edasi saab, saate juba arvata. Järgmise ühenduse ajal peaksite ruuteri identiteeti muutma.

Kuid sellest ei piisa. Sellist parameetrit nagu identiteet on alati hea käepärast hoida kui otsite vajalikku seadet. Klõpsame parameetri nimele ja paneme sinna märgid Display(D) ja Searchable(S). Parameetri võti muutub RWSD-ks. (Pidage meeles, et nimed ja võtmed määratakse kõige kõrgemal tasemel Unit Type)

Nüüd kuvatakse väärtus mitte ainult üldises otsinguloendis, vaid see on saadaval ka otsimiseks Tugi > Otsing > Täiustatud vorm

Alustame provision'i ja vaatame identiteeti. Tere, Mr.White! Nüüd ei saa te oma identiteeti muuta, kuni TR-069 klient töötab.

4.3 Skriptide täitmine
Kuna oleme selgitanud, et nende puudumine pole võimalik, - alustame nende täitmist.
Aga enne, kui asume failidega tööle, peame muudatama direktiivi public.url failis /opt/freeacs-tr069/config/application-config.conf
Meil on ju endiselt testkonfiguratsioon, mis on paigaldatud ühe skriptiga. Kas mäletate?
# --- 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 avatakse, kuulub Unit Type'ile, st globaalsetele kõigile hAP ac lite ruuteritele, olgu need siis haru ruuterid, hotspotid või CAPsMAN. Me ei vaja praegu sellist kõrget taset, seetõttu, enne kui töötame skriptide ja failidega, tuleks luua profiil. Seda võib nimetada seadme "ametiks".
Teeme meie väikese serveri ajasalviks. Aukohane amet koos eraldi tarkvarapaketi ja väikese hulga parameetritega. Suundume Lihtne provisionimine > Profiil > Loo profiil ja loome Unit Type:hAPaclite profili timeserver. Meie vaikimisi profiilis polnud parameetreid, seega pole ka midagi kopeerida. Kopeerige parameetrid: «ärge kopeerige...»

Siin pole veel mingeid parameetreid, kuid saame sisse seada need, mida hiljem soovime näha meie ajaserverites, mis on valmistatud hAPaclite'ist. Näiteks, ühised NTP-serverite aadressid.
Liigume seadete konfigureerimise juurde ja viime selle aega serveri profiili.
Lõfinally liigume Failid & Skriptid, skriptide loomisse ja siin ootavad meid uskumatult mugavad võimalused.
Skripti täitmiseks on meil vaja valida Type:TR069_SCRIPT üle Nimi ja Sihtnimi peavad olema laiendiga .alter
Skripti puhul, erinevalt tarkvarast, saab laadida valmis faili või lihtsalt kirjutada/redigeerida see väljal Sisu. Proovime kirjutada otse sinna.
Ja et tulemust kohe näha — lisame ruuterile vlan ether1-le
/interface vlan
add interface=ether1 name=vlan1 vlan-id=1
Sisestame, vajutame Laadi üles ja valmis. Meie skript vlan1.alter oodab oma aega.
Noh, kas olen valmis? Ei. Peame veel lisama meie profiili grupp. Grupid ei kuulu seadmete hierarhiasse, kuid on vajalikud üksuste leidmiseks UnitType'is või Profiilis ning skriptide täitmiseks Advanced Provisioning kaudu. Tavaliselt on grupid seotud asukohtadega ja neil on pesakonna struktuur. Teeme grupi Venemaa.

Kujutage ette, et suutsime just kitsendada otsingut „Kõik maailmas olevad hAPaclite ajaserverid” kuni „Kõik Venemaa ajaserverid hAPaclite'is”. Seal on veel tohutult huvitavat, kuid meil pole aega. Jätkame nüüd skriptidega.
Advanced Provisioning > Töö > Looge töö
Kuna oleme Advanced režiimis, saame määrata hulga tingimusi ülesande algusele, vigade käitumisele, kordamisele ja aegadele. Soovitan see kõik lugeda juhenditest või arutame hiljem juurutamisel. Praegu seame n1 Stop rules, et ülesanne peatuks, kui see täidetakse meie 1 seadmel.
Täidame vajalikud andmed ja jääb üle vaid käivitada!

Vajutame START ja ootame. Nüüd jooksutab arvesti rikka tulemuse saavate seadmete arvu! Ei, muidugi. Sellised ülesanded võtavad kaua aega, ja see on nende erinevus skriptide, Ansible ja muu vahel. Üksused pöörduvad ülesannete järele graafiku järgi või võrku ilmudes, ACS jälgib, millised üksused on juba ülesandeid saanud ja kuidas need on lõppenud ning salvestab selle seadme parameetrites. Meie grupis on 1 seade, ja kui neid oleks 1001 — administraator oleks selle ülesande käivitanud ja läinud kalapüügile.
Tule nüüd. Taaskäivitage ruuter või käivitage TR-069 klient uuesti. Kõik peaks sujuma ja Mr.White saab uue vlan; meie ülesanne Stop rule läheb staatusesse PAUSED. See tähendab, et seda saab ikka veel taaskäivitada või muuta. Kui vajutada FINISH — sealjuures ülesanne arhiivile kantakse.
4.4 Uuendame tarkvara
See on väga oluline punkt, kuna mikrotika tarkvara on moodulipõhine, kuid moodulite lisamine ei muuda seadme tarkvara üldversiooni. Meie ACS on normaalne ja harjunud sellisega.
Praegu teeme stiilis quick&dirty ja lisame NTP mooduli koheselt üldtarkvarasse, kuid kui seadme versioon uuendatakse — ei saa me rohkem mooduleid sama viisi pidi lisada.
Produktsioonis on sellist trikki parem mitte kasutada ja paigaldada Unit Type jaoks mitte kohustuslikud moodulid ainult skriptide abil.
Nii et esimene asi, mida me peame tegema — on ette valmistada vajaliku versiooni ja arhitektuuri tarkvarapakette ning panna need kergesti ligipääsetavasse veebiserverisse. Testimiseks sobib igaüks, kuhu meie Mr.White'i juurdepääs on, ja tootmisloads on parem luua automaatselt uuendatav peegeldus vajalikust tarkvarast, mille avalikustamine pole hirmutav.
Oluline! Ärge unustage alati uuendustesse включать tr-069client paketti!
Kuidas selgus, on pakettide teepikkus väga oluline! Üritades kasutada midagi sellist, http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik langes tsüklilisse ühendusse ressursiga, andes tr-069 logis korduvaid TRANSFERCOMPLETE; ja kulutasin mõningaid närvirakke, püüdes välja selgitada, mis on valesti. Seega, paneme selle esialgu juurkausta, kuni selgub.
Nii et meil peaks olema kolm npk-faili, ligipääsetavad http kaudu. Mul tuli välja selline:
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 tuleb see vormindada xml-failiks, mille FileType=«1 Firmware Upgrade Image», mille anname mikrotikule. Nimeks jääb ros.xml.
Järgime juhiseid :
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 puudumine Kasutajanimi / Parool allalaadimise serverisse pääsemiseks. Saate kas proovida seda sisestada nagu punkti 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üsige otse MikroTiku ametnikelt, samuti maksimaalse teepikkuse kohta *.npk
Liigume tuntud kohtadesse Failid & Skriptid, ja loome seal SOFTWARE tüüpi faili Nimi:ros.xml, Sihtnimi:ros.xml ja Versioon:6.45.6
Oluline! Versioon peab olema näidatud just sellises formaadis, nagu see seadmel kuvatakse ja edastatakse parameetris System.X_FREEACS-COM.Device.SoftwareVersion.
Valime allalaadimiseks meie xm-faili ja valmis.

Nüüd on meil palju võimalusi seadme värskendamiseks. Kasutades Wizard'i peamenüüs, Advanced Provisioning'i ja SOFTWARE tüüpi ülesandeid, või lihtsalt sisenedes seadme seadistusse ja vajutades Upgrade. Valime kõige lihtsama tee, et artikkel ei veniks liiga pikaks.

Vajutame nuppu, käivitame provision'i ja valmis. Testprogramm on lõppenud. Nüüd oskame MikroTiku'ga rohkem teha.
5. Kokkuvõte
Kui ma alustasin kirjutamist, tahtsin esmalt kirjeldada IP-telefoni ühendamist ja selle näitega selgitada, kui hea võib olla, kui TR-069 töötab lihtsalt ja vaevata. Kuid siis, sügavamale kaevates materjalides, mõtlesin, et MikroTiku ühendav inimene ei karda enam ühtegi telefoni ise õppida.
Põhimõtteliselt võib Freeacs, mida testisime, juba rakendada tootmisjärgselt, kuid selleks peab seadistama turvalisuse, SSL-i, seadistama MikroTikud autokonfigureerimiseks pärast reset'i, tüüpide õige lisamise seadistamine, veebiteenuste ja fusion shell'i töötamise lahendamine ning veel palju muud. Proovige, leiutage ja kirjutage jätku!
Aitäh kõigile tähelepanu eest! Olen avatud parandustele ja kommentaaridele!
Kasutatud materjalide ja kasulike linkide loetelu:
Allikas: habr.com
