TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

In dit artikel zal ik stap voor stap het proces beschrijven van de installatie van een testserver voor een geweldig project. Freeacs tot een volledig operationele staat en praktische tips laten zien voor het werken met mikrotik: configuratie via parameters, het uitvoeren van scripts, updates, installatie van extra modules, enz.

Het doel van het artikel is om collega's te stimuleren afstand te doen van het beheer van netwerkinrichtingen met behulp van verschrikkelijke haken en ogen, zoals zelf geschreven scripts, Dude, Ansible, enz. En daarom te pleiten voor vuurwerk en massaal gejuich op de pleinen.

0. Keuze

Waarom freeacs en niet genie-acs, zoals genoemd in mikrotik-wiki, als de meer actieve optie?
Omdat er over genie-acs met mikrotik publicaties zijn van Spanjaarden. Hier zijn ze pdf en video's van de MUM van vorig jaar. Auto-sharing op dia's is geweldig, maar ik zou willen afstappen van het concept van scripts schrijven om scripts te draaien om scripts te draaien...

1. Installatie van freeacs

We gaan installeren op Centos7, en aangezien de apparaten behoorlijk veel gegevens overdragen, en de ACS actief werkt met de database, zullen we niet beknibbelen op de middelen. Voor comfortabel werken reserveren we 2 CPU-kernen, 4GB RAM en 16GB snelle opslag in ssd raid10. Ik ga freeacs installeren in een lxc-container van Proxmox VE, maar je kunt werken met elk hulpmiddel dat je prettig vindt.
Vergeet niet de juiste tijd op de machine met ACS in te stellen.

Het systeem zal testgewijs zijn, dus laten we het simpel houden en gewoon gebruik maken van het vriendelijk aangeboden installatie-script, zoals het is.

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

Zodra het script is voltooid, kun je onmiddellijk toegang krijgen tot de webinterface via het IP-adres van de machine, met de inloggegevens admin/freeacs.

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS
Wat een mooi minimalistische interface en het is zo geweldig en snel gegaan.

2. Eerste configuratie van freeacs

De basis eenheid van beheer voor de ACS is een unit of CPE (Customer Premises Equipment). Het belangrijkste dat we nodig hebben voor het beheren van eenheden is hun Unit Type, dat wil zeggen, het model van de apparatuur die de verzameling configureerbare parameters van de unit en de software bepaalt. Maar omdat we nog niet weten hoe we een nieuw Unit Type correct moeten aanmaken, is het het beste om het aan de unit zelf te vragen door de Discovery Mode in te schakelen.

In productie mag deze modus absoluut niet worden gebruikt, maar we moeten snel een motor opstarten en de mogelijkheden van het systeem bekijken. Alle belangrijke instellingen worden opgeslagen in /opt/freeacs-*. Daarom openen we

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

, vinden we

discovery.mode = false

en veranderen naar

discovery.mode = true

Daarom willen we ook de maximale bestandsgroottes verhogen waarmee nginx en mysql kunnen werken. Voor mysql voegen we de regel toe in /etc/my.cnf

max_allowed_packet=32M

, en voor nginx voegen we in /etc/nginx/nginx.conf toe

client_max_body_size 32m;

aan de http-sectie. Anders kunnen we met firmware's van niet meer dan 1M werken.

Herstarten we, en we zijn klaar om met de apparaten te werken.

En als apparaat (CPE) zullen we de kleine werker gebruiken hAP AC lite.

Voor de testverbinding is het wenselijk om de CPE handmatig in te stellen op de minimale werkconfiguratie, zodat de parameters die je in de toekomst wilt configureren niet leeg zijn. Voor de router kun je minimaal de dhcp-client op ether1 inschakelen, het tr-069client-pakket installeren en wachtwoorden instellen.

3. Sluit Mikrotik aan

Alle eenheden moeten bij voorkeur worden aangesloten met een geldig serienummer als inlognaam. Dan is alles voor je in de logs duidelijk. Sommigen raden aan om WAN MAC te gebruiken — geloof dat niet. Anderen gebruiken een algemene inlog-/wachtwoordcombinatie — vermijd hen.

Open de tr-069 log voor het monitoren van de 'onderhandelingen'

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

Open winbox, menu-item TR-069.
ACS URL: http://10.110.0.109/tr069/prov (vervang door je IP)
Username: 9249094C26CB (kopieer het serienummer uit system>routerboard)
Password: 123456 (niet nodig voor discovery, maar voor de zekerheid)
We veranderen de Periodic inform interval niet. Deze instelling geven we via onze ACS door

Hieronder staan de instellingen voor de externe initiatie van de verbinding, maar ik kon mikrotik niet zomaar hiermee laten werken. Hoewel het bij telefoons werkt remote request 'uit de doos'. We moeten dit verder onderzoeken.

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

Na het drukken op de knop Toepassen zal er data-uitwisseling in de terminal plaatsvinden, en in de webinterface van Freeacs kunnen we onze router zien met het automatisch aangemaakte Unit Type 'hAPaclite'.

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

Router is aangesloten. Je kunt een kijkje nemen in het automatisch aangemaakte Unit Type. Open Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Wat er daar allemaal niet is! Maar liefst 928 parameters (ik heb in shell gekeken). Of dat veel of weinig is — dat zien we later wel, maar laten we het voorlopig gewoon vluchtig bekijken. Dit is wat Unit Type betekent. Dit is een lijst van ondersteunde parameters met sleutels, maar zonder waarden. Waarden worden op lagere niveaus gedefinieerd — in Profielen en Eenheden.

4. Configureer Mikrotik

Het is tijd om de handleiding voor de webinterface te downloaden. Deze handleiding is uit 2011 — als een goede fles verouderde wijn. Laten we het openen en laten ademen.

En klikken we in de webinterface op het potloodje naast onze eenheid en gaan naar de configuratiemodus van de eenheid. Dit ziet er zo uit:

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

Laten we kort bekijken wat er interessant is op deze pagina:

Blok Eenheid configuratie

  • Profiel: Dit is een profiel binnen het Eenheidstype. De hiërarchie is als volgt: UnitType > Profiel > Eenheid. Dat wil zeggen, we kunnen bijvoorbeeld profielen aanmaken hAPaclite > hotspot en hAPaclite > branch, maar binnen het model van het apparaat

Blok Provisioning met knoppen
Hints geven aan dat alle knoppen in het Provisioning-blok de configuratie onmiddellijk kunnen toepassen via ConnectionRequestURL. Maar zoals ik eerder zei, werkt dit niet, dus na het indrukken van de knoppen moet je de tr-069-client op de Mikrotik herstarten voor een handmatige start van provisioning.

  • Freq/Spread: Hoe vaak per week de configuratie te leveren ± %, om de belasting op de server en communicatielijnen te verminderen. Standaard staat het op 7/20, dat wil zeggen elke dag ± 20% en een hint hoe dit in seconden is. Op dit moment is er geen reden om de afleverfrequentie te wijzigen, omdat het extra ruis in de logs zal veroorzaken en niet altijd de verwachte toepassing van instellingen zal leveren.

Blok Provisioning geschiedenis (laatste 48 uur)

  • Vanuit het gezichtspunt lijkt de geschiedenis, zoals de geschiedenis, maar door op de titel te klikken kom je in een handig zoekhulpmiddel in de database, met regexp en extra functies.

Blok Parameters

Het grootste en belangrijkste blok, waar de parameters voor deze eenheid worden ingesteld en gelezen. Momenteel zien we alleen de meest essentiële systeemparameters, zonder welke het werken van de ACS met de eenheid onmogelijk is. Maar we weten dat we in het Eenheidstype - 928. Laten we alle waarden bekijken en uitzoeken hoe we dit alles in Mikrotik kunnen toepassen.

4.1 Parameters lezen

In het Provisioning-blok drukken we op de knop Read all. In het blok - staat een rode tekst. Rechts verschijnt er een kolom CPE (huidige) waarde. De systeemparameter ProvisioningMode is gewijzigd in READALL.

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

En… er gebeurt niets, behalve een bericht in System.X_FREEACS-COM.IM.Message Kick failed at....

Herstart de TR-069 client of herstart de router en blijf de pagina in de browser vernieuwen totdat je rechts de parameters in vrolijke grijze rechthoeken krijgt.
Als iemand wou genieten van een oude vintage - deze modus wordt in de handleiding beschreven als 10.2 Inspectiemodus. Deze wordt ingeschakeld en werkt iets anders, maar de essentie is vrij goed beschreven.

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

De READALL-modus schakelt zichzelf uit na 15 minuten, terwijl we proberen uit te zoeken wat er nuttigs is en wat we 'on the fly' kunnen aanpassen terwijl we in deze modus zijn.

Je kunt IP-adressen wijzigen, interfaces in- en uitschakelen, firewallregels met opmerkingen (anders wordt het een rommeltje), wifi en nog wat kleinigheden.

Dat wil zeggen, het is nog niet mogelijk om Mikrotik redelijk te configureren alleen met TR-069 middelen. Maar je kunt het wel goed monitoren. Statistieken over interfaces en hun status, vrije geheugen, enzovoort zijn beschikbaar.

4.2 Parameters leveren

Laten we nu proberen parameters naar de router te sturen via TR-069, op de 'natuurlijke' manier. Het eerste slachtoffer wordt Device.DeviceInfo.X_MIKROTIK_SystemIdentity. We vinden het in de parameters van de eenheid All. Zoals te zien is, is het niet ingesteld. Dit betekent dat elke eenheid op zichzelf een willekeurige identiteit kan hebben. Genoeg is genoeg!
We vinkten het vakje aan in de kolom create, gaven de naam Mr.White en klikten op de knop Update parameters. Wat er daarna gebeurt, hadden jullie al geraden. Bij de volgende communicatie met het hoofdkwartier moet de router zijn identiteit veranderen.

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

Maar dat is ons niet genoeg. Een parameter zoals Identity is altijd handig om bij de hand te hebben bij het zoeken naar de juiste eenheid. We klikken op de naam van de parameter en zetten de vinkjes bij Display(D) en Searchable(S). De sleutel van de parameter verandert in RWSD (Vergeet niet dat namen en sleutels op het hoogste niveau van het type eenheid worden ingesteld).

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

De waarde wordt nu niet alleen weergegeven in de algemene zoeklijst, maar is ook beschikbaar voor zoeken in Support > Search > Advanced form

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

We starten de provisioning en kijken naar de Identity. Hallo, Mr.White! Nu kunt u uw uiterlijk niet zelf veranderen zolang de tr-069client actief is.

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

4.3 Scripts uitvoeren

Nu we hebben vastgesteld dat we niet zonder scripts kunnen, laten we ze uitvoeren.

Maar voordat we aan de slag gaan met bestanden, moeten we de richtlijn aanpassen. public.url in het bestand /opt/freeacs-tr069/config/application-config.conf
We hebben immers nog steeds de testconfiguratie die door één script is ingesteld. Vergeet het niet!

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

We herstarten de ACS en gaan rechtstreeks naar Files & Scripts.

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

Maar wat we nu openen, behoort tot het type eenheid, dat wil zeggen, globaal voor alle hAP ac lite routers, of het nu een takrouter, hotspot of capsman is. We hebben dat hoge niveau voorlopig niet nodig, dus voordat we met scripts en bestanden werken, moeten we een profiel aanmaken. We kunnen dit een 'functie' van het apparaat noemen.

Laten we onze kleine tijdserver maken. Een fatsoenlijke functie met een aparte softwarepakket en een klein aantal parameters. We gaan naar Easy Provisioning > Profile > Create Profile en we maken in Unit Type:hAPaclite het profiel timeserver. We hadden geen parameters in het standaardprofiel, dus er is niets te kopiëren. Kopieer parameters van: «niet kopiëren...»

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

Voorlopig zijn er nog helemaal geen parameters, maar we kunnen die instellen die we later op onze tijdservers gemaakt van hAPaclite willen zien. Bijvoorbeeld, de algemene adressen van NTP-servers.
We gaan naar de configuratie van de unit, en verplaatsen deze naar het profiel tijdserver

Eindelijk gaan we naar Files & Scripts, scripts maken, en hier wachten geweldige handige extra's op ons.

Om een script op de unit uit te voeren, moeten we kiezen Type: TR069_SCRIPT a Naam en Doelnaam moet de extensie .alter hebben
Voor scripts, in tegenstelling tot software, kunnen we dus zowel een kant-en-klaar bestand uploaden als het gewoon schrijven/bewerken in het veld Inhoud. Laten we proberen het daar direct te schrijven.

En om het resultaat meteen zichtbaar te maken — laten we een VLAN toevoegen aan de router op ether1

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

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

We typen, drukken op Uploaden en klaar. Ons script vlan1.alter wacht op zijn beurt.

Nou, gaan we? Nee. We moeten ook een groep voor ons profiel toevoegen. Groepen maken geen deel uit van de hiërarchie van apparatuur, maar zijn nodig om units te zoeken in UnitType of Profiel en zijn verplicht voor het uitvoeren van scripts via Advanced Provisioning. Gewoonlijk zijn groepen gerelateerd aan locaties en hebben ze een geneste structuur. Laten we een groep Rusland maken.

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

Kun je je voorstellen dat we net de zoektocht hebben kunnen verkleinen van «Alle tijdservers ter wereld op hAPaclite» naar «Alle tijdservers van Rusland op hAPaclite». Er is nog een enorme hoeveelheid interessante dingen met groepen, maar we hebben daar geen tijd voor. Laten we naar de scripts gaan.

Advanced Provisioning > Taak > Taak aanmaken

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

Aangezien we in Advanced mode zijn, kunnen we hier een hoop verschillende voorwaarden voor de start van de taak, gedrag bij fouten, herhalingen en time-outs opgeven. Ik raad aan dit allemaal door te nemen in de handleidingen of we bespreken het later bij de implementatie in productie. Voor nu zetten we alleen n1 in Stop-regels, zodat de taak stopt zodra deze op onze 1 unit is uitgevoerd.

Vul wat nodig is in, en dan is het alleen nog maar wachten om te starten!

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

We drukken op START en wachten. Nu gaat de teller van apparaten die door het ongeoptimaliseerde script zijn uitgeschakeld, snel omhoog! Nee, natuurlijk niet. Dergelijke taken duren lang, en dat is het verschil met scripts, Ansible en dergelijke. Units vragen zelf om taken op basis van een schema of wanneer ze in het netwerk verschijnen, ACS houdt bij welke units al taken hebben ontvangen en hoe ze zijn uitgevoerd, en registreert dit in de parameters van de unit. In onze groep is er 1 unit, maar hadden het er 1001 geweest — de admin zou deze taak hebben gestart en naar de visserij zijn vertrokken.

Kom op. Herstart de router of start de TR-069-client opnieuw op. Alles zou soepel moeten verlopen en Mr.White krijgt een nieuwe vlan. Onze taak met de Stop rule gaat naar de status PAUSED. Dit betekent dat deze opnieuw kan worden opgestart of gewijzigd. Als je op FINISH drukt, wordt de taak gearchiveerd.

4.4 Software Updaten

Dit is een heel belangrijk punt, aangezien de firmware van de mikrotik modulair is, maar het toevoegen van modules verandert de algemene versie van de firmware van het apparaat niet. Onze ACS is normaal, en daar zijn we niet aan gewend.
We gaan het nu quick&dirty doen en de NTP-module meteen in de algemene firmware stoppen, maar zodra de versie op het apparaat is geüpdatet — kunnen we geen extra module op dezelfde manier toevoegen.
In productie is het beter om deze truc niet toe te passen en alleen modules die niet noodzakelijk zijn voor het Unit Type via scripts te installeren.

Dus, het eerste wat we moeten doen, is de nodige softwarepakketten van de juiste versies en architecturen voorbereiden en deze op een toegankelijke webserver plaatsen. Voor de test kan elke server worden gebruikt die bereikbaar is voor onze Mr.White, maar voor productie is het beter om een automatisch updatebaar spiegel van de nodige software te maken, die veilig in het web kan worden geplaatst.
Belangrijk! Vergeet niet altijd het pakket met tr-069client in de updates op te nemen!

Zoals het bleek, is de lengte van het pad naar de pakketten heel belangrijk! Tijdens mijn pogingen om iets als http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, viel de mikrotik in een cyclische verbinding met de bron, waarbij het in de tr-069-log herhaaldelijk TRANSFERCOMPLETE doorgaf. En ik heb enige hoeveelheid zenuwcellen verbruikt door te proberen uit te vinden wat er mis was. Daarom leggen we het voor nu even in de root, tot we het uitzoeken.

Dus, we moeten drie npk-bestanden hebben die via http toegankelijk zijn. Zo heb ik het gekregen:

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 moet dit worden opgemaakt in een xml-bestand met FileType="1 Firmware Upgrade Image", dat we aan de mikrotik zullen geven. De naam kan ros.xml zijn.

We volgen de instructies uit mikrotik-wiki:

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.npk

De tekortkoming springt in het oog. Gebruikersnaam/Wachtwoord voor toegang tot de downloadserver. Je kunt dit proberen in te vullen zoals in sectie A.3.2.8 van het tr-069-protocol:

http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk
user
pass

Of vraag het direct aan de MikroTik-werkers, evenals over de maximale padlengte naar *.npk

Laten we naar de bekende locaties gaan Files & Scripts, en daar een bestand van het type SOFTWARE maken met Naam:ros.xml, Doelnaam:ros.xml en Versie:6.45.6
Let op! De versie moet precies in dit formaat worden opgegeven, zoals deze op het apparaat wordt weergegeven en in de parameter wordt doorgegeven System.X_FREEACS-COM.Device.SoftwareVersion.

Kies ons xm-bestand voor de upload en klaar.

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

We hebben nu tal van manieren om het apparaat te updaten. Via de Wizard in het hoofdmenu, via Advanced Provisioning en taken van het type SOFTWARE, of gewoon de configuratie van de eenheid openen en op Upgrade klikken. Laten we de eenvoudigste weg kiezen, anders wordt het artikel al te lang.

TR-069 in Mikrotik. We testen Freeacs als autoconfiguratieserver voor RouterOS

We drukken op de knop, initiëren provision en dat is het. Het testprogramma is voltooid. Nu kunnen we meer doen met MikroTik.

5. Conclusie

Toen ik begon met schrijven, wilde ik eerst de aansluiting van de ip-telefoon beschrijven en aan de hand daarvan uitleggen hoe goed het kan zijn als TR-069 soepel en zonder moeite werkt. Maar naarmate ik verder ging en in het materiaal dook, dacht ik dat degene die MikroTik heeft aangesloten, al geen enkele telefoon meer hoeft te vrezen voor zelfstandig leren.

In principe is FreeACS, dat we hebben getest, al toepasbaar in productie, maar daarvoor moet de beveiliging worden ingesteld, SSL moet worden geconfigureerd, MikroTik moet worden ingesteld voor automatische configuratie na reset, het correcte toevoegen van Unit Type moet worden verfijnd, webservices en fusion shell moeten worden begrepen, en er is nog veel meer. Probeer, experimenteer, en schrijf de voortzetting!

Iedereen, bedankt voor uw aandacht! Ik sta open voor correcties en opmerkingen!

Lijst van gebruikte materialen en nuttige links:

De draad op het forum, waarop ik in het begin stuitte tijdens het zoeken naar het onderwerp
TR-069 CPE WAN Management Protocol Amendment-6
FreeACS wiki
Parameters van TR-069 in MikroTik en hun overeenstemming met terminalcommando's

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster