TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

In dit artikel zal ik proberen stap voor stap het proces te beschrijven van het installeren van een testserver van een geweldig project vrije acs naar een volledig functionele staat, en praktische technieken laten zien voor het werken met mikrotik: configuratie via parameters, scriptuitvoering, bijwerken, installeren van extra modules, enz.

Het doel van het artikel is om collega's ertoe aan te zetten te weigeren netwerkapparaten te beheren met vreselijke harken en krukken, in de vorm van zelfgeschreven scripts, Dude, Ansible, enz. En bij deze gelegenheid om vuurwerk en massale vreugde te veroorzaken in de vierkanten.

0. Keuze

Waarom freeacs en niet genie-acs genoemd in mikrotik-wikihoe meer levend?
Omdat er Spaanse publicaties zijn over genie-acs met mikrotik. Daar zijn ze pdf и video van de MUM van vorig jaar. Automatische tekenfilms op dia's zijn cool, maar ik zou graag af willen van het concept van het schrijven van scripts, het uitvoeren van scripts, het uitvoeren van scripts...

1. Freeacs-installatie

We zullen Centos7 installeren, en aangezien de apparaten veel gegevens verzenden en ACS actief met de database werkt, zullen we niet hebzuchtig zijn met bronnen. Voor comfortabel werken selecteren we 2 CPU-kernen, 4 GB RAM en 16 GB snelle opslag SSD Raid10. Ik installeer freeacs in de Proxmox VE lxc-container, en je kunt werken in elke tool die voor jou handig is.
Vergeet niet de juiste tijd in te stellen op de machine met ACS.

Het systeem zal een testsysteem zijn, dus laten we niet slim zijn en gewoon het vriendelijk verstrekte installatiescript gebruiken, 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, kunt u onmiddellijk toegang krijgen tot de webinterface via het IP-adres van de machine, met de inloggegevens admin/freeacs

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS
Hier is zo'n mooie minimalistische interface, en hoe cool en snel alles is geworden

2. Freeacs initiële installatie

De basiseenheid voor ACS is de eenheid of CPE (Customer Premises Equipment). En het allerbelangrijkste: wat we nodig hebben om eenheden te beheren is hun eenheidstype, d.w.z. een hardwaremodel dat een reeks configureerbare parameters definieert voor een eenheid en de software ervan. Maar hoewel we niet weten hoe we een nieuw Eenheidstype correct moeten starten, kun je het beste de eenheid zelf hierover vragen door de Ontdekkingsmodus in te schakelen.

In productie is deze modus absoluut onmogelijk om te gebruiken, maar we moeten de motor zo snel mogelijk starten en de mogelijkheden van het systeem bekijken. Alle basisinstellingen worden opgeslagen in /opt/freeacs-*. Daarom gaan wij open

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

, we vinden

discovery.mode = false

en veranderen naar

discovery.mode = true

Daarnaast willen we de maximale bestandsgroottes waarmee nginx en mysql zullen werken vergroten. Voor mysql voegt u de regel toe aan /etc/my.cnf

max_allowed_packet=32M

, en voor nginx, voeg toe aan /etc/nginx/nginx.conf

client_max_body_size 32m;

naar het http-gedeelte. Anders kunnen we met firmware van niet meer dan 1M werken.

We starten opnieuw op en we zijn klaar om met apparaten te werken.

En in de rol van het apparaat (CPE) zullen we een workaholic-baby hebben hAP AC-lite.

Voordat u een testverbinding maakt, is het raadzaam om de CPE handmatig te configureren naar de minimaal werkende configuratie, zodat de parameters die u in de toekomst wilt configureren niet leeg zijn. Voor een router kun je minimaal een DHCP-client op ether1 inschakelen, het tr-069client-pakket installeren en wachtwoorden instellen.

3. Sluit Mikrotik aan

Het is wenselijk om alle units aan te sluiten met een geldig serienummer als login. Dan wordt alles duidelijk voor je in de logs. Iemand adviseert om WAN MAC te gebruiken - geloof het niet. Iemand gebruikt voor iedereen een gemeenschappelijk login/pas-paar - omzeil deze.

Het tr-069-logboek openen om "onderhandelingen" te volgen

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

Open winbox, menu-item TR-069.
AC-URL: http://10.110.0.109/tr069/prov (vervangen door uw IP)
Gebruikersnaam: 9249094C26CB (kopieer serienummer van systeem>routerbord)
Wachtwoord: 123456 (niet nodig voor ontdekking, maar wel)
We veranderen het Periodieke informatie-interval niet. We geven deze instelling door via onze ACS

Hieronder staan ​​de instellingen voor het op afstand initialiseren van de verbinding, maar ik kreeg Mikrotik er niet in één keer mee aan de slag. Hoewel verzoeken op afstand standaard werken met telefoons. Zal het moeten uitzoeken.

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Nadat u op de knop Toepassen heeft gedrukt, worden gegevens uitgewisseld in de terminal en in de Freeacs-webinterface ziet u onze router met het automatisch aangemaakte Unit Type "hAPaclite".

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

De router is aangesloten. U kunt het automatisch gegenereerde Eenheidstype bekijken. We openen Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Wat is er niet! Maar liefst 928 parameters (ik bespioneerde de shell). Veel of een beetje - we komen er later wel achter, maar voor nu kijken we er even snel naar. Dat is wat Unittype betekent. Dit is een lijst met ondersteunde opties met sleutels maar geen waarden. Waarden worden ingesteld in de onderstaande niveaus: Profielen en Eenheden.

4. Configureer Mikrotik

Het is tijd om te downloaden webinterfacegids Deze gids uit 2011 is als een fles goede, oude wijn. Laten we het openmaken en laten ademen.

En wijzelf klikken in de webinterface op het potlood naast onze unit en gaan naar de unitconfiguratiemodus. Het ziet er zo uit:

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Laten we kort analyseren wat interessant is op deze pagina:

Eenheidsconfiguratieblok

  • Profiel: Dit is het profiel binnen het Eenheidstype. De hiërarchie is als volgt: UnitType > Profile > Unit. Dat wil zeggen dat we bijvoorbeeld profielen kunnen maken hAPaclite > hotspot и hAPaclite > branch, maar binnen het apparaatmodel

Blokregistratie met knopen
Tips geven aan dat alle knoppen in het Provisioning-blok de configuratie direct kunnen toepassen via de ConnectionRequestURL. Maar zoals ik hierboven al zei, dit werkt niet, dus nadat je op de knoppen hebt gedrukt, moet je de tr-069-client op mikrotik opnieuw opstarten om de inrichting handmatig te starten.

  • Freq/Spread: Hoe vaak per week de configuratie moet worden afgeleverd ± % om de belasting van de server en communicatiekanalen te verminderen. Standaard kost het 7/20, d.w.z. elke dag ± 20% en geef binnen enkele seconden een hint hoe het is. Tot nu toe heeft het geen zin om de bezorgfrequentie te wijzigen, omdat. er zal extra ruis in de logs voorkomen en niet altijd de verwachte toepassing van instellingen

Blok voor inrichtingsgeschiedenis (laatste 48 uur)

  • Op het eerste gezicht lijkt het verhaal op een verhaal, maar door op de titel te klikken, kom je bij een handige databasezoekfunctie met regexp en goodies

Blokparameters

Het grootste en belangrijkste blok, waar feitelijk de parameters voor dit apparaat worden ingesteld en gelezen. Nu zien we alleen de belangrijkste systeemparameters, zonder welke ACS niet met de unit kan werken. Maar we herinneren ons dat we ze in Unit Type hebben - 928. Laten we alle waarden bekijken en beslissen waarmee Mikrotik eet.

4.1 Het lezen van de parameters

Klik in het inrichtingsblok op de knop Alles lezen. Het blok heeft een rode inscriptie. Aan de rechterkant verschijnt een kolom CPE (huidige) waarde. ProvisioningMode gewijzigd in READALL in systeeminstellingen.

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

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

Start de TR-069-client opnieuw op of start de router opnieuw op en blijf de browserpagina vernieuwen totdat u de parameters in de vrolijke grijze vakken aan de rechterkant krijgt
Als iemand een slokje wil nemen van de oude, doorgewinterde versie, wordt deze modus in de handleiding beschreven als 10.2 Inspectiemodus. Het gaat aan en werkt een beetje anders, maar de essentie is behoorlijk beschreven

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

De READALL-modus wordt na 15 minuten uitgeschakeld en we zullen proberen erachter te komen wat hier nuttig is en wat direct kan worden gecorrigeerd terwijl we in deze modus zijn.

Je kunt IP-adressen wijzigen, interfaces in-/uitschakelen, firewallregels, die met commentaar zijn (anders een complete puinhoop), wifi, enzovoort.

Dat wil zeggen, het is nog niet mogelijk om mikrotik op een verstandige manier te configureren met alleen TR-069-tools. Maar je kunt het heel goed monitoren. Statistieken over interfaces en hun status, vrij geheugen, enz. zijn beschikbaar.

4.2 Parameters aanleveren

Laten we nu proberen de parameters op een "natuurlijke" manier via tr-069 aan de router te leveren. Het eerste slachtoffer is Device.DeviceInfo.X_MIKROTIK_SystemIdentity. We vinden het in de parameters van de All-eenheid. Zoals je kunt zien, is deze niet ingesteld. Dit betekent dat elke eenheid zelf elke identiteit kan hebben. Genoeg om dit te tolereren!
We steken een daw in de maakkolom, stellen de naam Mr.White in en drukken op de knop Updateparameters. Wat er daarna gaat gebeuren, raad je al. Bij de volgende communicatiesessie met het hoofdkantoor moet de router zijn identiteit wijzigen.

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Maar dit is voor ons niet genoeg. Een parameter als Identiteit is handig om altijd bij de hand te hebben bij het zoeken naar de juiste eenheid. We porren in de naam van de parameter en plaatsen daar de selectievakjes Weergave (D) en Doorzoekbaar (S). De parametersleutel is gewijzigd in RWSD (onthoud dat namen en sleutels zijn ingesteld op het hoogste Unit Type-niveau)

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

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

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Wij initiëren het aanbod en kijken naar Identiteit. Hallo meneer White! Nu kunt u uw identiteit niet zelf wijzigen terwijl tr-069client actief is

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

4.3 Scripts uitvoeren

Omdat we erachter zijn gekomen dat er geen manier is zonder hen, laten we ze vervullen.

Maar voordat we met bestanden gaan werken, moeten we de richtlijn corrigeren public.url in bestand /opt/freeacs-tr069/config/application-config.conf
We hebben immers nog steeds een testconfiguratie geïnstalleerd met één script. Ben je het niet vergeten?

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

Start de ACS opnieuw op en ga rechtstreeks naar Files & Scripts.

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Maar wat bij ons wordt geopend behoort nu tot het Eenheidstype, d.w.z. wereldwijd naar alle hAP ac lite-routers, of het nu een filiaalrouter, hotspot of capsman is. We hebben nog niet zo'n hoog niveau nodig, dus voordat je met scripts en bestanden gaat werken, moet je een profiel aanmaken. Je kunt het zelf noemen, zoals de "positie" van het apparaat.

Laten we van onze baby een tijdserver maken. Fatsoenlijke positie met een apart softwarepakket en een klein aantal parameters. Laten we gaan naar Easy Provisioning > Profile > Create Profile en maak een profiel aan in Unit Type: hAPaclite tijdserver. We hadden geen parameters in het standaardprofiel, dus er valt niets te kopiëren Kopieer parameters uit: "niet kopiëren..."

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Er zijn hier nog helemaal geen parameters, maar het zal mogelijk zijn om de parameters in te stellen die we later willen zien op onze tijdservers die uit hAPaclite zijn gegoten. Bijvoorbeeld de algemene adressen van NTP-servers.
Laten we naar de unitconfiguratie gaan en deze naar het tijdserverprofiel verplaatsen

Eindelijk gaan we naar Files & Scripts, maak scripts, en hier wachten we op ongelooflijk handige broodjes.

Om een ​​script op een eenheid uit te voeren, moeten we selecteren Typ: TR069_SCRIPT а Naam и Doelnaam: moet de extensie .alter hebben
Tegelijkertijd kunt u voor scripts, in tegenstelling tot software, een voltooid bestand uploaden of het eenvoudigweg in het veld schrijven/bewerken Inhoud. Laten we proberen daar te schrijven.

En zodat je meteen het resultaat kunt zien: voeg de vlan-router toe aan ether1

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

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Wij rijden, wij drukken Uploaden en klaar. Ons script vlan1.alter wachten in de coulissen.

Nou laten we gaan? Nee. We moeten ook een groep toevoegen voor ons profiel. Groepen zijn niet opgenomen in de apparatuurhiërarchie, maar zijn nodig om te zoeken naar eenheden in UnitType of Profile en zijn vereist voor scriptuitvoering via Advanced Provisioning. Meestal zijn groepen gekoppeld aan locaties en hebben ze een geneste structuur. Laten we een Rusland-groep vormen.

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Stel je voor dat we onze zoekopdracht zojuist hebben beperkt van "Alle tijdservers ter wereld op hAPaclite" tot "Alle Russische tijdservers op hAPaclite". Er ligt nog een enorme laag van alles wat interessant is bij groepen, maar daar hebben we geen tijd voor. Laten we in de scripts duiken.

Advanced Provisioning > Job > Create Job

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Omdat we ons in de geavanceerde modus bevinden, kunt u hier immers een aantal verschillende voorwaarden opgeven voor het starten van de taak, foutgedrag, herhalingen en time-outs. Ik raad aan om dit allemaal in de handleidingen te lezen of het later te bespreken bij de implementatie ervan in de productie. Laten we voorlopig n1 instellen op Stopregels, zodat de taak stopt zodra deze is voltooid op onze eerste eenheid.

We vullen het nodige in, en het blijft alleen om te lanceren!

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Druk op START en wacht. Nu zal de teller van apparaten die door het te weinig gedebugde script zijn gedood, vlot lopen! Natuurlijk niet. Dergelijke taken worden lange tijd gegeven, en dit is hun verschil met scripts, Ansible, enzovoort. Eenheden vragen zelf taken aan volgens een schema of zoals ze op het netwerk verschijnen. ACS houdt bij welke eenheden al taken hebben ontvangen en hoe deze zijn geëindigd, en schrijft dit naar de parameters van de eenheid. Er is 1 eenheid in onze groep, en als er 1001 van hen waren, zou de beheerder deze taak starten en gaan vissen

Kom op. Start de router al opnieuw op of start de TR-069-client opnieuw op. Alles zou soepel moeten verlopen en Mr.White krijgt een nieuwe vlan. En onze Stop-regeltaak krijgt de status GEPAUZED. Dat wil zeggen dat het nog steeds opnieuw kan worden opgestart of gewijzigd. Als u op FINISH drukt, wordt de taak naar het archief geschreven

4.4 De software updaten

Dit is een heel belangrijk punt, aangezien Mikrotik-firmware modulair is, maar het toevoegen van modules verandert de algehele firmwareversie van het apparaat niet. Onze ACS is normaal en niet gewend.
Nu zullen we het doen in de stijl van quick & dirty, en de NTP-module meteen in de algemene firmware pushen, maar zodra de versie op het apparaat is bijgewerkt, kunnen we niet op dezelfde manier nog een module toevoegen .
In productie is het beter om een ​​dergelijke truc niet te gebruiken en modules die optioneel zijn voor Unit Type alleen met scripts te installeren.

Het eerste dat we dus moeten doen is softwarepakketten met de vereiste versies en architectuur voorbereiden en deze op een beschikbare webserver plaatsen. Voor de test zal iedereen die onze Mr.White kan bereiken, gaan, en voor de productie is het beter om een ​​automatisch bijgewerkte spiegel van de benodigde software te bouwen, die niet eng is om op internet te zetten
Belangrijk! Vergeet niet om altijd het tr-069client-pakket op te nemen in updates!

Het bleek dat de lengte van het pad naar de pakketten erg belangrijk is! Wanneer ik zoiets probeer te gebruiken http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, raakte mikrotik in een cyclische verbinding met de bron en stuurde herhaaldelijk TRANSFERCOMPLETE-logboeken naar tr-069. En ik verspilde wat zenuwcellen terwijl ik probeerde uit te zoeken wat er mis was. Daarom, terwijl we het in de wortel stoppen, tot opheldering

We zouden dus drie npk-bestanden beschikbaar moeten hebben via http. Ik heb het zo

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 geformatteerd in een XML-bestand met FileType = "1 Firmware Upgrade Image", dat we aan Mikrotik zullen doorgeven. Laat de naam ros.xml zijn

Wij doen dit volgens de instructies van 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>

Er is sprake van een gebrek Username/Password om toegang te krijgen tot de downloadserver. U kunt proberen het in te voeren zoals in paragraaf A.3.2.8 van het tr-069-protocol:

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

Of vraag rechtstreeks aan de Mikrotik-functionarissen, evenals de maximale padlengte naar * .npk

We gaan naar het bekende Files & Scriptsen maak daar een SOFTWARE-bestand mee Naam:ros.xml, Doelnaam:ros.xml en Versie:6.45.6
Aandacht! De versie moet hier exact worden opgegeven in het formaat waarin deze op het apparaat wordt weergegeven en in de parameter wordt doorgegeven System.X_FREEACS-COM.Device.SoftwareVersion.

We selecteren ons xm-bestand om te laden en je bent klaar.

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Nu hebben we veel manieren om het apparaat bij te werken. Via de wizard in het hoofdmenu, via Advanced Provisioning en taken met het SOFTWARE-type, of ga gewoon naar de unitconfiguratie en klik op Upgraden. Laten we de gemakkelijkste manier kiezen, anders is het artikel opgezwollen.

TR-069 bij Mikrotik. Freeacs testen als autoconfig-server voor RouterOS

Wij drukken op de knop, starten de bevoorrading en u bent klaar. Het testprogramma is voltooid. Nu kunnen we meer doen met mikrotik.

5. conclusie

Toen ik begon met schrijven, wilde ik eerst de aansluiting van een IP-telefoon beschrijven en het voorbeeld ervan gebruiken om uit te leggen hoe cool het kan zijn als tr-069 gemakkelijk en moeiteloos werkt. Maar toen ik verder ging en me verdiepte in de materialen, dacht ik dat voor degenen die de Mikrotik hadden aangesloten, geen enkele telefoon eng zou zijn voor zelfstudie.

In principe kan Freeacs, dat we hebben getest, al in productie worden gebruikt, maar hiervoor moet je de beveiliging configureren, SSL, je moet microtics configureren voor automatische configuratie na reset, je moet de juiste toevoeging van Unit Type debuggen, demonteren werk van webservices en fusion shell, en nog veel meer. Probeer, bedenk en schrijf een vervolg!

Iedereen, bedankt voor uw aandacht! Ik zal blij zijn met correcties en opmerkingen!

Lijst met gebruikte materialen en nuttige links:

Een forumthread die ik tegenkwam toen ik begon te zoeken naar dit onderwerp
TR-069 CPE WAN-beheerprotocol amendement-6
freeacs-wiki
Parameters tr-069 in Mikrotik, en hun correspondentie met terminalopdrachten

Bron: www.habr.com