V tomto článku se pokusím krok za krokem popsat proces instalace testovacího serveru skvělého projektu
Úč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
Protože existují španělské publikace o genie-acs s mikrotikem. Zde jsou
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
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
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.
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“.
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
A my ve webovém rozhraní klikneme na tužku vedle naší jednotky a přejdeme do režimu konfigurace jednotky. Vypadá to takto:
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 profilyhAPaclite > 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.
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
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.
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)
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
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
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
.
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..."
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
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.
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
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!
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
<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 & Scripts
a 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.
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ý.
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:
Zdroj: www.habr.com