U ovom ću članku pokušati korak po korak opisati postupak instaliranja testnog poslužitelja za prekrasan projekt
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
Jer prema genie-acs s mikrotikom postoje publikacije Španjolaca. Evo ih
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
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
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.
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”.
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
I mi sami, u web sučelju, kliknemo na olovku pored naše jedinice i idemo na način konfiguracije jedinice. Ovako izgleda:
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, profilehAPaclite > 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.
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
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.
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)
Vrijednost sada nije samo prikazana na općem popisu pretraživanja, već je dostupna i za pretraživanje Support > Search > Advanced form
Pokrećemo pružanje i gledamo Identitet. Pozdrav g. White! Sada nećete moći promijeniti svoj identitet dok tr-069client radi
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
.
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...”
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
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.
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
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!
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
<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.
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.
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:
Izvor: www.habr.com