I den hÀr artikeln kommer jag att försöka beskriva steg för steg processen för att installera en testserver för ett bra projekt
Syftet med artikeln Àr att pressa kollegor att vÀgra hantera nÀtverksenheter med hjÀlp av fruktansvÀrda rakes och kryckor, i form av sjÀlvskrivna manus, Dude, Ansible, etc. Och, vid detta tillfÀlle, orsaka fyrverkerier och massglÀdje i rutor.
0. Val
Varför freeacs och inte genie-acs som nÀmns i
Eftersom det finns spanska publikationer om genie-acs med mikrotik. HÀr Àr de
1. Freeacs installation
Vi kommer att installera i Centos7, och eftersom enheterna överför mycket data, och ACS arbetar aktivt med databasen, kommer vi inte att vara giriga pÄ resurser. För bekvÀmt arbete kommer vi att vÀlja 2 CPU-kÀrnor, 4 GB RAM och 16 GB snabb lagring ssd raid10. Jag kommer att installera freeacs i Proxmox VE lxc-behÄllaren, och 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 ett test, sÄ lÄt oss inte vara smarta, utan bara anvÀnda det vÀnligt 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 skriptet Àr klart kan du omedelbart komma in i webbgrÀnssnittet via maskinens ip, med referenserna admin/freeacs
HÀr Àr ett sÄ fint minimalistiskt grÀnssnitt, och hur coolt och snabbt allt blev
2. Freeacs initiala installation
Den grundlÀggande styrenheten för ACS Àr enheten eller CPE (Customer Premises Equipment). Och viktigast av allt, det vi behöver för att hantera enheter Àr deras enhetstyp, dvs. en hÄrdvarumodell som definierar en uppsÀttning konfigurerbara parametrar för en enhet och dess mjukvara. Men tills vi vet hur man skaffar en ny enhetstyp korrekt, skulle det vara bÀst att frÄga enheten sjÀlv om detta genom att aktivera upptÀcktslÀget.
I produktionen Àr detta lÀge absolut omöjligt att anvÀnda, men vi mÄste starta motorn sÄ snart som möjligt och se systemets möjligheter. Alla grundlÀggande instÀllningar lagras i /opt/freeacs-*. DÀrför öppnar vi
vi /opt/freeacs-tr069/config/application-config.conf
, vi hittar
discovery.mode = false
och byt till
discovery.mode = true
Dessutom skulle vi vilja öka de maximala filstorlekarna som nginx och mysql kommer att fungera med. För mysql, lÀgg till raden i /etc/my.cnf
max_allowed_packet=32M
, och för nginx, lÀgg till i /etc/nginx/nginx.conf
client_max_body_size 32m;
till http-sektionen. Annars kommer vi att kunna arbeta med firmware inte mer Àn 1M.
Vi startar om och vi Àr redo att arbeta med enheter.
Och i rollen som enheten (CPE) kommer vi att ha en arbetsnarkoman bebis
Innan en testanslutning Àr det lÀmpligt att manuellt konfigurera CPE till den lÀgsta fungerande konfigurationen sÄ att parametrarna som du vill konfigurera i framtiden inte Àr tomma. För en router kan du minimalt aktivera en dhcp-klient pÄ ether1, installera tr-069client-paketet och stÀlla in lösenord.
3. Anslut Mikrotik
Det Ă€r önskvĂ€rt att ansluta alla enheter med ett giltigt serienummer som inloggning. DĂ„ blir allt klart för dig i loggarna. NĂ„gon rĂ„der att anvĂ€nda WAN MAC - tro inte pĂ„ det. NĂ„gon anvĂ€nder ett gemensamt inloggnings-/passeringspar för alla â kringgĂ„ dem.
Ăppna tr-069-loggen för att övervaka "förhandlingar"
tail -f /var/log/freeacs-tr069/tr069-conversation.log
Ăppna winbox, menypunkt TR-069.
AC URL: http://10.110.0.109/tr069/prov
(ersÀtt med din IP)
AnvÀndarnamn: 9249094C26CB (kopiera serie frÄn system>routerboard)
Lösenord: 123456 (behövs inte för upptÀckt, men för att vara)
Vi Àndrar inte det periodiska informationsintervallet. Vi kommer att utfÀrda denna instÀllning via vÄr ACS
Nedan finns instĂ€llningarna för fjĂ€rrinitiering av anslutningen, men jag kunde inte fĂ„ mikrotik att arbeta med den med ett svep. Ăven om fjĂ€rrbegĂ€ran fungerar direkt med telefoner. Ska ta reda pĂ„ det.
Efter att ha tryckt pÄ knappen Apply kommer data att utbytas i terminalen och i Freeacs webbgrÀnssnitt kan du se vÄr router med den automatiskt skapade Unit Type "hAPaclite".
Routern Àr ansluten. Du kan titta pÄ den automatiskt genererade enhetstypen. Vi öppnar Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite
. Vad finns inte dĂ€r! SĂ„ mĂ„nga som 928 parametrar (jag spanade pĂ„ skalet). Mycket eller lite â vi fĂ„r reda pĂ„ det senare, men för nu ska vi bara ta en snabb titt. Det Ă€r vad enhetstyp betyder. Detta Ă€r en lista över alternativ som stöds med nycklar men inga vĂ€rden. VĂ€rden stĂ€lls in pĂ„ nivĂ„erna nedan - Profiler och Enheter.
4. Konfigurera Mikrotik
Det Àr dags att ladda ner
Och vi sjÀlva, i webbgrÀnssnittet, klicka pÄ pennan bredvid vÄr enhet och gÄ till enhetskonfigurationslÀget. Det ser ut sÄ hÀr:
LÄt oss kort analysera vad som Àr intressant pÄ denna sida:
Enhetskonfigurationsblock
- Profil: Detta Àr profilen inom enhetstypen. Hierarkin Àr sÄ hÀr:
UnitType > Profile > Unit
. Det vill sÀga att vi kan skapa till exempel profilerhAPaclite > hotspot
ĐžhAPaclite > branch
, men inom enhetsmodellen
Blockera provisionering med knappar
Tips antyder att alla knappar i provisioneringsblocket omedelbart kan tillÀmpa konfigurationen via ConnectionRequestURL. Men, som jag sa ovan, detta fungerar inte, sÄ efter att ha tryckt pÄ knapparna mÄste du starta om tr-069-klienten pÄ mikrotik för att manuellt starta provisionering.
- Freq/Spread: Hur mĂ„nga gĂ„nger i veckan som ska levereras konfigurationen ± % för att minska belastningen pĂ„ servern och kommunikationskanalerna. Som standard kostar det 7/20, d.v.s. varje dag ± 20 % och tipsa om hur det Ă€r pĂ„ nĂ„gra sekunder. Ăn sĂ„ lĂ€nge Ă€r det ingen idĂ© att Ă€ndra leveransfrekvensen, eftersom. det blir extra brus i loggarna och inte alltid förvĂ€ntad tillĂ€mpning av instĂ€llningar
Blockering av provisioneringshistorik (senaste 48 timmarna)
- UtseendemÀssigt Àr berÀttelsen som en berÀttelse, men genom att klicka pÄ titeln kommer du till ett bekvÀmt databassökverktyg med regexp och godsaker
Blockparametrar
Det största och viktigaste blocket, dÀr parametrarna för denna enhet faktiskt stÀlls in och lÀses. Nu ser vi bara de viktigaste systemparametrarna, utan vilka ACS inte kan arbeta med enheten. Men vi kommer ihÄg att vi har dem i enhetstyp - 928. LÄt oss se alla vÀrden och bestÀmma vad Mikrotik Àter med.
4.1 LĂ€sa parametrarna
Klicka pĂ„ knappen LĂ€s alla i provisioneringsblocket. Blocket har en röd inskription. En kolumn visas till höger CPE (nuvarande) vĂ€rde. Ăndrade ProvisioningMode till READALL i systeminstĂ€llningar.
Och... ingenting kommer att hÀnda förutom ett meddelande i System.X_FREEACS-COM.IM.Message Kick failed at...
.
Starta om TR-069-klienten eller starta om routern och fortsÀtt uppdatera webblÀsarsidan tills du fÄr parametrarna i de glada grÄ rutorna till höger
Om nÄgon vill ta en klunk av den gamla rutinerade sÄ beskrivs detta lÀge i manualen som 10.2 InspektionslÀge. Den tÀnds och fungerar lite annorlunda, men essensen beskrivs ganska bra
READALL-lÀget stÀngs av efter 15 minuter, och vi kommer att försöka ta reda pÄ vad som Àr anvÀndbart hÀr och vad som kan korrigeras i farten medan vi Àr i det hÀr lÀget.
Du kan Àndra IP-adresser, aktivera / inaktivera grÀnssnitt, brandvÀggsregler, som Àr med kommentarer (annars en komplett röra), Wi-Fi, och sÄ vidare smÄsaker.
Det vill sÀga, det Àr Ànnu inte möjligt att konfigurera mikrotik med enbart TR-069-verktyg. Men du kan övervaka mycket bra. Statistik över grÀnssnitt och deras status, ledigt minne etc. finns tillgÀnglig.
4.2 Leverera parametrar
LÄt oss nu försöka leverera parametrarna till routern, via tr-069, pÄ ett "naturligt" sÀtt. Det första offret kommer att vara Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Vi hittar det i parametrarna för All-enheten. Som du kan se Àr den inte instÀlld. Det betyder att varje enhet sjÀlv kan ha vilken identitet som helst. Nog att tolerera detta!
Vi petar en daw i skapa kolumnen, anger namnet Mr.White och petar pÄ knappen Uppdatera parametrar. Vad som kommer att hÀnda hÀrnÀst har du redan gissat. Vid nÀsta kommunikationssession med huvudkontoret mÄste routern Àndra sin identitet.
Men detta rÀcker inte för oss. En parameter som Identitet Àr bra att alltid ha till hands nÀr man letar efter rÀtt enhet. Vi petar i namnet pÄ parametern och sÀtter kryssrutorna Visa (D) och Sökbar (S) dÀr. Parameternyckeln Àndras till RWSD (Kom ihÄg att namn och nycklar Àr instÀllda pÄ högsta enhetstypnivÄ)
VÀrdet visas nu inte bara i den allmÀnna söklistan utan Àven tillgÀngligt för sökning i Support > Search > Advanced form
Vi initierar försörjning och tittar pÄ Identitet. Hej Mr. White! Nu kommer du inte att kunna Àndra din identitet sjÀlv medan tr-069client körs
4.3 Exekvera skript
Eftersom vi har fÄtt reda pÄ att det inte gÄr utan dem, lÄt oss uppfylla dem.
Men innan vi börjar arbeta med filer mÄste vi korrigera direktivet public.url
i fil /opt/freeacs-tr069/config/application-config.conf
NÀr allt kommer omkring har vi fortfarande en testkonfiguration installerad med ett skript. Har du inte glömt?
# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}
Starta om ACS och gÄ direkt till Files & Scripts
.
Men det som öppnas hos oss nu tillhör Enhetstypen, d.v.s. globalt till alla hAP ac lite-routrar, oavsett om det Àr en filialrouter, hotspot eller capsman. Vi behöver inte en sÄ hög nivÄ Ànnu, dÀrför bör du skapa en profil innan du arbetar med skript och filer. Du kan kalla det sjÀlv, som enhetens "position".
LÄt oss göra vÄr baby till en tidsserver. Hyfsat lÀge med ett separat mjukvarupaket och ett litet antal parametrar. LÄt oss gÄ till Easy Provisioning > Profile > Create Profile
och skapa en profil i Unit Type: hAPaclite tidsserver. Vi hade inga parametrar i standardprofilen, sÄ det finns inget att kopiera Kopiera parametrar frÄn: "kopiera inte..."
Det finns inga parametrar hÀr alls Àn, men det kommer att vara möjligt att stÀlla in de som vi senare vill se pÄ vÄra tidsservrar gjutna frÄn hAPaclite. Till exempel de allmÀnna adresserna till NTP-servrar.
LÄt oss gÄ till enhetskonfigurationen och flytta den till tidsserverprofilen
Ăntligen gĂ„r vi till Files & Scripts
, gör manus, och hÀr vÀntar vi pÄ otroligt bekvÀma bullar.
För att exekvera ett skript pÄ en enhet mÄste vi vÀlja Typ: TR069_SCRIPT а Namn О MÄlnamn mÄste ha tillÀgget .alter
Samtidigt kan du för skript, till skillnad frÄn programvara, antingen ladda upp en fÀrdig fil eller helt enkelt skriva / redigera den i fÀltet InnehÄll. LÄt oss försöka skriva precis dÀr.
Och sÄ att du omedelbart kan se resultatet - lÀgg till vlan-routern till ether1
/interface vlan
add interface=ether1 name=vlan1 vlan-id=1
Vi kör, vi trycker Ladda och gjort. VÄrt manus vlan1.alter
vÀntar i kulisserna.
NÄvÀl, lÄt oss gÄ? Nej. Vi mÄste ocksÄ lÀgga till en grupp för vÄr profil. Grupper ingÄr inte i utrustningshierarkin, utan behövs för att söka efter enheter i UnitType eller Profile och krÀvs för skriptkörning genom Advanced Provisioning. Vanligtvis Àr grupper associerade med platser och har en kapslad struktur. LÄt oss bilda en Rysslandsgrupp.
FörestÀll dig att vi precis har begrÀnsat vÄr sökning frÄn "Alla vÀrldens tidsservrar pÄ hAPaclite" till "Alla ryska tidsservrar pÄ hAPaclite". Det finns fortfarande ett stort lager av allt intressant med grupper, men vi har inte tid. Vi körde redan in i manus.
Advanced Provisioning > Job > Create Job
Eftersom vi trots allt Àr i avancerat lÀge kan du hÀr specificera en massa olika villkor för start av uppgiften, felbeteende, upprepningar och timeouts. Jag rekommenderar att du lÀser allt detta i manualerna eller diskuterar det senare nÀr du implementerar det i produktionen. För nu, lÄt oss bara stÀlla in n1 till Stop-regler sÄ att uppgiften stoppas sÄ snart den Àr klar pÄ vÄr 1:a enhet.
Vi fyller i det nödvÀndiga, och det ÄterstÄr bara att lansera!
Tryck pÄ START och vÀnta. Nu kommer rÀknaren för enheter som dödats av det underdebuggade skriptet att köras snabbt! SjÀlvklart inte. SÄdana uppgifter ges under lÄng tid, och detta Àr deras skillnad frÄn skript, Ansible och sÄ vidare. Enheter ansöker sjÀlva om uppgifter enligt ett schema eller som de dyker upp i nÀtverket, ACS hÄller reda pÄ vilka enheter som redan fÄtt uppgifter, och hur de slutade, och skriver detta till enhetens parametrar. Det finns 1 enhet i vÄr grupp, och om det fanns 1001 av dem skulle administratören starta den hÀr uppgiften och fiska
Kom igen. Starta redan om routern eller starta om TR-069-klienten. Allt ska gÄ smidigt och Mr.White fÄr ett nytt vlan. Och vÄr stoppregeluppgift kommer att gÄ in i PAUS-status. Det vill sÀga att den fortfarande kan startas om eller Àndras. Om du trycker pÄ FINISH skrivs uppgiften av till arkivet
4.4 Uppdatering av programvaran
Detta Àr en mycket viktig punkt, eftersom Mikrotiks firmware Àr modulÀr, men att lÀgga till moduler Àndrar inte enhetens övergripande firmwareversion. VÄr ACS Àr normal och inte van vid detta.
Nu kommer vi att göra det i stil med quick & dirty, och trycka in NTP-modulen i den allmÀnna firmware direkt, men sÄ fort versionen Àr uppdaterad pÄ enheten kommer vi inte att kunna lÀgga till ytterligare en modul pÄ samma sÀtt .
I produktionen Àr det bÀttre att inte anvÀnda ett sÄdant trick och installera moduler som Àr valfria för Unit Type endast med skript.
SÄ det första vi behöver göra Àr att förbereda mjukvarupaket med de nödvÀndiga versionerna och arkitekturen och lÀgga dem pÄ nÄgon tillgÀnglig webbserver. För testet kommer alla som kan nÄ vÄr Mr.White att gÄ, och för produktionen Àr det bÀttre att bygga en automatisk uppdateringsspegel av den nödvÀndiga programvaran, som inte Àr skrÀmmande att lÀgga pÄ webben
Viktig! Glöm inte att alltid inkludera tr-069client-paketet i uppdateringar!
Som det visade sig Àr lÀngden pÄ vÀgen till paketen mycket viktig! NÀr jag försöker anvÀnda nÄgot som http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk
, föll mikrotik i en cyklisk anslutning med resursen och skickade upprepade TRANSFERCOMPLETE-loggar till tr-069. Och jag slösade bort nÄgra nervceller pÄ att försöka lista ut vad som var fel. DÀrför, medan vi lÀgger det i roten, tills förtydligandet
SÄ vi borde ha tre npk-filer tillgÀngliga via http. Jag fick det sÄ hÀr
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 till en xml-fil med FileType = "1 Firmware Upgrade Image", som vi kommer att mata till Mikrotik. LÄt namnet vara ros.xml
Vi gör enligt instruktionerna frÄn
<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 brist Àr uppenbar Username/Password
för att komma Ät nedladdningsservern. Du kan antingen försöka skriva in det som i avsnitt A.3.2.8 i tr-069-protokollet:
<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 frÄga Mikrotik-tjÀnstemÀnnen direkt, samt om den maximala vÀglÀngden till * .npk
Vi gÄr till det kÀnda Files & Scripts
, och skapa en SOFTWARE-fil dÀr med Namn:ros.xml, MÄlnamn:ros.xml och Version:6.45.6
UppmÀrksamhet! Versionen mÄste anges hÀr exakt i det format som den visas i pÄ enheten och skickas i parametern System.X_FREEACS-COM.Device.SoftwareVersion
.
Vi vÀljer vÄr xm-fil för att ladda och du Àr klar.
Nu har vi mÄnga sÀtt att uppdatera enheten. Genom guiden i huvudmenyn, genom Advanced Provisioning och uppgifter med PROGRAMVARA-typen, eller gÄ bara till enhetskonfigurationen och klicka pÄ Uppgradera. LÄt oss vÀlja det enklaste sÀttet, annars Àr artikeln svullen.
Vi trycker pÄ knappen, initierar försörjning och du Àr klar. Testprogrammet Àr avslutat. Nu kan vi göra mer med mikrotik.
5. slutsats
NÀr jag började skriva ville jag först beskriva anslutningen av en ip-telefon, och anvÀnda dess exempel för att förklara hur coolt det kan vara nÀr tr-069 fungerar enkelt och utan anstrÀngning. Men sedan, nÀr jag gick vidare och grÀvde i materialet, tÀnkte jag att för de som kopplade upp Mikrotik, skulle ingen telefon vara skrÀmmande för sjÀlvstudier.
I princip kan Freeacs, som vi testade, redan anvÀndas i produktionen, men för detta mÄste du konfigurera sÀkerhet, SSL, du mÄste konfigurera mikrotik för autokonfiguration efter ÄterstÀllning, du mÄste felsöka rÀtt tillÀgg av Unit Type, demontera arbete med webbtjÀnster och fusionsskal och mycket mer. Prova, uppfinna och skriv en uppföljare!
Alla, tack för er uppmÀrksamhet! Jag tar gÀrna emot korrigeringar och kommentarer!
Lista över anvÀnt material och anvÀndbara lÀnkar:
KĂ€lla: will.com