Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Home
Firmware
Fehlersuche - Support


Funktionsüberblick
Signalscanner
Application Notes
Usermodule
Videos


LUCOM
Shop
Newsletter
Testgerät
Workshop
www.lucom.de
info@lucom.de


Impressum

LUCOM GmbH
Komponenten & Systeme
Flößaustraße 22a
90763 Fürth
GERMANY

Fon:  +49 911 957 60 600
Fax:  +49 911 957 60 620
E-Mail:info@lucom.de

sidebar

lucom:router:startup_script

Startup Script

Im Menü Startup Script kann mit eigenen Linux Shell Scripten die Funktionalität das Routers erheblich erweitert werden. Zeilen die mit einer Raute '#' beginnen werden als Kommentare angesehen und können gelöscht werden. Lediglich die ersten Zeile '#!/bin/sh' muss immer vorhanden sein, sonst werden die Befehle nicht korrekt ausgeführt.

cd.lucom

Täglicher Router Neustart um 03:00 Uhr

Voraussetzungen:

  • Es ist ratsam, Firmware-Version 3.0.0 oder höher zu verwenden (Firmware-Update).
  • Die Genauigkeit der Router-internen Uhr wird durch das Aktivierten der Option Synchronize clock with NTP server, Menü NTP erhöht. Eine bewährte NTP-Adresse ist pool.ntp.org.

Im Menüpunkt „Startup Script“ muss folgendes stehen, damit der Router täglich um 03:00 Uhr ein Reboot durchführt.

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

echo "0 3 * * * root /sbin/reboot" > /etc/crontab
service cron start

Einmal pro Stunde DO schalten

UR5i, XR5i im Menüpunkt „Startup Script“ muss folgendes stehen der Digitalausgang des Routers eimal pro Stunde 1s lang eingeschaltet wird

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

cat > /var/scripts/toggle_io <<EOF
#!/bin/sh
io set OUT0 1
sleep 1
io set OUT0 0
EOF
chmod 755 /var/scripts/toggle_io 

echo "0 * * * * root /var/scripts/toggle_io" > /etc/crontab
service cron start

KEIN Traffic in das WEB - nur durch den/die VPN Tunnel

im Menüpunkt „Startup Script“ muss folgendes stehen damit der Router Datenübertragung nur durch den VPN Tunnel zulässt

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

iptables -A FORWARD -i eth0 -o ppp0 -d 172.16.0.0/12 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp0 -d 10.0.0.0/8 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp0 -d 192.168.0.0/16 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp0 -j DROP
  • ListenpunktJeglicher Datenverkehr vom eth0, also vom LAN zu ppp0, also der direkten Internetverbindung wird gedropt, also weggeworfen.

Geräte ohne Standard (Default) Gateway

Frage: Wass kann man machen wenn auf Geräten hinter dem UR5/ER75i KEIN Standardgateway konfiguriert ist

  • Antwort: bei NAT (z.B. Mdex)
  • im Menüpunkt „Startup Script“ muss folgendes stehen
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

iptables -t nat -A PREROUTING -p tcp --dport 8888 -j DNAT --to Geräteadresse:80
iptables -t nat -A POSTROUTING -p tcp -s Hostadresse -j SNAT --to Routeradresse
iptables -t nat -A PREROUTING -p tcp -s Geräteadresse -j DNAT --to Hostadresse

* bei LAN2LAN VPN
* im Menüpunkt "Startup Script" muss folgendes stehen 
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

iptables -t nat -A POSTROUTING -p tcp -s Hostadresse -j SNAT --to Routeradresse
iptables -t nat -A PREROUTING -p tcp -s Geräteadresse -j DNAT --to Hostadresse

Hostadresse = z.B. Adresse des PC (des Clients) Geräteadresse = Adresse das Gerätes (des Servers) Routeradresse = Adresse des ER75i

Mehr Portforwarding-Regeln als in der Browseroberfläche

Frage: Wie kann ich mehr Portforwarding-Regeln realisieren als in der Browseroberfläche einstellbar sind ?

im Menüpunkt „Startup Script“ muss folgendes stehen

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

iptables -t nat -A PREROUTING -p tcp --dport 8081 -j DNAT --to 192.168.1.200:80
iptables -t nat -A PREROUTING -p tcp --dport 8082 -j DNAT --to 192.168.1.201:80

somit werden alle tcp Pakete (-p tcp) die über den Port 8081 (–deport 8081) an die Router-IP-Adresse gesendet an die IP-Adressse 192.168.1.200 Port 80 weitergeleitet (–to 192.168.1.201:80). Alle tcp Pakete die über den Port 8082 an die Router-IP-Adresse gesendet werden, werden an die IP-Adressse 192.168.1.201 Port 80 weitergeleitet.

Profil-Wechsel

Im Router können bis zu vier Konfigurations-Profile parametrisiert werden, in denen jeweils unterschiedliche Dienste aktiviert sind. Der Wechsel zwischen diesen Profilen ermöglicht eine geschickte Kombination aller Funktionen des Routers.

Aus Platzgründen wurde die Beschreibung auf eine eigene Wiki-Seite Profil-Wechsel ausgelagert.

Zyklische Zeitsynchronisationen mit einem NTP-Zeitserver

Bei aktivierter Zeitsynchronisation im Menü NTP erfolgt der Zeitabgleich mit einem der eingetragenen NTP Zeitserver nach jedem erfolgreichen Aufbau der Mobilfunk-Internetverbindung (ppp connect).

Aufgabe: Der Router soll dreimal täglich einen Zeitabgleich mit einem NTP Server durchführen.

NTP Funktionen im Router aktivieren (optional)

Es wird empfohlen diese Einstellungen vorzunehmen - diese sind aber optional und nicht zwingend erforderlich. Ohne diese Einstellungen werden bei den zusätzlichen Zeitsynchronisationen die Zeitzone des Routers und die Sommer-/Winterzeit nicht berücksichtigt.

Abb.: Beispiel einer NTP Konfiguration im Router

* Abb.: Beispiel einer NTP Konfiguration im Router

Der Router wird nachfolgend so parametrisiert, dass drei mal täglich (also alle 8 Stunden) ein Zeitabgleich mit einem NTP-Server im Internet durchgeführt wird. Dazu ist das Menü Startup Script, um einige Befehle zu erweitern:

1. ER75i und UR5 Router

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

echo "* */8 * * * root /bin/ntpdate 1.de.pool.ntp.org" > /etc/crontab
service cron start

2. UR5i und XR5i Router

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

chmod 644 /etc/crontab

echo "* */8 * * * root /usr/sbin/ntpdate 1.de.pool.ntp.org" > /etc/crontab
service cron star

Ethernet als Switchport

Den zweiten Ethernet Port des Routers als Switch Port verwenden. In der Grundkonfiguration ist ein zweiter Ethernet Port im Router ein „Routing Port“. Das heißt, die Kommunikation vom ersten zum zweiten Ethernet Port (und vice versa) wird durch die integrierte Firewall im Router zunächst erstmal unterdrückt. Aufgabe: Netzwerkgeräte am zweiten Ethernet Port sollen auf Geräte am ersten Port (und umgekehrt) zugreifen können. Alle angeschlossenen Geräte sollen wie über einem Switch miteinander kommunizieren. Voraussetzung: Der LUCOM Router ist mit einer zweiten Ethernet-Schnittstelle (XC-ETH, BestellNr.: 15704) ausgestatte.

Lösung 1:

Ab Firmware Version 3.0.6 können die beiden Ethernet-Ports des Routers über das Web-Interface als Bridge konfiguriert werden.

Dazu ist im Menü Configuration → LAN, in den Spalten Primary LAN und Secondary LAN, die Option Bridge auf yes zu setzen. Die Option IP Address in der Spalte Secondary LAN bleibt leer.

Die neuen Einstellungen mit Apply übernehmen und ein paar Sekunden warten.

Der Router ist nun von beiden Ethernet-Ports mit der IP-Adresse in Spalte Primary LAN erreichbar.

Lösung 2:

Firmware kleiner als 3.0.6. Um die zweite Ethernet-Schnittstelle als Switch-Port nutzen zu können, ist das Menü „Startup Script“ wie folgt zu parametrisieren.

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

. /etc/settings 
. /etc/$PROFILE/settings.eth

brctl addbr br0

ifconfig eth1 0.0.0.0
brctl addif br0 eth1

ifconfig eth0 0.0.0.0
brctl addif br0 eth0

ifconfig br0 $ETH_IPADDR netmask $ETH_NETMASK up

Einschränkung: Netzwerkgeräte am zweiten Ethernet Port des Routers müssen mit einer statischen IP Adresse konfiguriert werden! Der Router kann diesen Hosts keine IP Adresse via DHCP vergeben.

Einwahl ins Mobilfunknetz via digitalen Eingang

Aufgabe: Durch Schalten des serienmäßigen, digitalen on-board Eingangs (= BIN0) soll die Interneteinwahl des Routers gesteuert werden.

Anmerkungen: Der digitale on-board Eingang (DI) ist zum Aktivieren mit GND zu verbinden. Über einen Schalter kann der DI geschlossen und wieder geöffnet werden.

Die digitalen Eingänge des (optionalen) I/O-Erweiterungsmoduls XC-CNT (BIN1 … BIN4) können analog genutzt werden.

Lösung: Der digitale on-board Eingang des Routers wird alle 5 Sekunden kontrolliert und falls dieser geschlossen wurde, der Einwahlvorgang ins Internet gestartet. Nach dem Öffnen des digitalen Eingangs, wird die Mobilfunkverbindung zum Internet wieder abgebaut.

Das Menü „Startup Script“ ist wie folgt anzupassen:

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

# Mobilfunkverbindung beenden
service ppp stop

# Pollintervall [s] festlegen 
POLLINTERVALL=5

# Zyklische Abfrage des digitalen on-board Eingangs (BIN0)
while true
do
io get bin0
VAL=$?
if [ "$VAL" != "$OLD" ]; then
  if [ "$VAL" = "0" ]; then
    service ppp start
  else
    service ppp stop
  fi
  OLD=$VAL
fi
sleep $POLLINTERVALL
done

WLAN Interface zeitlich begrenzen

Aufgabe: Das WLAN nach dem Start des Routers nur zeitlich begrenzt zur Verfügung stellen (1 Stunde, im Beispiel).

Lösung: Nach dem Start des Router, wird das Script, welches in den Bereich „Startup Script“ (am Ende eingefügt wird), für 3600 Sekunden (entspricht 1 Stunde) ausgeführt. Der Counter wird jede Sekunde um eins erhöht und bei jedem Durchlauf wird geprüft, ob der Counter equivalent der definiertem Endtime ist. Ist dieser Zustand gegeben, dann wird das Interface heruntergefahren und nach einer Sekunde die Information ins Logfile geschrieben. Die Schleife wird anschließend verlassen und bei Neustart des Routers wieder erneut durchgeführt.

Das Menü „Startup Script“ ist wie folgt anzupassen:

#!/bin/sh
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.
 
# interval in seconds
INTERVAL=1
# endtime in seconds
ENDTIME=3600
# counter for while loop and check endtime
COUNTER=0

while true
do
       if [ $COUNTER -eq $ENDTIME ]; then
            ifconfig wlan0 down
             logger wlan is now down
             sleep 1
             exit 0
     fi
     COUNTER=$((COUNTER+1))
     sleep $INTERVAL
done
lucom/router/startup_script.txt · Zuletzt geändert: 2017/08/22 10:10 von tobias