TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

U ovom članku pokušaću da opišem korak po korak proces instaliranja test servera velikog projekta freeacs u potpuno funkcionalno stanje, i prikazati praktične tehnike rada sa mikrotikom: konfigurisanje kroz parametre, izvršavanje skripte, ažuriranje, instaliranje dodatnih modula itd.

Svrha članka je natjerati kolege da odbiju upravljati mrežnim uređajima uz pomoć strašnih grabulja i štaka, u vidu samonapisanih skripti, Dude, Ansible, itd. I ovom prilikom izazvati vatromet i masovno veselje u kvadrata.

0. Izbor

Zašto freeacs a ne genie-acs spomenut u mikrotik-wikikoliko življe?
Jer postoje španske publikacije o genie-acs sa mikrotikom. Evo ih pdf и видео sa prošlogodišnjeg MUM-a. Auto crtani filmovi na slajdovima su cool, ali ja bih se maknuo od koncepta pisanja skripti, pokretanja skripti, pokretanja skripti…

1. Freeacs instalacija

Instaliraćemo u Centos7, a pošto uređaji prenose mnogo podataka, a ACS aktivno radi sa bazom podataka, nećemo biti pohlepni za resursima. Za udoban rad odabraćemo 2 CPU jezgra, 4GB RAM-a i 16GB brze memorije ssd raid10. Instalirat ću freeacs u Proxmox VE lxc kontejner, a vi možete raditi u bilo kojem alatu koji vam odgovara.
Ne zaboravite da podesite tačno vreme na mašini sa ACS.

Sistem će biti probni, pa nemojmo biti pametni i samo upotrijebimo ljubazno dostavljenu instalacionu skriptu, kakva je.

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

Čim se skripta završi, možete odmah ući u web interfejs preko ip-a mašine, sa akreditivima admin/freeacs

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS
Evo tako lijepog minimalističkog interfejsa i kako je sve ispalo super i brzo

2. Freeacs početno podešavanje

Osnovna jedinica upravljanja za ACS je jedinica ili CPE (oprema za kupčeve prostorije). I što je najvažnije, ono što nam je potrebno za upravljanje jedinicama je njihov tip jedinice, tj. hardverski model koji definira skup konfigurabilnih parametara za jedinicu i njen softver. Ali dok ne znamo kako da ispravno dobijemo novi tip jedinice, najbolje bi bilo da pitamo samu jedinicu o tome uključivanjem načina otkrivanja.

U proizvodnji, ovaj način rada je apsolutno nemoguće koristiti, ali moramo što prije pokrenuti motor i vidjeti mogućnosti sistema. Sve osnovne postavke su pohranjene u /opt/freeacs-*. Stoga, otvaramo

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

, mi nalazimo

discovery.mode = false

i promenite u

discovery.mode = true

Osim toga, željeli bismo povećati maksimalnu veličinu datoteka s kojima će nginx i mysql raditi. Za mysql, dodajte red u /etc/my.cnf

max_allowed_packet=32M

, a za nginx, dodajte u /etc/nginx/nginx.conf

client_max_body_size 32m;

u http odjeljak. U suprotnom, moći ćemo da radimo sa firmverom ne većim od 1M.

Ponovo pokrećemo sistem i spremni smo za rad sa uređajima.

A u ulozi uređaja (CPE) imaćemo bebu radoholičara hAP AC lite.

Prije probne veze, preporučljivo je ručno konfigurirati CPE na minimalnu radnu konfiguraciju tako da parametri koje želite konfigurirati u budućnosti ne budu prazni. Za ruter, možete minimalno omogućiti dhcp klijenta na ether1, instalirati tr-069client paket i postaviti lozinke.

3. Povežite Mikrotik

Poželjno je povezati sve jedinice koristeći važeći serijski broj kao login. Tada će vam sve biti jasno u logovima. Neko savjetuje korištenje WAN MAC-a - nemojte vjerovati. Neko koristi zajednički par login/pass za sve - zaobiđite ih.

Otvaranje dnevnika tr-069 za praćenje "pregovaranja"

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

Otvorite winbox, stavka menija TR-069.
AC URL: http://10.110.0.109/tr069/prov (zamijenite svojim IP-om)
Korisničko ime: 9249094C26CB (kopiraj serijski sa sistema>ruterboard)
Lozinka: 123456 (nije potrebna za otkrivanje, ali da bude)
Ne mijenjamo period periodičnih informacija. Ovu postavku ćemo izdati preko našeg ACS-a

Ispod su podešavanja za daljinsku inicijalizaciju konekcije, ali nisam mogao da nateram mikrotik da radi sa njim jednim zamahom. Iako daljinski zahtjev radi iz kutije sa telefonima. Morat će to shvatiti.

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Nakon pritiska na tipku Apply, podaci će se razmjenjivati ​​u terminalu, a u Freeacs web sučelju možete vidjeti naš ruter sa automatski kreiranim Unit Type "hAPaclite".

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Ruter je povezan. Možete pogledati automatski generiranu vrstu jedinice. Otvaramo Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Čega nema! Čak 928 parametara (špijunirao sam shell). Mnogo ili malo - shvatićemo kasnije, ali za sada ćemo samo na brzinu pogledati. To znači Tip jedinice. Ovo je lista podržanih opcija s ključevima, ali bez vrijednosti. Vrijednosti su postavljene na nivoima ispod - Profili i jedinice.

4. Konfigurirajte Mikrotik

Vrijeme je za preuzimanje vodič za web interfejs Ovaj vodič za 2011. je poput boce dobrog, odležanog vina. Otvorimo ga i pustimo da diše.

A mi sami, u web sučelju, kliknite na olovku pored naše jedinice i idite na mod konfiguracije jedinice. izgleda ovako:

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Hajde da ukratko analiziramo šta je zanimljivo na ovoj stranici:

Blok konfiguracije jedinice

  • Profil: Ovo je profil unutar tipa jedinice. Hijerarhija je ovakva: UnitType > Profile > Unit. Odnosno, možemo kreirati, na primjer, profile hAPaclite > hotspot и hAPaclite > branch, ali unutar modela uređaja

Block Provisioning sa dugmadima
Savjeti nagovještavaju da svi gumbi u bloku Provisioning mogu trenutno primijeniti konfiguraciju putem ConnectionRequestURL-a. Ali, kao što sam već rekao, ovo ne radi, pa ćete nakon pritiska na dugmad morati ponovo pokrenuti tr-069 klijent na mikrotiku da biste ručno pokrenuli proviziju.

  • Freq/Spread: Koliko puta sedmično isporučiti konfiguraciju ± % za smanjenje opterećenja servera i komunikacijskih kanala. Standardno košta 7/20, tj. svaki dan ±20% i nagovještaj kako je u sekundama. Za sada nema smisla mijenjati učestalost dostave, jer. doći će do dodatne buke u logovima i ne uvijek očekivane primjene postavki

Blok historije obezbjeđenja (zadnjih 48 sati)

  • Po izgledu, priča je poput priče, ali klikom na naslov dolazite do zgodnog alata za pretraživanje baze podataka s regexpom i delicijama

Parameters Block

Najveći i najvažniji blok, gdje se, zapravo, postavljaju i čitaju parametri za ovu jedinicu. Sada vidimo samo najvažnije sistemske parametre, bez kojih ACS ne može raditi sa jedinicom. Ali sjećamo se da ih imamo u tipu jedinice - 928. Pogledajmo sve vrijednosti i odlučimo s čime Mikrotik jede.

4.1 Očitavanje parametara

U bloku Dobavljanje kliknite na dugme Pročitaj sve. Blok ima crveni natpis. Na desnoj strani će se pojaviti kolona CPE (trenutna) vrijednost. ProvisioningMode je promijenjen u READALL u sistemskim postavkama.

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

I… ništa se neće dogoditi osim poruke u System.X_FREEACS-COM.IM.Message Kick failed at....

Ponovo pokrenite TR-069 klijent ili ponovo pokrenite ruter i nastavite osvježavati stranicu pretraživača dok ne dobijete parametre u veselim sivim okvirima na desnoj strani
Ako neko želi da otpije gutljaj starog iskusnog, ovaj način rada je u priručniku opisan kao 10.2 Inspection mode. Pali se i radi malo drugačije, ali suština je prilično opisana

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Režim READALL će se sam isključiti nakon 15 minuta, a mi ćemo pokušati da shvatimo šta je tu korisno, a šta se može ispraviti u hodu dok smo u ovom režimu.

Možete promijeniti IP adrese, uključiti/onemogućiti interfejse, firewall pravila, koja su sa komentarima (inače potpuni nered), Wi-Fi i tako dalje po sitnicama.

Odnosno, još uvek nije moguće zdravo konfigurisati mikrotik koristeći samo TR-069 alate. Ali možete vrlo dobro pratiti. Dostupne su statistike o interfejsima i njihovom statusu, slobodnoj memoriji itd.

4.2 Parametri isporuke

Pokušajmo sada isporučiti parametre ruteru, preko tr-069, na "prirodan" način. Prva žrtva će biti Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Nalazimo ga u parametrima jedinice All. Kao što vidite, nije podešeno. To znači da svaka jedinica sama po sebi može imati bilo koji identitet. Dosta je bilo tolerisanja!
Guramo dau u kolonu kreiranja, postavljamo ime Mr.White i guramo dugme Ažuriraj parametre. Šta će biti dalje, već ste pogodili. Na sljedećoj komunikacijskoj sesiji sa sjedištem, ruter mora promijeniti svoj identitet.

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Ali ovo nam nije dovoljno. Parametar kao što je Identity je dobro uvijek imati pri ruci kada tražite pravu jedinicu. Ubacujemo u naziv parametra i tamo stavljamo potvrdne okvire Display (D) i Searchable (S). Parametarski ključ se mijenja u RWSD (Zapamtite, imena i ključevi su postavljeni na najviši nivo tipa jedinice)

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Vrijednost sada nije prikazana samo na općoj listi pretraživanja, već je dostupna i za pretraživanje Support > Search > Advanced form

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Pokrećemo proviziju i gledamo Identitet. Hello Mr.White! Sada nećete moći sami promijeniti svoj identitet dok tr-069client radi

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

4.3 Izvršavanje skripti

Pošto smo saznali da bez njih nema, hajde da ih ispunimo.

Ali prije nego počnemo raditi s datotekama, moramo ispraviti direktivu public.url u fajlu /opt/freeacs-tr069/config/application-config.conf
Na kraju krajeva, još uvijek imamo instaliranu testnu konfiguraciju s jednom skriptom. Nisi zaboravio?

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

Ponovo pokrenite ACS i idite pravo na Files & Scripts.

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Ali ono što se kod nas otvara sada pripada Tipu jedinice, tj. globalno na sve hAP ac lite rutere, bilo da se radi o ruteru grane, hotspotu ili capsman-u. Još nam nije potreban tako visok nivo, stoga prije rada sa skriptama i datotekama trebate kreirati profil. Možete ga nazvati i sami, kao "pozicija" uređaja.

Napravimo od naše bebe poslužitelja vremena. Pristojna pozicija sa zasebnim softverskim paketom i malim brojem parametara. Idemo na Easy Provisioning > Profile > Create Profile i kreirajte profil u Tip jedinice: hAPaclite timeserver. Nismo imali nikakve parametre u zadanom profilu, tako da nemamo šta kopirati Kopiraj parametre iz: "ne kopiraj..."

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Ovdje još uvijek nema parametara, ali će biti moguće podesiti one koje kasnije želimo vidjeti na našim vremenskim serverima oblikovanim od hAPaclitea. Na primjer, opšte adrese NTP servera.
Idemo na konfiguraciju jedinice i premjestimo je na profil servera vremena

Konačno idemo na Files & Scripts, pravite skripte i evo nas čekaju neverovatno zgodne lepinje.

Da bismo izvršili skriptu na jedinici, moramo odabrati Tip:TR069_SCRIPT а Ime и ime cilja mora imati .alter ekstenziju
Istovremeno, za skripte, za razliku od softvera, možete prenijeti gotovu datoteku ili je jednostavno napisati / urediti u polju Sadržaj. Pokušajmo pisati upravo tamo.

I da biste odmah vidjeli rezultat - dodajte vlan ruter u ether1

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

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Vozimo, pritiskamo upload i gotovo. Naš scenario vlan1.alter čekajući u krilima.

Pa, idemo? br. Također moramo dodati grupu za naš profil. Grupe nisu uključene u hijerarhiju opreme, ali su potrebne za traženje jedinica u UnitType ili Profile i potrebne su za izvršavanje skripte putem Advanced Provisioning. Obično su grupe povezane s lokacijama i imaju ugniježđenu strukturu. Hajde da napravimo rusku grupu.

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Zamislite da smo upravo suzili pretragu sa "Svi serveri svetskog vremena na hAPaclite-u" na "Svi serveri za rusko vreme na hAPaclite-u". Još uvijek postoji ogroman sloj svega zanimljivog sa grupama, ali nemamo vremena. Uđimo u skripte.

Advanced Provisioning > Job > Create Job

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Pošto smo ipak u naprednom modu, ovdje možete specificirati gomilu različitih uvjeta za početak zadatka, ponašanje greške, ponavljanja i timeouts. Preporučujem da pročitate sve ovo u priručnicima ili da o tome razgovarate kasnije kada ga implementirate u produkciju. Za sada, samo postavimo n1 na Zaustavi pravila tako da se zadatak zaustavi čim se završi na našoj 1. jedinici.

Popunjavamo potrebno, a ostaje samo da pokrenemo!

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Pritisnite START i pričekajte. Sada će brojač uređaja koje je uništila skripta s nedostatkom grešaka raditi brzo! Naravno da ne. Takvi zadaci se daju dugo, i to je njihova razlika od skripti, Ansiblea i tako dalje. Jedinice se same prijavljuju za zadatke po rasporedu ili kako se pojavljuju na mreži, ACS prati koje su jedinice već primile zadatke i kako su završili i to upisuje u parametre jedinice. U našoj grupi je 1 jedinica, a da ih je 1001, admin bi pokrenuo ovaj zadatak i otišao na pecanje

Hajde. Ponovo pokrenite ruter ili ponovo pokrenite TR-069 klijent. Sve bi trebalo da prođe glatko i Mr.White će dobiti novi vlan. A naš zadatak pravila za zaustavljanje će preći u status PAUZIRANA. Odnosno, još uvijek se može ponovo pokrenuti ili promijeniti. Ako pritisnete FINISH, zadatak će biti otpisan u arhivu

4.4 Ažuriranje softvera

Ovo je vrlo važna stvar, budući da je Mikrotik firmver modularan, ali dodavanje modula ne mijenja ukupnu verziju firmvera uređaja. Naš ACS je normalan i nije navikao na ovo.
Sada ćemo to učiniti u stilu quick & dirty, i odmah ugurati NTP modul u opći firmware, ali čim se verzija ažurira na uređaju, nećemo moći dodati još jedan modul na isti način .
U proizvodnji je bolje ne koristiti takav trik i instalirati module koji su opcioni za tip jedinice samo sa skriptama.

Dakle, prvo što treba da uradimo je da pripremimo softverske pakete potrebnih verzija i arhitekture i stavimo ih na neki dostupni web server. Na test će ići svako ko može doći do našeg Mr.White-a, a za produkciju je bolje napraviti ogledalo za automatsko ažuriranje potrebnog softvera, koji nije strašno staviti na web
Bitan! Ne zaboravite uvijek uključiti paket tr-069client u ažuriranja!

Kako se ispostavilo, dužina puta do paketa je veoma važna! Kada pokušam da koristim nešto slično http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik je pao u cikličku vezu sa resursom, šaljući ponovljene zapise TRANSFERCOMPLETE na tr-069. I potrošio sam neke nervne ćelije pokušavajući da shvatim šta nije u redu. Stoga, dok ga stavljamo u korijen, do pojašnjenja

Dakle, trebali bismo imati tri npk fajla dostupna preko http. Imam ga ovako

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

Sada ovo treba formatirati u xml datoteku sa FileType = "1 Firmware Upgrade Image", koju ćemo poslati Mikrotiku. Neka ime bude ros.xml

Radimo prema uputama 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>

Nedostatak je evidentan Username/Password za pristup serveru za preuzimanje. Možete pokušati da ga unesete kao u paragrafu A.3.2.8 tr-069 protokola:

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

Ili pitajte direktno službenike Mikrotika, kao i o maksimalnoj dužini puta do * .npk

Idemo do poznatih Files & Scripts, i kreirajte SOFTVERSKI fajl tamo sa ime:ros.xml, Ciljano ime:ros.xml i verzija:6.45.6
Pažnja! Verzija mora biti navedena ovdje točno u formatu u kojem je prikazana na uređaju i proslijeđena u parametru System.X_FREEACS-COM.Device.SoftwareVersion.

Odaberemo naš xm-fajl za učitavanje i gotovi ste.

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Sada imamo mnogo načina da ažuriramo uređaj. Preko čarobnjaka u glavnom meniju, preko naprednog obezbeđivanja i zadataka sa tipom SOFTVER, ili jednostavno idite na konfiguraciju jedinice i kliknite na Nadogradi. Odaberimo najlakši način, inače je članak natečen.

TR-069 kod Mikrotika. Testiranje Freeacs-a kao servera za automatsku konfiguraciju za RouterOS

Pritisnemo dugme, pokrenemo proviziju i gotovi ste. Program testiranja je završen. Sada možemo više sa mikrotikom.

5. Zaključak

Kada sam počeo da pišem, prvo sam želeo da opišem vezu ip-telefona i da na njegovom primeru objasnim koliko može biti cool kada tr-069 radi lako i bez napora. Ali onda, dok sam napredovao i kopao po materijalima, pomislio sam da za one koji povezuju Mikrotik nijedan telefon neće biti strašan za samostalno učenje.

U principu, Freeacs, koji smo testirali, već se može koristiti u proizvodnji, ali za to morate konfigurirati sigurnost, SSL, trebate konfigurirati microtics za autokonfiguraciju nakon resetiranja, potrebno je ispraviti ispravan dodatak tipa jedinice, rastaviti rad web servisa i fuzijske ljuske, i još mnogo toga. Probajte, izmislite i napišite nastavak!

Svima, hvala na pažnji! Bit će mi drago ispravkama i komentarima!

Spisak korištenih materijala i korisni linkovi:

Tema na forumu na koju sam naišao kada sam počeo da pretražujem ovu temu
TR-069 CPE WAN protokol upravljanja amandman-6
freeacs wiki
Parametri tr-069 u Mikrotiku, i njihova korespondencija sa terminalskim komandama

izvor: www.habr.com