TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

Ebben a cikkben lépésről lépésre próbálom leírni egy tesztkiszolgáló telepítési folyamatát a nagyszerű projekt számára Freeacs teljes mértékben működő állapotba, és gyakorlati tippeket mutatni be a mikrotik használatához: konfigurálás paramétereken keresztül, szkriptek végrehajtása, frissítés, további modulok telepítése stb.

A cikk célja, hogy ösztönözze kollégáimat a hálózati eszközök kezelésének elhagyására a borzasztó botcsinálta megoldások és húzódozó eszközök, mint például az önálló szkriptek, Dude, Ansible stb. igénybevételével. Emlékeztetni szeretném erre, hogy ünneplés és tömeges öröm köszöntse a tereket.

0. Választás

Miért a freeacs, és nem a genie-acs, amelyet említenek a mikrotik-wiki, mint aktívabb megoldás?
Mert a genie-acs-ről a mikrotikkal kapcsolatosan spanyol nyelvű publikációk vannak. Itt vannak az pdf és videón tavalyi MUM-ot. Az automatikus megosztások a diákon – ez menő, de szeretnék elmenekülni a szkriptek írásának koncepciójától, szkriptek futtatásának szkriptek írásának koncepciójából...

1. Freeacs telepítése

Centos7-re fogjuk telepíteni, és mivel az eszközök elég sok adatot továbbítanak, az ACS aktívan dolgozik az adatbázisával – nem spórolunk az erőforrásokkal. Kényelmes működéshez 2 CPU magot, 4GB RAM-ot és 16GB gyors SSD raid10 tárhelyet biztosítunk. A freeacs-t lxc konténerben fogom telepíteni a Proxmox VE-en, de bármilyen Önnek kényelmes eszközben dolgozhat.
Ne feledje beállítani a helyes időt az ACS-t futtató gépen.

A rendszer teszt jellegű lesz, ezért nem bonyolítunk, és egyszerűen kihasználjuk a rendelkezésre bocsátott telepítési szkriptet, ahogy van.

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

Amint a szkript futása befejeződik – azonnal elérheti a webes felületet a gép IP-jén, az admin/freeacs bejelentkezési adatokkal.

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára
Ez egyél szép minimalista felület, és mennyire jól és gyorsan zajlott minden.

2. Freeacs alapbeállítása

Az ACS alapegysége egy egység vagy CPE (Customer Premises Equipment). A legfontosabb dolog, amire szükségünk van az egységek kezeléséhez – az az Egység típusa, azaz a berendezés modellje, amely meghatározza az egység és szoftverének konfigurálható paramétereinek összességét. De mivel még nem tudjuk, hogyan kell helyesen létrehozni egy új Egység típust, a legjobb lesz megkérdezni magát az egységet, bekapcsolva a Felfedező módot.

A termelésben ilyen módot használni kategorikusan nem szabad, de gyorsan be kell indítanunk a motort és meg kell néznünk a rendszer lehetőségeit. Az összes alapvető beállítás az /opt/freeacs-* mappában található. Tehát nyissuk meg

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

, majd keressük meg

discovery.mode = false

és cseréljük le

discovery.mode = true

Ezenkívül javasolt növelni a maximális fájlméreteket, amelyekkel az nginx és a mysql dolgozni fognak. A mysql-hez adjuk hozzá a /etc/my.cnf fájlhoz a következő sort

max_allowed_packet=32M

, az nginx-hez pedig a /etc/nginx/nginx.conf fájlhoz adjuk hozzá

client_max_body_size 32m;

a http szekcióban. Különben nem tudunk 1M-nál nagyobb firmware-rel dolgozni.

Újraindítjuk, és készen állunk az eszközökkel való munkára.

CPE-ként a kis munkás hAP AC lite.

Tesztelés előtt érdemes a CPE-t manuálisan a minimális működési konfigurációra beállítani, hogy az Ön által jövőben konfigurálni kívánt paraméterek ne legyenek üresek. A routerhez minimum aktiválni lehet a dhcp-ügyfelet az ether1-en, telepíteni a tr-069client csomagot és beállítani a jelszavakat.

3. Csatlakoztatjuk a Mikrotikot

Minden egységet érdemes úgy csatlakoztatni, hogy a belépési nevének érvényes sorozatszámot használ. Akkor az összes naplóban világosan látni fogja a dolgokat. Néhányan azt tanácsolják, hogy használják a WAN MAC-címét — ne higgyen nekik. Van, aki közönséges belépés/jelszó párt használ — őket kerülje el.

Nyissuk meg a tr-069 naplót a 'tárgyalások' figyelésére

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

Nyissuk meg a winboxot, válasszuk a TR-069 menüpontot.
ACS URL: http://10.110.0.109/tr069/prov (cserélje le a saját IP-jére)
Felhasználónév: 9249094C26CB (másoljuk a sorozatszámot a system>routerboard-ból)
Jelszó: 123456 (a felfedezéshez nem szükséges, de legyen meg)
A Periodikus információk intervallumot nem változtatjuk. Ezt a beállítást az ACS-unkon keresztül fogjuk kiadni

Alább találhatók a távoli kapcsolat kezdeményezésének beállításai, de Mikrotikot ezzel azonnal működésre bírni nem tudtam. Bár telefonokkal a távoli kérés 'kész helyzetben' működik. Ezen érdemes lesz dolgozni.

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

A 'Apply' gombra kattintás után az terminálon adatcsere lesz, és a Freeacs webes felületén látni lehet a routerünket automatikusan létrehozott Unit Type 'hAPaclite' néven.

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

A router csatlakoztatva van. Beléphet az automatikusan létrehozott Unit Type-ba. Nyissuk meg Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Mi minden van itt! Összesen 928 paraméter (kukucskáltam a shellbe). Sok ez vagy kevés – majd utána kiderítjük, de most gyorsan nézzük át. Íme, mit jelent a Unit Type. Ez egy támogatott paraméterek listája kulcsokkal, de értékek nélkül. Az értékeket az alacsonyabb szinteken adjuk meg – Profilokban és Egységekben.

4. Mikrotik konfigurálása

Itt az idő, hogy letöltsük a webes felület útmutatóját Ez a 2011-es útmutató – mint egy üveg jó, érlelt bor. Nyissuk ki és hagyjuk lélegezni.

Mi pedig a webes felületen rákattintunk a ceruza ikonra a mi egységünk mellett, és belépünk az egység konfigurációs módjába. Így néz ki:

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

Röviden áttekintjük, mi érdekes ezen az oldalon:

Egység konfigurációs blokk

  • Profil: Ez egy profil az Egység Típuson belül. Az hierarchia a következő: UnitType > Profil > Egység. Tehát létrehozhatunk például profilokat hAPaclite > hotspot és hAPaclite > branch, de az eszközmodell keretein belül

Provisioning blokk gombokkal
A tippek arra utalnak, hogy az összes gomb a Provisioning blokkban azonnal alkalmazhatja a konfigurációt a ConnectionRequestURL-en keresztül. De, ahogy már említettem, ez nem működik, ezért a gombok megnyomása után újra kell indítani a tr-069 klienst a mikrotikon a provision manuális indításához.

  • Freq/Spread: Hányszor kell hetente szállítani a konfigurációt ± %, hogy csökkentsük a terhelést a szerveren és a kommunikációs csatornákon. Alapértelmezetten 7/20, tehát minden nap ± 20% és egy tipp, hogyan ez másodpercben van. Jelenleg nincs értelme megváltoztatni a szállítási gyakoriságot, mivel plusz zajt okoz a naplókban, és nem mindig a várt beállítások alkalmazása.

Provisioning történelem blokk (últ 48 órában)

  • Első ránézésre a történelem, mint a történelem, de ha rákattintasz a címére – egy kényelmes keresőeszközbe kerülsz az adatbázisban, regexp-vel és egyéb hasznos dolgokkal.

Paraméterek blokk

A legnagyobb és legfontosabb blokk, ahol a paraméterek valóban beállításra és olvasásra kerülnek az adott egységhez. Jelenleg csak a legfontosabb rendszerszintű paramétereket látjuk, a nélkül, hogy az ACS működése az egységgel lehetetlen lenne. De tudjuk, hogy az Egység Típusban van belőle – 928. Nézzük meg az összes értéket, és döntsük el, ez mit jelent a mikrotikon.

4.1 Paraméterek olvasása

A Provisioning blokkban megnyomjuk a Read all gombot. A blokkban – piros felirat. Jobbra megjelenik egy oszlop CPE (jelenlegi) érték. A rendszerszintű paraméterek ProvisioningMode-ját READALL-ra változtatták.

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

És… semmi nem fog történni, kivéve a System.X_FREEACS-COM.IM.Message üzenetet. Kick failed at....

Indítsa újra a TR-069 klienst vagy a routert, és folytassa a böngésző oldal frissítését, amíg meg nem kapja a jobb oldalon a búgó szürke téglalapok paramétereit
Ha valaki szeretne egy régi, érlelt ízt élvezni - ez a mód a kézikönyvben 10.2 Ellenőrző mód néven szerepel. Kicsit másképp működik, de a lényeg rendben van

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

A READALL mód 15 perc múlva automatikusan leáll, mi pedig megpróbáljuk kideríteni, mi hasznos itt, és mit lehet módosítani 'üzem közben', míg ebben a módban vagyunk.

Meg lehet változtatni az IP-címeket, be- és kikapcsolni az interfészeket, tűzfal szabályokat, amelyekhez megjegyzések tartoznak (különben teljes káosz), Wi-Fi és apróságok.

Tehát, a mikrotik ésszerű konfigurálása a TR-069 eszközeivel még nem lehetséges. De a monitorozás meglehetősen jól megoldható. Statisztika érhető el az interfészekről és azok állapotáról, szabad memória stb.

4.2 Paraméterek kézbesítése

Most próbáljuk meg kézbesíteni a paramétereket a routerbe a tr-069 segítségével, 'természetes' módon. Az első áldozat a Device.DeviceInfo.X_MIKROTIK_SystemIdentity lesz. Megtaláljuk az egység All paramétereiben. Ahogy látható, nincs beállítva. Ez azt jelenti, hogy bármelyik egység bármilyen Identitással rendelkezhet. Elég volt ebből!
Kattintson a create oszlop melletti négyzetre, adja meg a Mr.White nevet, és kattintson a Paraméterek frissítése gombra. A következő lépést már kitalálta. A következő kommunikációs fázis során a routernek meg kell változtatnia az Identitását.

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

De ez még nem elég. Az Identity paraméter mindig jól jön, amikor a megfelelő egységet keresünk. Kattintson a paraméter nevére, és jelölje be a Display (D) és Searchable (S) négyzeteket. A paraméter kulcsa RWSD-ra változik (Ne feledje, a nevek és kulcsok a legmagasabb szinten vannak meghatározva az Egység Típusán).

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

A kulcs értéke most már nemcsak a keresési listában jelenik meg, hanem kereshető is a Támogatás > Keresés > Haladó forma

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

Indítson provisioningot, és nézze meg az Identitást. Üdvözöljük, Mr.White! Mostantól nem tudja megváltoztatni az álcáját, amíg a tr-069client működik.

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

4.3 Script végrehajtása

Mivel kiderítettük, hogy nélkülük nem megy - hajtsuk végre őket.

De mielőtt nekilátnánk a fájlokkal való munkának - ki kell javítanunk a direktívát public.url a fájlban /opt/freeacs-tr069/config/application-config.conf
Még mindig tesztelési konfigurációnk van, amit egy script telepített. Ne feledje?

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

Újra indítjuk az ACS-t, és közvetlenül a következő helyre megyünk: Fájlok & Scriptek.

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

De amit most megnyitunk – az az Unit Type-hoz tartozik, vagyis globálisan minden hAP ac lite routerhez, legyen az egy fiók router, hotspot vagy CAPsMAN. Most nem szükséges ilyen magas szintű beállítás, ezért mielőtt a szkriptekkel és fájlokkal dolgoznánk, létre kell hoznunk egy profilt. Ezt nevezhetjük az eszköz "pozíciójának."

Csináljuk meg az apróságunkból időszolgáltatót. Érdemes pozíció külön csomag szoftverrel és néhány paraméterrel. Menjünk a Easy Provisioning > Profile > Create Profile és létrehozzuk az Unit Type:hAPaclite profilt timeserver. A default profilunkban nem voltak paraméterek, ezért másolni sem tudunk semmit. Copy parameters from: «don’t copy…»

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

Itt egyelőre nincsenek paraméterek, de később beállíthatjuk azokat, amelyeket a hAPaclite-ból készült időszolgáltatóinkon szeretnénk látni. Például az NTP-szerverek közös címeit.
Átlépünk az egység konfigurációjára, és áthelyezzük azt a timeserver profilba.

Végre elérkezünk a Fájlok & Scriptek, ahol szkripteket készítünk, és itt elképesztően kényelmes funkciók várnak ránk.

Ahhoz, hogy a szkriptet végrehajtsuk az egységen, ki kell választanunk Type:TR069_SCRIPT több mint Név és Target Name kell, hogy .alter kiterjesztése legyen
Ezen kívül, szkriptek esetén, ellentétben a szoftverrel, kész fájlt is feltölthetünk, vagy egyszerűen megírhatjuk/szerkeszthetjük azt a mezőben, Content. Próbáljuk meg ott közvetlenül írni.

És hogy azonnal látható legyen az eredmény – adjunk hozzá egy VLAN-t a routerhez az ether1-en.

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

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

Beírjuk, rákattintunk Upload és kész. A szkriptünk vlan1.alter várja, hogy életbe lépjen.

Nos, kezdjük el? Nem. Még hozzá kell adnunk a profilunkhoz egy csoportot. A csoportok nem tartoznak a berendezések hierarchiájába, de szükségesek az egységek kereséséhez UnitType vagy Profile szerint, és kötelezőek a szkriptek Advanced Provisioning általi végrehajtásához. Általában a csoportok a helyszínekhez kapcsolódnak, és hierarchikus struktúrával rendelkeznek. Készítsünk egy Oroszország csoportot.

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

Képzeljük el, hogy éppen most szűkítettük le a keresést "Minden időszolgáltató a világon hAPaclite-on"-tól "Minden időszolgáltató Oroszországban hAPaclite-on"-ig. Itt még hatalmas mennyiség érdekes dolog vár ránk a csoportokkal kapcsolatosan, de nincs időnk. Kezdjük el a szkripteket.

Advanced Provisioning > Job > Create Job

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

Mivel mindezek mellett az Advanced módban vagyunk, megadhatunk sok különböző feltételt a feladat kezdésére, a hibák kezelésére, az újrapróbálkozásra és a timeoutokra. Ajánlom, hogy ezt mind olvassuk el az útmutatókban, vagy később megbeszéljük, amikor a gyártási környezetbe történő bevezetésről van szó. Eddig csak annyit állítunk be, hogy a Stop rules-ra n1 kerüljön, hogy a feladat leálljon, amint végrehajtódik az 1. egységünkön.

Kitöltjük a szükséges beállításokat, és már csak el kell indítani!

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

Kattintsunk a START gombra, és várjunk. Most gyorsan elkezd pörögni a számláló az el nem végzett scripttel rendelkező eszközök körében! Persze nem. Az ilyen feladatokat hosszabb időre osztják ki, és ez a különbség közöttük és a scriptelések, Ansible stb. között. Az egységek önállóan kérnek feladatokat ütemezés szerint vagy amikor a hálózatban megjelennek, az ACS nyomon követi, hogy mely egységek kaptak már feladatokat, hogyan teljesítettek, és ezeket az egység paramétereibe rögzíti. A mi csoportunkban 1 egység van, de ha lenne 1001 — az admin elindítaná ezt a feladatot és elmenne horgászni.

Nos, indítsuk újra a routert vagy a TR-069 klienst. Mindennek zökkenőmentesen kell zajlania, és Mr.White új VLAN-t fog kapni. A Stop rule feladatunk státusza PAUSED-ra vált. Tehát ezt még mindig újra lehet indítani vagy módosítani. Ha a FINISH gombra kattintunk — a feladat archiválódik.

4.4 Frissítjük a szoftvert

Ez egy nagyon fontos pont, mivel a MikroTik firmware moduláris, de a modulok hozzáadása nem változtatja meg az eszköz általános firmware verzióját. Az ACS-ünk rendben van, és ehhez nem vagyunk hozzászokva.
Most stílusosan és gyorsan beillesztjük az NTP modult a fő firmware-be, de amint az eszköz verziója frissül — nem tudjuk ugyanígy további modult hozzáadni.
Élesben ezt a trükköt jobb nem alkalmazni, és az egység típusa számára nem kötelező modulokat csak scriptekkel telepíteni.

Tehát, az első dolog, amit meg kell tennünk — előkészíteni a szükséges verziójú és architektúrájú szoftvercsomagokat, és elhelyezni őket egy elérhető webserveren. A teszthez bármilyen megfelel, ameddig Mr.White el tud érni, de élesben jobb egy automatikusan frissülő tükörfolyamatot létrehozni, amelyet nem félelemteljes megosztani a weben.
Fontos! Mindig ne felejtsd el belefoglalni a tr-069 klienst a frissítésekbe!

Ahogy kiderült, a csomagokhoz vezető út hossza nagyon fontos! Az én próbálkozásaim során, hogy valami ilyesmit használjak, http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, a MikroTik ciklikus kapcsolódásba került a forrással, ismétlődő TRANSFERCOMPLETE-t adva a tr-069 naplóba. És eltöltöttem egy kis időt, próbálva kideríteni, mi nem stimmel. Tehát egyelőre helyezzük a gyökérbe, amíg kiderítjük.

Tehát három npk fájlnak kell lennie, elérhetőnek http-n. Íme, amit összeszedtem:

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

Most ezt egy XML fájlba kell öntenünk FileType=«1 Firmware Upgrade Image», amelyet beadunk a MikroTiknek. A neve legyen ros.xml

Követjük az utasításokat a 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

Szembetűnő a hiányzó Felhasználónév/Jelszó a letöltő szerverhez való hozzáféréshez. Ezt megpróbálhatod hozzáadni, ahogy az A.3.2.8. pont a tr-069 szabványban írja:

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

Vagy közvetlenül a MikroTik hivatalos képviselőitől kérdezni a maximális elérési út hossza miatt a *.npk fájlokig.

Elmegyünk a már ismert helyekre, Fájlok & Scriptek, és ott létrehozunk egy SOFTWARE típusú fájlt, Név:ros.xml, Cél neve:ros.xml és Verzió:6.45.6
Figyelem! Itt a verziót pontosan abban a formátumban kell megadni, ahogy az eszközön megjelenik és a System.X_FREEACS-COM.Device.SoftwareVersion paraméterben továbbítják..

Válasszuk ki a letöltéshez az xm-fájlt, és kész.

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

Most már sokféleképpen frissíthetjük az eszközt. A Wizard segítségével a főmenüben, az Advanced Provisioning-en és a SOFTWARE típusú feladatokon keresztül, vagy egyszerűen belépve az egység konfigurációjába és megnyomva az Upgrade gombot. Válasszuk a legegyszerűbb utat, hiszen a cikk már így is megnőtt.

TR-069 Mikrotikben. A Freeacs-t teszteljük, mint autokonfigurációs szervert a RouterOS számára

Megnyomjuk a gombot, elindítjuk a provision-t, és kész. A tesztprogram befejeződött. Most már többre vagyunk képesek a MikroTikkal.

5. Zárszó

Amikor elkezdtem írni, először az IP-telefon csatlakozását akartam leírni, és az ő példáján keresztül megmutatni, mennyire jó, amikor a tr-069 könnyen és problémamentesen működik. De ahogy haladtam előre és kutattam az anyagokban, rájöttem, hogy akitott MikroTikkal csatlakoztak, annak már semmi telefon nem jelenthet kihívást az önálló tanulásban.

Alapvetően a Freeacs, amit teszteltünk, már alkalmazható a termelésben, de ehhez be kell állítani a biztonságot, az SSL-t, a MikroTikek automatikus konfigurálását a reset után, megfelelően kell beállítani az Unit Type hozzáadását, meg kell érteni a webszolgáltatások és a fusion shell működését, és még sok minden mást. Próbáljátok, találjátok ki, és írjátok meg a folytatást!

Mindenkinek köszönöm a figyelmet! Örömmel várom a javításokat és megjegyzéseket!

A használt anyagok és hasznos linkek listája:

A fórumtémát, amire az elején rátaláltam a keresés során
TR-069 CPE WAN Management Protocol Amendment-6
Freeacs wiki
A tr-069 paraméterek MikroTikben, és azok megfelelése a terminál parancsoknak.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster