TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

I denne artikel vil jeg forsøge at beskrive trin for trin processen med at installere en testserver for et fantastisk projekt freeacs til en fuldt funktionel tilstand, og vise praktiske teknikker til at arbejde med mikrotik: konfiguration gennem parametre, script eksekvering, opdatering, installation af yderligere moduler mv.

Formålet med artiklen er at presse kolleger til at nægte at styre netværksenheder ved hjælp af forfærdelige rakes og krykker i form af selvskrevne scripts, Dude, Ansible osv. Og ved denne lejlighed at forårsage fyrværkeri og masseglæde i firkanter.

0. Valg

Hvorfor freeacs og ikke genie-acs nævnt i mikrotik-wikihvor mere levende?
Fordi der er spanske publikationer om genie-acs med mikrotik. Her er de pdf и видео fra sidste års MUM. Automatiske tegnefilm på dias er seje, men jeg vil gerne væk fra konceptet med at skrive scripts, køre scripts, køre scripts...

1. Freeacs installation

Vi vil installere i Centos7, og da enhederne transmitterer en masse data, og ACS arbejder aktivt med databasen, vil vi ikke være grådige med ressourcer. For komfortabelt arbejde vil vi vælge 2 CPU-kerner, 4 GB RAM og 16 GB hurtig lagerplads ssd raid10. Jeg installerer freeacs i Proxmox VE lxc-beholderen, og du kan arbejde i ethvert værktøj, der er praktisk for dig.
Glem ikke at indstille den korrekte tid på maskinen med ACS.

Systemet vil være en test, så lad os ikke være kloge, og bare bruge det venligt leverede installationsscript, 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 scriptet er færdigt, kan du straks komme ind i webgrænsefladen ved maskinens ip med legitimationsoplysningerne admin/freeacs

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS
Her er sådan en fin minimalistisk grænseflade, og hvor blev alting sejt og hurtigt

2. Freeacs indledende opsætning

Den grundlæggende kontrolenhed for ACS er enheden eller CPE (Customer Premises Equipment). Og vigtigst af alt, hvad vi skal bruge for at styre enheder er deres Unit Type, dvs. en hardwaremodel, der definerer et sæt konfigurerbare parametre for en enhed og dens software. Men indtil vi ved, hvordan man får en ny enhedstype korrekt, ville det være bedst at spørge enheden selv om dette ved at slå Discovery Mode til.

I produktionen er denne tilstand absolut umulig at bruge, men vi skal starte motoren så hurtigt som muligt og se systemets muligheder. Alle grundlæggende indstillinger er gemt i /opt/freeacs-*. Derfor åbner vi

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

, vi finder

discovery.mode = false

og skifte til

discovery.mode = true

Derudover vil vi gerne øge de maksimale filstørrelser, som nginx og mysql vil arbejde med. For mysql skal du tilføje linjen til /etc/my.cnf

max_allowed_packet=32M

, og for nginx, tilføj til /etc/nginx/nginx.conf

client_max_body_size 32m;

til http-sektionen. Ellers vil vi være i stand til at arbejde med firmware ikke mere end 1M.

Vi genstarter, og vi er klar til at arbejde med enheder.

Og i rollen som enheden (CPE) vil vi have en baby workaholic hAP AC lite.

Før en testforbindelse, er det tilrådeligt at manuelt konfigurere CPE'en til den minimale arbejdskonfiguration, så de parametre, du ønsker at konfigurere i fremtiden, ikke er tomme. For en router kan du minimalt aktivere en dhcp-klient på ether1, installere tr-069client-pakken og indstille adgangskoder.

3. Tilslut Mikrotik

Det er ønskeligt at forbinde alle enheder med et gyldigt serienummer som login. Så vil alt være klart for dig i logfilerne. Nogen råder til at bruge WAN MAC - tro det ikke. Nogen bruger et fælles login / pass-par for alle - omgå dem.

Åbning af tr-069-loggen for at overvåge "forhandlinger"

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

Åbn winbox, menupunkt TR-069.
AC URL: http://10.110.0.109/tr069/prov (erstat med din IP)
Brugernavn: 9249094C26CB (kopi serie fra system>routerboard)
Adgangskode: 123456 (ikke nødvendig for opdagelse, men for at være)
Vi ændrer ikke det periodiske informeringsinterval. Vi udsteder denne indstilling gennem vores ACS

Nedenfor er indstillingerne for fjerninitialisering af forbindelsen, men jeg kunne ikke få mikrotik til at arbejde med det med et swoop. Selvom fjernanmodning fungerer ud af boksen med telefoner. Skal finde ud af det.

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Efter at have trykket på knappen Anvend udveksles data i terminalen, og i Freeacs webinterface kan du se vores router med den automatisk oprettede Unit Type "hAPaclite".

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Routeren er tilsluttet. Du kan se på den automatisk genererede enhedstype. Vi åbner Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Hvad er der ikke! Hele 928 parametre (jeg spionerede på skallen). Meget eller lidt – vi finder ud af det senere, men indtil videre kigger vi lige hurtigt. Det er, hvad enhedstype betyder. Dette er en liste over understøttede muligheder med nøgler, men ingen værdier. Værdier indstilles i niveauerne nedenfor - Profiler og Enheder.

4. Konfigurer Mikrotik

Det er tid til at downloade web interface guide Denne guide fra 2011 er som en flaske god, lagret vin. Lad os åbne det og lade det ånde.

Og selv, i webgrænsefladen, skal du klikke på blyanten ved siden af ​​vores enhed og gå til enhedskonfigurationstilstanden. Det ser sådan ud:

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Lad os kort analysere, hvad der er interessant på denne side:

Enhedskonfigurationsblok

  • Profil: Dette er profilen inden for enhedstypen. Hierarkiet er således: UnitType > Profile > Unit. Det vil sige, at vi kan oprette for eksempel profiler hAPaclite > hotspot и hAPaclite > branch, men inden for enhedsmodellen

Bloker provisionering med knapper
Hints antyder, at alle knapper i klargøringsblokken øjeblikkeligt kan anvende konfigurationen via ConnectionRequestURL. Men, som jeg sagde ovenfor, virker dette ikke, så efter at have trykket på knapperne, bliver du nødt til at genstarte tr-069-klienten på mikrotik for manuelt at starte levering.

  • Freq/Spread: Hvor mange gange om ugen at levere konfigurationen ± % for at reducere belastningen på serveren og kommunikationskanalerne. Som standard koster det 7/20, dvs. hver dag ± 20 % og antyd hvordan det er på få sekunder. Indtil videre nytter det ikke at ændre på leveringsfrekvensen, pga. der vil være ekstra støj i logfilerne og ikke altid forventet anvendelse af indstillinger

Blokering af klargøringshistorik (sidste 48 timer)

  • I udseende er historien som en historie, men ved at klikke på titlen kommer du til et praktisk databasesøgeværktøj med regexp og godbidder

Parameterblok

Den største og vigtigste blok, hvor faktisk parametrene for denne enhed indstilles og aflæses. Nu ser vi kun de vigtigste systemparametre, uden hvilke ACS ikke kan arbejde med enheden. Men vi husker, at vi har dem i Unit Type - 928. Lad os se alle værdierne, og beslutte, hvad Mikrotik spiser med.

4.1 Aflæsning af parametre

Klik på knappen Læs alle i klargøringsblokken. Blokken har en rød inskription. En kolonne vises til højre CPE (aktuel) værdi. Ændrede ProvisioningMode til READALL i systemindstillinger.

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Og... intet vil ske undtagen en besked i System.X_FREEACS-COM.IM.Message Kick failed at....

Genstart TR-069-klienten eller genstart routeren, og fortsæt med at opdatere browsersiden, indtil du får parametrene i de glade grå felter til højre
Hvis nogen vil tage en slurk af den gamle garvede, er denne tilstand beskrevet i manualen som 10.2 Inspektionstilstand. Den tænder og virker lidt anderledes, men essensen er beskrevet ganske

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

READALL-tilstanden slukker af sig selv efter 15 minutter, og vi vil forsøge at finde ud af, hvad der er nyttigt her, og hvad der kan rettes med det samme, mens vi er i denne tilstand.

Du kan ændre IP-adresser, aktivere/deaktivere grænseflader, firewall-regler, som er med kommentarer (ellers et komplet rod), Wi-Fi og så videre småting.

Det vil sige, at det endnu ikke er muligt at konfigurere mikrotik ved at bruge TR-069-værktøjer. Men du kan godt overvåge. Statistik over grænseflader og deres status, ledig hukommelse osv. er tilgængelig.

4.2 Levering af parametre

Lad os nu prøve at levere parametrene til routeren, via tr-069, på en "naturlig" måde. Det første offer vil være Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Vi finder det i parametrene for Alle-enheden. Som du kan se, er den ikke indstillet. Det betyder, at enhver enhed selv kan have en hvilken som helst identitet. Nok at tolerere dette!
Vi stikker en daw i opret-kolonnen, sætter navnet Mr.White og stikker på knappen Opdater parametre. Hvad der vil ske næste gang, har du allerede gættet. Ved næste kommunikationssession med hovedkvarteret skal routeren ændre sin identitet.

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Men det er ikke nok for os. Et parameter som Identitet er godt altid at have ved hånden, når man leder efter den rigtige enhed. Vi stikker ind i navnet på parameteren og sætter afkrydsningsfelterne Vis (D) og Søgbar (S) der. Parameternøglen ændres til RWSD (Husk, navne og nøgler er indstillet på højeste enhedstypeniveau)

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Værdien vises nu ikke kun i den generelle søgeliste, men er også tilgængelig for søgning i Support > Search > Advanced form

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Vi igangsætter forsørgelse og ser på Identitet. Hej Mr. White! Nu vil du ikke selv kunne ændre din identitet, mens tr-069client kører

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

4.3 Udførelse af scripts

Da vi har fundet ud af, at der ikke er nogen vej uden dem, så lad os opfylde dem.

Men før vi begynder at arbejde med filer, skal vi rette direktivet public.url i fil /opt/freeacs-tr069/config/application-config.conf
Vi har trods alt stadig en testkonfiguration installeret med ét script. Har du ikke glemt?

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

Genstart ACS og gå direkte til Files & Scripts.

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Men det, der åbnes hos os, hører nu til Enhedstypen, dvs. globalt til alle hAP ac lite-routere, uanset om det er en filialrouter, hotspot eller capsman. Vi har ikke brug for så højt et niveau endnu, derfor bør du oprette en profil, før du arbejder med scripts og filer. Du kan kalde det selv, som enhedens "position".

Lad os gøre vores baby til en tidsserver. Anstændig position med en separat softwarepakke og et lille antal parametre. Lad os gå til Easy Provisioning > Profile > Create Profile og opret en profil i Unit Type: hAPaclite tidsserver. Vi havde ingen parametre i standardprofilen, så der er ikke noget at kopiere Kopiér parametre fra: "kopier ikke..."

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Der er slet ingen parametre her endnu, men det vil være muligt at indstille dem, som vi senere vil se på vores tidsservere støbt fra hAPaclite. For eksempel de generelle adresser på NTP-servere.
Lad os gå til enhedskonfigurationen og flytte den til tidsserverprofilen

Endelig går vi til Files & Scripts, lav scripts, og her venter vi på utroligt praktiske boller.

For at udføre et script på en enhed, skal vi vælge Type: TR069_SCRIPT а Navn и Målnavn skal have filtypenavnet .alter
På samme tid kan du for scripts, i modsætning til software, enten uploade en færdig fil eller blot skrive/redigere den i feltet Indhold. Lad os prøve at skrive lige der.

Og så du med det samme kan se resultatet - tilføj vlan-routeren til ether1

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

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Vi kører, vi trykker Upload og færdig. Vores manuskript vlan1.alter venter i kulissen.

Nå, lad os gå? Ingen. Vi skal også tilføje en gruppe til vores profil. Grupper er ikke inkluderet i udstyrshierarkiet, men er nødvendige for at søge efter enheder i UnitType eller Profile og er nødvendige for scriptudførelse gennem Advanced Provisioning. Normalt er grupper knyttet til lokationer og har en indlejret struktur. Lad os lave en Rusland-gruppe.

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Forestil dig, at vi lige har indsnævret vores søgning fra "Alle verdenstidsservere på hAPaclite" til "Alle russiske tidsservere på hAPaclite". Der er stadig et kæmpe lag af alt interessant med grupper, men vi har ikke tid. Lad os komme ind i manuskripterne.

Advanced Provisioning > Job > Create Job

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Da vi trods alt er i avanceret tilstand, kan du her angive en masse forskellige betingelser for start af opgaven, fejladfærd, gentagelser og timeouts. Jeg anbefaler at læse alt dette i manualerne eller diskutere det senere, når det implementeres i produktionen. Lad os indtil videre bare sætte n1 til Stop-regler, så opgaven stopper, så snart den er afsluttet på vores 1. enhed.

Vi udfylder det nødvendige, og det er kun tilbage at lancere!

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Tryk på START og vent. Nu vil tælleren for enheder, der er dræbt af det underdebuggede script, køre hurtigt! Selvfølgelig ikke. Sådanne opgaver er givet i lang tid, og dette er deres forskel fra scripts, Ansible og så videre. Enheder søger selv om opgaver på et skema eller som de vises på netværket, ACS holder styr på hvilke enheder der allerede har modtaget opgaver, og hvordan de er endt, og skriver dette til enhedens parametre. Der er 1 enhed i vores gruppe, og hvis der var 1001 af dem, ville administratoren starte denne opgave og fiske

Kom nu. Genstart allerede routeren, eller genstart TR-069-klienten. Alt skulle gå glat, og Mr.White får en ny vlan. Og vores Stop-regel-opgave vil gå ind i PAUSE-status. Det vil sige, at den stadig kan genstartes eller ændres. Hvis du trykker på FINISH, vil opgaven blive afskrevet til arkivet

4.4 Opdatering af softwaren

Dette er et meget vigtigt punkt, da Mikrotiks firmware er modulær, men tilføjelse af moduler ændrer ikke den overordnede version af enhedens firmware. Vores ACS er normal, og jeg er ikke vant til dette.
Nu vil vi gøre det i stil med quick & dirty og skubbe NTP-modulet ind i den generelle firmware med det samme, men så snart versionen er opdateret på enheden, vil vi ikke være i stand til at tilføje endnu et modul på samme måde .
I produktionen er det bedre ikke at bruge et sådant trick og installere moduler, der kun er valgfrie for Unit Type med scripts.

Så den første ting, vi skal gøre, er at forberede softwarepakker med de nødvendige versioner og arkitektur og lægge dem på en tilgængelig webserver. Til testen vil alle, der kan nå vores Mr.White, gå, og til produktion er det bedre at bygge et automatisk opdateringsspejl af den nødvendige software, som ikke er skræmmende at lægge på nettet
Vigtig! Glem ikke altid at inkludere tr-069client-pakken i opdateringer!

Som det viste sig, er længden af ​​stien til pakkerne meget vigtig! Når jeg prøver at bruge noget som f.eks http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik faldt i en cyklisk forbindelse med ressourcen og sendte gentagne TRANSFERCOMPLETE-logfiler til tr-069. Og jeg spildte nogle nerveceller på at prøve at finde ud af, hvad der var galt. Derfor, mens vi sætter det i roden, indtil afklaring

Så vi burde have tre npk-filer tilgængelige via http. Jeg fik det sådan her

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

Nu skal dette formateres til en xml-fil med FileType = "1 Firmware Upgrade Image", som vi sender til Mikrotik. Lad navnet være ros.xml

Vi gør efter anvisningerne 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 at få adgang til downloadserveren. Du kan enten prøve at indtaste det som i afsnit 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ørg Mikrotik-embedsmændene direkte, samt om den maksimale vejlængde til * .npk

Vi går til det kendte Files & Scripts, og opret en SOFTWARE-fil der med Navn:ros.xml, Målnavn:ros.xml og Version:6.45.6
Opmærksomhed! Versionen skal angives her nøjagtigt i det format, som den vises i på enheden og videregives i parameteren System.X_FREEACS-COM.Device.SoftwareVersion.

Vi vælger vores xm-fil til indlæsning, og du er færdig.

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Nu har vi en masse måder at opdatere enheden på. Gennem guiden i hovedmenuen, gennem Advanced Provisioning og opgaver med SOFTWARE-typen, eller gå blot til enhedskonfigurationen og klik på Opgrader. Lad os vælge den nemmeste måde, ellers er artiklen hævet.

TR-069 hos Mikrotik. Test af Freeacs som en autoconfig-server til RouterOS

Vi trykker på knappen, igangsætter levering og du er færdig. Testprogrammet er afsluttet. Nu kan vi gøre mere med mikrotik.

5. Konklusion

Da jeg begyndte at skrive, ville jeg først beskrive tilslutningen af ​​en ip-telefon, og bruge dens eksempel til at forklare, hvor fedt det kan være, når tr-069 fungerer nemt og ubesværet. Men efterhånden som jeg gik videre og gravede i materialerne, tænkte jeg, at for dem, der tilsluttede Mikrotik, ville ingen telefon være skræmmende til selvstudie.

I princippet kan Freeacs, som vi testede, allerede bruges i produktionen, men til dette skal du konfigurere sikkerhed, SSL, du skal konfigurere mikrotik til autokonfiguration efter nulstilling, du skal fejlsøge den korrekte tilføjelse af Unit Type, adskille arbejde med webservices og fusion shell, og meget mere. Prøv, opfind og skriv en efterfølger!

Alle sammen, tak for jeres opmærksomhed! Jeg vil være glad for rettelser og kommentarer!

Liste over brugte materialer og nyttige links:

En forumtråd, som jeg stødte på, da jeg begyndte at søge på emnet
TR-069 CPE WAN Management Protocol Ændring-6
freeacs wiki
Parametre tr-069 i Mikrotik, og deres overensstemmelse med terminalkommandoer

Kilde: www.habr.com