TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

V tomto článku se pokusím krok za krokem popsat proces instalace testovacího serveru skvělého projektu freeacs do plně funkčního stavu a ukázat praktické techniky pro práci s mikrotikem: konfigurace pomocí parametrů, spuštění skriptu, aktualizace, instalace dalších modulů atd.

Účelem článku je přimět kolegy, aby odmítli spravovat síťová zařízení pomocí strašlivých hrábí a berliček, ve formě vlastnoručně psaných skriptů, Dude, Ansible atd. A při této příležitosti způsobit ohňostroj a masové radování čtverce.

0. Volba

Proč freeacs a ne genie-acs zmíněné v mikrotik-wikijak živější?
Protože existují španělské publikace o genie-acs s mikrotikem. Zde jsou pdf и видео z loňského MUM. Automatické karikatury na diapozitivech jsou skvělé, ale rád bych upustil od konceptu psaní skriptů, spouštění skriptů, spouštění skriptů…

1. Instalace Freeacs

Nainstalujeme do Centos7, a protože zařízení přenášejí spoustu dat a ACS aktivně pracuje s databází, nebudeme chtivý zdrojů. Pro pohodlnou práci vybereme 2 CPU jádra, 4GB RAM a 16GB rychlé úložiště ssd raid10. Freeacs nainstaluji do kontejneru Proxmox VE lxc a můžete pracovat v jakémkoliv nástroji, který se vám hodí.
Nezapomeňte nastavit správný čas na stroji pomocí ACS.

Systém bude testovací, takže nebuďme chytří a jednoduše použijte laskavě poskytnutý instalační skript, jak je.

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

Jakmile skript skončí, můžete se okamžitě dostat do webového rozhraní pomocí IP stroje s přihlašovacími údaji admin/freeacs

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS
Tady je takové pěkné minimalistické rozhraní a jak cool a rychle všechno dopadlo

2. Počáteční nastavení Freeacs

Základní jednotkou řízení pro ACS je jednotka neboli CPE (Customer Premises Equipment). A hlavně, co potřebujeme ke správě jednotek, je jejich Typ jednotky, tzn. hardwarový model, který definuje sadu konfigurovatelných parametrů pro jednotku a její software. Ale dokud nebudeme vědět, jak správně získat nový typ jednotky, bylo by nejlepší se na to zeptat samotné jednotky zapnutím režimu zjišťování.

Ve výrobě je tento režim absolutně nemožný, ale potřebujeme co nejdříve nastartovat motor a podívat se na možnosti systému. Všechna základní nastavení jsou uložena v /opt/freeacs-*. Proto otevíráme

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

, shledáváme

discovery.mode = false

a změnit na

discovery.mode = true

Kromě toho bychom rádi zvýšili maximální velikosti souborů, se kterými budou nginx a mysql pracovat. Pro mysql přidejte řádek do /etc/my.cnf

max_allowed_packet=32M

a pro nginx přidejte do /etc/nginx/nginx.conf

client_max_body_size 32m;

do sekce http. V opačném případě budeme moci pracovat s firmwarem ne více než 1M.

Restartujeme a jsme připraveni pracovat se zařízeními.

A v roli přístroje (CPE) budeme mít miminko workoholika hAP AC lite.

Před testovacím připojením je vhodné ručně nakonfigurovat CPE na minimální pracovní konfiguraci, aby parametry, které chcete konfigurovat v budoucnu, nebyly prázdné. U routeru můžete minimálně povolit dhcp klienta na ether1, nainstalovat balíček tr-069client a nastavit hesla.

3. Připojte Mikrotik

Je žádoucí připojit všechny jednotky pomocí platného sériového čísla jako přihlašovacího jména. Pak vám bude vše jasné v logech. Někdo radí používat WAN MAC - nevěřte tomu. Někdo používá společný pár přihlášení / průchod pro všechny - obejít je.

Otevření protokolu tr-069 pro sledování „vyjednávání“

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

Otevřete winbox, položku nabídky TR-069.
AC URL: http://10.110.0.109/tr069/prov (nahraďte svou IP)
Uživatelské jméno: 9249094C26CB (zkopírujte sériové číslo ze systému>routerboard)
Heslo: 123456 (není potřeba pro zjištění, ale musí být)
Interval periodického informování neměníme. Toto nastavení vydáme prostřednictvím našeho ACS

Níže jsou nastavení pro vzdálenou inicializaci připojení, ale nepodařilo se mi přimět mikrotiku, aby s ním pracoval swoopem. I když vzdálený požadavek funguje hned po vybalení s telefony. Bude třeba na to přijít.

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Po stisku tlačítka Apply dojde v terminálu k výměně dat a ve webovém rozhraní Freeacs vidíte náš router s automaticky vytvořeným Unit Type „hAPaclite“.

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Router je připojen. Můžete se podívat do automaticky generovaného typu jednotky. Otevíráme Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Co tam není! Až 928 parametrů (špehoval jsem shell). Zda je to hodně nebo málo – to zjistíme později, ale zatím se podíváme jen letmo. To znamená Unit Type. Toto je seznam podporovaných možností s klíči, ale bez hodnot. Hodnoty se nastavují v úrovních níže - Profily a Jednotky.

4. Nakonfigurujte Mikrotik

Je čas stáhnout průvodce webovým rozhraním Tento průvodce z roku 2011 je jako láhev dobrého, vyzrálého vína. Otevřeme to a necháme to dýchat.

A my ve webovém rozhraní klikneme na tužku vedle naší jednotky a přejdeme do režimu konfigurace jednotky. Vypadá to takto:

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Pojďme stručně analyzovat, co je na této stránce zajímavé:

Blok konfigurace jednotky

  • Profil: Toto je profil v rámci typu jednotky. Hierarchie je taková: UnitType > Profile > Unit. To znamená, že můžeme vytvářet například profily hAPaclite > hotspot и hAPaclite > branch, ale v rámci modelu zařízení

Zřizování bloků s tlačítky
Tipy naznačují, že všechna tlačítka v bloku Provisioning mohou okamžitě použít konfiguraci prostřednictvím ConnectionRequestURL. Ale jak jsem řekl výše, toto nefunguje, takže po stisknutí tlačítek budete muset restartovat klienta tr-069 na mikrotiku, abyste mohli ručně spustit poskytování.

  • Freq/Spread: Kolikrát týdně doručit konfiguraci ± % pro snížení zatížení serveru a komunikačních kanálů. Standardně stojí 7/20, tzn. každý den ± 20 % a naznačte, jak to je v sekundách. Zatím nemá smysl měnit frekvenci doručení, protože. v protokolech bude zvýšený hluk a ne vždy se očekává použití nastavení

Blok historie zřizování (posledních 48 hodin)

  • Na pohled je příběh jako příběh, ale kliknutím na název se dostanete k pohodlnému nástroji pro vyhledávání v databázi s regexpem a vychytávkami

Parametry bloku

Největší a nejdůležitější blok, kde se vlastně nastavují a čtou parametry pro tuto jednotku. Nyní vidíme pouze nejdůležitější systémové parametry, bez kterých ACS nemůže s jednotkou pracovat. Ale pamatujeme si, že je máme v Unit Type - 928. Pojďme se podívat na všechny hodnoty a rozhodnout se, s čím Mikrotik jí.

4.1 Čtení parametrů

V bloku Provisioning klikněte na tlačítko Přečíst vše. Blok má červený nápis. Vpravo se objeví sloupec Hodnota CPE (aktuální).. Změněno ProvisioningMode na READALL v nastavení systému.

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

A... nic se nestane kromě zprávy v System.X_FREEACS-COM.IM.Message Kick failed at....

Restartujte klienta TR-069 nebo restartujte router a pokračujte v obnovování stránky prohlížeče, dokud nezískáte parametry ve veselých šedých polích vpravo.
Pokud si někdo chce dát doušek starého ostříleného, ​​tento režim je v návodu popsán jako 10.2 Režim kontroly. Zapne a funguje trochu jinak, ale podstata je popsána docela

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Režim READALL se po 15 minutách sám vypne a my se pokusíme přijít na to, co je zde užitečné a co lze za běhu opravit, když jsme v tomto režimu.

Můžete měnit IP adresy, povolit / zakázat rozhraní, pravidla firewallu, která jsou s komentáři (jinak naprostý průšvih), Wi-Fi a tak dále maličkosti.

To znamená, že zatím není možné rozumně nakonfigurovat mikrotik pouze pomocí nástrojů TR-069. Dá se ale velmi dobře sledovat. K dispozici jsou statistiky o rozhraních a jejich stavu, volné paměti atd.

4.2 Dodací parametry

Zkusme nyní doručit parametry routeru, přes tr-069, „přirozeným“ způsobem. První obětí bude Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Najdeme ho v parametrech jednotky All. Jak vidíte, není to nastaveno. To znamená, že každá jednotka může sama mít jakoukoli identitu. Dost tolerovat tohle!
Do sloupce create šťouchneme čárku, nastavíme jméno Mr.White a šťouchneme do tlačítka Aktualizovat parametry. Co bude dál, už tušíte. Při další komunikační relaci s centrálou musí router změnit svou identitu.

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

To nám ale nestačí. Parametr jako Identity je dobré mít při hledání správné jednotky vždy po ruce. Půjdeme do názvu parametru a dáme tam zaškrtávací políčka Display (D) a Searchable (S). Klíč parametru se změní na RWSD (Nezapomeňte, že názvy a klíče jsou nastaveny na nejvyšší úrovni typu jednotky)

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Hodnota se nyní nejen zobrazuje v obecném seznamu vyhledávání, ale je také dostupná pro vyhledávání v Support > Search > Advanced form

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Zahájíme poskytování a podíváme se na Identitu. Dobrý den pane Bílý! Nyní nebudete moci sami změnit svou identitu, když běží tr-069client

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

4.3 Spouštění skriptů

Jelikož jsme zjistili, že bez nich to nejde, pojďme si je splnit.

Než ale začneme pracovat se soubory, musíme direktivu opravit public.url v souboru /opt/freeacs-tr069/config/application-config.conf
Ostatně máme stále nainstalovanou testovací konfiguraci s jedním skriptem. Nezapomněli jste?

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

Restartujte ACS a zamiřte přímo na Files & Scripts.

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Ale to, co se u nás nyní otevírá, patří do Unit Type, tzn. globálně všem směrovačům hAP ac lite, ať už jde o směrovač poboček, hotspot nebo capsman. Tak vysokou úroveň zatím nepotřebujeme, proto byste si před prací se skripty a soubory měli vytvořit profil. Můžete to nazvat sami, jako "poloha" zařízení.

Udělejme z našeho dítěte servírku času. Slušná pozice se samostatným softwarovým balíčkem a malým počtem parametrů. Pojďme Easy Provisioning > Profile > Create Profile a vytvořte profil v Unit Type:hAPaclite časový server. Ve výchozím profilu jsme neměli žádné parametry, takže není co kopírovat Kopírovat parametry z: "nekopírovat..."

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Zatím zde nejsou vůbec žádné parametry, ale bude možné nastavit ty, které později budeme chtít vidět na našich časových serverech tvarovaných z hAPaclite. Například obecné adresy serverů NTP.
Pojďme na konfiguraci jednotky a přesuneme ji do profilu timeserver

Nakonec jdeme do Files & Scripts, vytvořte skripty a zde čekáme na úžasně pohodlné buchty.

Abychom mohli spustit skript na jednotce, musíme vybrat Typ:TR069_SCRIPT а Příjmení и Název cíle musí mít příponu .alter
Zároveň u skriptů, na rozdíl od softwaru, můžete buď nahrát hotový soubor, nebo jej jednoduše napsat / upravit v poli Obsah. Zkusme napsat přímo tam.

A abyste okamžitě viděli výsledek - přidejte router vlan do ether1

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

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Jezdíme, tiskneme Nahrát a hotovo. Náš scénář vlan1.alter čekání v křídlech.

Tak jdeme? Ne. Musíme také přidat skupinu pro náš profil. Skupiny nejsou zahrnuty v hierarchii zařízení, ale jsou potřebné k hledání jednotek v UnitType nebo Profile a jsou vyžadovány pro spuštění skriptu prostřednictvím Advanced Provisioning. Skupiny jsou obvykle spojeny s umístěními a mají vnořenou strukturu. Udělejme ruskou skupinu.

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Představte si, že jsme právě zúžili naše vyhledávání z „Všechny světové časové servery na hAPaclite“ na „Všechny ruské časové servery na hAPaclite“. Se skupinami je stále obrovská vrstva všeho zajímavého, ale nemáme čas. Pojďme ke skriptům.

Advanced Provisioning > Job > Create Job

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Vzhledem k tomu, že jsme v pokročilém režimu, koneckonců zde můžete určit spoustu různých podmínek pro spuštění úlohy, chybové chování, opakování a časové limity. To vše doporučuji přečíst v manuálech nebo probrat později při zavádění do výroby. Prozatím nastavíme n1 na Stop rules, aby se úkol zastavil, jakmile bude dokončen na naší 1. jednotce.

Vyplníme potřebné a zbývá jen spustit!

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Stiskněte START a počkejte. Nyní počítadlo zařízení zabitých nedostatečně odladěným skriptem poběží svižně! Samozřejmě že ne. Takové úkoly se zadávají na dlouhou dobu a v tom se liší od skriptů, Ansible a tak dále. Jednotky samy žádají o úkoly podle plánu nebo jak se objevují v síti, ACS sleduje, které jednotky již úkoly obdržely a jak skončily, a zapisuje to do parametrů jednotky. V naší skupině je 1 jednotka a pokud by jich bylo 1001, admin by spustil tento úkol a šel by rybařit

Pojď. Restartujte již router nebo restartujte klienta TR-069. Vše by mělo jít hladce a Mr.White dostane nový vlan. A naše úloha pravidla Stop přejde do stavu POZASTAVENO. To znamená, že jej lze stále restartovat nebo změnit. Pokud stisknete FINISH, úkol bude odepsán do archivu

4.4 Aktualizace softwaru

To je velmi důležitý bod, protože firmware Mikrotik je modulární, ale přidání modulů nemění celkovou verzi firmwaru zařízení. Náš ACS je normální a není na to zvyklý.
Nyní to uděláme stylem quick & dirty a modul NTP hned natlačíme do obecného firmwaru, ale jakmile bude verze na zařízení aktualizována, nebudeme moci stejným způsobem přidat další modul .
Ve výrobě je lepší takový trik nepoužívat a moduly, které jsou pro Unit Type volitelné, instalovat pouze pomocí skriptů.

První věc, kterou musíme udělat, je připravit softwarové balíčky požadovaných verzí a architektury a umístit je na nějaký dostupný webový server. Na zkoušku půjde každý, kdo se dostane k našemu Mr.Whiteovi, a pro výrobu je lepší vytvořit automatické aktualizační zrcadlo potřebného softwaru, které není děsivé umístit na web
Důležité! Nezapomeňte do aktualizací vždy zahrnout balíček tr-069client!

Jak se ukázalo, délka cesty k paketům je velmi důležitá! Když se pokusím použít něco jako http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, mikrotik upadl do cyklického spojení se zdrojem a posílal opakované protokoly TRANSFERCOMPLETE na tr-069. A promarnil jsem nějaké nervové buňky ve snaze zjistit, co je špatně. Proto, když to dáme do kořene, až do vyjasnění

Měli bychom tedy mít tři soubory npk dostupné přes http. Mám to takhle

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

Nyní je potřeba to naformátovat do xml souboru s FileType = "1 Firmware Upgrade Image", který předáme Mikrotiku. Nechť název je ros.xml

Děláme podle návodu z 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>

Nedostatek je evidentní Username/Password pro přístup ke stahovacímu serveru. Můžete to zkusit zadat podle odstavce A.3.2.8 protokolu 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>

Nebo se zeptejte přímo úředníků Mikrotiku, stejně jako na maximální délku cesty k * .npk

Jdeme do známého Files & Scriptsa vytvořte tam SOFTWARE soubor s Jméno:ros.xml, Název cíle:ros.xml a Verze:6.45.6
Pozornost! Verze zde musí být uvedena přesně ve formátu, v jakém se zobrazuje na zařízení a předává se v parametru System.X_FREEACS-COM.Device.SoftwareVersion.

Vybereme náš xm-soubor k načtení a máte hotovo.

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Nyní máme spoustu způsobů, jak zařízení aktualizovat. Prostřednictvím Průvodce v hlavním menu, přes Advanced Provisioning a úlohy s typem SOFTWARE, nebo stačí přejít do konfigurace jednotky a kliknout na Upgrade. Zvolme nejjednodušší způsob, jinak je článek nafouklý.

TR-069 ve společnosti Mikrotik. Testování Freeacs jako autokonfiguračního serveru pro RouterOS

Stiskneme tlačítko, zahájíme poskytování a máte hotovo. Testovací program byl dokončen. Nyní můžeme s mikrotikem udělat více.

5. Závěr

Když jsem začal psát, chtěl jsem nejprve popsat připojení ip-telefonu a na jeho příkladu vysvětlit, jak skvělé to může být, když tr-069 funguje snadno a bez námahy. Ale pak, jak jsem postupoval a hrabal se v materiálech, jsem si řekl, že pro ty, kteří připojili Mikrotik, nebude žádný telefon děsivý pro samouky.

V zásadě lze Freeacs, které jsme testovali, již používat ve výrobě, ale k tomu je třeba nakonfigurovat zabezpečení, SSL, musíte nakonfigurovat mikrotiku pro autokonfiguraci po resetu, musíte odladit správné přidání Unit Type, rozebrat práce webových služeb a fusion shell a mnoho dalšího. Zkuste, vymýšlejte a napište pokračování!

Všichni, děkuji za pozornost! Budu rád za opravy a komentáře!

Seznam použitých materiálů a užitečné odkazy:

Vlákno na fóru, na které jsem narazil, když jsem začal hledat na toto téma
Dodatek TR-069 CPE WAN Management Protocol-6
freeacs wiki
Parametry tr-069 v Mikrotiku a jejich korespondence s terminálovými příkazy

Zdroj: www.habr.com