TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

I denna artikel kommer jag steg för steg att beskriva processen för att installera en testserver för det fantastiska projektet Freeacs till ett fullt fungerande tillstÄnd, och visa praktiska tekniker för att arbeta med mikrotik: konfiguration genom parametrar, körning av skript, uppdateringar, installation av tillÀggsmoduler, osv.

MÄlet med artikeln Àr att uppmuntra kollegor att avstÄ frÄn att hantera nÀtverksutrustning med hjÀlp av förfÀrliga nödlösningar och rÀddningar i form av egna skript, Dude, Ansible, osv. Och, med detta i Ätanke, framkalla salut och massglÀdje pÄ torgen.

0. Val

Varför freeacs och inte genie-acs, som nÀmnts i mikrotik-wiki, som Àr mer aktivt?
För att det finns publikationer om genie-acs med mikrotik frĂ„n spanjorer. HĂ€r Ă€r deras pdf och video frĂ„n förra Ă„rets MUM. Autosharing pĂ„ slidearna Ă€r fantastiskt, men jag skulle vilja gĂ„ ifrĂ„n konceptet att skriva skript, för att köra skript, för att köra skript


1. Installation av freeacs

Vi kommer att installera det i Centos7, och eftersom enheterna överför mycket data, och ACS arbetar aktivt med databasen – ska vi inte snĂ„la med resurserna. För en bekvĂ€m arbetserfarenhet reserverar vi 2 CPU-kĂ€rnor, 4GB RAM och 16GB snabbt lagringsutrymme i ssd raid10. Jag kommer att installera freeacs i en lxc-container i Proxmox VE, men du kan arbeta i vilket verktyg som helst som passar dig.
Glöm inte att stÀlla in rÀtt tid pÄ maskinen med ACS.

Systemet kommer att vara testverksamt, sÄ vi kommer inte att krÄngla till det, utan helt enkelt anvÀnda det generöst tillhandahÄllna installationsskriptet, som det Àr.

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

SĂ„ snart skriptets arbete Ă€r klart — kan du direkt komma Ă„t webbgrĂ€nssnittet via IP-adressen till maskinen, med inloggningsuppgifterna admin/freeacs.

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS
HÀr Àr ett trevligt minimalistiskt grÀnssnitt, och sÄ bra och snabbt allt har gÄtt.

2. Första instÀllning av freeacs

GrundlĂ€ggande enhet för hantering av ACS Ă€r en enhet eller CPE (Customer Premises Equipment). Och det viktigaste för oss att hantera enheterna — Ă€r deras Unit Type, dvs. enhetsmodell som bestĂ€mmer den uppsĂ€ttning konfigurerbara parametrar för enheten och dess programvara. Men eftersom vi inte vet hur man korrekt lĂ€gger till en ny Unit Type, Ă€r det bĂ€st att frĂ„ga sjĂ€lva enheten genom att aktivera Discovery Mode.

I produktion bör detta lÀge absolut inte anvÀndas, men vi mÄste snabbt fÄ igÄng maskinen och se systemets möjligheter. Alla grundlÀggande instÀllningar lagras i /opt/freeacs-*. SÄ, vi öppnar

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

, vi finner

discovery.mode = false

och Àndrar till

discovery.mode = true

Dessutom Àr det önskvÀrt att vi ökar de maximala filstorlekarna som nginx och mysql kommer att arbeta med. För mysql lÀgger vi till raden i /etc/my.cnf

max_allowed_packet=32M

, och för nginx, i /etc/nginx/nginx.conf lÀgger vi till

client_max_body_size 32m;

i http-sektionen. Annars kan vi bara arbeta med firmware pÄ högst 1M.

Vi startar om, och vi Àr redo att arbeta med enheterna.

Och som en enhet (CPE) har vi den lilla arbetshÀsten hAP AC lite.

Innan testanslutningen Àr det bÀst att manuellt konfigurera CPE till en minimal arbetskonfiguration, sÄ att de parametrar som du senare vill konfigurera inte Àr tomma. För routern Àr det minsta att aktivera dhcp-klienten pÄ ether1, installera paketet tr-069client och sÀtta lösenord.

3. Anslut Mikrotik

Alla enheter bör anslutas med ett giltigt serienummer som anvĂ€ndarnamn. DĂ„ kommer du att förstĂ„ i loggarna. Vissa rekommenderar att anvĂ€nda WAN MAC — tro inte pĂ„ det. Vissa anvĂ€nder en gemensam anvĂ€ndarnamn/lösenord — undvik dem.

Öppna loggen för tr-069 för övervakning av "förhandlingarna"

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

Öppna winbox, punkten i menyn TR-069.
ACS URL: http://10.110.0.109/tr069/prov (ersÀtt med din IP)
AnvÀndarnamn: 9249094C26CB (kopiera serienumret frÄn system>routerboard)
Lösenord: 123456 (inte nödvÀndigt för discovery, men för att ha det)
Vi Àndrar inte det periodiska informationsintervallet. Denna instÀllning kommer vi att ge genom vÄr ACS

Nedan Ă€r instĂ€llningarna för fjĂ€rrinitiering av anslutningen, men jag kunde inte fĂ„ mikrotik att fungera med detta direkt. Även om det fungerar "ur lĂ„dan" med telefoner. Vi mĂ„ste kolla in det.

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Efter att ha tryckt pĂ„ knappen Applicera — kommer det att ske datakommunikation i terminalen, och i webbgrĂ€nssnittet för Freeacs kommer vi att se vĂ„r router med den automatiskt skapade enhetstypen "hAPaclite".

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Routern Ă€r ansluten. Vi kan titta pĂ„ den automatiskt skapade enhetstypen. Öppna Easy Provisioning > Enhetstyp > Översikt över enhetstyp > hAPaclite. Vad finns inte dĂ€r! Hela 928 parametrar (jag spanade in i shell). Mycket eller lite — det fĂ„r vi se senare, men lĂ„t oss bara snabbt kolla. SĂ„ hĂ€r ser en enhetstyp ut. Det Ă€r en lista över stödda parametrar med nycklar, men utan vĂ€rden. VĂ€rden anges pĂ„ lĂ€gre nivĂ„er — i profiler och enheter.

4. Konfigurera Mikrotik

Det Ă€r dags att ladda ner guiden för webbgrĂ€nssnittet Detta Ă€r en guide frĂ„n 2011 — som en flaska gott, lagrat vin. LĂ„t oss öppna den och lĂ„ta den andas.

I webgrÀnssnittet klickar vi pÄ pennikonen bredvid vÄr enhet och gÄr in i konfigurationslÀget för enheten. SÄ hÀr ser det ut:

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Vi gÄr snabbt igenom vad som Àr intressant pÄ den hÀr sidan:

Enhetskonfiguration

  • Profil: Detta Ă€r en profil inom Enhetstypen. Hierarkin ser ut sĂ„ hĂ€r: Enhetstyp > Profil > Enhet. Det vill sĂ€ga, vi kan skapa till exempel profiler hAPaclite > hotspot och hAPaclite > branch, men inom ramen för enhetsmodell

Provisioning-block med knappar
Tipsen antyder att alla knappar i Provisioning-blocket kan tillÀmpa konfigurationen omedelbart via ConnectionRequestURL. Men som jag nÀmnde tidigare fungerar detta inte, sÄ efter att ha tryckt pÄ knapparna mÄste vi starta om tr-069-klienten pÄ mikrotik för att manuellt starta provisioneringen.

  • Freq/Spridning: Hur mĂ„nga gĂ„nger per vecka man ska leverera konfigurationen ± %, för att minska belastningen pĂ„ servern och kommunikationskanalerna. Som standard Ă€r det 7/20, dvs varje dag ± 20% och tips om hur detta Ă€r i sekunder. Det finns för tillfĂ€llet ingen mening med att Ă€ndra leveransfrekvensen, eftersom det skulle ge extra brus i loggarna och inte alltid förvĂ€ntad tillĂ€mpning av instĂ€llningarna.

Provisioning-historikblock (senaste 48 timmarna)

  • Det ser ut som en historia, men klickar man pĂ„ rubriken kommer man Ă„t ett praktiskt sökverktyg för databasen, med regexp och tillĂ€ggsfunktioner.

Parametrar

Det största och viktigaste blocket, dĂ€r parametrarna för denna enhet egentligen stĂ€lls in och lĂ€ses. Just nu ser vi bara de viktigaste systemparametrarna, utan vilka ACS:ens arbete med enheten Ă€r omöjligt. Men vi minns att vi har dem i Enhetstypen — 928. LĂ„t oss ta en titt pĂ„ alla vĂ€rden och se vad de innebĂ€r för mikrotik.

4.1 LĂ€s parametrar

I Provisioning-blocket trycker vi pĂ„ knappen LĂ€s alla. I blocket — röd text. Till höger dyker det upp en kolumn CPE (nuvarande) vĂ€rde. I systemparametrarna har ProvisioningMode Ă€ndrats till READALL.

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Och... ingenting kommer att hÀnda, förutom ett meddelande i System.X_FREEACS-COM.IM.Message Kick misslyckades vid....

Starta om TR-069-klienten eller starta om routern och fortsÀtt uppdatera webblÀsarsidan tills du fÄr parametrarna i glada grÄ rektanglar till höger.
Om nĂ„gon ville fĂ„ en smak av det gamla — detta lĂ€ge beskrivs i manualen som 10.2 InspektionslĂ€ge. Det aktiveras och fungerar lite annorlunda, men essensen Ă€r ganska tydlig.

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

READALL-lÀget stÀngs automatiskt efter 15 minuter, och vi ska försöka förstÄ vad som Àr anvÀndbart hÀr och vad vi kan justera "i realtid", medan vi Àr i detta lÀge.

Det gÄr att Àndra IP-adresser, aktivera/deaktivera grÀnssnitt, brandvÀggsregler som Àr kommenterade (annars blir det totalt kaos), wifi och sÄnt smÄtt.

Det betyder att det Ànnu inte Àr möjligt att konfigurera mikrotik pÄ ett rimligt sÀtt med hjÀlp av TR-069. Men man kan övervaka ganska bra. Statistiken för grÀnssnitt och deras status, ledigt minne osv. Àr tillgÀnglig.

4.2 Leverera parametrar

LĂ„t oss nu försöka leverera parametrar till routern via TR-069 pĂ„ "naturligt" sĂ€tt. Första offret blir Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Vi hittar det i enhetens All-parametrar. Som ni ser — det Ă€r inte angivet. Det betyder att vilken enhet som helst kan ha valfritt Identity. Nu fĂ„r det vara nog!
Vi markerar rutan i kolumnen create, anger namnet Mr.White och klickar pÄ knappen Update parameters. Vad som hÀnder hÀrnÀst har ni redan gissat. Vid nÀsta kommunikationssession med huvudkontoret, ska routern Àndra sitt Identity.

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Men det rÀcker inte för oss. En parameter som Identity Àr alltid bra att ha till hands nÀr man söker efter en specifik enhet. Vi klickar pÄ parameter namnet och markerar dÀr rutorna Display(D) och Searchable (S). Nyckeln för parametern Àndras till RWSD (Kom ihÄg, namn och nycklar anges pÄ den högsta nivÄn av enhetstypen).

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

VÀrdet visas nu inte bara i den allmÀnna söklistan, utan Àr Àven tillgÀngligt för sökning i Support > Sök > Avancerad form

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Vi initierar provisionering och kollar pÄ Identity. Hej, Mr.White! Nu kan ni inte Àndra er identitet sjÀlva sÄ lÀnge TR-069-klienten Àr aktiv.

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

4.3 Utföra skript

Eftersom vi har kommit fram till att vi inte kan göra utan dem — lĂ„t oss utföra dem.

Men innan vi börjar arbeta med filer — mĂ„ste vi justera direktivet public.url i filen /opt/freeacs-tr069/config/application-config.conf
Vi har fortfarande en testkonfiguration som installerats av ett skript. Kommer ni ihÄg?

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

Vi startar om ACS och gÄr direkt till Filer & Skript.

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Men det som öppnas för oss just nu tillhör enhetstypen, d.v.s. globalt för alla hAP ac lite routrar, oavsett om det Ă€r en filialrouter, hotspot eller capsman. Vi behöver inte den höga nivĂ„n just nu, sĂ„ innan vi arbetar med skript och filer — bör vi skapa en profil. Man kan kalla det för "position" för enheten.

LÄt oss göra vÄr lilla enhet till en tidsserver. En vÀrdig position med en separat mjukvarupaket och ett fÄtal parametrar. Vi gÄr till Easy Provisioning > Profil > Skapa profil och skapar i enhetstypen: hAPaclite profilen timeserver. Vi hade inga parametrar i standardprofilen, sÄ det finns inget att kopiera. Kopiera parametrar frÄn: «kopiera inte...»

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Det finns för nÀrvarande inga parametrar hÀr, men vi kommer att kunna stÀlla in de vi senare vill se pÄ vÄra servrar, som Àr skapade av hAPaclite. Till exempel allmÀnna NTP-serveradresser.
Vi gÄr till enhetens konfiguration och flyttar den till timeserver-profilen.

Nu gÄr vi till Filer & Skript, för att skapa skript, och hÀr vÀntar fantastiskt bekvÀma funktioner pÄ oss.

För att köra ett skript pÄ enheten behöver vi vÀlja Typ: TR069_SCRIPT Mer Àn 40 000 kunder i över 120 lÀnder Namn och MÄlnamn mÄste ha filÀndelsen .alter
För skript kan vi, till skillnad frÄn programvaran, ladda upp en fÀrdig fil eller helt enkelt skriva/redigera den i fÀltet InnehÄll. LÄt oss försöka skriva direkt dÀr.

Och för att se resultatet direkt — lĂ€gg till VLAN till routern pĂ„ ether1.

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

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Vi skriver in, trycker pÄ Ladda upp och klart. VÄrt skript vlan1.alter vÀntar pÄ sin tur.

SÄ, ska vi köra? Nej. Vi mÄste först lÀgga till en grupp för vÄr profil. Grupper ingÄr inte i hÄrdvaruhierarkin, men de behövs för att hitta enheter i UnitType eller Profil och Àr obligatoriska för att köra skript via Advanced Provisioning. Ofta Àr grupper kopplade till platser och har en inbÀddad struktur. LÄt oss skapa en grupp för Ryssland.

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Kan ni förestÀlla er att vi just lyckades begrÀnsa sökningen frÄn "Alla vÀrldens tidsservrar pÄ hAPaclite" till "Alla tidsservrar i Ryssland pÄ hAPaclite"? Det finns fortfarande en stor mÀngd intressant information om grupper, men vi har inte tid. LÄt oss gÄ vidare till skripten.

Advanced Provisioning > Jobb > Skapa jobb

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Eftersom vi Àr i Advanced-lÀge kan vi hÀr ange en massa olika villkor för att starta uppdraget, beteende vid fel, upprepningar och tidsgrÀnser. Jag rekommenderar att ni lÀser allt detta i manualerna eller diskuterar det senare vid implementeringen i produktion. LÄt oss för tillfÀllet bara sÀtta n1 i Stop-regler, sÄ att uppdraget stoppar sÄ snart det genomförts pÄ vÄr 1 enhet.

Vi fyller i det som behövs, och det Àr bara att starta!

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Vi trycker pĂ„ START och vĂ€ntar. Nu kommer rĂ€knaren att rusa med dödade enheter av ett inte helt fĂ€rdigstĂ€llt skript! Nej, sĂ„ klart. SĂ„dana uppdrag tar tid, och det Ă€r vad som skiljer dem frĂ„n skript, Ansible osv. Enheterna begĂ€r sjĂ€lva uppdrag enligt schema eller nĂ€r de dyker upp i nĂ€tverket, ACS hĂ„ller reda pĂ„ vilka enheter som redan fĂ„tt uppdrag och hur de avslutades, och registrerar detta i enhetens parametrar. I vĂ„r grupp finns 1 enhet, men om det hade funnits 1001 — skulle administratören ha startat detta uppdrag och Ă„kt pĂ„ fiske.

Kom igen. Starta om routern eller starta TR-069-klienten igen. Allt borde gÄ smidigt och Mr.White fÄr en ny VLAN. VÄrt uppdrag med Stop rule kommer att gÄ i PAUSED-status. Det betyder att det fortfarande kan startas om eller Àndras. Om du klickar pÄ FINISH kommer uppdraget att arkiveras.

4.4 Uppdaterar programvaran

Detta Àr en mycket viktig punkt, eftersom mjukvaran för Mikrotik Àr modulÀr, men tillÀgg av moduler Àndrar inte den totala versionen av enhetens firmware. VÄr ACS Àr normal, och vi Àr inte vana vid sÄdant.
Nu kommer vi att göra det pÄ ett snabbt och smutsigt sÀtt och stoppa NTP-modulen direkt i den övergripande firmware, men sÄ snart enheten uppdateras kommer vi inte att kunna lÀgga till fler moduler pÄ samma sÀtt.
I produktion Àr det bÀttre att inte tillÀmpa sÄdana trick, och installera moduler som inte Àr obligatoriska för enhetstypen endast via skript.

SÄ det första vi behöver göra Àr att förbereda programvarupaket med rÀtt versioner och arkitekturer, och lÀgga dem pÄ en tillgÀnglig webbserver. För testet funkar vilken som helst som vÄr Mr.White kan nÄ, men för produktion Àr det bÀst att skapa ett sjÀlvuppdaterande spegel för den nödvÀndiga programvaran, som inte Àr skrÀmmande att exponera pÄ webben.
Viktigt! Glöm aldrig att alltid inkludera paketet med tr-069client i uppdateringarna!

Som det visade sig Àr lÀngden pÄ sökvÀgen till paketen mycket viktig! Vid mina försök att anvÀnda nÄgot liknande http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, kraschade Mikrotik i en cyklisk anslutning med resursen, och skickade upprepade TRANSFERCOMPLETE-meddelanden i tr-069-loggen. Jag spenderade en viss mÀngd nervceller pÄ att försöka lista ut vad som var fel. SÄ, för nu, lÀgger vi det i rotmappen, tills vi fÄr klarhet.

SÄ vi ska ha tre npk-filer som Àr tillgÀngliga via http. Jag har fÄtt fram detta

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 mÄste detta formateras i en xml-fil med FileType="1 Firmware Upgrade Image", som vi ska mata in i Mikrotiken. LÄt namnet vara ros.xml.

Gör enligt instruktionerna frÄn 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

Det mÀrks tydligt att det saknas AnvÀndarnamn/Lösenord för att fÄ tillgÄng till laddningsservern. Man kan antingen försöka skriva in detta som i punkt A.3.2.8 i tr-069-protokollet:

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

Eller frÄga direkt hos MikroTik om den maximala söklÀngden för *.npk.

Vi gÄr till de kÀnda Filer & Skript, och skapar dÀr en fil av typen SOFTWARE med Namn:ros.xml, MÄl Namn:ros.xml och Version:6.45.6
Observera! Versionen hÀr mÄste anges exakt i det format som den visas pÄ enheten och överförs i parametern System.X_FREEACS-COM.Device.SoftwareVersion.

VÀlj vÄr xm-fil för att ladda ner, och klart.

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Nu har vi mÄnga sÀtt att uppdatera enheten. Via Wizard i huvudmenyn, genom Advanced Provisioning och uppgifter av typen SOFTWARE, eller helt enkelt gÄ till enhetens konfiguration och trycka pÄ Uppgradera. Vi vÀljer den enklaste vÀgen, annars blir artikeln för lÄng.

TR-069 i Mikrotik. Tester med Freeacs som autokonfigurationsserver för RouterOS

Vi trycker pÄ knappen, initierar provision och klart. Testprogrammet Àr klart. Nu kan vi göra mer med MikroTik.

5. Slutsats

NÀr jag började skriva ville jag först beskriva anslutningen av IP-telefonen och anvÀnda den som exempel för att förklara hur bra det kan vara nÀr TR-069 fungerar smidigt och utan anstrÀngning. Men sedan, i takt med att jag granskade och grÀvde i materialet, insÄg jag att för den som har anslutit MikroTik redan kommer ingen telefon att vara skrÀmmande för sjÀlvstudier.

I princip kan FreeACS, som vi testade, redan tillÀmpas i produktion, men för detta mÄste sÀkerhet, SSL, konfiguration av MikroTiks för automatisk konfiguration efter reset, justering av korrekt tillÀgg av enhetstyp, genomgÄng av webbtjÀnsters och fusion shell-funktionalitet, och mycket mer stÀllas in. Testa, experimentera och skriv fortsÀttningen!

Tack till alla för uppmÀrksamheten! Jag ser fram emot korrigeringar och kommentarer!

Lista över anvÀnda material och anvÀndbara lÀnkar:

ForumtrÄden som jag snubblade över i början av mina sökningar i Àmnet
TR-069 CPE WAN Management Protocol Amendment-6
FreeACS wiki
TR-069-parametrarna i MikroTik och deras motsvarighet till terminalkommandon

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster