Einsatzleitwagen

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 Internetverbindung kann jetzt über WWAN also Mobilfunk hergestellt werden. Eine gängige Lösung für dieses Szenario bietet das folgende 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. Im Normalfall kann der Router nur über diesen Link die Internetverbindung herstellen. Haben sie eine Extended Route konfiguriert oder verwenden den operation Mode Distributed, können mehrere Links gleichzeitig Daten übertragen. Auf den operation Mode Distributed gehe ich später noch ein. Die Auswahl des Hotlink richtet sich nach der Priorität und dem 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 derselben 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. Dabei werden nur Dateien verschiedener Seiten aufgeteilt, was eine einseitige Belastung der SIM-Karten verhindern soll. Dieser operation Mode setzt das Konzept des loadbalancing um. Bonding ist hier nicht möglich. Hat eine SIM-Karte 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 Verbindung. Dabei werden nur Dateien verschiedener Webseiten aufgeteilt. Dateien von einer gleichen Website immer über denselben Link heruntergeladen.

Der Linkmanager überwacht die für die Internetkommunikation zuständige Hardware des Routers. Fällt hier eine Komponente aus, deklariert der Linkmanager diese als down. Da hier nur Ausfä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.

Supervision

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.

WLAN

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.

SDK

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

showHotlink.are
while(true){
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.

disableWWAN.are
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.

checkWifi.are
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.

recieveSMS.are
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]);

Die Job Konfiguration könnte so aussehen. Dabei müssen die Namen für die Trigger wlantrigger und DISABLEWWAN unbedingt verwendet werden.