Hi,
ich habe mich gestern Abend und heute Vormittag mit dem Problem
auseinandergesetzt, dass Netmon keine IP-Adressen hinzufügt und habe bis auf
weitere Tests von euch auch einen Fix dafür gefunden.
Das Problem liegt in der isInNetwork()-Methode der Ip.class.php. Netmon kennt
unsere verwendeten Netzwerke (fe80::/64 für ipv6 link locals und 10.18.0.0/16
für ipv4). Wenn eine neue IP-Adresse hinzugefügt werden soll, prüft Netmon ob
diese überhaupt zu einem der konfigurierten Netze gehört, damit wir keinen
Datenmüll und private Adressen sammeln.
Dazu wird die Adresse des Netzwerks sowie die hinzuzufügende Adresse inklusive
der Netzmasken in einen Binärstring konvertiert und dann der zur Netzmaske
gehörende Teil verglichen. Sind beide gleich, kann die Adresse hinzugefügt
werden.
Bei diesem Verfahren wird die PHP Methode inet_pton() verwendet, die eine
Menschenlesbare Adresse in eine Maschinenlesbare Adresse umwandelt. Zwischen
den PHP Versionen 5.4 und 5.6 hat sich jedoch anscheinend das Ergebnis dieser
Methode geändert was zu einem Fehler führt (als Füllzeichen werden jetzt
Nullen statt Leerzeichen genommen). Beim ausführen von unpack() auf einer IP-
Adresse muss also "a16" (php 5.6) statt "A16" (php 5.4) als Formatstring
genutzt werden.
Das ganze hat auf srv01 immer problemlos funktioniert, weil wir dort noch PHP
5.4 fahren. Auf srv06 läuft allerdings bereits PHP 5.6. An der kritischen
Stelle wird jetzt einfach eine Versionsunterscheidung gemacht.
Sobald der Server für das Gitlab wieder tut gibts auch einen commit im Gitlab.
LG
Clemens
Hi,
ich habe heute in unserem Oberseminar an der Universität Osnabrück einen
Vortrag zum aktuellen Stand des Entwurfs der Netmon Software Compilation
gehalten.
Wer Interesse an den Folien hat, findet diesem im Git-Repo unter:
https://git.nordwest.freifunk.net/Netmon-SC/bachelor-thesis-talk/blob/maste…
+++
Talk held on 2015-07-08 at the "Oberseminar" of the University Osnabrück about
the concept of transforming the monolytic Netmon into a distributed system
called Netmon Software Compilation (Netmon SC).
+++
LG
Clemens