TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

U ovom članku ću pokušati korak po korak opisati proces instalacije testnog servera prekrasnog projekta Freeacs do potpuno funkcionalnog stanja i prikazati praktične metode za rad s mikrotik: konfiguraciju putem parametara, izvršenje skripti, ažuriranje, instalaciju dodatnih modula itd.

Cilj članka je potaknuti kolege da se odmore od upravljanja mrežnim uređajima uz pomoć strašnih zadataka i improvizacija, poput samostalno napisanih skripti, Dude, Ansible i slično. I, povodom toga, izazvati salve i masovno slavlje na trgovima.

0. Odabir

Zašto freeacs, a ne genie-acs, spomenut u mikrotik-wiki, kao živahnija opcija?
Zato što o genie-acs s mikrotik postoje objave Španjolaca. Evo ih pdf i video s prošlogodišnjeg MUM. Automatske potplate na slajdovima su kul, ali bih volio otići od koncepta pisanja skripti za pokretanje skripti za pokretanje skripti…

1. Instalacija freeacs

Instalirat ćemo na Centos7, a budući da uređaji šalju dovoljno podataka, a ACS aktivno radi s bazom podataka — nećemo štedjeti na resursima. Za udoban rad odvojit ćemo 2 CPU jezgre, 4GB RAM-a i 16GB brzog SSD RAID10 spremišta. Instalirat ću freeacs u LXC kontejneru Proxmox VE, a vi možete raditi u bilo kojem alatu koji vam odgovara.
Ne zaboravite postaviti pravo vrijeme na mašini s ACS-om.

Sustav će biti testni, pa nećemo komplicirati i jednostavno ćemo koristiti ljubazno ponuđeni skript za instalaciju, onakav kakav jest.

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

Čim se rad skripta završi — odmah ćete moći pristupiti web sučelju putem IP adrese mašine, sa korisničkim podacima admin/freeacs

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.
Takvo je ugodno minimalističko sučelje, i kako je divno i brzo sve ispalo

2. Prva konfiguracija freeacs

Osnovna jedinica upravljanja za ACS je jedinica ili CPE (Oprema korisničkog prostora). A najvažnije što nam treba za upravljanje jedinicama je njihov Unit Type, tj. model opreme koji određuje skup prilagodljivih parametara jedinice i njenog softvera. Ali dok ne znamo kako ispravno uvesti novu jedinicu, najbolje bi bilo pitati samu jedinicu, uključivši Discovery Mode.

U produkciji se takav način korištenja kategorički ne smije koristiti, ali moramo što prije pokrenuti motor i vidjeti mogućnosti sustava. Sve glavne postavke pohranjuju se u /opt/freeacs-*. Stoga, otvaramo

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

, nalazimo

discovery.mode = false

i mijenjamo na

discovery.mode = true

Osim toga, poželjno je povećati maksimalne veličine datoteka s kojima će raditi nginx i mysql. Za mysql dodajemo u /etc/my.cnf redak

max_allowed_packet=32M

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

client_max_body_size 32m;

u http odjeljak. Inače, moći ćemo raditi s firmware-ima ne većim od 1M.

Ponovno pokrećemo i spremni smo za rad s uređajima.

A kao uređaj (CPE) imat ćemo malog radnika hAP AC lite.

Prije testnog povezivanja, poželjno je ručno podesiti CPE na minimalnu radnu konfiguraciju kako bi parametri koje kasnije želite konfigurirati bili ispunjeni. Za router minimalno se može uključiti dhcp-klijent na ether1, instalirati paket tr-069client i postaviti lozinke.

3. Povezujemo Mikrotik

Sve jedinice poželjno je povezati koristeći valjanu serijsku broj kao prijavu. Tada će vam u logovima sve biti jasno. Neki savjetuju korištenje WAN MAC-a — ne vjerujte im. Neki koriste zajednički login/password za sve — izbjegavajte ih.

Otvorite log tr-069 za praćenje 'pregovora'

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

Otvorite winbox, odaberite TR-069 iz izbornika.
ACS URL: http://10.110.0.109/tr069/prov (zamijenite s vašim IP-om)
Korisničko ime: 9249094C26CB (kopirajte serijski broj iz system>routerboard)
Lozinka: 123456 (za discovery nije potrebna, ali neka bude)
Periodični informativni interval ne mijenjamo. Ovu postavku ćemo izraditi putem našeg ACS-a.

Ispod se nalaze postavke za daljinsku inicijalizaciju veze, ali nisam uspio natjerati mikrotik da s tim radi odmah. Iako na telefonima daljinski zahtjev radi 'iz kutije'. Trebat će istražiti.

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Nakon što pritisnete gumb Primijeni — podaci će se razmjenjivati u terminalu, a u web sučelju Freeacs moći ćete vidjeti naš router s automatski kreiranom jedinicom tipa 'hAPaclite'.

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Router je povezan. Možete zaviriti u automatski kreiranu jedinicu tipa. Otvorite Easy Provisioning > Unit Type > Pregled jedinica > hAPaclite. Što tamo sve nema! Čitavih 928 parametara (vidio sam u shellu). Je li to puno ili malo — razjasnit ćemo kasnije, a sada samo brzo pogledajmo. Ovo je što znači jedinica tipa. To je popis podržanih parametara s ključevima, ali bez vrijednosti. Vrijednosti se postavljaju na nižim razinama — u profilima i jedinicama.

4. Konfiguriramo Mikrotik

Došao je trenutak da preuzmemo priručnik za web sučelje Ovo je priručnik iz 2011. godine — poput boce dobrog, starog vina. Otvorimo ga i ostavimo da 'diše'.

A u web sučelju kliknite na olovku pored našeg jedinice i pređite u način konfiguracije jedinice. Izgleda ovako:

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Krato ćemo razmotriti što je zanimljivo na ovoj stranici:

Blok Konfiguracija jedinice

  • Profil: Ovo je profil unutar Tip jedinice. Hijerarhija je ovakva: TipJedinice > Profil > Jedinica. To znači da možemo kreirati, na primjer, profile hAPaclite > hotspot i hAPaclite > branch, ali unutar modela uređaja

Blok Provisioning s gumbima
Savjeti sugeriraju da svi gumbi u bloku Provisioning mogu odmah primijeniti konfiguraciju putem ConnectionRequestURL. No, kao što sam ranije rekao, to ne radi, stoga će nakon pritiska gumba biti potrebno ponovno pokrenuti tr-069 klijent na mikrotiku za ručno pokretanje provisiona.

  • Freq/Spread: Koliko puta tjedno isporučiti konfiguraciju ± %, kako bi se smanjilo opterećenje na poslužitelju i komunikacijskim kanalima. Po defaultu je postavljeno 7/20, tj. svaki dan ± 20% i napomena o tome u sekundama. Još nema smisla mijenjati učestalost isporuke, jer će biti suvišnog šuma u logovima i ne uvijek očekivanog primjena postavki.

Blok Povijest Provisioninga (zadnjih 48 sati)

  • Izgleda kao povijest, ali klikom na naslov dolazite do zgodnog alata za pretraživanje po bazi, s regexp-om i dodacima.

Blok Parametri

Najveći i najvažniji blok u kojem se zapravo postavljaju i očitavaju parametri za ovu jedinicu. Trenutno vidimo samo najvažnije sistemske parametre bez kojih rad ACS-a s jedinicom nije moguć. No, mi se sjećamo da mi u Tipu jedinice imamo — 928. Pogledajmo sve vrijednosti i odlučimo s čim se to sve koriste na mikrotiku.

4.1 Očitavanje parametara

U bloku Provisioning pritisnite gumb Očitavanje svih. U bloku — crvena natpis. Desno će se pojaviti stupac CPE (trenutna) vrijednost. U sistemskim parametrima ProvisioningMode promijenio se na READALL.

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

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

Ponovno pokrenite TR-069 klijent ili ponovno pokrenite usmjerivač, i nastavite osvježavati stranicu u pregledniku dok ne dobijete desno parametre u veselih sivih pravokutnicima.
Ako je netko želio gurnuti starog vina — ovaj način je u priručniku opisan kao 10.2 Način inspekcije. Uključuje se i radi malo drugačije, ali suština je sasvim opisana.

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Način READALL će se sam isključiti nakon 15 minuta, a mi ćemo pokušati otkriti što ovdje ima korisnog i što možemo promijeniti „u hodu“, dok smo u ovom načinu.

Možete mijenjati IP adrese, uključivati/isključivati sučelja, pravila vatrozida koja sadrže komentare (inače potpuni nered), wi-fi i tako dalje.

Drugim riječima, trenutno nije moguće razumno konfigurirati mikrotik samo pomoću TR-069. No, može se prilično dobro pratiti. Dostupna je statistika o sučeljima i njihovom statusu, slobodnoj memoriji itd.

4.2 Dostava parametara

Sada probajmo dostaviti parametre u usmjerivač putem tr-069, 'prirodnim' putem. Prva žrtva bit će Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Nalazimo ga u parametrima jedinice All. Kao što se može vidjeti - nije postavljen. To znači da bilo koja jedinica može sama imati bilo koji Identity. Dosta je toga!
Označavamo kućicu u stupcu create, postavljamo ime Mr.White i pritiskamo gumb Update parameters. Što će se dogoditi, već ste pogodili. Prilikom sljedeće sesije povezivanja s centralom, usmjerivač bi trebao promijeniti svoj Identity.

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Ali nam to nije dovoljno. Takav parametar kao Identity uvijek je dobar za imati pri ruci kada tražite potrebnu jedinicu. Kliknemo na ime parametra i označavamo kućice Display(D) i Searchable(S). Ključ parametra se mijenja u RWSD (Zapamtite, imena i ključevi postavljaju se na najvišoj razini tipa jedinice)

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Vrijednost sada ne samo da se prikazuje u općem popisu pretraživanja, već je dostupna i za pretraživanje u Support > Search > Advanced form

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Iniciramo provision i gledamo na Identity. Zdravo, Mr.White! Sada nećete moći sami promijeniti identitet dok radi tr-069 client.

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

4.3 Izvršavanje skripti

S obzirom da smo shvatili da bez njih ne možemo — hajde da ih izvršimo.

Ali prije nego što počnemo raditi s datotekama — trebamo ispraviti direktivu public.url u datoteci /opt/freeacs-tr069/config/application-config.conf
Ima li to i dalje testna konfiguracija postavljena jednim skriptom. Nismo zaboravili?

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

Restartamo ACS i idemo izravno na Files & Scripts.

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Ali ono što nam se sada otvara pripada tipu jedinice, tj. globalno svim usmjerivačima hAP ac lite, bilo da se radi o usmjerivaču podružnice, hotspotu ili capsmanu. Takva visoka razina nam trenutno nije potrebna, stoga, prije nego što radimo sa skriptama i datotekama — trebamo stvoriti profil. Možemo to nazvati, kao 'funkciju' uređaja.

Pretvorimo naše malo čudo u server vremena. Dignitetna funkcija s posebnim paketom softvera i malim brojem parametara. Idemo u Easy Provisioning > Profile > Create Profile i kreiramo u tipu jedinice: hAPaclite profil timeserver. U defaultnom profilu nismo imali parametre, pa nema što ni kopirati. Kopirajte parametre iz: «ne kopirajte…»

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Trenutno nema parametara, ali ćemo moći postaviti one koje želimo vidjeti na našim vremenima, kombiniranima iz hAPaclite. Na primjer, opći NTP serveri.
Prelazimo u konfiguraciju mrežnog uređaja i premještamo ga u profil timeserver

Napokon idemo u Files & Scripts, raditi skripte, i ovdje nas čekaju izuzetno korisne mogućnosti.

Da bismo izvršili skriptu na jedinici, trebamo odabrati Tip: TR069_SCRIPT a Name i Naziv cilja moraju imati ekstenziju .alter
Za skripte, za razliku od softvera, možemo ili učitati gotovu datoteku ili jednostavno napisati/urediti je u polju Sadržaj. Pokušajmo napisati isto tamo.

Kako bismo odmah vidjeli rezultat — dodajmo routeru vlan na ether1

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

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Upisujemo, pritisnemo Učitaj i to je to. Naša skripta vlan1.alter čeka svoj trenutak.

Pa, idemo? Ne. Moramo još dodati grupu za naš profil. Grupe nisu uključene u hijerarhiju opreme, ali su potrebne za pretraživanje jedinica u UnitType ili Profilu i obavezne su za izvršavanje skripti putem Advanced Provisioning. Obično, grupe su povezane s lokacijama i imaju uvučenu strukturu. Napravimo grupu Rusija.

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Zamislite, upravo smo suzili pretraživanje s «Sve svjetske vremenske servere na hAPaclite» na «Sve vremenske servere Rusije na hAPaclite». Ima tu još puno zanimljivog u vezi grupa, ali nemamo vremena. Idemo već na skripte.

Napredno provisioniranje > Posao > Kreiraj posao

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Budući da smo u Advanced režimu, ovdje možemo navesti niz različitih uvjeta za početak zadatka, ponašanje u slučaju grešaka, ponavljanja i vremenskih ograničenja. Preporučujem da to sve pročitate u priručnicima ili ćemo kasnije o tome raspraviti kada implementiramo u produkciju. Za sada ćemo staviti n1 u pravila obustave, kako bi se zadatak zaustavio čim se izvrši na našoj 1 jedinici.

Ispunjavamo potrebne podatke i ostaje samo pokrenuti!

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Pritiskamo POČNI i čekamo. Sada će brojčanik uređaja koje je pokvarena skripta 'ubila' naglo porasti! Ne, naravno. Takvi se zadaci izvode duže, i to je njihova razlika od skripti, Ansible-a i drugih. Jedinice same traže zadatke prema rasporedu ili kad se pojave u mreži, ACS prati koje su jedinice već primile zadatke i kako su ih završile, te to zabilježi u parametrima jedinice. U našoj grupi je 1 jedinica, a da ih je 1001 — admin bi pokrenuo taj zadatak i otišao na ribolov.

Hajde. Ponovo pokrenite ruter ili restartujte TR-069 klijent. Sve bi trebalo proći glatko i Mr.White će dobiti novi vlan. A naš zadatak prema Stop pravilu će preći u status PAUSED. To znači da se još uvek može pokrenuti ponovo ili izmeniti. Ako pritisnete FINISH — zadatak će se prebaciti u arhivu.

4.4 Ažuriramo softver

Ovo je veoma važna tačka, jer je firmver mikrotika modularan, ali dodavanje modula ne menja ukupnu verziju firmvera uređaja. Naš ACS je u redu, i nismo na to navikli.
Sada ćemo to uraditi u bržem i jednostavnijem stilu, i staviti NTP modul u ukupan firmver odmah, ali čim se verzija na uređaju ažurira — nećemo moći dodati još jedan modul na isti način.
Za produkciju, ovakve trikove je bolje ne koristiti i instalirati module koji nisu obavezni za Tip Jedinice samo skriptama.

Dakle, prvo što treba da uradimo — je da pripremimo softverske pakete potrebnih verzija i arhitektura, i postavimo ih na neki dostupan veb server. Za test će poslužiti bilo koji, do kojeg može da dođe naš Mr.White, a za produkciju je bolje postaviti auto-ažurirajuće ogledalo potrebnog softvera, koje nije zastrašujuće postaviti na web.
Važno! Uvek se setite da uključite paket sa tr-069client u ažuriranja!

Kako se ispostavilo, dužina puta do paketa je veoma važna! U mojim pokušajima korišćenja nečega poput http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik se srušio u ciklično povezivanje sa resursom, isporučujući u tr-069 log ponavljajuće TRANSFERCOMPLETE. Potrošio sam određeni broj nervnih ćelija pokušavajući da shvatim šta nije u redu. Stoga, za sada ćemo ga staviti u koren, dok ne saznamo.

Dakle, treba da imamo tri npk fajla dostupna putem http. Meni je ispalo 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 to treba oblikovati u xml fajl sa FileType="1 Firmware Upgrade Image", koji ćemo nahraniti mikrotiku. Neka se zove ros.xml.

Radimo prema uputstvu iz 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

U oči upada nedostatak Korisničko ime/Lozinka za pristup serveru za preuzimanje. Može se probati da se upiše kao u tački A.3.2.8 protokola tr-069:

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

Ili pitati izravno ovlaštene mikroTik o maksimalnoj dužini puta do *.npk

Prvo idemo u poznate nam Files & Scripts, i tamo kreiramo datoteku tipa SOFTWARE s Naziv:ros.xml, Ciljni naziv:ros.xml i Verzija:6.45.6
Pozor! Verzija mora biti navedena u točnom formatu, onakvom kakav se prikazuje na uređaju i prenosi u parametru System.X_FREEACS-COM.Device.SoftwareVersion.

Odabiremo naš xm-datoteku za preuzimanje i to je to.

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Sada imamo mnogo načina za ažuriranje uređaja. Kroz Wizard u glavnom izborniku, preko Advanced Provisioning i zadataka tipa SOFTWARE, ili jednostavno otići u konfiguraciju jedinice i pritisnuti Ažuriraj. Odabrati ćemo najjednostavniji put, jer je članak već narastao.

TR-069 na Mikrotik-u. Testiramo Freeacs kao server za automatsku konfiguraciju za RouterOS.

Pritiskamo gumb, pokrećemo provision i to je to. Testni program je završen. Sada znamo raditi više s mikrotikom.

5. Zaključak

Kad sam počeo pisati, prvo sam želio opisati povezivanje IP telefona, i na njegovom primjeru objasniti kako može biti sjajno kada tr-069 radi lako i bez napora. No, kako je vrijeme prolazilo i kopao sam po materijalima, pomislio sam da onome tko je povezao mikroTik — nijedan telefon više neće biti zastrašujući za samostalno učenje.

U načelu, Freeacs koji smo testirali — već se može primjenjivati u produkciji, ali za to treba postaviti sigurnost, SSL, potrebno je konfigurirati mikroTike za automatsku konfiguraciju nakon resetiranja, usavršiti pravilno dodavanje Unit Type, razjasniti rad web servisa i fusion shell, i još mnogo toga. Isprobajte, izumite, i napišite nastavak!

Sve, hvala na pažnji! Bit ću zahvalan na ispravcima i komentarima!

Popis korištenih materijala i korisne veze:

Forum tema na koju sam naišao na početku pretraživanja o toj temi
TR-069 CPE WAN Management Protocol Amendment-6
Freeacs wiki
Parametri tr-069 u mikroTik-u i njihova sukladnost naredbama terminala

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster