TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

En ĉi tiu artikolo, mi provos priskribi paŝon post paŝo la procezon de instalado de testa servilo de bonega projekto freeacs al plene funkcia stato, kaj montru praktikajn teknikojn por labori kun mikrotik: agordo per parametroj, skripto-ekzekuto, ĝisdatigo, instalado de pliaj moduloj ktp.

La celo de la artikolo estas puŝi kolegojn rifuzi administri retajn aparatojn uzante terurajn rastilojn kaj lambastonojn, en formo de memskribitaj skriptoj, Dude, Ansible, ktp. Kaj, ĉi-okaze, kaŭzi artfajraĵon kaj amasan ĝojon en la kvadratoj.

0 La elekto

Kial freeacs kaj ne genie-acs menciitaj en mikrotik-wikikiom pli viva?
Ĉar ekzistas hispanaj eldonaĵoj pri genie-acs kun mikrotik. Ĉi tie ili estas pdf и видео de la pasintjara MUM. Aŭtomataj bildstrioj sur diapozitivoj estas bonegaj, sed mi ŝatus foriri de la koncepto verki skriptojn, ruli skriptojn, ruli skriptojn...

1. Freeacs-instalado

Ni instalos en Centos7, kaj ĉar la aparatoj transdonas multajn datumojn, kaj ACS aktive laboras kun la datumbazo, ni ne avidas rimedojn. Por komforta laboro, ni elektos 2 CPU-kernojn, 4GB de RAM kaj 16GB de rapida stokado ssd raid10. Mi instalos freeacs en la Proxmox VE lxc-ujo, kaj vi povas labori en iu ajn ilo, kiu taŭgas por vi.
Ne forgesu agordi la ĝustan tempon sur la maŝino kun ACS.

La sistemo estos prova, do ni ne estu saĝaj, kaj nur uzu la afable provizitan instalan skripton, kiel estas.

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

Tuj kiam la skripto finiĝas, vi povas tuj eniri la retan interfacon per la ip de la maŝino, kun la akreditaĵoj admin/freeacs

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS
Jen tiel bela minimumisma interfaco, kaj kiel malvarmeta kaj rapide ĉio rezultis

2. Komenca agordo de Freeacs

La baza unuo de kontrolo por ACS estas la unuo aŭ CPE (Customer Premises Equipment). Kaj plej grave, kion ni bezonas por administri unuojn estas ilia Unuo-Tipo, t.e. hardvarmodelo kiu difinas aron de agordeblaj parametroj por unuo kaj ĝia softvaro. Sed kvankam ni ne scias kiel ĝuste komenci novan Unuo-Tipon, plej bone estus demandi la unuon mem pri tio ŝaltante Malkovran Reĝimon.

En produktado, ĉi tiu reĝimo estas absolute neeble uzi, sed ni devas komenci la motoron kiel eble plej baldaŭ kaj vidi la kapablojn de la sistemo. Ĉiuj bazaj agordoj estas konservitaj en /opt/freeacs-*. Tial ni malfermas

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

, ni trovas

discovery.mode = false

kaj ŝanĝi al

discovery.mode = true

Krome, ni ŝatus pliigi la maksimumajn dosiergrandojn, kun kiuj funkcios nginx kaj mysql. Por mysql, aldonu la linion al /etc/my.cnf

max_allowed_packet=32M

, kaj por nginx, aldonu al /etc/nginx/nginx.conf

client_max_body_size 32m;

al la http-sekcio. Alie, ni povos labori kun firmvaro ne pli ol 1M.

Ni rekomencas, kaj ni pretas labori kun aparatoj.

Kaj en la rolo de la aparato (CPE) ni havos bebon labormaniulon hAP AC lite.

Antaŭ testa konekto, estas rekomendinde agordi la CPE al la minimuma funkcia agordo por ke la parametroj, kiujn vi volas agordi estonte, ne estu malplenaj. Por enkursigilo, vi povas minimume ebligi dhcp-klienton sur ether1, instali la tr-069client-pakaĵon kaj agordi pasvortojn.

3. Konekti Mikrotik

Estas dezirinde konekti ĉiujn unuojn uzante validan serian numeron kiel ensaluton. Tiam ĉio estos klara al vi en la protokoloj. Iu konsilas uzi WAN MAC - ne kredu ĝin. Iu uzas komunan ensaluton/enirpermesilparon por ĉiuj - preteriru ilin.

Malfermante la tr-069-protokolo por kontroli "intertraktadojn"

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

Malfermu winbox, menuero TR-069.
AC URL: http://10.110.0.109/tr069/prov (anstataŭigi per via IP)
Uzantnomo: 9249094C26CB (kopiu serialon de sistemo> enkursigilo)
Pasvorto: 123456 (ne necesa por malkovro, sed por esti)
Ni ne ŝanĝas la Periodan informan intervalon. Ni eldonos ĉi tiun agordon per nia ACS

Malsupre estas la agordoj por fora inicialigo de la konekto, sed mi ne povis igi mikrotik labori kun ĝi per svingo. Kvankam fora peto funkcias el la skatolo kun telefonoj. Devos eltrovi ĝin.

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Post premado de la butono Apliki, datumoj estos interŝanĝitaj en la terminalo, kaj en la retejo de Freeacs vi povas vidi nian enkursigilon kun la aŭtomate kreita Unuo-Tipo "hAPaclite".

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

La enkursigilo estas konektita. Vi povas rigardi la aŭtomate generitan Unuo-Tipon. Ni malfermas Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Kio ne estas tie! Eĉ 928 parametroj (mi spionis la ŝelon). Multe aŭ malmulte – ni eltrovos ĝin poste, sed nuntempe ni simple rigardos. Tion signifas Unuo-Tipo. Ĉi tio estas listo de subtenataj opcioj kun ŝlosiloj sed neniuj valoroj. Valoroj estas fiksitaj en la subaj niveloj - Profiloj kaj Unuoj.

4. Agordi Mikrotik

Estas tempo por elŝuti gvidilo pri retinterfaco Ĉi tiu gvidilo de 2011 estas kiel botelo da bona, aĝa vino. Ni malfermu ĝin kaj lasu ĝin spiri.

Kaj ni mem, en la retinterfaco, alklaku la krajonon apud nia unuo kaj iru al la unuo-agorda reĝimo. Ĝi aspektas jene:

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Ni mallonge analizu kio estas interesa en ĉi tiu paĝo:

Unua agorda bloko

  • Profilo: Ĉi tiu estas la profilo en la Unuo-Tipo. La hierarkio estas jena: UnitType > Profile > Unit. Tio estas, ni povas krei, ekzemple, profilojn hAPaclite > hotspot и hAPaclite > branch, sed ene de la aparato modelo

Bloko-Provizo kun butonoj
Sugestoj sugestas, ke ĉiuj butonoj en la Provizobloko povas tuj apliki la agordon per ConnectionRequestURL. Sed, kiel mi diris supre, ĉi tio ne funkcias, do post premado de la butonoj, vi devos rekomenci la tr-069-klienton ĉe mikrotik por permane komenci provizanton.

  • Ofteco/Disvastigo: Kiom da fojoj semajne liveri la agordon ± % por redukti la ŝarĝon sur la servilo kaj komunikaj kanaloj. Defaŭlte, ĝi kostas 7/20, t.e. ĉiutage ± 20% kaj indiku kiel ĝi estas en sekundoj. Ĝis nun, ne utilas ŝanĝi la ofteco de transdono, ĉar. estos ekstra bruo en la protokoloj kaj ne ĉiam atendata apliko de agordoj

Provizanta historia bloko (lastaj 48 horoj)

  • En aspekto, la rakonto estas kiel rakonto, sed alklakante la titolon, vi atingas oportunan datumbazan serĉilon kun regexp kaj bonaĵoj.

Blokaj Parametroj

La plej granda kaj plej grava bloko, kie, fakte, la parametroj por ĉi tiu unuo estas fiksitaj kaj legitaj. Nun ni vidas nur la plej gravajn sistemajn parametrojn, sen kiuj ACS ne povas funkcii kun la unuo. Sed ni memoras, ke ni havas ilin en Unuo-Tipo - 928. Ni vidu ĉiujn valorojn, kaj decidu per kio Mikrotik manĝas.

4.1 Legado de la parametroj

En la Provizobloko, alklaku la butonon Legu ĉion. La bloko havas ruĝan surskribon. Kolumno aperos dekstre CPE (nuna) valoro. Ŝanĝis ProvisioningMode al READALL en sistemaj agordoj.

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Kaj... nenio okazos krom mesaĝo en System.X_FREEACS-COM.IM.Message Kick failed at....

Rekomencu la TR-069-klienton aŭ rekomencu la enkursigilon, kaj daŭre refreŝigu la retumilon ĝis vi ricevos la parametrojn en la gajaj grizaj skatoloj dekstre.
Se iu volas trinki la malnovan spicitan, ĉi tiu reĝimo estas priskribita en la manlibro kiel 10.2 Inspekta reĝimo. Ĝi ŝaltas kaj funkcias iomete alimaniere, sed la esenco estas sufiĉe priskribita

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

La READALL-reĝimo malŝaltos sin post 15 minutoj, kaj ni provos eltrovi kio estas utila ĉi tie, kaj kio povas esti korektita sur la flugo dum ni estas en ĉi tiu reĝimo.

Vi povas ŝanĝi IP-adresojn, ebligi/malŝalti interfacojn, fajroŝirmigajn regulojn, kiuj estas kun komentoj (alie kompleta malordo), Wi-Fi, ktp.

Tio estas, ankoraŭ ne eblas prudente agordi mikrotik per nur TR-069-iloj. Sed vi povas monitori tre bone. Estas disponeblaj statistikoj pri interfacoj kaj ilia stato, libera memoro ktp.

4.2 Livero de parametroj

Ni provu nun liveri la parametrojn al la enkursigilo, per tr-069, en "natura" maniero. La unua viktimo estos Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Ni trovas ĝin en la parametroj de la All-unuo. Kiel vi povas vidi, ĝi ne estas agordita. Ĉi tio signifas, ke ĉiu unuo povas mem havi ajnan Identecon. Sufiĉe toleri ĉi tion!
Ni pikas en la krea kolumno, starigas la nomon Mr.White kaj pikas la butonon Ĝisdatigu parametrojn. Kio okazos poste, vi jam divenis. Ĉe la sekva komunika sesio kun la ĉefsidejo, la enkursigilo devas ŝanĝi sian Identecon.

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Sed ĉi tio ne sufiĉas por ni. Parametro kiel Identeco estas bone havi ĉiam ĉe mano kiam serĉas la ĝustan unuon. Ni enŝovas la nomon de la parametro kaj metas la markobutonojn Montru (D) kaj Serĉeblan (S) tie. La parametroŝlosilo estas ŝanĝita al RWSD (Memoru, nomoj kaj ŝlosiloj estas fiksitaj ĉe la plej alta Unuo-Tipo-nivelo)

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

La valoro nun estas ne nur montrata en la ĝenerala serĉlisto, sed ankaŭ disponebla por serĉo enen Support > Search > Advanced form

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Ni iniciatas provizon kaj rigardas Identecon. Saluton sinjoro White! Nun vi ne povos mem ŝanĝi vian identecon dum tr-069client funkcias

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

4.3 Efektivigo de skriptoj

Ĉar ni eksciis, ke sen ili ne ekzistas maniero, ni plenumu ilin.

Sed antaŭ ol ni komencas labori kun dosieroj, ni devas korekti la direktivon public.url en dosiero /opt/freeacs-tr069/config/application-config.conf
Post ĉio, ni ankoraŭ havas testan agordon instalitan kun unu skripto. Ĉu vi ne forgesis?

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

Rekomencu la ACS kaj iru rekte al Files & Scripts.

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Sed kio estas malfermita ĉe ni nun apartenas al la Unuo-Tipo, t.e. tutmonde al ĉiuj hAP ac lite-enkursigiloj, ĉu ĝi estas branĉa enkursigilo, hotspot aŭ kapsman. Ni ankoraŭ ne bezonas tian altan nivelon, tial, antaŭ ol labori kun skriptoj kaj dosieroj, vi devus krei profilon. Vi povas nomi ĝin mem, kiel la "pozicio" de la aparato.

Ni faru nian bebon tempservilo. Deca pozicio kun aparta programaro kaj malgranda nombro da parametroj. Ni iru al Easy Provisioning > Profile > Create Profile kaj kreu profilon en Unuo-Tipo: hAPclite tempservilo. Ni ne havis iujn parametrojn en la defaŭlta profilo, do estas nenio por kopii Kopiu parametrojn de: "ne kopiu..."

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Ĉi tie ankoraŭ ne ekzistas parametroj, sed eblos agordi tiujn, kiujn ni poste volas vidi sur niaj tempserviloj mulditaj el hAPclite. Ekzemple, la ĝeneralaj adresoj de NTP-serviloj.
Ni iru al la unuo-agordo, kaj movu ĝin al la temposervila profilo

Fine ni iras al Files & Scripts, faru skriptojn, kaj ĉi tie ni atendas mirinde oportunajn bulkojn.

Por ekzekuti skripton sur unuo, ni devas elekti Tipo:TR069_SCRIPT а Nomo и celnomo devas havi .alter etendon
Samtempe, por skriptoj, male al programaro, vi povas aŭ alŝuti finitan dosieron, aŭ simple skribi / redakti ĝin en la kampo Enhavo. Ni provu skribi ĝuste tie.

Kaj por ke vi tuj vidu la rezulton - aldonu la vlan-enkursigilon al ether1

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

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Ni veturas, ni premas alŝuto kaj farita. Nia skripto vlan1.alter atendante en la flugiloj.

Nu, ni iru? Ne. Ni ankaŭ devas aldoni grupon por nia profilo. Grupoj ne estas inkluditaj en la ekipaĵhierarkio, sed estas necesaj por serĉi unuojn en UnitType aŭ Profile kaj estas postulataj por manuskripto-ekzekuto tra Advanced Provisioning. Kutime, grupoj estas rilataj al lokoj, kaj havas nestitan strukturon. Ni faru rusan grupon.

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Imagu, ke ni ĵus malvastigis nian serĉon de "Ĉiuj mondaj temposerviloj sur hAPaclite" al "Ĉiuj rusaj temposerviloj sur hAPaclite". Estas ankoraŭ grandega tavolo de ĉio interesa kun grupoj, sed ni ne havas tempon. Ni eniru la skriptojn.

Advanced Provisioning > Job > Create Job

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Ĉar ni estas en Altnivela reĝimo, post ĉio, ĉi tie vi povas specifi amason da malsamaj kondiĉoj por la komenco de la tasko, erarkonduto, ripetoj kaj tempodaŭroj. Mi rekomendas legi ĉion ĉi en la manlibroj aŭ diskuti ĝin poste kiam oni efektivigas ĝin en produktado. Nuntempe, ni simple agordu n1 al Haltigaj reguloj por ke la tasko ĉesu tuj kiam ĝi estas finita sur nia 1-a unuo.

Ni plenigas la necesajn, kaj restas nur lanĉi!

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Premu START kaj atendu. Nun vigle funkcios la nombrilo de aparatoj mortigitaj de la subĉimigita skripto! Kompreneble ne. Tiaj taskoj estas donitaj dum longa tempo, kaj ĉi tio estas ilia diferenco de skriptoj, Ansible, ktp. Unuoj mem petas taskojn laŭ horaro aŭ kiel ili aperas en la reto, ACS konservas trakon de kiuj unuoj jam ricevis taskojn, kaj kiel ili finiĝis, kaj skribas tion al la parametroj de la unuo. Estas 1 unuo en nia grupo, kaj se estus 1001 el ili, la administranto komencus ĉi tiun taskon kaj iru fiŝkapti.

Venu. Jam rekomencu la enkursigilon aŭ rekomencu la klienton TR-069. Ĉio devus iri glate kaj Mr.White ricevos novan vlan. Kaj nia Ĉesiga regulo-tasko eniros la staton PaŭZITA. Tio estas, ĝi ankoraŭ povas esti rekomencita aŭ ŝanĝita. Se vi premas FINISH, la tasko estos forigita al la arkivo

4.4 Ĝisdatigi la programaron

Ĉi tio estas tre grava punkto, ĉar Mikrotik-firmvaro estas modula, sed aldoni modulojn ne ŝanĝas la ĝeneralan firmvarversion de la aparato. Nia ACS estas normala kaj ne kutimas ĉi tion.
Nun ni faros ĝin en la stilo de rapida kaj malpura, kaj tuj puŝos la NTP-modulon en la ĝeneralan firmvaron, sed tuj kiam la versio estos ĝisdatigita sur la aparato, ni ne povos aldoni alian modulon en la sama maniero. .
En produktado, estas pli bone ne uzi tian lertaĵon, kaj instali modulojn kiuj estas laŭvolaj por Unuo-Tipo nur kun skriptoj.

Do, la unua afero, kiun ni devas fari, estas prepari programarajn pakaĵojn de la bezonataj versioj kaj arkitekturo, kaj meti ilin sur iun disponeblan retservilon. Por la testo, ĉiu, kiu povas atingi nian Mr.White iros, kaj por produktado, estas pli bone konstrui aŭtomaten ĝisdatigantan spegulon de la necesa programaro, kiu ne estas timiga por meti en la reto.
Grave! Ne forgesu ĉiam inkluzivi la tr-069client-pakaĵon en ĝisdatigojn!

Kiel rezultis, la longeco de la vojo al la pakaĵoj estas tre grava! Kiam mi provas uzi ion similan http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik falis en ciklan rilaton kun la rimedo, sendante ripetajn TRANSFERCOMPLETE protokolojn al tr-069. Kaj mi malŝparis kelkajn nervajn ĉelojn provante eltrovi kio estis malĝusta. Tial, dum ni metas ĝin en la radikon, ĝis klarigo

Do, ni devus havi tri npk dosierojn disponeblaj per http. Mi ricevis ĝin tiel

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

Nun ĉi tio devas esti formatita en xml-dosieron kun FileType = "1 Firmware Upgrade Image", kiun ni nutros al Mikrotik. Estu la nomo ros.xml

Ni faras laŭ la instrukcioj de 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>

Manko evidentiĝas Username/Password por aliri la elŝutservilon. Vi povas aŭ provi enigi ĝin kiel en paragrafo A.3.2.8 de la protokolo tr-069:

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

Aŭ demandu rekte al la funkciuloj de Mikrotik, same kiel la maksimuman vojon al * .npk

Ni iras al la konata Files & Scripts, kaj kreu PROVARAN dosieron tie per nomo:ros.xml, Cela Nomo:ros.xml kaj versio:6.45.6
Atentu! La versio devas esti specifita ĉi tie precize en la formato, en kiu ĝi estas montrata sur la aparato kaj estas transdonita en la parametro System.X_FREEACS-COM.Device.SoftwareVersion.

Ni elektas nian xm-dosieron por ŝarĝo kaj vi finis.

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Nun ni havas multajn manierojn ĝisdatigi la aparaton. Per la Sorĉisto en la ĉefa menuo, per Altnivela Provizo kaj taskoj kun la PROVARO-tipo, aŭ simple iru al la unuo-agordo kaj alklaku Ĝisdatigi. Ni elektu la plej facilan manieron, alie la artikolo ŝveliĝas.

TR-069 ĉe Mikrotik. Testante Freeacs kiel aŭtokonfigura servilo por RouterOS

Ni premas la butonon, komencas provizon kaj vi finis. La testprogramo estis kompletigita. Nun ni povas fari pli kun mikrotik.

5. Konkludo

Kiam mi komencis verki, mi volis unue priskribi la konekton de ip-telefono, kaj uzi ĝian ekzemplon por klarigi kiom malvarmeta ĝi povas esti kiam tr-069 funkcias facile kaj senpene. Sed tiam, dum mi progresis kaj enfosis la materialojn, mi pensis, ke por tiuj, kiuj konektis la Mikrotik, neniu telefono timus por memlernado.

Principe, Freeacs, kiujn ni testis, jam povas esti uzata en produktado, sed por tio vi devas agordi sekurecon, SSL, vi devas agordi mikrotikojn por aŭtomata agordo post rekomencigo, vi devas sencimigi la ĝustan aldonon de Unuo-Tipo, malmunti la laboro de retservoj kaj fuzioŝelo, kaj multe pli. Provu, inventu kaj verku sekvon!

Ĉiuj, dankon pro via atento! Mi ĝojos pri korektoj kaj komentoj!

Listo de uzitaj materialoj kaj utilaj ligiloj:

Foruma fadeno kiun mi renkontis kiam mi komencis serĉi pri la temo
TR-069 CPE WAN Administra Protokolo-Amendo-6
freeacs-vikio
Parametroj tr-069 en Mikrotik, kaj ilia korespondado al finaj komandoj

fonto: www.habr.com