This is an old revision of the document!


Durch unsere Langjährige Erfahrung mit dem Anwendungsfall der Einsatzleitwagen, sind gängige Probleme und deren Lösungen bekannt. In diesem Artikel enthalten sind die beste Konfiguration und deren Erklärung um die Lösungen umzusetzen zusammengefasst.

Das typische Szenario eines Einsatzleitwagens bietet aus ROuter Sicht zwei Schauplätze. Zunächst befindet sich der Router in einer Garage, in der er eine Internetverbindung über Lan oder Wlan herstellt. Da Lan in der Regel die stabilste Verbindung aufweist, soll es vor dem Wlan bevorzugt werden. Fährt der Wagen nun aus der Garage, brechen beide Verbindungen ab. Die Internetverbidnung kann nun über WWAN also Mobilfunk hergestellt werden. Eine gängige Lösung für dieses Szenario bietet das folgende Bild.

BILD LINKMANAGER

Auf dem Bild ist der Linkmanager zu sehen, der die Aufgabe hat diese Links anhand der konfigurierten Anforderungen auszuwechseln. Es kann nämlich immer nur ein Link der Hotlink sein. Nur über diesen ist der Router in der Lage die Internetverbindung herzustellen. Die Anforderungen an den Hotlink, sind Priorität und Status. Bevorzugt wird immer der Link der an oberster Stelle steht, wenn der operation Status up ist. Sollte er mit down markiert sein, wird die nächste Priorität gewählt. Konfigurieren sie die Wanlinks zum ersten mal, werden sie in der selben Reihenfolge in den Linkmanager übernommen in der sie Konfiguriert werden. Dabei steht der Operationmode der Links bei dem ersten Link immer auf Permanent. Alle Nachfolgenden Links werden mit Switchover übernommen. Die Priorität und die operation Modes sind im nachhinein noch Konfigurierbar.

Um dem Lan Link die höchste Priorität zu geben, steht er auf Permanent mit erster Priorität. Sollte kein LAN Link vorhanden sein wechselt der Linkmanager auf WLAN. Um die Backup eigenschaft des Wlan umzusetzen, steht es auf switchover und an zweiter stelle. Dieser operation Mode verursacht beim Wlan den operational Status Down, wenn dieser nicht Hotlink ist. Das bedeutet, er befindet sich im Ruhezustand und wird erst aufgeweckt, wenn das LAN wegfällt. Im Einsatzfall, fallen nun beide Links Lan und WLAN aus. Die WWAN Links sind mit distributed Konfiguriert. Das soll eine einseitige Belastung der Simkarten verhindern. Dieser operation Mode setzt das Konzept des loadbalancing um. Bonnding ist hier nicht möglich. Hat eine Simkarte weniger Datenvolumen zur Verfügung, kann dies über die Gewichtung ausgeglichen werden. Bei gleicher Aufteilung wird die Einstellung weight wwan1 5 und weight wwan2 5 empfohlen. Somit Teilen sich die Links die herunterzuladenden Dateien. Dabei werden nur Dateien verschiedener Websiten aufgeteilt. Dateien von einer gleichen Website immer über den selben Link heruntergeladen.

Der Linkmanager überwacht die für die Internetkommunikation zuständige Hardware des Routers. Fällt hier eine Komponenten aus, deklariert der Linkmanager diese als down. Da hier nur Äusfälle der Komponenten der Hardware des Routers erkannt werden und nicht die der entfernten Hardware des Kommunikationspartners muss eine Supervision eingerichtet werden, die mit einem Ping die entfernten Server testet. Können die Pings nicht erreicht werden, benachrichtigt die Supervision den Linkmanager. Dieser zieht dann die Links runter.

BILD SUPERVIISION

Die Supervision soll für den LAN und WLAN link eingesetzt werden um Probleme in ihrem Netzwerk zu detektieren. Der Primary Host “8.8.8.8” kann Beispielsweise verwendet werden. Bei den hier zu sehenden Einstellungen wird alle 5 Sekunden ein Ping gesendet. Dieser besteht immer aus einem Request und einem Reply. Beträgt die Zeit zwischen diesen mehr als 2000 Millisekunden zum Antworten, wird das Intervall auf 3 Sekunden reduziert. Nach 3 Fehlgeschlagenen Pings wird der Linkmanager benachrichtigt.

Fährt der Wagen nun in die nähe eines Accesspoints, der die gleiche SSID hat wie ihrer, wird sich das WLAN mit diesem Verbinden, da der Linkmanager minütlich mit dem WLAN Client probiert ein Netzwerk zu finden. Da er eine höhere Priorität als ihr WWAN Link hat, wird der Linkmanager den WLAN link bevorzugen. Durch die Einstellung Required Signal Strength verbindet sich der WLAN Client erst, wenn ihnen der Access Point mindestens eine bestimmte Signalstärke hat. Das Quality level sollte mit dem default Wert 25 gut eingestellt sein.

Das Freeboard bietet die Möglichkeit ihre WANLINKS zu überwachen. Hier können die die Signalstärke ihrer WWAN Verbindungen einsehen (1), sehen welcher Link gerade der Hotlink ist (2), mit welchem AP ihr WLAN Client verbunden ist (3) und mit welcher Datenrate ihre WWAN Links gerade senden (4). Sollten sie erkennen, dass ein WWAN Link nicht mehr mit der entsprechenden Datenrate sendet, können sie ihn abschalten, was zu einer Bevorzugung des noch aktiven WWANLINKS führen würde. Unter (5.1) wählen sie aus welcher Link abgeschaltet wird und mit Klick auf (5.2) triggern sie die Umstellung. Der andere WWAN Link wird dann automatisch aktiviert. Nach einem reboot sind beide Links wieder aktiv. Mit dem Button check Wifi (6), können sie prüfen ob die Verbindung ihres Wlan Client im Bereich der von ihnen eingestellten Required Signalstrength ist. Sollte das der Fall sein, wird dieses Skript das erkennen und die SSID ihres Clients auf leer ändern und die Verbidung wird unterbrochen. Weißt ihr Client eine Bessere Verbindung auf, bleibt die SSID erhalten oder wird wieder auf den von ihnen eingestellten Wert zurück gesetzt. Entscheiden sie sich dafür die SMS Funktion des Freeboards zu nutzen, können sie die Nummer unter (7.1) und die Nachricht unter (7.2) einfügen. Die Nummer muss mit der Länderkennung ohne Plus beginnen. Unter (7.3) Sehen sie den empfangenen Text.

BILD FREEBOARD

Das Freeboard ist eine Zusatzoption, das sie über einen Container auf ihren Router installieren können. Wie das funktioniert ist im folgenden erklärt. Als erstes ist die Funktion cli php im Webserver aktivieren und sollten sie sich beim Networkmode ihres Containers für Bridged entscheiden, ein static Host im DHCP.

BILD staticHOST

Danach unter SYSTEN → Virtualiation den LXC Container einschalten.

Enable Virt

Nun können sie den LXC Konfigurieren. Zuerst muss die folgende URL eingetragen werden. Dabei muss install on Appöy ausgewählt sein.
Danach können sie sich für einen Netzwerkmodus entscheiden. Für den Modus Routed müssen sie keine weiteren Einstellungen Vornehmen. Allerdings muss ihr Laptop eine Route für die Adresse kennen.

BILD INSTALL ALPINE

Wenn sie auf Apply klicken, wird der Container installiert.

Nach einem letzten Schritt können sie das freeboard verwenden. Öffnen sie Putty und verbinden sie sich mit ihrem Router. Stellen sie dazu den Port 22 und Connectiontype SSH ein. Der Host Name ist die IP mit dem sie auch die Weboberfläche ihres Routers erreichen.

BILD PUTTY

Melden sie sich mit ihren zugangsdaten an und kopieren sie den folgenden Befehl in die Kommandozeile. sed -i “s#json\&usr=[^=]*\&#json\&usr=$username\&#g” /mnt/storage0/lxc/guest0/var/www/html/freeboard/dash.json Ersetzen sie hier $username mit ihrem Usernamen. Das gleiche nochmal mit diesem Befehl und ihrem Passwort anstelle von &password. sed -i “s#\&pwd=[^=]*\&#\&pwd=$password\&#g” /mnt/storage0/lxc/guest0/var/www/html/freeboard/dash.json

Nun können si auf das Freeboard unter http://192.168.2.149/freeboard/index.html/\# source=dash.json zugreifen. Haben sie die Einstellung Routed gewählt, geben sie die dort eingestellte IP anstelle von 192.168.2.149 ein.

Damit sie die Funktionen wie SMS, Check Wifi, das Abschalten eines WWAN Links oder das Anzeigen des Momentanen Hotlinks nutzen können müssen einige SDK Skripts eingerichtet werden.

Das Folgende Skript müssen sie einbinden um den Hotlink angezeigt zu bekommen.

hotlink=struct_get(nb_status(“wan”),“WAN_HOTLINK”); switch(hotlink){

   case "WANLINK1": nb_config_set("custom.var2=LAN"); break;
   case "WANLINK2": nb_config_set("custom.var2=WLAN"); break;
   case "WANLINK3": nb_config_set("custom.var2=WWAN1"); break;
   case "WANLINK4": nb_config_set("custom.var2=WWAN2"); break;
   default: nb_config_set("custom.var2=kein link ist Hotlink"); break;

}

Es müssen zwei Jobs mit jeweils einem eigenen Trigger dafür erstellt werden. Ein Job mit wan-up als trigger und ein Job mit wan-down als trigger. Beide Jobs enthalten das gleiche Skript.

Das folgende Skript ermöglicht das Abschalten der WWANLINKS.

wanlink = nb_config_get(“custom.var1”); switch(wanlink){

      case "": continue; break;
      case "WANLINK3": nb_wanlink_deactivate("WANLINK3");  nb_wanlink_activate("WANLINK4"); break;
      case "WANLINK4":  nb_wanlink_deactivate("WANLINK4"); nb_wanlink_activate("WANLINK3"); break;
      default: printf("no Hotlink"); break;

} sleep(1); nb_config_set(“custom.var1=”);

Hier muss ein JOB mit dem Triggernamen DISABLEWWAN und dem event cliphp erstellt werden.

Möchten sie die check wifi funktion verwenden, müssen sie das folgende Skript mit dem Triggerevent cliphp und dem Triggername wlantrigger einbinden. Ändern sie die Variable NETWORK auf den Namen ihres Access Points.

IFC = “WLAN1”; NETWORK = “IHRACCESSPOINTNAME”; count = 0; MIN_SIGNAL = (int)nb_config_get(“wlan.0.client.0.minrssi”); nets = nb_scan_networks(IFC); nr_nets = struct_get(nets, “NETWORK_COUNT”);

for (i = 1; i ⇐ nr_nets; i++) {

  k = sprintf("NETWORK%d_SSID", i);
  ssid = struct_get(nets, k);
  k = sprintf("NETWORK%d_SIGNAL", i);    
  signal = (int)struct_get(nets, k);
  if (ssid == NETWORK) {
       for(j = 0; j <= 5; j++){
            if(signal > (MIN_SIGNAL + j)){
                   count++;   
             }
        }
        break;
  }

}

if(count != 0){

   nb_config_set("wlan.0.client.0.ssid=leer");

}else{

   cfg = sprintf("wlan.0.client.0.ssid=%s", NETWORK);
   nb_config_set(cfg);

}

exit(0);

Wenn sie die SMS Funktion nutzen möchten, müssen sie unter SERVICES → SMS die beiden Einstellungen Administrative status und Request delivery report aktivieren. Danach muss ein Job mit dem folgendem Skript erstellen und sms-received als Trigger verwendet werden. Desweiteren muss die SIM Karte unter Services → SMS → Administration ausgewählt werden.

sms=nb_sms_list(); msg=nb_sms_body(sms[0]); nb_config_set(sprintf(“custom.var3=%s”, msg)); sleep(2); nb_sms_delete(sms[0]);