In diesem Artikel werde ich versuchen, den Prozess der Installation eines Testservers fĂŒr ein fantastisches Projekt Schritt fĂŒr Schritt zu beschreiben. bis hin zu einem voll funktionsfĂ€higen Zustand und praktische Tipps fĂŒr die Arbeit mit Mikrotik zu zeigen: Konfiguration ĂŒber Parameter, AusfĂŒhrung von Skripten, Aktualisierung, Installation zusĂ€tzlicher Module usw.
Das Ziel des Artikels ist es, Kollegen dazu zu ermutigen, das Management von NetzwerkgerĂ€ten mit furchtbaren Stolpersteinen und KrĂŒcken in Form von selbstgeschriebenen Skripten, Dude, Ansible usw. aufzugeben und in diesem Zusammenhang Jubel und Massenfreude auf den PlĂ€tzen zu entfesseln.
0. Auswahl
Warum freeacs und nicht genie-acs, das in , als lebendiger angesehen wird?
Weil es zu genie-acs mit Mikrotik Veröffentlichungen von Spaniern gibt. Hier sind sie und von der letzten MUM. Auto-Sharing auf den Folien â das ist groĂartig, aber ich möchte von dem Konzept weg, Skripte zu schreiben, um Skripte zu starten, um Skripte zu startenâŠ
1. Installation von freeacs
Wir werden es auf Centos7 installieren, und da die GerĂ€te ziemlich viele Daten ĂŒbertragen und ACS aktiv mit der Datenbank arbeitet â sparen wir nicht an den Ressourcen. FĂŒr eine angenehme Nutzung reservieren wir 2 CPU-Kerne, 4 GB RAM und 16 GB schnellen Speicher in SSD RAID10. Ich werde freeacs in einem LXC-Container von Proxmox VE installieren, aber Sie können mit jedem Ihnen passenden Tool arbeiten.
Vergessen Sie nicht, die richtige Zeit auf der Maschine mit ACS einzustellen.
Das System wird testweise sein, daher werden wir es nicht kompliziert machen und einfach das freundlicherweise zur VerfĂŒgung gestellte Installationsskript nutzen, so wie es ist.
wget https://raw.githubusercontent.com/freeacs/freeacs/master/scripts/install_centos.sh
chmod +x install_centos.sh
./install_centos.shSobald das Skript abgeschlossen ist, können Sie sofort ĂŒber die IP der Maschine auf die WeboberflĂ€che mit den Anmeldedaten admin/freeacs zugreifen.

So eine angenehme minimalistische BenutzeroberflÀche, und es hat alles so gut und schnell funktioniert.
2. Erste Konfiguration von freeacs
Die grundlegende Verwaltungseinheit fĂŒr ACS ist das GerĂ€t oder CPE (Customer Premises Equipment). Und das Wichtigste, was wir fĂŒr die Verwaltung der GerĂ€te benötigen, ist der GerĂ€tetyp, d.h. das Modell der Hardware, das die Menge der konfigurierbaren Parameter des GerĂ€ts und seiner Software bestimmt. Aber da wir noch nicht wissen, wie man einen neuen GerĂ€tetyp richtig anlegt, ist es am besten, direkt beim GerĂ€t nachzufragen, indem wir den Entdeckungsmodus aktivieren.
In der Produktion kann so ein Modus absolut nicht verwendet werden, aber wir mĂŒssen so schnell wie möglich das System starten und seine Möglichkeiten prĂŒfen. Alle grundlegenden Einstellungen werden in /opt/freeacs-*. gespeichert. Daher öffnen wir
vi /opt/freeacs-tr069/config/application-config.conf , wir finden
discovery.mode = falseund Àndern zu
discovery.mode = trueAuĂerdem sollten wir die maximalen DateigröĂen erhöhen, mit denen nginx und mysql arbeiten. FĂŒr mysql fĂŒgen wir in /etc/my.cnf die Zeile hinzu
max_allowed_packet=32M, und fĂŒr nginx fĂŒgen wir in /etc/nginx/nginx.conf hinzu
client_max_body_size 32m;in den http-Bereich. Andernfalls können wir mit Firmware-Versionen von nicht mehr als 1M arbeiten.
Wir starten neu, und wir sind bereit, mit den GerÀten zu arbeiten.
Und als GerÀt (CPE) haben wir den kleinen Arbeiter .
Vor der Testverbindung ist es ratsam, das CPE manuell auf die minimal funktionsfĂ€hige Konfiguration einzustellen, damit die Parameter, die Sie in Zukunft konfigurieren möchten, nicht leer sind. FĂŒr den Router sollte minimal der DHCP-Client fĂŒr ether1 aktiviert, das Paket tr-069client installiert und Passwörter gesetzt werden.
3. Mikrotik anschlieĂen
Es ist ratsam, alle Einheiten mit einer gĂŒltigen Seriennummer als Login anzuschlieĂen. So sind die Protokolle fĂŒr Sie verstĂ€ndlich. Einige empfehlen, die WAN-MAC zu verwenden â glauben Sie das nicht. Einige verwenden ein allgemeines Login/Passwort-Paar â meiden Sie diese.
Ăffnen Sie das tr-069-Protokoll, um die "GesprĂ€che" zu ĂŒberwachen.
tail -f /var/log/freeacs-tr069/tr069-conversation.logĂffnen Sie winbox, MenĂŒpunkt TR-069.
ACS URL: http://10.110.0.109/tr069/prov (ersetzen Sie durch Ihre IP)
Benutzername: 9249094C26CB (serielle Nummer aus system>routerboard kopieren)
Passwort: 123456 (fĂŒr discovery nicht erforderlich, aber zur VerfĂŒgung stehen sollte)
Das Intervall fĂŒr die periodische Information Ă€ndern wir nicht. Diese Einstellung geben wir ĂŒber unseren ACS weiter.
Im Folgenden kommen die Einstellungen fĂŒr die Remote-Initialisierung der Verbindung, aber ich konnte den Mikrotik nicht schnell dazu bringen, damit zu arbeiten. Obwohl es mit Telefone Remote-Requests "out of the box" funktioniert. Da muss ich mich noch damit befassen.

Nach dem Klicken auf die SchaltflĂ€che Anwenden wird der Datenaustausch im Terminal beginnen, und im Web-Interface Freeacs können Sie unseren Router mit automatisch erstelltem Unit Type âhAPacliteâ sehen.

Router ist angeschlossen. Man kann den automatisch erstellten Unit Type ansehen. Ăffnen Sie Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite. Was es dort nicht alles gibt! Ganze 928 Parameter (ich habe im Shell nachgeschaut). Ob das viel oder wenig ist â das klĂ€ren wir spĂ€ter, aber jetzt schauen wir einfach mal kurz vorbei. So sieht der Unit Type aus. Es ist eine Liste der unterstĂŒtzten Parameter mit SchlĂŒsseln, aber ohne Werte. Die Werte werden auf niedrigeren Ebenen in Profilen und Einheiten festgelegt.
4. Mikrotik konfigurieren
Es ist Zeit, Dieses Handbuch ist aus dem Jahr 2011 â wie eine Flasche guten, gereiften Weins. Lassen Sie uns es öffnen und atmen lassen.
Und selbst, im Web-Interface, klicken wir auf den Stift neben unserem Modul und wechseln in den Konfigurationsmodus des Moduls. So sieht das aus:

Lass uns kurz durchgehen, was es Interessantes auf dieser Seite gibt:
Block Modulkonfiguration
- Profil: Dies ist das Profil innerhalb des Modultyps. Die Hierarchie ist wie folgt:
UnitType > Profil > Modul. Das heiĂt, wir können beispielsweise Profile erstellenhAPaclite > hotspotundhAPaclite > branch, aber innerhalb des GerĂ€temodells
Block Bereitstellung mit Tasten
Hinweise deuten darauf hin, dass alle Tasten im Block Bereitstellung die Konfiguration sofort ĂŒber ConnectionRequestURL anwenden können. Aber, wie ich oben gesagt habe, funktioniert das nicht, daher mĂŒssen wir nach dem DrĂŒcken der Tasten den tr-069-Client auf mikrotik neu starten, um die Bereitstellung manuell zu starten.
- Freq/Spread: Wie oft in der Woche die Konfiguration ± % geliefert werden soll, um die Serverlast und KommunikationskanĂ€le zu reduzieren. StandardmĂ€Ăig ist es 7/20, d.h. jeden Tag ± 20 % und der Hinweis, wie das in Sekunden ist. Momentan macht es keinen Sinn, die Lieferfrequenz zu Ă€ndern, da es zusĂ€tzlichen LĂ€rm in den Logs verursachen wĂŒrde und nicht immer die erwartete Anwendung der Einstellungen erfolgt.
Block Bereitstellungshistorie (letzte 48 Stunden)
- Auf den ersten Blick sieht die Historie aus wie jede andere Historie, aber wenn man auf den Titel klickt, gelangt man zu einem praktischen Suchwerkzeug fĂŒr die Datenbank, mit regexp und Extras.
Block Parameter
Der gröĂte und wichtigste Block, in dem die Parameter fĂŒr dieses Modul festgelegt und gelesen werden. Momentan sehen wir nur die allerwichtigsten Systemparameter, ohne die die FunktionalitĂ€t von ACS mit dem Modul nicht möglich ist. Aber wir erinnern uns, dass wir in Unit Type - 928. Lass uns alle Werte ansehen und herausfinden, wie es bei mikrotik lĂ€uft.
4.1 Parameter lesen
Im Block Bereitstellung drĂŒcken wir die Taste Alle lesen. Im Block â rote Beschriftung. Rechts erscheint eine Spalte CPE (aktueller) Wert. Der Systemparameter ProvisioningMode hat sich auf READALL geĂ€ndert.

Und⊠es wird nichts passieren, auĂer einer Nachricht in System.X_FREEACS-COM.IM.Message. Kick fehlgeschlagen bei....
Starten Sie den TR-069-Client neu oder starten Sie den Router neu, und aktualisieren Sie die Webseite im Browser, bis Sie rechts die Parameter in fröhlichen grauen Rechtecken erhalten.
Wenn jemand einen Schluck alten Jahrgang nehmen wollte - dieser Modus wird im Handbuch als 10.2 Inspektionsmodus beschrieben. Er aktiviert sich und funktioniert etwas anders, aber die Essenz ist ganz klar.

Der READALL-Modus schaltet sich nach 15 Minuten selbst aus, und wir werden versuchen herauszufinden, was hier nĂŒtzlich ist und was wir âon the flyâ anpassen können, wĂ€hrend wir in diesem Modus sind.
Es ist möglich, IP-Adressen zu Àndern, Schnittstellen ein- und auszuschalten, Firewall-Regeln zu erstellen, die mit Kommentaren versehen sind (ansonsten herrscht völliges Chaos), WLAN und so weiter.
Das heiĂt, es ist momentan nicht möglich, Mikrotik vernĂŒnftig nur mit den Mitteln von TR-069 zu konfigurieren. Aber eine ordentliche Ăberwachung ist durchaus möglich. Statistiken zu den Schnittstellen, deren Status, freiem Speicher usw. stehen zur VerfĂŒgung.
4.2 Parameter bereitstellen
Lass uns jetzt versuchen, die Parameter auf den Router ĂŒber tr-069 auf "natĂŒrlichem" Weg zu ĂŒbertragen. Das erste Opfer wird Device.DeviceInfo.X_MIKROTIK_SystemIdentity sein. Wir finden ihn in den Parametern des GerĂ€ts All. Wie zu sehen ist, ist er nicht festgelegt. Das bedeutet, dass jedes GerĂ€t einen beliebigen Identity-Wert haben kann. Das mĂŒssen wir uns nicht gefallen lassen!
Wir setzen ein HĂ€kchen in der Spalte erstellen, geben den Namen Mr.White ein und klicken auf die SchaltflĂ€che Parameter aktualisieren. Was als NĂ€chstes passiert, dĂŒrftet ihr euch bereits denken. Bei der nĂ€chsten Verbindung mit der Zentrale sollte der Router seine IdentitĂ€t Ă€ndern.

Aber das reicht uns nicht. So ein Parameter wie Identity ist immer nĂŒtzlich, wenn man das richtige GerĂ€t sucht. Wir klicken auf den Namen des Parameters und setzen die HĂ€kchen fĂŒr Anzeigen (D) und Durchsuchbar (S). Der SchlĂŒssel des Parameters Ă€ndert sich auf RWSD (Denkt daran, dass die Namen und SchlĂŒssel auf der höchsten Ebene des GerĂ€tetyps festgelegt werden.)

Der Wert wird jetzt nicht nur in der allgemeinen Suchliste angezeigt, sondern kann auch in Support > Suche > Erweiterte Form

Wir initiieren die Bereitstellung und schauen uns die IdentitÀt an. Hallo, Mr.White! Jetzt können Sie Ihre IdentitÀt nicht mehr selbst Àndern, solange der tr-069client aktiv ist.

4.3 Skripte ausfĂŒhren
Da wir festgestellt haben, dass wir ohne sie nicht auskommen, lassen Sie sie uns ausfĂŒhren.
Aber bevor wir mit den Dateien arbeiten, mĂŒssen wir die Direktive public.url in der Datei /opt/freeacs-tr069/config/application-config.conf
Ă€ndern. Wir haben schlieĂlich immer noch eine Testkonfiguration, die mit einem Skript installiert wurde. Haben wir das vergessen?
# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}Wir starten den ACS neu und gehen direkt zu Dateien & Skripte.

Aber das, was wir jetzt öffnen, gehört zum GerĂ€teelementtyp, d.h. global fĂŒr alle Router hAP ac lite, egal ob es sich um den Router einer Niederlassung, einen Hotspot oder CAPsMAN handelt. So ein hoher Zugriff ist fĂŒr uns momentan nicht nötig, also mĂŒssen wir, bevor wir mit Skripten und Dateien arbeiten, ein Profil erstellen. Wir können es uns auch als "GerĂ€testelle" nennen.
Lass uns unseren Kleinen zu einem Zeitserver machen. Eine anstĂ€ndige Rolle mit einem eigenen Softwarepaket und wenigen Parametern. Gehe zu Einfache Bereitstellung > Profil > Profil erstellen und erstelle im GerĂ€tetyp: hAPaclite das Profil timeserver. Im Standardprofil hatten wir keine Parameter, also gibt es auch nichts zu kopieren. Parameter kopieren von: «nicht kopierenâŠÂ»

Hier sind noch keine Parameter vorhanden, aber wir können die festlegen, die wir spÀter auf unseren Zeitservern aus hAPaclite sehen möchten. Zum Beispiel die allgemeinen NTP-Serveradressen.
Wir gehen zur Konfiguration des GerÀts und verschieben es in das Profil timeserver.
Endlich gehen wir nach Dateien & Skripte, um Skripte zu erstellen, und hier erwarten uns erstaunlich praktische Funktionen.
Um ein Skript auf dem GerĂ€t auszufĂŒhren, mĂŒssen wir auswĂ€hlen Type:TR069_SCRIPT a Name und Zielname mĂŒssen die Erweiterung .alter haben.
Dabei können wir fĂŒr Skripte im Gegensatz zu Software sowohl eine fertige Datei hochladen als auch sie einfach im Feld Inhalt. Lass uns versuchen, es dort direkt zu schreiben.
Und um das Ergebnis sofort sichtbar zu machen, fĂŒgen wir dem Router einen VLAN auf ether1 hinzu.
/interface vlan
add interface=ether1 name=vlan1 vlan-id=1
Wir geben ein, klicken auf Upload und fertig. Unser Skript vlan1.alter wartet auf seinen Einsatz.
Na, gehen wir los? Nein. Wir mĂŒssen auch fĂŒr unser Profil eine Gruppe hinzufĂŒgen. Gruppen gehören nicht zur Hierarchie der GerĂ€te, sind jedoch notwendig, um GerĂ€te im UnitType oder Profil zu finden und sind erforderlich, um Skripte ĂŒber das erweiterte Provisioning auszufĂŒhren. Normalerweise sind Gruppen mit Standorten verbunden und haben eine hierarchische Struktur. Lass uns eine Gruppe Russland erstellen.

Kannst du dir vorstellen, dass wir gerade die Suche von âAlle Zeitserver der Welt auf hAPacliteâ auf âAlle Zeitserver Russlands auf hAPacliteâ eingegrenzt haben? Da gibt es noch viele interessante Dinge mit Gruppen, aber wir haben keine Zeit. Lass uns schon zu den Skripten gehen.
Erweitertes Provisioning > Job > Job erstellen
Da wir uns schlieĂlich im erweiterten Modus befinden, können hier viele verschiedene Bedingungen fĂŒr den Beginn des Jobs, das Verhalten bei Fehlern, Wiederholungen und ZeitĂŒberschreitungen angegeben werden. Ich empfehle, dies alles in den HandbĂŒchern nachzulesen oder spĂ€ter bei der EinfĂŒhrung in die Produktion zu besprechen. Bis dahin setzen wir nur n1 in die Stop-Regeln, damit der Job stoppt, sobald er auf unserem 1. GerĂ€t ausgefĂŒhrt wird.
Wir fĂŒllen das Notwendige aus, und jetzt mĂŒssen wir nur noch starten!

Wir klicken auf START und warten. Jetzt wird der ZĂ€hler der von dem nicht richtig getesteten Skript betroffenen GerĂ€te schnell hochlaufen! Nein, natĂŒrlich nicht. Solche AuftrĂ€ge dauern lange, und das unterscheidet sie von Skripten, Ansible usw. Die GerĂ€te rufen die AuftrĂ€ge nach einem Zeitplan ab oder sobald sie im Netzwerk erscheinen, und ACS registriert, welche GerĂ€te bereits AuftrĂ€ge erhalten haben und wie sie abgeschlossen wurden, und zeichnet dies in den Parametern des GerĂ€ts auf. In unserer Gruppe gibt es 1 GerĂ€t, und wenn es 1001 wĂ€ren â der Administrator wĂŒrde diesen Job starten und dann zum Angeln fahren.
Kommen Sie schon. Starten Sie den Router neu oder starten Sie den TR-069-Client neu. Alles sollte reibungslos ablaufen und Mr.White wird einen neuen VLAN erhalten. Unser Auftrag fĂŒr die Stoppregel geht in den Status PAUSED. Das heiĂt, er kann noch einmal gestartet oder geĂ€ndert werden. Wenn Sie auf BEENDEN klicken, wird der Auftrag archiviert.
4.4 Software aktualisieren
Dies ist ein sehr wichtiger Punkt, da die Firmware des Mikrotik modular ist, aber das HinzufĂŒgen von Modulen die Gesamtausgabe der Firmware des GerĂ€ts nicht Ă€ndert. Unser ACS ist normal, und wir sind an so etwas nicht gewöhnt.
Jetzt machen wir es im Stil von quick&dirty und packen das NTP-Modul direkt in die gesamte Firmware, aber sobald die Version auf dem GerĂ€t aktualisiert wird, können wir kein weiteres Modul auf die gleiche Weise hinzufĂŒgen.
In der Produktion sollte man solchen Trick besser nicht anwenden und optionale Module fĂŒr den Unit Type nur mit Skripten installieren.
Also, das erste, was wir tun mĂŒssen, ist, die Softwarepakete mit den erforderlichen Versionen und der Architektur vorzubereiten und sie auf einen erreichbaren Webserver zu legen. FĂŒr den Test geht jeder, den unser Mr.White erreichen kann, aber fĂŒr die Produktion ist es besser, ein automatisch aktualisiertes Spiegelbild der benötigten Software zu erstellen, das man bedenkenlos im Web bereitstellen kann.
Wichtig! Vergessen Sie nicht, immer das Paket mit dem tr-069client in die Updates aufzunehmen!
Wie sich herausgestellt hat, ist die LĂ€nge des Pfades zu den Paketen sehr wichtig! Bei meinen Versuchen, etwas wie http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk, stĂŒrzte Mikrotik in eine zyklische Verbindung mit der Ressource und gab im tr-069-Log wiederholt TRANSFERCOMPLETE aus. Und ich vergab eine gewisse Anzahl von Nerven, um herauszufinden, was nicht stimmte. Daher lassen wir es vorerst im Wurzelverzeichnis, bis wir Klarheit haben.
Also, wir sollten drei npk-Dateien haben, die ĂŒber http zugĂ€nglich sind. Bei mir ist es so gelaufen:
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.npkJetzt muss dies in eine xml-Datei mit FileType="1 Firmware Upgrade Image" umgewandelt werden, die wir Mikrotik vorlegen. Lassen Sie den Namen ros.xml sein.
Wir folgen der Anleitung aus :
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.npkDie fehlende Benutzername/Passwort fĂŒr den Zugriff auf den Download-Server fĂ€llt ins Auge. Man kann entweder versuchen, dies wie im Punkt A.3.2.8 des Protokolls tr-069 einzutragen:
http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk
user
passOder direkt bei den offiziellen MikroTik-Vertretern nach der maximalen PfadlÀnge zu *.npk fragen.
Wir gehen zu den uns bekannten Dateien & Skripte, und erstellen dort eine Datei vom Typ SOFTWARE mit Name:ros.xml, Zielname:ros.xml und Version:6.45.6
Achtung! Die Version muss genau im Format angegeben werden, wie sie auf dem GerĂ€t angezeigt wird und im Parameter ĂŒbermittelt wird System.X_FREEACS-COM.Device.SoftwareVersion.
WĂ€hlen Sie unsere xm-Datei zum Herunterladen aus und fertig.

Jetzt haben wir viele Möglichkeiten, das GerĂ€t zu aktualisieren. Ăber den Wizard im HauptmenĂŒ, ĂŒber Advanced Provisioning und Aufgaben vom Typ SOFTWARE oder einfach die Konfiguration der Einheit aufrufen und auf Upgrade klicken. WĂ€hlen wir den einfachsten Weg, denn der Artikel ist ohnehin schon lang genug geworden.

Wir drĂŒcken die Taste, initiieren das Provisioning und fertig. Das Testprogramm ist abgeschlossen. Jetzt können wir mehr mit MikroTik machen.
5. Fazit
Als ich anfing zu schreiben, wollte ich zunÀchst die Verbindung eines IP-Telefons beschreiben und anhand dieses Beispiels erklÀren, wie einfach es sein kann, wenn TR-069 problemlos funktioniert. Aber dann dachte ich, als ich mich durch das Material arbeitete, dass jede Person, die MikroTik angeschlossen hat, keine Angst vor dem selbststÀndigen Lernen haben sollte.
Im Prinzip kann FreeACS, das wir getestet haben, bereits in der Produktion eingesetzt werden, aber dazu mĂŒssen Sicherheit, SSL konfiguriert werden, MikroTiks fĂŒr die automatische Konfiguration nach dem Reset eingestellt werden, die korrekte HinzufĂŒgung des Unit Typs muss optimiert werden, die Funktionsweise von Webservices und Fusion Shell muss durchforstet werden, und noch vieles mehr. Probieren Sie es aus, erfinden Sie Neues und schreiben Sie die Fortsetzung!
Vielen Dank fĂŒr Ihre Aufmerksamkeit! Ich freue mich ĂŒber Anmerkungen und Kommentare!
Liste der verwendeten Materialien und nĂŒtzliche Links:
Quelle: habr.com
