TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

U ovom ću članku pokušati korak po korak opisati postupak instaliranja testnog poslužitelja za prekrasan projekt Freeacs u potpuno operativno stanje, te prikazati praktične tehnike rada s mikrotikom: konfiguracija kroz parametre, izvršavanje skripti, ažuriranje, instaliranje dodatnih modula itd.

Svrha članka je potaknuti kolege da odustanu od upravljanja mrežnim uređajima uz pomoć strašnih grablji i štaka, u obliku vlastitih skripti, Dudea, Ansiblea itd. I ovom prilikom izazvati vatromet i masovno veselje u kvadrati.

0. Izbor

Zašto freeacs, a ne genie-acs spomenut u mikrotik-wiki, koliko življi?
Jer prema genie-acs s mikrotikom postoje publikacije Španjolaca. Evo ih pdf и video s prošlogodišnjeg MUM-a. Autokarikature na slajdovima su cool, ali ja bih volio pobjeći od koncepta pisanja scenarija, pokretanja scenarija, pokretanja scenarija...

1. Instalirajte freeacs

Instalirat ćemo ga u Centos7, a budući da uređaji prenose dosta podataka, a ACS aktivno radi s bazom podataka, nećemo škrtariti s resursima. Za udoban rad izdvojit ćemo 2 CPU jezgre, 4 GB RAM-a i 16 GB brzog SSD raid10 prostora za pohranu. Ja ću instalirati freeacs u Proxmox VE lxc kontejner, a vi možete raditi u bilo kojem alatu koji vam odgovara.
Svakako postavite točno vrijeme na svom ACS stroju.

Sustav će biti testni, tako da nećemo cjepidlačiti i samo ćemo upotrijebiti ljubazno pruženu instalacijsku skriptu kakva jest.

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

Čim se skripta dovrši, možete odmah ući u web sučelje putem IP-a stroja, s admin/freeacs vjerodajnicama

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS
Ovo je tako lijepo minimalističko sučelje i kako je sve ispalo super i brzo

2. Početno postavljanje freeaca

Osnovna upravljačka jedinica za ACS je jedinica ili CPE (Customer Premises Equipment). A najvažnija stvar koju trebamo za upravljanje jedinicama je njihov tip jedinice, tj. model opreme koji definira skup konfigurabilnih parametara jedinice i njezinog softvera. No, iako ne znamo kako ispravno stvoriti novu vrstu jedinice, najbolje bi bilo da pitate samu jedinicu o tome uključivanjem Discovery Mode.

Ovaj mod se apsolutno ne može koristiti u proizvodnji, ali moramo što prije pokrenuti motor i vidjeti mogućnosti sustava. Sve osnovne postavke pohranjene su u /opt/freeacs-*. Stoga, otvaramo

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

, pronašli smo

discovery.mode = false

i promijeniti u

discovery.mode = true

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

max_allowed_packet=32M

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

client_max_body_size 32m;

u odjeljak http. U suprotnom, moći ćemo raditi s firmwareom ne više od 1M.

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

A u ulozi uređaja (CPE) imat ćemo vrijednu bebu hAP AC lite.

Prije uspostavljanja testne 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, najmanje što možete učiniti je omogućiti dhcp klijent na ether1, instalirati paket tr-069client i postaviti lozinke.

3. Spojite Mikrotik

Preporučljivo je povezati sve jedinice koristeći važeći serijski broj kao prijavu. Onda će vam sve biti jasno u logovima. Netko savjetuje korištenje WAN MAC-a - ne vjerujte. Ako netko koristi par login/pass koji je zajednički svima, izbjegavajte ga.

Otvorite dnevnik tr-069 za praćenje “pregovora”

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

Otvorite Winbox, stavku izbornika TR-069.
ACS URL: http://10.110.0.109/tr069/prov (zamijenite svojim IP-om)
Korisničko ime: 9249094C26CB (kopirajte serijski broj iz system>routerboard)
Lozinka: 123456 (nije potrebna za otkrivanje, ali je potrebna)
Ne mijenjamo periodični interval informiranja. Ovu postavku izdat ćemo putem našeg ACS-a

Ispod su postavke za daljinsko pokretanje veze, ali nisam uspio natjerati mikrotik da radi s tim. Iako daljinski zahtjev radi odmah s telefonima. Morat ćemo to smisliti.

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Nakon klika na gumb Primijeni, podaci će se razmjenjivati ​​u terminalu, au Freeacs web sučelju moći ćete vidjeti naš router s automatski kreiranom Unit Type “hAPaclite”.

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Usmjerivač je povezan. Možete pogledati automatski stvorenu vrstu jedinice. Otvor Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Čega nema! Čak 928 parametara (gledao sam u ljusci). Je li to puno ili malo, saznat ćemo kasnije, ali za sada ćemo samo brzo pogledati. To znači Vrsta jedinice. Ovo je popis podržanih parametara s ključevima, ali bez vrijednosti. Vrijednosti su postavljene u razinama ispod - Profili i Jedinice.

4. Konfigurirajte Mikrotik

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

I mi sami, u web sučelju, kliknemo na olovku pored naše jedinice i idemo na način konfiguracije jedinice. Ovako izgleda:

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Pogledajmo ukratko što je zanimljivo na ovoj stranici:

Blok konfiguracije jedinice

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

Blok opskrbe s gumbima
Opisi alata upućuju na to da svi gumbi u bloku Provisioning mogu trenutačno primijeniti konfiguraciju putem ConnectionRequestURL-a. Ali, kao što sam rekao gore, ovo ne radi, tako da ćete nakon pritiska na gumbe morati ponovno pokrenuti tr-069 klijent na mikrotiku kako biste ručno pokrenuli proviziju.

  • Freq/Spread: Koliko puta tjedno isporučiti konfiguraciju ±% kako bi se smanjilo opterećenje poslužitelja i komunikacijskih kanala. Standardno je 7/20, tj. svaki dan ± 20% i naznaka kako je u sekundama. Još nema smisla mijenjati učestalost isporuke jer... pojavit će se dodatni šum u zapisnicima i postavke se neće uvijek primjenjivati ​​prema očekivanjima

Blok povijesti pružanja usluga (zadnjih 48 sati)

  • Naizgled, priča je kao priča, ali klikom na naslov dolazite do prikladnog alata za pretraživanje baze podataka, s regularnim izrazom i dodacima

Blok parametara

Najveći i najvažniji blok, gdje se, zapravo, postavljaju i očitavaju parametri za datu jedinicu. Sada vidimo samo najvažnije parametre sustava, bez kojih je ACS rad s jedinicom nemoguć. Ali sjećamo se da ih u našoj vrsti jedinice imamo - 928. Pogledajmo sva značenja i odlučimo što tko jede uz Mikrotik.

4.1 Očitavanje parametara

U bloku Provisioning kliknite gumb Read all. U bloku je crveni natpis. S desne strane će se pojaviti stupac CPE (trenutna) vrijednost. U parametrima sustava, ProvisioningMode je promijenjen u READALL.

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju 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 s osvježavanjem stranice preglednika dok ne dobijete parametre s desne strane u veselim sivim pravokutnicima
Ako netko želi popiti gutljaj starog vina, ovaj način rada opisan je u priručniku kao 10.2 Inspekcija. Pali se i radi malo drugačije, ali je suština dosta dobro opisana

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

READALL mod će se sam isključiti nakon 15 minuta, a mi ćemo pokušati dokučiti što je tu korisno, a što se može ispraviti “u hodu” dok smo u ovom modu.

Možete mijenjati IP adrese, omogućiti/onemogućiti sučelja, pravila vatrozida, koja imaju komentare (inače je potpuna zbrka), Wi-Fi itd.

To jest, još nije moguće razumno konfigurirati mikrotik samo pomoću TR-069. Ali možete ga prilično dobro pratiti. Dostupna je statistika o sučeljima i njihovom statusu, slobodnoj memoriji itd.

4.2 Parametri isporuke

Pokušajmo sada isporučiti parametre ruteru, putem tr-069, na “prirodan” način. Prva žrtva bit će Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Nalazimo ga u parametrima jedinice All. Kao što vidite, nije navedeno. To znači da svaka jedinica može imati bilo koji identitet. Dosta toleriranja ovoga!
Pritisnite potvrdni okvir u stupcu za stvaranje, postavite naziv Mr.White i kliknite gumb Ažuriraj parametre. Već ste pogodili što će se sljedeće dogoditi. Tijekom sljedeće komunikacijske sesije sa sjedištem, usmjerivač mora promijeniti svoj identitet.

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Ali ovo nam nije dovoljno. Parametar kao što je Identity dobro je uvijek imati pri ruci kada tražite željenu jedinicu. Kliknite na naziv parametra i označite potvrdne okvire Display(D) i Searchable (S). Ključ parametra mijenja se u RWSD (zapamtite, imena i ključevi postavljeni su na najvišoj razini tipa jedinice)

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

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

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Pokrećemo pružanje i gledamo Identitet. Pozdrav g. White! Sada nećete moći promijeniti svoj identitet dok tr-069client radi

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

4.3 Izvršavanje skripti

Budući da smo uvidjeli da bez njih ne možemo živjeti, implementirajmo ih.

Ali prije nego počnemo raditi s datotekama, moramo ispraviti direktivu public.url u spisu /opt/freeacs-tr069/config/application-config.conf
Još uvijek imamo instaliranu testnu konfiguraciju s jednom skriptom. Jesi li zaboravio?

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

Ponovno pokrećemo ACS i idemo ravno Files & Scripts.

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Ali ono što nam se sada otvara pripada tipu jedinica, tj. globalno na sve hAP ac lite usmjerivače, bilo da se radi o usmjerivaču podružnice, hotspotu ili capsmanu. Još nam ne treba tako visoka razina, pa bismo prije rada sa skriptama i datotekama trebali napraviti profil. Možete to nazvati "dužnošću" uređaja.

Učinimo našu bebu poslužiteljem vremena. Pristojna pozicija sa zasebnim programskim paketom i malim brojem parametara. Idemo Easy Provisioning > Profile > Create Profile i izradite profil u tipu jedinice: hAPaclite oportunista. U zadanom profilu nismo imali nikakve parametre, tako da nemamo što kopirati Kopiraj parametre iz: “nemoj kopirati...”

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Ovdje još nema parametara, ali će biti moguće postaviti one koje ćemo kasnije htjeti vidjeti na našim vremenskim poslužiteljima, sastavljenim od hAPaclite-a. Na primjer, općenite adrese NTP poslužitelja.
Idemo na konfiguraciju jedinice i premjestimo je na profil vremenskog poslužitelja

Napokon ćemo Files & Scripts, pravimo skripte, a ovdje nas čekaju nevjerojatno zgodne kiflice.

Kako bismo izvršili skriptu na jedinici, moramo odabrati Tip:TR069_SCRIPT а Ime i Prezime и Ime cilja mora imati nastavak .alter
U isto vrijeme, za skripte, za razliku od softvera, možete preuzeti gotovu datoteku ili je jednostavno napisati/urediti u polju Sadržaj. Pokušajmo to napisati upravo tamo.

A kako biste odmah mogli vidjeti rezultat, dodajmo vlan usmjerivaču na ether1

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

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Vozi, pritisni Postavi i gotovi ste. Naš scenarij vlan1.alter čekaju svoje vrijeme.

Pa, idemo? Ne. 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 skripti putem Advanced Provisioning. Grupe su obično povezane s lokacijama i imaju ugniježđenu strukturu. Napravimo grupu Rusija.

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Možete li zamisliti da smo samo uspjeli suziti pretragu sa "Svi vremenski poslužitelji u svijetu na hAPacliteu" na "Svi vremenski poslužitelji u Rusiji na hAPacliteu". Ima još puno zanimljivih stvari s grupama, ali nemamo vremena. Idemo na scenarije.

Advanced Provisioning > Job > Create Job

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Kako smo, ipak, u Advanced modu, ovdje možete odrediti hrpu različitih uvjeta za pokretanje zadatka, ponašanje u slučaju grešaka, ponavljanja i timeouta. Preporučam da sve ovo pročitate u priručnicima ili da o tome porazgovarate kasnije prilikom implementacije u proizvodnju. Za sada ćemo samo staviti n1 u pravila zaustavljanja tako da će se zadatak zaustaviti čim se dovrši na našoj prvoj jedinici.

Ispunjavamo potrebne podatke i preostaje samo pokrenuti ga!

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Pritisnite START i pričekajte. Sada će brojač uređaja koje je skripta s lošim otklanjanjem pogrešaka brzo pokrenuti! Naravno da ne. Takvi zadaci traju dugo i to je njihova razlika od skripti, Ansiblea itd. Jedinice se same prijavljuju za zadatke prema rasporedu ili kako se pojave na mreži, ACS prati koje su jedinice već dobile zadatke i kako su ih izvršile te to bilježi u parametrima jedinice. U našoj grupi je 1 jedinica, a da ih je 1001, admin bi pokrenuo ovaj zadatak i otišao u ribolov

Dođi. Ponovno pokrenite usmjerivač ili ponovno pokrenite TR-069 klijent. Sve bi trebalo proći glatko i Mr.White će dobiti novi vlan. A naš zadatak pravila Stop prebacit će se u status PAUZIRANO. Odnosno, još uvijek se može ponovno pokrenuti ili promijeniti. Ako kliknete ZAVRŠI, zadatak će se arhivirati

4.4 Ažuriranje softvera

Ovo je vrlo važna točka, budući da je Mikrotik firmware modularan, ali dodavanje modula ne mijenja ukupnu verziju firmware-a uređaja. Naš ACS je normalan i nije naviknut na ovo.
Sada ćemo to učiniti u stilu quick&dirty i odmah gurnuti 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 izborni za vrstu jedinice samo pomoću skripti.

Dakle, prvo što trebamo učiniti je pripremiti programske pakete potrebnih verzija i arhitekture te ih postaviti na neki pristupačan web poslužitelj. Za testiranje, svatko do koga naš Mr.White može doći će napraviti test, ali za proizvodnju je bolje sastaviti automatsko ažuriranje mirrora potrebnog softvera, koji nije strašno staviti na web
Važno! Ne zaboravite uvijek uključiti paket tr-069client u svoja ažuriranja!

Kako se pokazalo, duljina puta do paketa je vrlo važna! Kad pokušam upotrijebiti nešto poput http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik je pao u cikličku vezu s resursom, šaljući ponovljeni TRANSFERCOMPLETE u zapisnik tr-069. I potrošio sam nešto živčanih stanica pokušavajući shvatiti što nije u redu. Stoga, za sada stavimo to u korijen, dok ne saznamo

Dakle, trebali bismo imati tri npk datoteke dostupne putem http-a. Kod mene 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 ovo treba formatirati u xml datoteku s FileType = “1 Firmware Upgrade Image”, koju ćemo proslijediti Mikrotiku. Neka ime bude ros.xml

Radimo to 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>

Evidentan je nedostatak Username/Password za pristup poslužitelju za preuzimanje. Možete pokušati unijeti ovo kao u stavku 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>

Ili izravno pitajte službenike Mikrotika o maksimalnoj duljini puta do *.npk

Idemo na mjesta koja poznajemo Files & Scripts, i tamo stvorite SOFTWARE datoteku s Ime:ros.xml, Naziv cilja:ros.xml i Verzija:6.45.6
Pažnja! Ovdje se verzija mora navesti točno u onom formatu u kojem je prikazana na uređaju i proslijeđena u parametru System.X_FREEACS-COM.Device.SoftwareVersion.

Odaberite našu xm datoteku za učitavanje i gotovi ste.

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Sada imamo mnogo načina za ažuriranje uređaja. Putem čarobnjaka u glavnom izborniku, kroz naprednu pripremu i zadatke s tipom SOFTVER, ili jednostavno idite na konfiguraciju jedinice i kliknite Nadogradnja. Odaberimo najjednostavniji put, inače je članak već natečen.

TR-069 u Mikrotiku. Isprobavanje Freeacsa kao poslužitelja za autokonfiguraciju za RouterOS

Pritisnemo gumb, pokrenemo pripremu i gotovi ste. Testni program je završen. Sada možemo više s mikrotikom.

5. zaključak

Kad sam počeo pisati, prvo sam želio opisati vezu IP telefona i na njegovom primjeru objasniti koliko može biti cool kada tr-069 radi lako i bez napora. Ali onda, kako sam napredovao i kopao po materijalima, pomislio sam da onima koji su spojili Mikrotik nijedan telefon neće biti strašan za samostalno proučavanje.

U principu, Freeacs, koji smo testirali, već se može koristiti u proizvodnji, ali za to morate konfigurirati sigurnost, SSL, morate konfigurirati Mikrotik za auto-konfiguraciju nakon resetiranja, trebate debugirati ispravan dodatak tipa jedinice, analizirati rad web servisa i fusion shella i još mnogo toga. Pokušajte, izmislite i napišite nastavak!

Svima, hvala na pažnji! Bit će mi drago vidjeti ispravke i komentare!

Popis korištenih materijala i korisni linkovi:

Tema na forumu na koju sam naišao kad sam počeo tražiti temu
TR-069 CPE WAN Protokol upravljanja dopuna-6
Freeacs wiki
Parametri tr-069 u Mikrotiku, i njihova korespondencija s naredbama terminala

Izvor: www.habr.com