Keepcon

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
  • Automatisches prüfen und Aufrechterhalten von Internet-Verbindungen
  • Wechsel des Providers im Fehlerfall und Start der entsprechenden Firewall
  • Publizieren der eigenen IP ins InterNet
  • Ermitteln der IPs anderer Maschinen, und Eintragung in /etc/hosts
  • Patch, danach Upload von html-Templates um die eigene IP zu publizieren
  • Linux-Dämon für SuSE Linux 8.2,9.0,9.1,10 Freeware mit Quelltexten in Kylix 3
  • entworfen von Andreas Filsinger, IT-Freiberufler

Konzepte

Anforderungen waren:

  • linux-Anwendung die auf dem Router selbst läuft.
  • Programierung mit Open edition von Kylix sollte möglich sein
  • Konsolenanwendung die als dämon laufen kann.
  • ersetzt langfristig RouteIP, es soll alles der linux-Server aus eigener Kraft machen könnenn! (Seit Rev. 1.009 erfüllt)


  • keepcon macht massiven Gebrauch der Commandozeile, es ruft: cinternet, ftp, whoami, ifconfig.

Verbindungs-Sicherung

   * passives prüfen, ob im Moment eine Verbindung nach draussen besteht
     (passives Erkennen=ohne traffic, ob im Moment TDSL oder/und ISDN aktiv ist.)
     (ISDN up? TDSL up?) via cinternet, das heist was denkt cinternet, welche
     Verbindung im Moment offen ist!
   * aktives pr?er jeweiligen Verbindung:
      * ping auf feste IP (TCP da?!)
      * versuch der Namensaufl?g via DNS (Namensaufl?g da?!)
   * Sicherstellen (durch k?chen traffic) das einen W䨬verbindung
     bestehenbleibt. (das sonst der provider auflegt, wir legen durch eintrag
     von "0" eh niemals auf)
     Ev. traffic detectieren, wenn inerhalb einer gewissen Zeit delta=0, dann
     einen ping machen, oder ein POP Konto anfragen oder irgendwas ...
     (Ev. auch etwas mit keiner Antwort, da ja nur die Anfrage ausreicht!=)
     Traffic könnte man im ifconfig erkennen.
   * down einer Verbindung erkennen, und
      a) Sicherstellen, dass beim Abbruch von TDSL, gleich wieder TDSL angew䨬t
         wird.
      b) misslingt das mehrfach, die Ersatzverbindung aufbauen. Diese hat jedoch
         nur eine festlegbare Haltbarkeit. Nach dieser Zeit (ev. traffic beobachten,
         um einen ruhigen Moment abzuwarten) wird wieder versucht die Hauptverbindung
         wiederherzustellen.
   * starten/beenden der entsprechenden firewall, ev. kann man doch einfach
     dieselben Regeln immer auf beide interfaces anwenden, es ist doch nicht
     notwendig ein spezielles firewall script anzuwenden.
   * wieder-kehrende verf?eitspr?der Hauptverbindung w䨲end die
     Ausfallverbindunf ihren Dienst tut. (ist sowas ?upt m?ch, werden
     da nicht die nameservereintr䧥 zerst?) (ich glaube nicht!)

(publish dienst) eigenen Namen ins Internet ?agen

   * hinausschreiben der eigenen aktuellen IP-Adresse erhalten vom provider nach
     www.raib.de/<<hostname>>.html. Dazu werden jetzt nicht mehr templates benutzt,
     sondern das programm kann aus eigener Kraft die entsprechende html datei erzeugen,
     und hochladen.

(friends) fremde Namen, und deren IP aus dem Internet laden

   und so andere Remote-System dem eigenen System bekannt machen. Diese Systeme
   werden mit ihrem hostnamen und der IP automatisch in /etc/hosts eingetragen.
   * auslesen aus web und eintragen nach /etc/hosts von angebbaren domain-namen
     von www.raib.de/<<hostname>>.html. Vozugsweise im ip6 format
     ::ffff:192.168.115.2

(templates) links im Internet auf aktuelle IP patchen

   erstellen sie ein Template, das anstelle der IP Adresse die Zeichenfolge
   ~IP~ enth䬴.
   (keepcon quelle in der anlage)

Tipp für Hostnamen

   wenn m?ch die IP Adresse des Servers angeben, dann kann auch bei DNS-
   Ausfall oder Misskonfiguration die eigene IP hochgeladen werden. Ev. k?e
   man eine lokale Datenhaltung der zuletzt ermittelten IP verwenden, damit
   bei einem Fail der Namensaufl?g die zuletzt bekannte IP verwendet werden
   kann.

Keepcon Begriffe

  • Fail: ein keepcon test gibt einen negativen Ergebniswert zur?anic: keepcon weiss nicht weiter. der zugesicherte Dauer-Betrieb kann nicht aufrecht erhalten werden.
  • Zwangs-Trennung: Ein Kappen der Verbindung ausgehend vom Provider, motiviert durch das Erreichen einer maxmalen Verbindungszeit (z.B. 24h) Silence-Trennung: Ein Kappen der Verbindung ausgehend vom Provider, motiviert durch das Erreichen einer Verbindungszeit ohne jeglichen traffic.
  • Traffic: Datenbewegung (lesen oder schreiben) auf der Leitung zum Provider.

Voraussetzungen

Für alle Provider gilt:

  • ON DEMAND "AUS"

Bei allen Verbindungen darf "ON DEMAND" nicht aktiviert werden. Da sonst das Linux System selbst die Kontrolle ?en Verbindungsaufbau zur "Haupt"-Verbindung ?mmt, was im St?gsfall die "falsche" VErbindung ist.

  • Device Aktivierung "manuell"

nicht schon beim boot die Verbindung aufbauen lassen! keepcon will hier die volle KOntrolle ?hmen und selbst bestimmen wann und wer aufgebaut werden soll.

  • Interface aktivierung "on boot"

damit die Interfaces schon gesehen werden, und vorhanden sind.

Installation

Zip Datei im /root auspacken und folgende Dateien in die angegebenen Verzeichnisse kopieren sowie mit chmod die angegebenen Rechte vergeben:

Quelldatei          Zielverzeichnis           chmod
keepcon             /root/keepcon             0755
etc.keepcon.conf    /etc/keepcon.conf         0600
init.d.keepcon      /etc/init.d/keepcon       0755
and-firewall        /etc/and-firewall         0755

alle Dateien an ihren Platz kopieren, und mit den entsprechenden Rechten versehen. Zum komfortablen Start brauchen wir noch ein rc* Script:

ln -s /etc/init.d/keepcon /usr/sbin/rckeepcon
chkconfig --add keepcon
rckeepcon start

Der ganze Rest an Dateien sind nur die Quelltexte des Programmes und sind zum Ablauf nicht notwendig! Wer Indy hat, kann mit der Open Editon von Kylix 3 dieses Projekt selbst compilieren / modifizieren.

FehlerDiagnose (wenn was nicht geht)

nachsehen, ob keepcon gestartet ist
 ps x | grep keepcon
meldungen, die keepcon loged auf den Bildschirm ausgeben:
 cat /var/log/messages | grep keepcon
  • System-Bereich: Geben Sie hier an, wie sich Ihre Maschine im Internet bekannt macht.
  • Primary-Bereich: Geben Sie hier die Hauptw䨬verbindung an.
  • Failover-Bereich: Geben Sie hier Ausfallverbindungen an.
  • Remote-Bereich: Geben Sie hier die Namen 'befreundeter' Server an, die auch via keepcon im Netz sind.
  • Templates-Bereich: Listen Sie hier die html-Vorlagen auf, die hochgeladen werden sollen.

keepcon.ini, wie sie der Distribution beiliegt:

#
# [System]
# publish=Der Hostname unter dem Ihr System im Internet seine IP Adresse publiziert
# ftp_server=ftp-Hostname f? Public Upload
# ftp_user=ftp-Benutzer f? Public Upload
# ftp_password=ftp-Kennwort f? Public Upload
# ftp_path=ftp-Zielverzeichnis f? Public Upload
#
[System]
publish=WR32
ftp_server=www.raib.de
ftp_user=<YourUser>
ftp_password=<YourPwd>
ftp_path=/raib      

#
# [Primary]
# provider=Geben Sie hier Ihren Standard-Provider an. Solange es keine St?          rungen gibt, wird dieser Provider benutzt.
#
# Wenn Sie die Namen aller Provider ermitteln wollen, starten Sie keepcon 
# von der Kommandozeile, die Schreibweise muss exact eingehalten werden.
#
[Primary]
provider=telekom TDSL   

#
# [FailOver]
# provider1=Geben Sie hier Ihren bevorzugten Provider im St?ll an. 
# provider2=
# ..
#
# Wenn Sie die Namen aller installierten Provider ermitteln wollen, starten Sie keepcon 
# von der Kommandozeile. Die Namen stehen in der Tabelle an erster Stelle.
# Die Schreibweise muss exakt eingehalten werden.
#
[FailOver]
provider1=telekom ISDN
provider2=UMTS
provider3=WLAN  

#
# [Remote]
# host1=remote Hostnamen, deren IP Adresse keepcon ermitteln soll. keepcon tr䧴 den Namen+IP
        in /etc/hosts ein. L䵦t ein WINS Server sind diese Namen im ganze WIn32 Netz sichtbar.
# host2=
# ...
#
#
[Remote]
host1=GH14  

#
# [Templates]
# 1=/root/index.html,www.myhomepage.de,ftpuser,ftppwd,/www/htmldocs
# 2=/root/suche.php,www.myhomepage.de,ftpuser,ftppwd,/www/cgibin
# ...
#
#
[Templates]
1=

HTML Vorlagen
Beobachtungen / Bemerkungen
Konzepte von keepcon
Remote Namensaufl?g mit Hilfe von WINS (win32 Rechner sind im Netz)
keepcon Begriffe
to-do
FTP-Platz bei t-online