TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

I denne artikkelen vil jeg prøve å beskrive trinn for trinn prosessen med å installere en testserver for et flott prosjekt freeacs til en fullt funksjonell tilstand, og vise praktiske teknikker for å jobbe med mikrotik: konfigurasjon gjennom parametere, skriptutførelse, oppdatering, installering av tilleggsmoduler, etc.

Hensikten med artikkelen er å presse kolleger til å nekte å administrere nettverksenheter ved å bruke forferdelige raker og krykker, i form av selvskrevne skript, Dude, Ansible, etc. Og, i denne anledning, forårsake fyrverkeri og masseglede i firkanter.

0. Valget

Hvorfor freeacs og ikke genie-acs nevnt i mikrotik-wikihvor mer levende?
Fordi det er spanske publikasjoner om genie-acs med mikrotik. Her er de pdf и video fra fjorårets MAMMA. Automatiske tegneserier på lysbilder er kule, men jeg vil gjerne komme vekk fra konseptet med å skrive manus, kjøre manus, kjøre manus...

1. Freeacs installasjon

Vi skal installere i Centos7, og siden enhetene overfører mye data, og ACS jobber aktivt med databasen, vil vi ikke være grådige med ressurser. For komfortabelt arbeid vil vi velge 2 CPU-kjerner, 4 GB RAM og 16 GB rask lagring ssd raid10. Jeg vil installere freeacs i Proxmox VE lxc-beholderen, og du kan jobbe i ethvert verktøy som passer for deg.
Ikke glem å stille inn riktig tid på maskinen med ACS.

Systemet vil være en test, så la oss ikke være smarte, og bare bruke det vennlige installeringsskriptet, som det er.

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

Så snart skriptet er ferdig, kan du umiddelbart komme inn i nettgrensesnittet ved ip-en til maskinen, med legitimasjonen admin/freeacs

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS
Her er et så fint minimalistisk grensesnitt, og hvor kult og raskt alt ble

2. Freeacs første oppsett

Den grunnleggende kontrollenheten for ACS er enheten eller CPE (Customer Premises Equipment). Og viktigst av alt, det vi trenger for å administrere enheter er deres enhetstype, dvs. en maskinvaremodell som definerer et sett med konfigurerbare parametere for en enhet og dens programvare. Men inntil vi vet hvordan du får en ny enhetstype riktig, ville det være best å spørre enheten selv om dette ved å slå på oppdagelsesmodus.

I produksjon er denne modusen absolutt umulig å bruke, men vi må starte motoren så snart som mulig og se funksjonene til systemet. Alle grunnleggende innstillinger er lagret i /opt/freeacs-*. Derfor åpner vi

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

, Vi finner

discovery.mode = false

og endre til

discovery.mode = true

I tillegg ønsker vi å øke de maksimale filstørrelsene som nginx og mysql vil fungere med. For mysql, legg til linjen i /etc/my.cnf

max_allowed_packet=32M

, og for nginx, legg til i /etc/nginx/nginx.conf

client_max_body_size 32m;

til http-delen. Ellers vil vi ikke kunne jobbe med fastvare mer enn 1M.

Vi starter på nytt, og vi er klare til å jobbe med enheter.

Og i rollen som enheten (CPE) vil vi ha en arbeidsnarkoman baby hAP AC lite.

Før en testtilkobling anbefales det å manuelt konfigurere CPE til minimum arbeidskonfigurasjon slik at parametrene du ønsker å konfigurere i fremtiden ikke er tomme. For en ruter kan du minimalt aktivere en dhcp-klient på ether1, installere tr-069client-pakken og angi passord.

3. Koble til Mikrotik

Det er ønskelig å koble til alle enheter med et gyldig serienummer som innlogging. Da vil alt være klart for deg i loggene. Noen anbefaler å bruke WAN MAC - ikke tro det. Noen bruker et felles pålogging/pass-par for alle – omgå dem.

Åpning av tr-069-loggen for å overvåke "forhandlinger"

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

Åpne winbox, menypunkt TR-069.
AC URL: http://10.110.0.109/tr069/prov (erstatt med din IP)
Brukernavn: 9249094C26CB (kopi serie fra system>ruterkort)
Passord: 123456 (ikke nødvendig for oppdagelse, men for å være)
Vi endrer ikke det periodiske informasjonsintervallet. Vi vil utstede denne innstillingen gjennom vår ACS

Nedenfor er innstillingene for ekstern initialisering av tilkoblingen, men jeg kunne ikke få mikrotik til å jobbe med den med et stikk. Selv om ekstern forespørsel fungerer ut av esken med telefoner. Skal finne ut av det.

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Etter å ha trykket på Apply-knappen vil data utveksles i terminalen, og i Freeacs webgrensesnitt kan du se ruteren vår med den automatisk opprettede Unit Type "hAPaclite".

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Ruteren er tilkoblet. Du kan se på den automatisk genererte enhetstypen. Vi åpner Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Hva er ikke der! Så mange som 928 parametere (jeg spionerte på skallet). Mye eller litt – vi finner ut av det senere, men foreløpig tar vi bare en rask titt. Det er hva enhetstype betyr. Dette er en liste over støttede alternativer med nøkler, men ingen verdier. Verdier er satt i nivåene nedenfor - Profiler og Enheter.

4. Konfigurer Mikrotik

Det er på tide å laste ned veiledning for nettgrensesnitt Denne guiden fra 2011 er som en flaske god, lagret vin. La oss åpne den og la den puste.

Og selv, i webgrensesnittet, klikker du på blyanten ved siden av enheten vår og går til enhetskonfigurasjonsmodus. Det ser slik ut:

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

La oss kort analysere hva som er interessant på denne siden:

Enhetskonfigurasjonsblokk

  • Profil: Dette er profilen innenfor enhetstypen. Hierarkiet er slik: UnitType > Profile > Unit. Det vil si at vi kan lage for eksempel profiler hAPaclite > hotspot и hAPaclite > branch, men innenfor enhetsmodellen

Blokker klargjøring med knapper
Hint antyder at alle knappene i klargjøringsblokken umiddelbart kan bruke konfigurasjonen via ConnectionRequestURL. Men, som jeg sa ovenfor, fungerer ikke dette, så etter å ha trykket på knappene, må du starte tr-069-klienten på mikrotik på nytt for å starte levering manuelt.

  • Freq/Spread: Hvor mange ganger i uken å levere konfigurasjonen ± % for å redusere belastningen på serveren og kommunikasjonskanalene. Som standard koster det 7/20, d.v.s. hver dag ± 20 % og hint hvordan det er på sekunder. Foreløpig er det ingen vits i å endre leveringsfrekvensen, pga. det vil være ekstra støy i loggene og ikke alltid forventet bruk av innstillinger

Blokkering av klargjøringshistorikk (siste 48 timer)

  • Utseendemessig er historien som en historie, men ved å klikke på tittelen kommer du til et praktisk databasesøkeverktøy med regexp og godbiter

Blokkparametere

Den største og viktigste blokken, der faktisk parametrene for denne enheten er satt og lest. Nå ser vi bare de viktigste systemparametrene, uten hvilke ACS ikke kan fungere med enheten. Men vi husker at vi har dem i Unit Type - 928. La oss se alle verdiene, og bestemme hva Mikrotik spiser med.

4.1 Lese parametrene

I klargjøringsblokken klikker du på Les alle-knappen. Blokken har en rød inskripsjon. En kolonne vises til høyre CPE (nåværende) verdi. Endret ProvisioningMode til READALL i systeminnstillingene.

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Og... ingenting vil skje bortsett fra en melding i System.X_FREEACS-COM.IM.Message Kick failed at....

Start TR-069-klienten på nytt eller start ruteren på nytt, og fortsett å oppdatere nettlesersiden til du får parametrene i de muntre grå boksene til høyre
Hvis noen vil ta en slurk av den gamle erfarne, er denne modusen beskrevet i manualen som 10.2 Inspeksjonsmodus. Den slår seg på og fungerer litt annerledes, men essensen er ganske beskrevet

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

READALL-modusen vil slå seg av etter 15 minutter, og vi vil prøve å finne ut hva som er nyttig her, og hva som kan rettes på farten mens vi er i denne modusen.

Du kan endre IP-adresser, aktivere / deaktivere grensesnitt, brannmurregler, som er med kommentarer (ellers et komplett rot), Wi-Fi, og så videre småting.

Det vil si at det ennå ikke er mulig å konfigurere mikrotik med bare TR-069-verktøy. Men du kan overvåke veldig bra. Statistikk over grensesnitt og deres status, ledig minne osv. er tilgjengelig.

4.2 Levere parametere

La oss nå prøve å levere parameterne til ruteren, via tr-069, på en "naturlig" måte. Det første offeret vil være Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Vi finner det i parametrene til All-enheten. Som du kan se, er den ikke satt. Dette betyr at enhver enhet selv kan ha en hvilken som helst identitet. Nok tåler dette!
Vi stikker en daw i opprette-kolonnen, setter navnet Mr.White og stikker på knappen Oppdater parametere. Hva som vil skje videre, har du allerede gjettet. Ved neste kommunikasjonsøkt med hovedkvarteret må ruteren endre sin identitet.

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Men dette er ikke nok for oss. En parameter som Identitet er god å alltid ha for hånden når man leter etter den rette enheten. Vi stikker i navnet på parameteren og setter avmerkingsboksene Vis (D) og Søkbar (S) der. Parameternøkkelen endres til RWSD (Husk, navn og nøkler er satt på høyeste enhetstypenivå)

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Verdien vises nå ikke bare i den generelle søkelisten, men også tilgjengelig for søk i Support > Search > Advanced form

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Vi setter i gang tilbud og ser på Identitet. Hei Mr. White! Nå vil du ikke kunne endre identiteten din selv mens tr-069client kjører

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

4.3 Utføre skript

Siden vi har funnet ut at det ikke er noen vei uten dem, la oss oppfylle dem.

Men før vi begynner å jobbe med filer, må vi korrigere direktivet public.url i fil /opt/freeacs-tr069/config/application-config.conf
Tross alt har vi fortsatt en testkonfigurasjon installert med ett skript. Har du ikke glemt?

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

Start ACS på nytt og gå rett til Files & Scripts.

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Men det som nå åpnes hos oss tilhører Enhetstypen, d.v.s. globalt til alle hAP ac lite-rutere, enten det er en filialruter, hotspot eller capsman. Vi trenger ikke et så høyt nivå ennå, derfor bør du opprette en profil før du arbeider med skript og filer. Du kan kalle det selv, som "posisjonen" til enheten.

La oss gjøre babyen vår til en tidstjener. Grei posisjon med en separat programvarepakke og et lite antall parametere. La oss gå til Easy Provisioning > Profile > Create Profile og lag en profil i Unit Type:hAPaclite tidsserver. Vi hadde ingen parametere i standardprofilen, så det er ingenting å kopiere Kopier parametere fra: "ikke kopier..."

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Det er ingen parametere her i det hele tatt, men det vil være mulig å sette de som vi senere vil se på våre tidsservere støpt fra hAPaclite. For eksempel de generelle adressene til NTP-servere.
La oss gå til enhetskonfigurasjonen og flytte den til tidsserverprofilen

Endelig går vi til Files & Scripts, lag manus, og her venter vi på utrolig praktiske boller.

For å utføre et skript på en enhet, må vi velge Type: TR069_SCRIPT а Navn и Målnavn må ha filtypen .alter
Samtidig, for skript, i motsetning til programvare, kan du enten laste opp en ferdig fil, eller ganske enkelt skrive / redigere den i feltet Innhold. La oss prøve å skrive akkurat der.

Og slik at du umiddelbart kan se resultatet - legg vlan-ruteren til ether1

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

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Vi kjører, vi trykker Last opp og ferdig. Manuset vårt vlan1.alter venter i vingene.

Vel, la oss gå? Nei. Vi må også legge til en gruppe for profilen vår. Grupper er ikke inkludert i utstyrshierarkiet, men er nødvendige for å søke etter enheter i UnitType eller Profile og kreves for skriptkjøring gjennom Advanced Provisioning. Vanligvis er grupper assosiert med lokasjoner og har en nestet struktur. La oss lage en Russland-gruppe.

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Tenk deg at vi nettopp har begrenset søket vårt fra "All verdens tidsservere på hAPaclite" til "Alle russiske tidsservere på hAPaclite". Det er fortsatt et stort lag med alt interessant med grupper, men vi har ikke tid. La oss komme inn på manusene.

Advanced Provisioning > Job > Create Job

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Siden vi tross alt er i avansert modus, kan du her spesifisere en haug med forskjellige betingelser for start av oppgaven, feilatferd, repetisjoner og tidsavbrudd. Jeg anbefaler å lese alt dette i manualene eller diskutere det senere når du implementerer det i produksjon. For nå, la oss bare sette n1 til Stoppregler slik at oppgaven stopper så snart den er fullført på vår 1. enhet.

Vi fyller inn det nødvendige, og det gjenstår bare å lansere!

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Trykk på START og vent. Nå vil telleren for enheter drept av det underfeilsøkte skriptet kjøre raskt! Selvfølgelig ikke. Slike oppgaver er gitt i lang tid, og dette er forskjellen deres fra skript, Ansible, og så videre. Enheter søker selv om oppgaver på en tidsplan eller slik de vises på nettverket, ACS holder styr på hvilke enheter som allerede har fått oppgaver, og hvordan de endte, og skriver dette til enhetens parametere. Det er 1 enhet i gruppen vår, og hvis det var 1001 av dem, ville administratoren startet denne oppgaven og fisket

Kom igjen. Start allerede ruteren på nytt eller start TR-069-klienten på nytt. Alt skal gå knirkefritt og Mr.White vil få et nytt vlan. Og vår stoppregeloppgave vil gå inn i PAUSE-statusen. Det vil si at den fortsatt kan startes på nytt eller endres. Trykker du FINISH vil oppgaven bli skrevet av til arkivet

4.4 Oppdatering av programvaren

Dette er et veldig viktig poeng, siden Mikrotik-fastvaren er modulær, men å legge til moduler endrer ikke den generelle fastvareversjonen av enheten. Vår ACS er normal og ikke vant til dette.
Nå skal vi gjøre det i stil med quick & dirty, og skyve NTP-modulen inn i den generelle fastvaren med en gang, men så snart versjonen er oppdatert på enheten, vil vi ikke kunne legge til en annen modul på samme måte .
I produksjon er det bedre å ikke bruke et slikt triks, og installere moduler som er valgfrie for Unit Type bare med skript.

Så det første vi må gjøre er å forberede programvarepakker med de nødvendige versjonene og arkitekturen, og legge dem på en tilgjengelig webserver. For testen vil alle som kan nå vår Mr.White gå, og for produksjon er det bedre å bygge et automatisk oppdateringsspeil av nødvendig programvare, som ikke er skummelt å legge på nettet
Viktig! Ikke glem å alltid inkludere tr-069client-pakken i oppdateringer!

Som det viste seg, er lengden på banen til pakkene veldig viktig! Når jeg prøver å bruke noe som http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik falt i en syklisk forbindelse med ressursen, og sendte gjentatte TRANSFERCOMPLETE-logger til tr-069. Og jeg kastet bort noen nerveceller på å prøve å finne ut hva som var galt. Derfor, mens vi legger det i roten, inntil avklaring

Så vi bør ha tre npk-filer tilgjengelig via http. Jeg fikk det slik

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

Nå må dette formateres til en xml-fil med FileType = "1 Firmware Upgrade Image", som vi vil mate til Mikrotik. La navnet være ros.xml

Vi gjør etter instruksjonene fra 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>

En mangel er tydelig Username/Password for å få tilgang til nedlastingsserveren. Du kan enten prøve å skrive det inn som i avsnitt A.3.2.8 i tr-069-protokollen:

<link>
<url>http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk</url>
<Username>user</Username>
<Password>pass</Password>
</link>

Eller spør Mikrotik-tjenestemennene direkte, samt om maksimal veilengde til * .npk

Vi går til det kjente Files & Scripts, og lag en SOFTWARE-fil der med Navn:ros.xml, Målnavn:ros.xml og Versjon:6.45.6
Merk følgende! Versjonen må spesifiseres her nøyaktig i formatet som den vises på enheten og sendes i parameteren System.X_FREEACS-COM.Device.SoftwareVersion.

Vi velger xm-filen vår for lasting og du er ferdig.

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Nå har vi mange måter å oppdatere enheten på. Gjennom veiviseren i hovedmenyen, gjennom Advanced Provisioning og oppgaver med SOFTWARE-typen, eller bare gå til enhetskonfigurasjonen og klikk Oppgrader. La oss velge den enkleste måten, ellers er artikkelen hoven.

TR-069 ved Mikrotik. Tester Freeacs som en autoconfig-server for RouterOS

Vi trykker på knappen, setter i gang provisjon og du er ferdig. Testprogrammet er gjennomført. Nå kan vi gjøre mer med mikrotik.

5. Konklusjon

Da jeg begynte å skrive, ønsket jeg først å beskrive tilkoblingen til en ip-telefon, og bruke eksemplet til å forklare hvor kult det kan være når tr-069 fungerer enkelt og uanstrengt. Men så, mens jeg gikk videre og gravde i materialene, tenkte jeg at for de som koblet til Mikrotik, ville ingen telefon være skummel for selvstudier.

I prinsippet kan Freeacs, som vi testet, allerede brukes i produksjon, men for dette må du konfigurere sikkerhet, SSL, du må konfigurere mikrotikk for autokonfigurasjon etter tilbakestilling, du må feilsøke riktig tillegg av Unit Type, demontere arbeid med webtjenester og fusion shell, og mye mer. Prøv, oppfinn og skriv en oppfølger!

Alle sammen, takk for oppmerksomheten! Jeg blir glad for rettelser og kommentarer!

Liste over brukte materialer og nyttige lenker:

En forumtråd som jeg kom over da jeg begynte å søke på emnet
TR-069 CPE WAN Management Protocol Amendment-6
freeacs wiki
Parametere tr-069 i Mikrotik, og deres korrespondanse til terminalkommandoer

Kilde: www.habr.com