I denne artikkelen vil jeg prøve å beskrive trinn for trinn prosessen med å installere en testserver for et flott prosjekt
Hensikten med artikkelen er å presse kolleger til å nekte å administrere nettverksenheter ved å bruke forferdelige raker og krykker, i form av selvskrevne skript, Dude, Ansible, etc. Og, i denne anledning, forårsake fyrverkeri og masseglede i firkanter.
0. Valget
Hvorfor freeacs og ikke genie-acs nevnt i
Fordi det er spanske publikasjoner om genie-acs med mikrotik. Her er de
1. Freeacs installasjon
Vi skal installere i Centos7, og siden enhetene overfører mye data, og ACS jobber aktivt med databasen, vil vi ikke være grådige med ressurser. For komfortabelt arbeid vil vi velge 2 CPU-kjerner, 4 GB RAM og 16 GB rask lagring ssd raid10. Jeg vil installere freeacs i Proxmox VE lxc-beholderen, og du kan jobbe i ethvert verktøy som passer for deg.
Ikke glem å stille inn riktig tid på maskinen med ACS.
Systemet vil være en test, så la oss ikke være smarte, og bare bruke det vennlige installeringsskriptet, 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 skriptet er ferdig, kan du umiddelbart komme inn i nettgrensesnittet ved ip-en til maskinen, med legitimasjonen admin/freeacs
Her er et så fint minimalistisk grensesnitt, og hvor kult og raskt alt ble
2. Freeacs første oppsett
Den grunnleggende kontrollenheten for ACS er enheten eller CPE (Customer Premises Equipment). Og viktigst av alt, det vi trenger for å administrere enheter er deres enhetstype, dvs. en maskinvaremodell som definerer et sett med konfigurerbare parametere for en enhet og dens programvare. Men inntil vi vet hvordan du får en ny enhetstype riktig, ville det være best å spørre enheten selv om dette ved å slå på oppdagelsesmodus.
I produksjon er denne modusen absolutt umulig å bruke, men vi må starte motoren så snart som mulig og se funksjonene til systemet. Alle grunnleggende innstillinger er lagret i /opt/freeacs-*. Derfor åpner vi
vi /opt/freeacs-tr069/config/application-config.conf
, Vi finner
discovery.mode = false
og endre til
discovery.mode = true
I tillegg ønsker vi å øke de maksimale filstørrelsene som nginx og mysql vil fungere med. For mysql, legg til linjen i /etc/my.cnf
max_allowed_packet=32M
, og for nginx, legg til i /etc/nginx/nginx.conf
client_max_body_size 32m;
til http-delen. Ellers vil vi ikke kunne jobbe med fastvare mer enn 1M.
Vi starter på nytt, og vi er klare til å jobbe med enheter.
Og i rollen som enheten (CPE) vil vi ha en arbeidsnarkoman baby
Før en testtilkobling anbefales det å manuelt konfigurere CPE til minimum arbeidskonfigurasjon slik at parametrene du ønsker å konfigurere i fremtiden ikke er tomme. For en ruter kan du minimalt aktivere en dhcp-klient på ether1, installere tr-069client-pakken og angi passord.
3. Koble til Mikrotik
Det er ønskelig å koble til alle enheter med et gyldig serienummer som innlogging. Da vil alt være klart for deg i loggene. Noen anbefaler å bruke WAN MAC - ikke tro det. Noen bruker et felles pålogging/pass-par for alle – omgå dem.
Åpning av tr-069-loggen for å overvåke "forhandlinger"
tail -f /var/log/freeacs-tr069/tr069-conversation.log
Åpne winbox, menypunkt TR-069.
AC URL: http://10.110.0.109/tr069/prov
(erstatt med din IP)
Brukernavn: 9249094C26CB (kopi serie fra system>ruterkort)
Passord: 123456 (ikke nødvendig for oppdagelse, men for å være)
Vi endrer ikke det periodiske informasjonsintervallet. Vi vil utstede denne innstillingen gjennom vår ACS
Nedenfor er innstillingene for ekstern initialisering av tilkoblingen, men jeg kunne ikke få mikrotik til å jobbe med den med et stikk. Selv om ekstern forespørsel fungerer ut av esken med telefoner. Skal finne ut av det.
Etter å ha trykket på Apply-knappen vil data utveksles i terminalen, og i Freeacs webgrensesnitt kan du se ruteren vår med den automatisk opprettede Unit Type "hAPaclite".
Ruteren er tilkoblet. Du kan se på den automatisk genererte enhetstypen. Vi åpner Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite
. Hva er ikke der! Så mange som 928 parametere (jeg spionerte på skallet). Mye eller litt – vi finner ut av det senere, men foreløpig tar vi bare en rask titt. Det er hva enhetstype betyr. Dette er en liste over støttede alternativer med nøkler, men ingen verdier. Verdier er satt i nivåene nedenfor - Profiler og Enheter.
4. Konfigurer Mikrotik
Det er på tide å laste ned
Og selv, i webgrensesnittet, klikker du på blyanten ved siden av enheten vår og går til enhetskonfigurasjonsmodus. Det ser slik ut:
La oss kort analysere hva som er interessant på denne siden:
Enhetskonfigurasjonsblokk
- Profil: Dette er profilen innenfor enhetstypen. Hierarkiet er slik:
UnitType > Profile > Unit
. Det vil si at vi kan lage for eksempel profilerhAPaclite > hotspot
иhAPaclite > branch
, men innenfor enhetsmodellen
Blokker klargjøring med knapper
Hint antyder at alle knappene i klargjøringsblokken umiddelbart kan bruke konfigurasjonen via ConnectionRequestURL. Men, som jeg sa ovenfor, fungerer ikke dette, så etter å ha trykket på knappene, må du starte tr-069-klienten på mikrotik på nytt for å starte levering manuelt.
- Freq/Spread: Hvor mange ganger i uken å levere konfigurasjonen ± % for å redusere belastningen på serveren og kommunikasjonskanalene. Som standard koster det 7/20, d.v.s. hver dag ± 20 % og hint hvordan det er på sekunder. Foreløpig er det ingen vits i å endre leveringsfrekvensen, pga. det vil være ekstra støy i loggene og ikke alltid forventet bruk av innstillinger
Blokkering av klargjøringshistorikk (siste 48 timer)
- Utseendemessig er historien som en historie, men ved å klikke på tittelen kommer du til et praktisk databasesøkeverktøy med regexp og godbiter
Blokkparametere
Den største og viktigste blokken, der faktisk parametrene for denne enheten er satt og lest. Nå ser vi bare de viktigste systemparametrene, uten hvilke ACS ikke kan fungere med enheten. Men vi husker at vi har dem i Unit Type - 928. La oss se alle verdiene, og bestemme hva Mikrotik spiser med.
4.1 Lese parametrene
I klargjøringsblokken klikker du på Les alle-knappen. Blokken har en rød inskripsjon. En kolonne vises til høyre CPE (nåværende) verdi. Endret ProvisioningMode til READALL i systeminnstillingene.
Og... ingenting vil skje bortsett fra en melding i System.X_FREEACS-COM.IM.Message Kick failed at...
.
Start TR-069-klienten på nytt eller start ruteren på nytt, og fortsett å oppdatere nettlesersiden til du får parametrene i de muntre grå boksene til høyre
Hvis noen vil ta en slurk av den gamle erfarne, er denne modusen beskrevet i manualen som 10.2 Inspeksjonsmodus. Den slår seg på og fungerer litt annerledes, men essensen er ganske beskrevet
READALL-modusen vil slå seg av etter 15 minutter, og vi vil prøve å finne ut hva som er nyttig her, og hva som kan rettes på farten mens vi er i denne modusen.
Du kan endre IP-adresser, aktivere / deaktivere grensesnitt, brannmurregler, som er med kommentarer (ellers et komplett rot), Wi-Fi, og så videre småting.
Det vil si at det ennå ikke er mulig å konfigurere mikrotik med bare TR-069-verktøy. Men du kan overvåke veldig bra. Statistikk over grensesnitt og deres status, ledig minne osv. er tilgjengelig.
4.2 Levere parametere
La oss nå prøve å levere parameterne til ruteren, via tr-069, på en "naturlig" måte. Det første offeret vil være Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Vi finner det i parametrene til All-enheten. Som du kan se, er den ikke satt. Dette betyr at enhver enhet selv kan ha en hvilken som helst identitet. Nok tåler dette!
Vi stikker en daw i opprette-kolonnen, setter navnet Mr.White og stikker på knappen Oppdater parametere. Hva som vil skje videre, har du allerede gjettet. Ved neste kommunikasjonsøkt med hovedkvarteret må ruteren endre sin identitet.
Men dette er ikke nok for oss. En parameter som Identitet er god å alltid ha for hånden når man leter etter den rette enheten. Vi stikker i navnet på parameteren og setter avmerkingsboksene Vis (D) og Søkbar (S) der. Parameternøkkelen endres til RWSD (Husk, navn og nøkler er satt på høyeste enhetstypenivå)
Verdien vises nå ikke bare i den generelle søkelisten, men også tilgjengelig for søk i Support > Search > Advanced form
Vi setter i gang tilbud og ser på Identitet. Hei Mr. White! Nå vil du ikke kunne endre identiteten din selv mens tr-069client kjører
4.3 Utføre skript
Siden vi har funnet ut at det ikke er noen vei uten dem, la oss oppfylle dem.
Men før vi begynner å jobbe med filer, må vi korrigere direktivet public.url
i fil /opt/freeacs-tr069/config/application-config.conf
Tross alt har vi fortsatt en testkonfigurasjon installert med ett skript. Har du ikke glemt?
# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}
Start ACS på nytt og gå rett til Files & Scripts
.
Men det som nå åpnes hos oss tilhører Enhetstypen, d.v.s. globalt til alle hAP ac lite-rutere, enten det er en filialruter, hotspot eller capsman. Vi trenger ikke et så høyt nivå ennå, derfor bør du opprette en profil før du arbeider med skript og filer. Du kan kalle det selv, som "posisjonen" til enheten.
La oss gjøre babyen vår til en tidstjener. Grei posisjon med en separat programvarepakke og et lite antall parametere. La oss gå til Easy Provisioning > Profile > Create Profile
og lag en profil i Unit Type:hAPaclite tidsserver. Vi hadde ingen parametere i standardprofilen, så det er ingenting å kopiere Kopier parametere fra: "ikke kopier..."
Det er ingen parametere her i det hele tatt, men det vil være mulig å sette de som vi senere vil se på våre tidsservere støpt fra hAPaclite. For eksempel de generelle adressene til NTP-servere.
La oss gå til enhetskonfigurasjonen og flytte den til tidsserverprofilen
Endelig går vi til Files & Scripts
, lag manus, og her venter vi på utrolig praktiske boller.
For å utføre et skript på en enhet, må vi velge Type: TR069_SCRIPT а Navn и Målnavn må ha filtypen .alter
Samtidig, for skript, i motsetning til programvare, kan du enten laste opp en ferdig fil, eller ganske enkelt skrive / redigere den i feltet Innhold. La oss prøve å skrive akkurat der.
Og slik at du umiddelbart kan se resultatet - legg vlan-ruteren til ether1
/interface vlan
add interface=ether1 name=vlan1 vlan-id=1
Vi kjører, vi trykker Last opp og ferdig. Manuset vårt vlan1.alter
venter i vingene.
Vel, la oss gå? Nei. Vi må også legge til en gruppe for profilen vår. Grupper er ikke inkludert i utstyrshierarkiet, men er nødvendige for å søke etter enheter i UnitType eller Profile og kreves for skriptkjøring gjennom Advanced Provisioning. Vanligvis er grupper assosiert med lokasjoner og har en nestet struktur. La oss lage en Russland-gruppe.
Tenk deg at vi nettopp har begrenset søket vårt fra "All verdens tidsservere på hAPaclite" til "Alle russiske tidsservere på hAPaclite". Det er fortsatt et stort lag med alt interessant med grupper, men vi har ikke tid. La oss komme inn på manusene.
Advanced Provisioning > Job > Create Job
Siden vi tross alt er i avansert modus, kan du her spesifisere en haug med forskjellige betingelser for start av oppgaven, feilatferd, repetisjoner og tidsavbrudd. Jeg anbefaler å lese alt dette i manualene eller diskutere det senere når du implementerer det i produksjon. For nå, la oss bare sette n1 til Stoppregler slik at oppgaven stopper så snart den er fullført på vår 1. enhet.
Vi fyller inn det nødvendige, og det gjenstår bare å lansere!
Trykk på START og vent. Nå vil telleren for enheter drept av det underfeilsøkte skriptet kjøre raskt! Selvfølgelig ikke. Slike oppgaver er gitt i lang tid, og dette er forskjellen deres fra skript, Ansible, og så videre. Enheter søker selv om oppgaver på en tidsplan eller slik de vises på nettverket, ACS holder styr på hvilke enheter som allerede har fått oppgaver, og hvordan de endte, og skriver dette til enhetens parametere. Det er 1 enhet i gruppen vår, og hvis det var 1001 av dem, ville administratoren startet denne oppgaven og fisket
Kom igjen. Start allerede ruteren på nytt eller start TR-069-klienten på nytt. Alt skal gå knirkefritt og Mr.White vil få et nytt vlan. Og vår stoppregeloppgave vil gå inn i PAUSE-statusen. Det vil si at den fortsatt kan startes på nytt eller endres. Trykker du FINISH vil oppgaven bli skrevet av til arkivet
4.4 Oppdatering av programvaren
Dette er et veldig viktig poeng, siden Mikrotik-fastvaren er modulær, men å legge til moduler endrer ikke den generelle fastvareversjonen av enheten. Vår ACS er normal og ikke vant til dette.
Nå skal vi gjøre det i stil med quick & dirty, og skyve NTP-modulen inn i den generelle fastvaren med en gang, men så snart versjonen er oppdatert på enheten, vil vi ikke kunne legge til en annen modul på samme måte .
I produksjon er det bedre å ikke bruke et slikt triks, og installere moduler som er valgfrie for Unit Type bare med skript.
Så det første vi må gjøre er å forberede programvarepakker med de nødvendige versjonene og arkitekturen, og legge dem på en tilgjengelig webserver. For testen vil alle som kan nå vår Mr.White gå, og for produksjon er det bedre å bygge et automatisk oppdateringsspeil av nødvendig programvare, som ikke er skummelt å legge på nettet
Viktig! Ikke glem å alltid inkludere tr-069client-pakken i oppdateringer!
Som det viste seg, er lengden på banen til pakkene veldig viktig! Når jeg prøver å bruke noe som http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk
, mikrotik falt i en syklisk forbindelse med ressursen, og sendte gjentatte TRANSFERCOMPLETE-logger til tr-069. Og jeg kastet bort noen nerveceller på å prøve å finne ut hva som var galt. Derfor, mens vi legger det i roten, inntil avklaring
Så vi bør ha tre npk-filer tilgjengelig via http. Jeg fikk det slik
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
Nå må dette formateres til en xml-fil med FileType = "1 Firmware Upgrade Image", som vi vil mate til Mikrotik. La navnet være ros.xml
Vi gjør etter instruksjonene fra
<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 å få tilgang til nedlastingsserveren. Du kan enten prøve å skrive det inn som i avsnitt 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ør Mikrotik-tjenestemennene direkte, samt om maksimal veilengde til * .npk
Vi går til det kjente Files & Scripts
, og lag en SOFTWARE-fil der med Navn:ros.xml, Målnavn:ros.xml og Versjon:6.45.6
Merk følgende! Versjonen må spesifiseres her nøyaktig i formatet som den vises på enheten og sendes i parameteren System.X_FREEACS-COM.Device.SoftwareVersion
.
Vi velger xm-filen vår for lasting og du er ferdig.
Nå har vi mange måter å oppdatere enheten på. Gjennom veiviseren i hovedmenyen, gjennom Advanced Provisioning og oppgaver med SOFTWARE-typen, eller bare gå til enhetskonfigurasjonen og klikk Oppgrader. La oss velge den enkleste måten, ellers er artikkelen hoven.
Vi trykker på knappen, setter i gang provisjon og du er ferdig. Testprogrammet er gjennomført. Nå kan vi gjøre mer med mikrotik.
5. Konklusjon
Da jeg begynte å skrive, ønsket jeg først å beskrive tilkoblingen til en ip-telefon, og bruke eksemplet til å forklare hvor kult det kan være når tr-069 fungerer enkelt og uanstrengt. Men så, mens jeg gikk videre og gravde i materialene, tenkte jeg at for de som koblet til Mikrotik, ville ingen telefon være skummel for selvstudier.
I prinsippet kan Freeacs, som vi testet, allerede brukes i produksjon, men for dette må du konfigurere sikkerhet, SSL, du må konfigurere mikrotikk for autokonfigurasjon etter tilbakestilling, du må feilsøke riktig tillegg av Unit Type, demontere arbeid med webtjenester og fusion shell, og mye mer. Prøv, oppfinn og skriv en oppfølger!
Alle sammen, takk for oppmerksomheten! Jeg blir glad for rettelser og kommentarer!
Liste over brukte materialer og nyttige lenker:
Kilde: www.habr.com