Durch die Verwendung der Skriptsprache Lua innerhalb von ASCII-Konfigurationsdateien können diese flexibel und mit Abhängigkeiten gestaltet werden.

Die Beschreibung in diesem Configuration Guide folgt einer Konfiguration in der neuen Bedienoberfläche (Web-Interface), die ab icom OS 5.5 zur Verfügung steht. Aktualisieren Sie Ihren Router auf die neueste Version von icom OS für den erforderlichen Funktionsumfang der neuen Bedienoberfläche. Die Beschreibung dieser Konfiguration im klassischen Web-Interface finden Sie in diesem Configuration Guide.

Situation

Es soll eine Verbindungsprüfung für eine WAN-Kette durchgeführt werden. Dies ist im Menü lan NetzwerkWAN/Internet des Routers mit Bordmitteln möglich. In diesem Fall soll ein Ping an zwei unterschiedliche IP-Adressen ausgeführt werden, um die Verfügbarkeit von mindestens einer der Adressen zu prüfen. Wenn keine der Adressen gepingt werden kann, soll das Modem zurückgesetzt werden.

Lösung

Diese spezielle Anwendung wird mit einem Lua-Script realisiert. Siehe das Lua 5.3 Referenzhandbuch für weitere Informationen zu Lua.

Vorbereitung des Lua-Scripts

Dazu haben wir folgendes Lua-Script für den beschrieben Zweck vorbereitet. Kopieren Sie den Inhalt und fügen Sie ihn in ihren Texteditor ein oder laden Sie die Konfiguration über den Link unten herunter. Vergessen Sie nicht, die Ping-IP-Adressen auf die Adressen zu ändern, die Sie pingen müssen.

Lua-Script
-----LUA-----

-- variable definition:
PING_ADDRESS1 = "10.10.0.1" -- replace this with your first IP address
PING_ADDRESS2 = "10.11.0.1" -- replace this with your second IP address
TRY = 3 -- this defines that an unsuccessful check will be repeated 3 times

-- aux flag
SUCCESS = 0 -- this flag is used to differentiate success (1) and no success (0)

-- ping check

for LOOP = 1 , TRY do
	a, b, c = pcall(cli, "help.debug.tool=ping -c 1 " .. PING_ADDRESS1) -- lua script that pings to address 1 and returns information to the variables a, b and c
	if c == 0 then -- means that the ping to address 1 was successful
		SUCCESS = 1 -- sets the success flag to 1
		cli_log("LUA ping - " .. LOOP .. ". check to target " .. PING_ADDRESS1 .. " successful") -- outputs the success message in the log
		-- device is online, exit lua and the script
		return -- exits the loop
	else -- continues the script in case of no success
		a, b, c = pcall(cli, "help.debug.tool=ping -c 1 " .. PING_ADDRESS2) -- lua script that pings to address 2 and returns information to the variables a, b and c
			print ("LOOP: " .. LOOP .. " - b:" .. b .. " c:" ..c) -- outputs the parameter in the cli
		if c == 0 then -- means that the ping to address 2 was successful
			SUCCESS = 1 -- sets the success flag to 1
			cli_log("LUA ping - " .. LOOP .. ". check to target " .. PING_ADDRESS2 .. " successful") -- outputs the success message in the log
			-- device is online, exit lua and the script
			return -- exits the loop
		else -- continues the script in case of no success at the end of the final number of loops
			cli_log("LUA ping - " .. LOOP .. ". check, both failed") -- outputs the no success message in the log
		end
	end
end

if SUCCESS == 0 then -- means that no ping was successful, the following commands will be executed
	cli_log("LUA ping - restarting modem") -- outputs this information in the log
	cli("help.debug.modem_state.name=lte2") -- defines the modem to be restarted
	cli("help.debug.modem_state.state_change=turn_off") -- defines that the modem is to be turned off
	cli("help.debug.modem_state.submit") -- submits above command to the router
end

-----LUA-----
exit

Eine ASCII-Konfigurationsdatei kann verwendet werden, um zusätzliche Konfigurationen zu einem bereits bestehenden Profil hinzuzufügen. Wir haben folgende ASCII-Konfigurationsdatei vorbereitet, die einen Timer und ein Ereignis zu Ihrem Profil sowie eine IP-Filterregel, die Ping-Anfragen erlaubt, hinzufügt. Das Ereignis führt das Lua-Skript jedes Mal aus, wenn der Timer abläuft. Kopieren Sie den Inhalt und fügen Sie ihn in ihren Texteditor ein oder laden Sie die Konfiguration über den Link unten herunter. Sie können das Timer-Intervall (und den Dateinamen falls Sie ihn geändert haben) für Ihre Anforderungen anpassen.

Warning Wenn in diesem Profil bereits ein Timer konfiguriert wurde, wird der erste Timer (timer1) durch diese Konfigurieren überschrieben.
ASCII-Konfigurationsdatei
events.timer.timer.add
events.timer.timer[1].active=1
events.timer.timer[1].description=Timer for dual ping check with Lua
events.timer.timer[1].type=interval
events.timer.timer[1].interval_hh=00
events.timer.timer[1].interval_mm=10

events.event_config.event.add
events.event_config.event[last].active=1
events.event_config.event[last].description=Dual ping check with Lua
events.event_config.event[last].event_type=ev_timer
events.event_config.event[last].event_timer_name=timer1
events.event_config.event[last].event_action_type=act_ascii
events.event_config.event[last].event_action_ascii=CG_m3_lua_connection_check_script.txt

netfilter.ip_filter.rule.add
netfilter.ip_filter.rule[last].rule_active=1
netfilter.ip_filter.rule[last].rule_desription=Ping queries sent by the router
netfilter.ip_filter.rule[last].rule_direction=output
netfilter.ip_filter.rule[last].rule_protocol=icmp
netfilter.ip_filter.rule[last].rule_output_if=all
netfilter.ip_filter.rule[last].rule_ipversion=all

administration.profiles.activate

Router-Konfiguration

Es wird vorausgesetzt, dass Sie Zugriff auf das Web-Interface des Routers haben, ein LTE-Modem in Slot 2 des Routers eingesetzt ist und der Router mit dem Schnellstart-Assistenten in Betrieb genommen wurde.

Note In den Grundeinstellungen ist das Gerät ausschließlich über die erste Ethernet-Buchse erreichbar. Dadurch wird vermieden, dass bei einem Zurücksetzen auf Werkseinstellungen bei einem bereits konfigurierten Router nicht versehentlich mehrere Netzwerke gebridged werden.
  1. Öffnen Sie die Bedienoberfläche des Routers in einem Browser: 192.168.1.1

  2. Klicken Sie im Menü cog outline AdministrationProfile im Abschnitt ASCII-Konfigurationen auf file upload, wählen Sie das oben heruntergeladene Lua-Skript aus und klicken Sie auf   SPEICHERN  .

  3. Klicken Sie auf file upload, wählen Sie die oben heruntergeladene ASCII-Konfigurationsdatei aus und klicken Sie auf   SPEICHERN  .

  4. Klicken Sie zum Anwenden der ASCII-Konfigurationsdatei in die Zeile der Konfigurationsdatei (nicht das Lua-Script), danach auf cog ASCII-Konfiguration anwenden und auf   ASCII-KONFIGURATION ANWENDEN  . [1]

Damit werden der Timer und das Ereignis sowie die IP-Filterregel, die Ping-Anfragen erlaubt, ihrem Profil hinzugefügt.

Erfolgskontrolle

  1. Wechseln Sie in das Menü view dashboard outline StatusLog-Ansicht, um die Ergebnisse dieser Konfiguration im Log zu beobachten.

  2. Prüfen Sie folgende Logs:

    • Modem

    • Netzwerk

    • CLI

    • Ereignisse

Fehlersuche

  • Der Zustand der WAN-Kette und deren Interfaces wird im Web-Interface im Menü view dashboard outline StatusDashboard dargestellt. Erreicht ein Interface nicht den Zustand online kann dessen Zustand ebenfalls in diesem Menü untersucht werden.

  • Kommt kein Netzwerkverkehr zustande, können die im Router integrierten Werkzeuge zum Debugging benutzt werden.

  • Am Router angeschlossenen Netzwerkgeräte können die Internet-Verbindung nicht nutzen. Das kann daran liegen, dass sie den Router noch nicht als Gateway und als DNS-Server eingetragen haben.

  • Zu Testzwecken können die IP-Filter deaktiviert werden. Auch der Router selber unterliegt den IP-Filtern. Muss der Router selber Pakete absenden, wird dafür eine OUTPUT-Regel benötigt. Soll der Router selber Pakete empfangen dürfen, wird eine INPUT-Regel benötigt. Um IP-Pakete routen zu dürfen, ist eine FORWARD-Regel notwendig.


Zurück zu den Configuration Guides für die icom OS Router

Zurück zur Übersicht


1. Anwenden einer ASCII-Konfigurationsdatei bedeutet, dass das geöffnete Profil um die darin enthaltenen Konfigurationen ergänzt oder durch diese modifiziert wird. Das geöffnete Profil wird bei dieser ASCII-Konfigurationsdatei auch aktiviert, da es den Befehl administration.profiles.activate enthält.