I denne artikel vil jeg forsĂžge at beskrive installationsprocessen af testserveren for det fantastiske projekt trin for trin. til en fuldt funktionel tilstand og vise praktiske metoder til at arbejde med mikrotik: konfiguration via parametre, udfĂžrelse af scripts, opdatering, installation af ekstra moduler osv.
MÄlet med artiklen er at motivere kolleger til at opgive administrationen af netvÊrksudstyr ved hjÊlp af elendige metoder og nÞd-beslutninger i form af selvskrevne scripts, Dude, Ansible osv. Og i den forbindelse at udlÞse fyrvÊrkeri og masselÊkkerier pÄ pladserne.
0. Valg
Hvorfor freeacs og ikke genie-acs, som nĂŠvnt i , som er mere aktiv?
Fordi der er publikationer om genie-acs med mikrotik fra spanierne. Her er deres og fra sidste Ă„rs MUM. Auto-shares pĂ„ slides er cool, men jeg vil gerne bevĂŠge mig vĂŠk fra konceptet om at skrive scripts for at kĂžre scripts for at kĂžre scriptsâŠ
1. Installation af freeacs
Vi vil installere det i Centos7, og da enhederne sender en hel del data, og ACS arbejder aktivt med databasen â vil vi ikke spare pĂ„ ressourcerne. For en komfortabel brug tildeler vi 2 CPU-kerner, 4GB RAM og 16GB hurtig lagring SSD raid10. Jeg vil installere freeacs i en LXC-container pĂ„ Proxmox VE, men du kan arbejde med ethvert andet vĂŠrktĂžj, som du finder passende.
Husk at indstille det korrekte tidspunkt pÄ maskinen med ACS.
Systemet vil vÊre testet, sÄ vi vil ikke gÞre det kompliceret, og blot bruge det medfÞlende installationsscript, som det er.
wget https://raw.githubusercontent.com/freeacs/freeacs/master/scripts/install_centos.sh
chmod +x install_centos.sh
./install_centos.shNĂ„r scriptet er fĂŠrdigt â kan du straks fĂ„ adgang til webgrĂŠnsefladen via maskinens IP med loginoplysningerne admin/freeacs.

Her er en sÄdan behagelig minimalistisk grÊnseflade, og hvor hurtigt og fantastisk det hele gik.
2. FĂžrste opsĂŠtning af freeacs
Den grundlĂŠggende enhed til styring for ACS er en enhed eller CPE (Customer Premises Equipment). Og det vigtigste, vi har brug for til at styre enhederne â er deres Unit Type, dvs. enhedsmodellen, der definerer de konfigurerbare parametre for enheden og dens software. Men da vi endnu ikke ved, hvordan man korrekt opretter en ny Unit Type, vil det vĂŠre bedst at spĂžrge selve enheden ved at aktivere Discovery Mode.
Denne tilstand mÄ kategorisk ikke bruges i produktion, men vi skal hurtigt komme i gang og se systemets muligheder. Alle vigtige indstillinger gemmes i /opt/freeacs-*. SÄ lad os Äbne
vi /opt/freeacs-tr069/config/application-config.conf , vi finder
discovery.mode = falseog ĂŠndrer til
discovery.mode = trueDerudover er det Ăžnskeligt at Ăžge de maksimale filstĂžrrelser, som nginx og mysql skal arbejde med. For mysql tilfĂžjer vi i /etc/my.cnf linjen
max_allowed_packet=32M, og for nginx, i /etc/nginx/nginx.conf tilfĂžjer vi
client_max_body_size 32m;til http-sektionen. Ellers kan vi kun arbejde med firmware pÄ op til 1M.
Genstart, og vi er klar til at arbejde med enhederne.
Og som enhed (CPE) vil vi have den lille arbejder .
FÞr testforbindelsen er det en god idé at indstille CPE manuelt til den mindste arbejds-konfiguration, sÄ de parametre, du senere vil konfigurere, ikke er tomme. For routeren kan du minimalistisk aktivere dhcp-klienten pÄ ether1, installere pakken tr-069client og sÊtte adgangskoder.
3. Tilslut Mikrotik
Alle enheder bĂžr tilsluttes ved at bruge et gyldigt serienummer som brugernavn. SĂ„ vil det hele vĂŠre klart i loggene. Nogle anbefaler at bruge WAN MAC â tro ikke pĂ„ det. Nogle bruger et fĂŠlles login/password â hold dig vĂŠk fra dem.
à bn tr-069-loggen for at overvÄge "forhandlinger"
tail -f /var/log/freeacs-tr069/tr069-conversation.logĂ
bn winbox, menupunktet TR-069.
ACS URL: http://10.110.0.109/tr069/prov (erstat med din IP)
Brugernavn: 9249094C26CB (kopier serienummeret fra system>routerboard)
Adgangskode: 123456 (ikke nĂždvendig til discovery, men for sikkerheds skyld)
Vi ĂŠndrer ikke den periodiske inform intervals. Denne indstilling vil vi give via vores ACS
Nedenfor er indstillinger til fjerninitialisering af forbindelsen, men jeg kunne ikke fÄ mikrotik til at arbejde med det umaadeligt. Selvom det fungerer "out of the box" med telefoner. Det bliver nÞdvendigt at undersÞge nÊrmere.

Efter at have trykket pĂ„ knappen Anvend â vil der vĂŠre datatransmission i terminalen, og i Freeacs webgrĂŠnseflade kan du se vores router med den automatisk oprettede Unit Type «hAPaclite».

Routeren er tilsluttet. Du kan kigge pĂ„ den automatisk oprettede Unit Type. Ă
bn Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Der er virkelig meget at finde! Hele 928 parametre (jeg tjekkede i shell). Er det meget eller lidt â det finder vi ud af senere, men lad os hurtigt tage et kig. Det er, hvad Unit Type betyder. Det er en liste over understĂžttede parametre med nĂžgler, men uden vĂŠrdier. VĂŠrdierne angives i lavere niveauer â profiler og enheder.
4. Konfigurer Mikrotik
Det er tid til at downloade Denne vejledning er fra 2011 â som en flaske god, moden vin. Lad os Ă„bne den og lade den Ă„nde.
Og selv i webgrÊnsefladen klikker vi pÄ blyanten ved siden af vores enhed og gÄr til konfigurationsmodus for enheden. Det ser sÄdan ud:

Lad os kort gennemgÄ, hvad der er interessant pÄ denne side:
Blok Enhedskonfiguration
- Profil: Dette er profilen inden for enhedstypen. Hierarkiet er som fĂžlger:
Enhedstype > Profil > Enhed. Det vil sige, at vi kan oprette for eksempel profilerhAPaclite > hotspotoghAPaclite > branch, men inden for modeltypen for enheden
Blok Provisioning med knapper
Tipsene antyder, at alle knapper i blokken Provisioning kan anvende konfigurationen Þjeblikkeligt via ConnectionRequestURL. Men som jeg nÊvnte tidligere, fungerer det ikke, sÄ efter at have klikket pÄ knapperne skal TR-069-klienten pÄ mikrotik genstartes for manuel start af provision.
- Freq/Spread: Hvor ofte om ugen skal konfigurationen leveres ± %, for at mindske belastningen pÄ serveren og kommunikationskanalerne. Som standard er indstillingen 7/20, dvs. hver dag ± 20% og et tip om, hvordan det er i sekunder. Indtil videre giver det ikke mening at Êndre leveringsfrekvensen, da det vil skabe unÞdvendig stÞj i loggene og ikke altid forventede anvendelser af indstillingerne.
Blok Provisioninghistorik (sidste 48 timer)
- Historikken ser ud, som historie gÞr, men ved at klikke pÄ overskriften kommer man ind i et nyttigt vÊrktÞj til databasesÞgning med regexp og ekstra funktioner.
Blok Parametre
Den stĂžrste og vigtigste blok, hvor parametrene for denne enhed faktisk angives og lĂŠses. Lige nu ser vi kun de vigtigste systemparametre, uden hvilke ACSs arbejde med enheden ikke er muligt. Men vi husker, at der er dem i enhedstypen â 928. Lad os se alle vĂŠrdierne og finde ud af, hvad man skal vide om mikrotik.
4.1 LĂŠs parametre
I blokken Provisioning klikker vi pÄ knappen LÊs alle. I blokken - rÞd tekst. Til hÞjre vil der vises en kolonne CPE (nuvÊrende) vÊrdi. I systemparametrene Êndrede ProvisioningMode sig til READALL.

Og... der vil ikke ske noget, bortset fra en meddelelse i System.X_FREEACS-COM.IM.Message Kick failed at....
Genstart TR-069-klienten eller genstart routeren, og fortsÊt med at opdatere browserens side, indtil du ser parametrene i glade grÄ rektangler til hÞjre.
Hvis nogle Ăžnskede at fĂ„ en smag af gammel vin â denne tilstand er beskrevet i manualen som 10.2 Inspektionsmodus. Den aktiveres og fungerer lidt anderledes, men essensen er beskreven ganske godt.

READALL-tilstand vil automatisk slukke efter 15 minutter, og vi vil forsĂžge at finde ud af, hvad der er nyttigt her, og hvad vi kan ĂŠndre "on the fly", mens vi er i denne tilstand.
Man kan Êndre IP-adresser, tÊnde/slukke for interfaces, firewall-regler med kommentarer (ellers bliver det et fuldstÊndigt rod), Wi-Fi og sÄ videre.
Det vil sige, at det ikke er muligt at konfigurere Mikrotik fornuftigt kun med TR-069. Men man kan monitorere det ret godt. Statistik om interfaces og deres status, ledig hukommelse osv. er tilgĂŠngelig.
4.2 Leverer parametre
Lad os nu prĂžve at levere parametre til routeren via TR-069, 'naturligvis'. Den fĂžrste prĂžve kan blive Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Vi finder den i enhedens All-parametre. Som man kan se, er den ikke indstillet. Det betyder, at enhver enhed selv kan have enhver identitet. Det er nok nu!
Vi sÊtter kryds i kolonnen create, angiver navnet Mr.White og klikker pÄ knappen Opdater parametre. Hvad der sker nÊste, kan du sikkert gÊtte. Ved nÊste forbindelsessession til hovedkvarteret skal routeren Êndre sin identitet.

Men det er ikke nok for os. En sÄdan parameter som identitet bÞr altid vÊre ved hÄnden, nÄr man leder efter den rigtige enhed. Vi klikker pÄ parameterens navn og sÊtter krydser i Display(D) og Searchable(S). NÞgleparameteren Êndres til RWSD. (Husk, at navne og nÞgler angives pÄ det hÞjeste niveau for enhedstype)

VÊrdien vises nu ikke kun i den samlede sÞgeliste, men er ogsÄ tilgÊngelig for sÞgning i Support > SÞg > Avanceret formular

Vi starter provisionering og ser pÄ identiteten. Hej, Mr.White! Nu kan du ikke Êndre din identitet selv, sÄ lÊnge tr-069client kÞrer.

4.3 UdfĂžrer scripts
Da vi har fundet ud af, at vi ikke kan undvĂŠre dem, lad os udfĂžre dem.
Men inden vi begynder at arbejde med filer, skal vi rette direktivet public.url i filen /opt/freeacs-tr069/config/application-config.conf
Vi har stadig en testkonfiguration installeret med et script. Har vi ikke glemt det?
# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}Vi genstarter ACS og gÄr direkte til Fil & Scripts.

Men det, der Äbnes for os nu, tilhÞrer enhedstypen, dvs. globalt for alle routere hAP ac lite, uanset om det er en filialrouter, hotspot eller CAPsMAN. Vi har ikke brug for et sÄ hÞjt niveau endnu, sÄ fÞr vi arbejder med scripts og filer, skal vi oprette en profil. Vi kan kalde det 'rollen' for enheden.
Lad os gĂžre vores lille enhed til en tidsserver. En vĂŠrdig rolle med et separat softwarepakke og et lille antal parametre. Vi gĂ„r til Easy Provisioning > Profil > Opret profil og opretter i enhedstype: hAPaclite profilen timeserver. Vi havde ikke nogen parametre i den standardprofil, sĂ„ der er ikke noget at kopiere. Kopier parametre fra: «don't copyâŠÂ»

Her er der ikke nogen parametre endnu, men det vil vÊre muligt at angive dem, som vi senere Þnsker at se pÄ vores tidsservere lavet af hAPaclite. For eksempel, de fÊlles adresser pÄ NTP-servere.
Vi gÄr ind i enhedens konfiguration, og flytter den til timeserverprofilen.
Endelig gÄr vi til Fil & Scripts, for at lave scripts, og her venter der os utrolig bekvemme funktioner.
For at udfÞre et script pÄ enheden, skal vi vÊlge Type:TR069_SCRIPT a Navn og MÄlnavn skal have .alter som filtype
Desuden kan man for scripts, i modsÊtning til software, bÄde uploade en fÊrdig fil eller blot skrive/redigere den i feltet Indhold. Lad os prÞve at skrive direkte der.
Og for straks at se resultatet â lad os tilfĂžje en vlan til routeren pĂ„ ether1.
/interface vlan
add interface=ether1 name=vlan1 vlan-id=1
Indtast, klik Upload og sÄ er det klart. Vores script vlan1.alter venter pÄ sin tur.
Er vi klar? Nej. Vi skal ogsÄ tilfÞje en gruppe til vores profil. Grupper indgÄr ikke i hierarkiet af udstyr, men er nÞdvendige for at finde enheder i UnitType eller Profil og er obligatoriske for at udfÞre scripts via Advanced Provisioning. Normalt er grupper forbundet med lokationer og har en indlejret struktur. Lad os oprette gruppen Rusland.

Forestil dig, at vi lige har kunnet indsnÊvre sÞgningen fra «Alle tidsservere i verden pÄ hAPaclite» til «Alle tidsservere i Rusland pÄ hAPaclite». Der er stadig en masse interessant at finde med grupper, men vi har ikke tid. Lad os komme videre til scripts.
Advanced Provisioning > Job > Opret job
Da vi er i Advanced mode, kan vi angive en masse forskellige betingelser for opstart af opgaven, adfÊrd ved fejl, gentagelser og timeout. Jeg anbefaler at lÊse det hele i manualerne eller diskutere det senere ved implementeringen i produktion. For nu sÊtter vi blot n1 i Stop rules, sÄ opgaven stopper, sÄ snart den udfÞres pÄ vores 1. enhed.
Fyld det nÞdvendige ud, og sÄ er det kun tilbage at starte!

Vi klikker START og venter. Nu vil tĂŠlleren af de drĂŠbte enheder af det ufĂŠrdige script lĂžbe hurtigt! Nej, selvfĂžlgelig ikke. SĂ„danne opgaver tager lang tid, og det er deres forskel fra scripts, Ansible og lignende. Enhederne henvender sig selv til opgaver efter en tidsplan eller nĂ„r de vises pĂ„ netvĂŠrket, ACS holder styr pĂ„ hvilke enheder der allerede har fĂ„et opgaver, og hvordan de er afsluttet, og registrerer dette i enhedens parametre. I vores gruppe er der 1 enhed, og hvis der var 1001 â ville administratoren have startet denne opgave og sĂ„ taget pĂ„ fisketur.
Kom nu. Genstart routeren eller genstart TR-069-klienten. Det hele skulle gÄ glat, og Mr.White vil fÄ en ny vlan. Og vores opgave under Stop rule vil skifte til status PAUSED. Det vil sige, at den stadig kan genstartes eller Êndres. Hvis du trykker pÄ FINISH, vil opgaven blive arkiveret.
4.4 Opdaterer software
Dette er et meget vigtigt punkt, da firmwaren pÄ Mikrotik er modulÊr, men tilfÞjelse af moduler Êndrer ikke den samlede firmwareversion pÄ enheden. Vores ACS fungerer fint, og vi er ikke vant til det.
Nu vil vi gÞre det pÄ en quick&dirty mÄde og pakke NTP-modulet direkte ind i den samlede firmware, men sÄ snart versionen pÄ enheden er opdateret, kan vi ikke tilfÞje flere moduler pÄ samme mÄde.
SÄdanne tricks bÞr ikke anvendes i produktion, og man bÞr kun installere ikke-obligatoriske moduler til Unit Type ved hjÊlp af scripts.
Det fÞrste, vi skal gÞre, er at forberede softwarepakker med de nÞdvendige versioner og arkitekturer og placere dem pÄ en tilgÊngelig webserver. Til testen kan vi bruge hvilken som helst server, som vores Mr.White kan rÊkke, men til produktion er det bedst at oprette et selvopdaterende spejl af det nÞdvendige software, som ikke er skrÊmmende at offentliggÞre i web
Vigtigt! Glem ikke altid at inkludere pakken med tr-069client i opdateringerne!
Som det viste sig, er lÊngden af stien til pakkerne meget vigtig! Under mine forsÞg pÄ at bruge noget som http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik faldt i en cyklisk forbindelse med ressourcen og gav tr-069-loggen gentagne TRANSFERCOMPLETE. Og jeg brugte en del nerver pÄ at finde ud af, hvad der var galt. SÄ lad os placere det i roden indtil vi finder ud af det.
SÄ vi skal have tre npk-filer tilgÊngelige via http. Jeg fik det til at se sÄdan ud
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.npkNu skal dette formatere i en xml-fil med FileType="1 Firmware Upgrade Image", som vi vil give til Mikrotik. Lad os kalde den ros.xml
Vi fĂžlger instruktionen fra :
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.npkDet er tydeligt, at der mangler Brugernavn/Adgangskode til adgang til downloadserveren. Man kan enten forsĂžge at indtaste det som i punkt A.3.2.8 i protokollen tr-069:
http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk
user
passEller spĂžrg direkte hos MikroTik om den maksimale stien til *.npk
Lad os gÄ til de kendte Fil & Scripts, og oprette en fil af typen SOFTWARE med Navn:ros.xml, MÄlnavn:ros.xml og Version:6.45.6
BemÊrk! Versionen her skal angives prÊcist i det format, den vises pÄ enheden og sendes i parameteren System.X_FREEACS-COM.Device.SoftwareVersion.
VÊlg vores xm-fil til download, og sÄ er det klar.

Nu har vi mange mÄder at opdatere enheden pÄ. Gennem Wizard i hovedmenuen, gennem Advanced Provisioning og opgaver af typen SOFTWARE, eller blot ved at gÄ ind i enhedens konfiguration og trykke pÄ Upgrade. Lad os vÊlge den enkleste vej, da artiklen allerede er blevet lang.

Tryk pÄ knappen, initier provision, og det er klart. Testprogrammet er afsluttet. Nu kan vi gÞre mere med MikroTik.
5. Konklusion
Da jeg begyndte at skrive, ville jeg fĂžrst beskrive tilslutning af IP-telefonen og med det eksempel forklare, hvor let det kan vĂŠre, nĂ„r tr-069 fungerer uden problemer. Men senere, efter at have gravet mig gennem materialerne, tĂŠnkte jeg, at den der har tilsluttet MikroTik â intet telefon vil vĂŠre skrĂŠmmende for selvstudium.
I princippet kan FreeACS, som vi testede â allerede anvendes i produktion, men for dette skal sikkerheden konfigureres, SSL opsĂŠttes, MikroTik skal konfigureres til automatisk konfiguration efter nulstilling, det korrekte tilfĂžjelse af Unit Type skal rettes, webservices og fusion shell skal forstĂ„s, og meget mere. PrĂžv, opfind, og skriv et fortsĂŠt!
Tak for opmĂŠrksomheden alle sammen! Jeg ser frem til rettelser og kommentarer!
Liste over brugte materialer og nyttige links:
Kilde: habr.com
