TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

În acest articol, voi încerca să descriu pas cu pas procesul de instalare a unui server de testare a unui proiect grozav freeacs într-o stare complet funcțională și să arate tehnici practice de lucru cu mikrotik: configurare prin parametri, execuție de script, actualizare, instalare de module suplimentare etc.

Scopul articolului este de a-i împinge pe colegi să refuze să gestioneze dispozitivele de rețea folosind greble și cârje groaznice, sub formă de scenarii scrise singur, Dude, Ansible etc. Și, cu această ocazie, să provoace artificii și bucurii în masă în pătrate.

0. Alegerea

De ce freeacs și nu genie-acs menționat în mikrotik-wikicat mai viu?
Pentru că există publicații spaniole despre genie-acs cu mikrotik. Aici sunt ei pdf и video de la MUM de anul trecut. Desene animate automate pe diapozitive sunt cool, dar aș dori să mă îndepărtez de conceptul de a scrie scripturi, de a rula scripturi, de a rula scripturi...

1. Instalare Freeacs

Ne vom instala în Centos7 și, deoarece dispozitivele transmit o mulțime de date, iar ACS lucrează activ cu baza de date, nu vom fi lacomi cu resurse. Pentru o muncă confortabilă, vom selecta 2 nuclee CPU, 4 GB RAM și 16 GB de stocare rapidă ssd raid10. Voi instala freeacs în containerul Proxmox VE lxc și puteți lucra cu orice instrument care vă este convenabil.
Nu uitați să setați ora corectă pe mașină cu ACS.

Sistemul va fi unul de testare, așa că să nu fim deștepți și să folosim doar scriptul de instalare oferit cu amabilitate, așa cum este.

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

De îndată ce scriptul se termină, puteți intra imediat în interfața web prin ip-ul mașinii, cu acreditările admin/freeacs

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS
Iată o interfață atât de frumoasă și minimalistă și cât de tare și rapid a ieșit totul

2. Configurarea inițială a Freeacs

Unitatea de bază de control pentru ACS este unitatea sau CPE (Customer Premises Equipment). Și cel mai important, ceea ce avem nevoie pentru a gestiona unitățile este tipul lor de unitate, adică. un model hardware care definește un set de parametri configurabili pentru o unitate și software-ul acesteia. Dar, deși nu știm cum să pornim corect un nou tip de unitate, cel mai bine ar fi să întrebăm unitatea însăși despre acest lucru, activând modul Discovery.

În producție, acest mod este absolut imposibil de utilizat, dar trebuie să pornim motorul cât mai curând posibil și să vedem capacitățile sistemului. Toate setările de bază sunt stocate în /opt/freeacs-*. Prin urmare, deschidem

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

, găsim

discovery.mode = false

si schimba in

discovery.mode = true

În plus, am dori să creștem dimensiunile maxime ale fișierelor cu care vor funcționa nginx și mysql. Pentru mysql, adăugați linia în /etc/my.cnf

max_allowed_packet=32M

, iar pentru nginx, adăugați la /etc/nginx/nginx.conf

client_max_body_size 32m;

la secțiunea http. În caz contrar, vom putea lucra cu firmware nu mai mult de 1M.

Repornim și suntem gata să lucrăm cu dispozitive.

Iar în rolul dispozitivului (CPE) vom avea un bebeluș dependent de muncă hAP AC lite.

Înainte de o conexiune de testare, este recomandabil să configurați manual CPE-ul la configurația minimă de lucru, astfel încât parametrii pe care doriți să îi configurați în viitor să nu fie goli. Pentru un router, puteți să activați minim un client dhcp pe ether1, să instalați pachetul tr-069client și să setați parole.

3. Conectați Mikrotik

Este de dorit să conectați toate unitățile folosind un număr de serie valid ca logare. Apoi totul va fi clar pentru dvs. în jurnale. Cineva vă sfătuiește să utilizați WAN MAC - nu credeți. Cineva folosește o pereche comună de conectare/pereche pentru toată lumea - ocoliți-le.

Deschiderea jurnalului tr-069 pentru a monitoriza „negocierile”

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

Deschideți winbox, elementul de meniu TR-069.
Adresa URL AC: http://10.110.0.109/tr069/prov (înlocuiește cu IP-ul tău)
Nume utilizator: 9249094C26CB (copiați seria de pe sistem>placa de router)
Parola: 123456 (nu este necesară pentru descoperire, dar pentru a fi)
Nu modificăm intervalul de informare periodică. Vom emite această setare prin ACS-ul nostru

Mai jos sunt setările pentru inițializarea de la distanță a conexiunii, dar nu am reușit să-l fac pe mikrotik să lucreze cu ea dintr-o lovitură. Deși cererea de la distanță funcționează imediat cu telefoanele. Va trebui să-și dea seama.

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

După apăsarea butonului Apply, datele vor fi schimbate în terminal, iar în interfața web Freeacs puteți vedea routerul nostru cu tipul de unitate creat automat „hAPclite”.

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Routerul este conectat. Puteți căuta tipul de unitate generat automat. Deschidem Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Ce nu este acolo! Cât 928 de parametri (am spionat shell-ul). Mult sau puțin - ne vom da seama mai târziu, dar deocamdată vom arunca o privire rapidă. Asta înseamnă Tipul de unitate. Aceasta este o listă de opțiuni acceptate cu chei, dar fără valori. Valorile sunt stabilite în nivelurile de mai jos - Profiluri și Unități.

4. Configurați Mikrotik

Este timpul să descarci ghid de interfață web Acest ghid din 2011 este ca o sticlă de vin bun, învechit. Să-l deschidem și să-l lăsăm să respire.

Și noi înșine, în interfața web, facem clic pe creionul de lângă unitatea noastră și mergem la modul de configurare a unității. Arata cam asa:

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Să analizăm pe scurt ce este interesant pe această pagină:

Bloc de configurare a unității

  • Profil: Acesta este profilul din Tipul de unitate. Ierarhia este astfel: UnitType > Profile > Unit. Adică putem crea, de exemplu, profiluri hAPaclite > hotspot и hAPaclite > branch, dar în cadrul modelului de dispozitiv

Bloc de aprovizionare cu nasturi
Sugestiile sugerează că toate butoanele din blocul Provisioning pot aplica instantaneu configurația prin ConnectionRequestURL. Dar, așa cum am spus mai sus, acest lucru nu funcționează, așa că după ce apăsați butoanele, va trebui să reporniți clientul tr-069 de pe mikrotik pentru a începe manual furnizarea.

  • Frecvență/Răspândire: De câte ori pe săptămână se livrează configurația ± % pentru a reduce sarcina pe server și canalele de comunicare. În mod implicit, costă 7/20, adică. în fiecare zi ± 20% și indică cum este în câteva secunde. Până acum, nu are rost să schimbi frecvența de livrare, pentru că. va exista zgomot suplimentar în jurnalele și nu întotdeauna se va aștepta aplicarea setărilor

Bloc de istoric al aprovizionării (ultimele 48 de ore)

  • În aparență, povestea este ca o poveste, dar făcând clic pe titlu, ajungi la un instrument convenabil de căutare în baze de date cu expresii regulate și bunătăți

Bloc de parametri

Cel mai mare și cel mai important bloc, unde, de fapt, sunt setați și citiți parametrii pentru această unitate. Acum vedem doar cei mai importanți parametri ai sistemului, fără de care ACS nu poate funcționa cu unitatea. Dar ne amintim că le avem în Tip de unitate - 928. Să vedem toate valorile și să decidem cu ce mănâncă Mikrotik.

4.1 Citirea parametrilor

În blocul Aprovizionare, faceți clic pe butonul Citiți tot. Blocul are o inscripție roșie. O coloană va apărea în partea dreaptă Valoarea CPE (actuală).. S-a schimbat ProvisioningMode în READALL în setările sistemului.

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Și... nimic nu se va întâmpla cu excepția unui mesaj în System.X_FREEACS-COM.IM.Message Kick failed at....

Reporniți clientul TR-069 sau reporniți routerul și continuați să reîmprospătați pagina browser până când obțineți parametrii în casetele gri vesele din dreapta
Dacă cineva dorește să bea o înghițitură din vechiul vechi, acest mod este descris în manual ca 10.2 Mod de inspecție. Se aprinde și funcționează puțin diferit, dar esența este descrisă destul de mult

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Modul READALL se va opri după 15 minute și vom încerca să ne dăm seama ce este util aici și ce poate fi corectat din mers în timp ce suntem în acest mod.

Puteți schimba adrese IP, activa / dezactiva interfețe, reguli de firewall, care sunt cu comentarii (altfel o mizerie completă), Wi-Fi și așa mai departe.

Adică, nu este încă posibilă configurarea corectă a mikrotik folosind doar instrumentele TR-069. Dar poți monitoriza foarte bine. Sunt disponibile statistici privind interfețele și starea acestora, memoria liberă etc.

4.2 Livrarea parametrilor

Să încercăm acum să livrăm parametrii routerului, prin tr-069, într-un mod „natural”. Prima victimă va fi Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Îl găsim în parametrii unității All. După cum puteți vedea, nu este setat. Aceasta înseamnă că orice unitate poate avea ea însăși orice Identitate. Destul de tolerat asta!
Punem un daw în coloana de creare, setăm numele Mr.White și apăsăm butonul Actualizare parametri. Ce se va întâmpla în continuare, ai ghicit deja. La următoarea sesiune de comunicare cu sediul, routerul trebuie să-și schimbe Identitatea.

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Dar acest lucru nu este suficient pentru noi. Un parametru precum Identity este bine să aveți întotdeauna la îndemână atunci când căutați unitatea potrivită. Introducem numele parametrului și punem acolo casetele de selectare Display (D) și Searchable (S). Cheia de parametru este schimbată în RWSD (Nu uitați, numele și cheile sunt setate la cel mai înalt nivel de tip de unitate)

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Valoarea este acum afișată nu numai în lista generală de căutare, ci și disponibilă pentru căutare Support > Search > Advanced form

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Initiem furnizarea si ne uitam la Identity. Salut domnule White! Acum nu vă veți putea schimba singur identitatea în timp ce tr-069client rulează

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

4.3 Executarea scripturilor

Din moment ce am aflat că nu există cale fără ele, să le îndeplinim.

Dar înainte de a începe să lucrăm cu fișiere, trebuie să corectăm directiva public.url în dosar /opt/freeacs-tr069/config/application-config.conf
La urma urmei, avem încă o configurație de testare instalată cu un singur script. Nu ai uitat?

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

Reporniți ACS și mergeți direct la Files & Scripts.

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Dar ceea ce se deschide la noi acum aparține Tipului de unitate, adică. la nivel global la toate routerele hAP ac lite, fie că este vorba despre un router de ramură, hotspot sau capsman. Încă nu avem nevoie de un nivel atât de înalt, prin urmare, înainte de a lucra cu scripturi și fișiere, ar trebui să creați un profil. Îl poți numi singur, ca „poziția” dispozitivului.

Să facem copilul nostru un server de timp. Poziție decentă cu un pachet software separat și un număr mic de parametri. Să mergem la Easy Provisioning > Profile > Create Profile și creați un profil în Tip de unitate: hAPclite timeserver. Nu aveam niciun parametru în profilul implicit, așa că nu avem nimic de copiat Copiați parametrii din: „nu copiați...”

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Nu există încă deloc parametri, dar va fi posibil să îi setăm pe cei pe care ulterior vrem să-i vedem pe serverele noastre de timp, modelate din hAPclite. De exemplu, adresele generale ale serverelor NTP.
Să mergem la configurația unității și să o mutăm în profilul timeserver

În sfârșit mergem la Files & Scripts, faceți scripturi și aici așteptăm chifle uimitor de convenabile.

Pentru a executa un script pe o unitate, trebuie să selectăm Tip:TR069_SCRIPT а Nume si Prenume и Nume țintă trebuie să aibă .alter extensie
În același timp, pentru scripturi, spre deosebire de software, puteți fie să încărcați un fișier terminat, fie pur și simplu să îl scrieți/editați în câmp Conţinut. Să încercăm să scriem chiar acolo.

Și astfel încât să puteți vedea imediat rezultatul - adăugați routerul vlan la ether1

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

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Conducem, apăsăm Încărcați si gata. Scenariul nostru vlan1.alter aşteptând în aripi.

Ei bine, să mergem? Nu. De asemenea, trebuie să adăugăm un grup pentru profilul nostru. Grupurile nu sunt incluse în ierarhia echipamentelor, dar sunt necesare pentru a căuta unități în UnitType sau Profile și sunt necesare pentru executarea scriptului prin Advanced Provisioning. De obicei, grupurile sunt asociate cu locații și au o structură imbricată. Să facem un grup din Rusia.

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Imaginați-vă că tocmai am restrâns căutarea de la „Toate serverele de oră mondială pe hAPaclite” la „Toate serverele de timp rusești pe hAPaclite”. Există încă un strat imens de tot ce este interesant cu grupuri, dar nu avem timp. Să intrăm în scenarii.

Advanced Provisioning > Job > Create Job

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Deoarece suntem în modul Avansat, la urma urmei, aici puteți specifica o grămadă de condiții diferite pentru începerea sarcinii, comportamentul de eroare, repetări și expirări. Recomand să citiți toate acestea în manuale sau să discutați despre asta mai târziu când le implementați în producție. Deocamdată, să setăm n1 la Stop reguli, astfel încât sarcina să se oprească imediat ce este finalizată pe prima noastră unitate.

Completam necesarul, si ramane doar de lansat!

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Apăsați START și așteptați. Acum, contorul de dispozitive ucise de scriptul subdepanat va rula rapid! Desigur că nu. Astfel de sarcini sunt date pentru o lungă perioadă de timp, iar aceasta este diferența lor față de scripturi, Ansible și așa mai departe. Unitățile însele solicită sarcini într-un program sau așa cum apar în rețea, ACS ține evidența care unități au primit deja sarcini și cum s-au încheiat și scrie acest lucru în parametrii unității. Există 1 unitate în grupul nostru, iar dacă ar fi 1001, administratorul ar începe această sarcină și ar merge la pescuit

Haide. Reporniți deja routerul sau reporniți clientul TR-069. Totul ar trebui să meargă bine și Mr.White va primi un nou vlan. Și sarcina noastră Opriți regula va intra în starea PAUSE. Adică, poate fi încă repornit sau schimbat. Dacă apăsați FINISH, sarcina va fi anulată în arhivă

4.4 Actualizarea software-ului

Acesta este un punct foarte important, deoarece firmware-ul Mikrotik este modular, dar adăugarea de module nu schimbă versiunea generală de firmware a dispozitivului. ACS-ul nostru este normal și nu este obișnuit cu asta.
Acum o vom face în stilul rapid și murdar și vom împinge imediat modulul NTP în firmware-ul general, dar de îndată ce versiunea este actualizată pe dispozitiv, nu vom putea adăuga un alt modul în același mod.
În producție, este mai bine să nu folosiți un astfel de truc și să instalați module care sunt opționale pentru Tipul de unitate numai cu scripturi.

Deci, primul lucru pe care trebuie să-l facem este să pregătim pachete software cu versiunile și arhitectura necesare și să le punem pe un server web disponibil. Pentru test, oricine poate ajunge la Mr.White nostru va merge, iar pentru producție, este mai bine să construiți o oglindă de actualizare automată a software-ului necesar, care nu este înfricoșător de pus pe web
Important! Nu uitați să includeți întotdeauna pachetul tr-069client în actualizări!

După cum sa dovedit, lungimea căii către pachete este foarte importantă! Când încerc să folosesc ceva de genul http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik a căzut într-o conexiune ciclică cu resursa, trimițând jurnalele TRANSFERCOMPLETE repetate către tr-069. Și am irosit niște celule nervoase încercând să-mi dau seama ce era în neregulă. Prin urmare, în timp ce o punem în rădăcină, până la clarificare

Deci, ar trebui să avem trei fișiere npk disponibile prin http. Am prins așa

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

Acum, acesta trebuie formatat într-un fișier xml cu FileType = „1 imagine de actualizare firmware”, pe care îl vom alimenta Mikrotik. Fie numele ros.xml

Facem conform instructiunilor de la 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>

O lipsă este evidentă Username/Password pentru a accesa serverul de descărcare. Puteți fie să încercați să îl introduceți ca în paragraful A.3.2.8 al protocolului 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>

Sau întrebați direct oficialii Mikrotik, precum și despre lungimea maximă a căii către * .npk

Mergem la cunoscut Files & Scripts, și creați un fișier SOFTWARE acolo cu Nume:ros.xml, Nume țintă:ros.xml și Versiune:6.45.6
Atenţie! Versiunea trebuie specificată aici exact în formatul în care este afișată pe dispozitiv și este trecută în parametru System.X_FREEACS-COM.Device.SoftwareVersion.

Selectăm fișierul nostru xm pentru încărcare și ați terminat.

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Acum avem o mulțime de moduri de a actualiza dispozitivul. Prin Wizard din meniul principal, prin Advanced Provisioning și task-uri cu tip SOFTWARE, sau pur și simplu accesați configurația unității și faceți clic pe Upgrade. Să alegem cea mai ușoară cale, altfel articolul este umflat.

TR-069 la Mikrotik. Testarea Freeacs ca server de autoconfig pentru RouterOS

Apăsăm butonul, inițiem furnizarea și gata. Programul de testare a fost finalizat. Acum putem face mai multe cu mikrotik.

5. concluzie

Când am început să scriu, am vrut mai întâi să descriu conexiunea unui telefon IP și să folosesc exemplul acestuia pentru a explica cât de cool poate fi atunci când tr-069 funcționează ușor și fără efort. Dar apoi, pe măsură ce am progresat și am săpat în materiale, m-am gândit că pentru cei care au conectat Mikrotik, niciun telefon nu ar fi înfricoșător pentru auto-studiu.

În principiu, Freeac-urile, pe care le-am testat, pot fi deja folosite în producție, dar pentru aceasta trebuie să configurați securitatea, SSL, trebuie să configurați microticele pentru configurarea automată după resetare, trebuie să depanați adăugarea corectă a tipului de unitate, să dezasamblați munca de servicii web și shell de fuziune și multe altele. Încearcă, inventează și scrie o continuare!

Tuturor, vă mulțumesc pentru atenție! Voi fi bucuros la corecturi și comentarii!

Lista materialelor folosite și link-uri utile:

Un subiect de forum pe care l-am întâlnit când am început să caut pe acest subiect
TR-069 CPE WAN Management Protocol Amendament-6
wiki freeacs
Parametrii tr-069 în Mikrotik și corespondența lor cu comenzile terminalului

Sursa: www.habr.com