
\marklabel{chap:bootmedien}{
  \chapter{Erzeugen der fli4l Archive/Bootmedien}
  }

  Sind alle Konfigurationsarbeiten erledigt, können die fli4l Archive/Bootmedien, sei
  es eine Bootdiskette, ein bootfähiges ISO-Image oder nur die zum Remote-Update
  benötigten Dateien, erstellt werden.

\marklabel{sec:bootmedien_linux}{
  \section{Erzeugen der fli4l Archive/Bootmedien unter Linux bzw. anderen Unix-Derivaten}
  }

  Dies geschieht mit Hilfe von Scripts
  ({\tt .sh}), die im fli4l Wurzelverzeichnis zu finden sind.

  \begin{description}
    \item \tt mkfli4l.sh
  \end{description}

  Das Build-Script erkennt selbständig die unterschiedlichen \jump{BOOTTYPE}{Bootvarianten}.

  Der einfachste Aufruf sieht unter Linux so aus:
  \begin{verbatim}
    sh mkfli4l.sh
  \end{verbatim}

  Die Aktionen des Build-Scripts werden durch drei Mechanismen gesteuert:
  \begin{itemize}
    \item Konfigurationsvariable \var{BOOT\_TYPE} aus der 
          {\tt $<$config$>$/base.txt}
    \item Konfigurationsdatei {\tt $<$config$>$/mkfli4l.conf}
    \item Parameter des Build-Scripts
  \end{itemize}

  An Hand der Konfigurationsvariable \jump{BOOTTYPE}{\var{BOOT\_TYPE}} 
  entscheidet sich, welche Aktion des Build-Scripts ausgeführt wird:
  \begin{itemize}
    \item Erstellen einer fli4l Bootdiskette oder der Dual-Variante
    \item Erstellen eines bootfähigen fli4l CD-ISO-Images
    \item Bereitstellen der fli4l Dateien, zwecks Remote-Update
    \item usw. 
  \end{itemize}

  Die Beschreibung der Variablen der Konfigurationsdatei 
  {\tt $<$config$>$/mkfli4l.conf} finden sie im Kapitel 
  \jump{sec:mkfli4lconf}{Steuerungsdatei mkfli4l.conf}.

  \subsection{Kommandozeilenoptionen}
  Der letzte Steuerungsmechanismus ist das Anhängen von Optionsparametern an
  den Aufruf des Build-Script auf der Kommandozeile. Die
  Steuerungsmöglichkeiten entsprechen denen der Steuerungsdatei {\tt
  mkfli4l.conf}. Die Angabe von Optionsparametern überschreiben die Werte aus
  der Steuerungsdatei. Aus Komfortgründen unterscheiden sich die Namen der
  Optionsparameter von den Namen der Variablen aus der Steuerungsdatei. Es
  existiert teilweise eine Kurz- und eine Langform:

  \begin{verbatim}
Usage: mkfli4l.sh [options] [config-dir]

-c, --clean             cleanup the build-directory
-b, --build <dir>       sets build-directory to <dir> for the fli4l-files
-v, --verbose           verbose - some debug-output
-s, --safe              safe-mode for floppy-boot
-d, --drive X:          set target-drive to X: - default a:
    --filesonly         creates only fli4l-files - does not create a disk
    --no-squeeze        don't compress shell scripts
-h, --help              display this usage

config-dir              sets other config-directory - default is "config"

*** Remote-Update options
--remoteupdate          remote-update via scp, implies "--filesonly" 
--remoteuser <name>     user name for remote-update - default is "fli4l"
--remotehost <host>     hostname or IP of remote machine - default
                        is HOSTNAME set in [config-dir]/base.txt
--remotepath <path>     pathname on remote maschine - default is "/boot"
--remoteport <portnr>   portnumber of the sshd on remote maschine

*** Netboot options
--tftpbootpath <path>   pathname to tftpboot directory
--tftpbootimage <name>  name of the generated bootimage file
--pxesubdir <path>      subdirectory for pxe files relative to tftpbootpath

  \end{verbatim}

  Als letzter Optionsparameter  kann ein alternatives Konfigurationverzeichnis
  übergeben werden. Das normale Konfigurationsverzeichnis heißt {\tt config}
  und liegt direkt im fli4l Wurzelverzeichnis. An diesem Ort legen alle fli4l
  Pakete die Konfirgurationsdateien ab. Möchte man mehr als eine Konfiguration
  verwalten, so erstellt man sich ein weiteres Verzeichnis, z.B. {\tt hd.conf},
  legt dort eine Kopie der Konfigurationsdateien ab und verändert diese den 
  Anforderungen entsprechend. Hier einige Beispiele:
  \begin{verbatim}
     sh mkfli4l.sh --filesonly hd.conf
     sh mkfli4l.sh --no-squeeze config.test
  \end{verbatim}



\marklabel{sec:bootmedien_windows}{
  \section{Erzeugen der fli4l Archive/Bootmedien unter Windows}
  }

  Es wird das Tool 'AutoIt3' verwendet (\link{http://www.autoitscript.com/autoit3/}).
  Dieses ermöglicht eine 'grafische' Ausgabe, sowie Dialoge, mit denen die in 
  den folgenden Abschnitten beschriebenen Variablen beinflusst werden können.

  \begin{description}
    \item \tt mkfli4l.bat
  \end{description}

  Das Build-Programm erkennt selbständig die unterschiedlichen \jump{BOOTTYPE}{Bootvarianten}.


  Der Aufruf von 'mkfli4l.bat' kann direkt aus dem Windows Explorer
  erfolgen, wenn man keine optionalen Parameter verwenden möchte.

  Die Aktionen des Build-Programms werden durch verschiedene Mechanismen gesteuert:
  \begin{itemize}
    \item Konfigurationsvariable \var{BOOT\_TYPE} aus der 
          {\tt $<$config$>$/base.txt}
    \item Konfigurationsdatei {\tt $<$config$>$/mkfli4l.conf}
    \item Parameter des Build-Programmes
    \item Interaktive Einstellung in der GUI
  \end{itemize}

  An Hand der Konfigurationsvariable \jump{BOOTTYPE}{\var{BOOT\_TYPE}} 
  entscheidet sich, welche Aktion das Build-Programm ausführt:
  \begin{itemize}
    \item Erstellen einer fli4l Bootdiskette oder der Dual-Variante
    \item Erstellen eines bootfähigen fli4l CD-ISO-Images
    \item Bereitstellen der fli4l Dateien, zwecks Remote-Update
    \item Erzeugen der fli4l Dateien und direktes Remote-Update per SCP
    \item Direkter HD-Install einer passend formatierten CF im Cardreader
    \item usw. 
  \end{itemize}

  Die Beschreibung der Variablen der Konfigurationsdatei 
  {\tt $<$config$>$/mkfli4l.conf} finden sie im Kapitel 
  \jump{sec:mkfli4lconf}{Steuerungsdatei mkfli4l.conf}.

  \subsection{Kommandozeilenoptionen}
  Ein weiterer Steuerungsmechanismus ist das Anhängen von Optionsparametern an
  den Aufruf des Build-Programms auf der Kommandozeile. Die
  Steuerungsmöglichkeiten entsprechen denen der Steuerungsdatei {\tt
  mkfli4l.conf}. Die Angabe von Optionsparametern überschreiben die Werte aus
  der Steuerungsdatei. Aus Komfortgründen unterscheiden sich die Namen der
  Optionsparameter von den Namen der Variablen aus der Steuerungsdatei. Es
  existiert teilweise eine Kurz- und eine Langform:

  \begin{verbatim}
Usage: mkfli4l.bat [options] [config-dir]

-c, --clean             cleanup the build-directory
-b, --build <dir>       sets build-directory to <dir> for the fli4l-files
-v, --verbose           verbose - some debug-output
-s, --safe              safe-mode for floppy-boot
-d, --drive X:          set target-drive to X: - default a:
    --filesonly         creates only fli4l-files - does not create a disk
    --no-squeeze        don't compress shell scripts
-h, --help              display this usage

config-dir              sets other config-directory - default is "config"

*** Remote-Update options
--remoteupdate          remote-update via scp, implies "--filesonly" 
--remoteuser <name>     user name for remote-update - default is "fli4l"
--remotehost <host>     hostname or IP of remote machine - default
                        is HOSTNAME set in [config-dir]/base.txt
--remotepath <path>     pathname on remote maschine - default is "/boot"
--remoteport <portnr>   portnumber of the sshd on remote maschine

*** GUI-Options
--no-gui                disable the config-GUI
--lang                  change language
                        [deutsch|english|francais|hungarian|nederlands]

  \end{verbatim}

  Als letzter Optionsparameter  kann ein alternatives Konfigurationverzeichnis
  übergeben werden. Das normale Konfigurationsverzeichnis heißt {\tt config}
  und liegt direkt im fli4l Wurzelverzeichnis. An diesem Ort legen alle fli4l
  Pakete die Konfirgurationsdateien ab. Möchte man mehr als eine Konfiguration
  verwalten, so erstellt man sich ein weiteres Verzeichnis, z.B. {\tt hd.conf},
  legt dort eine Kopie der Konfigurationsdateien ab und verändert diese den 
  Anforderungen entsprechend. Hier einige Beispiele:
  \begin{verbatim}
     mkfli4l.bat -s fd.conf
     mkfli4l.bat -v -d b:
     mkfli4l.bat --no-gui config.hd
  \end{verbatim}

  \subsection{Konfigurationsdialog - allgemeine Einstellungen}
  \begin{figure}[h!]
  \centering
  \includegraphics[width=\columnwidth]{win_build_build}
  \caption{Einstellungen}
  \label{fig:win_build_build}
  \end{figure}

  In diesem Dialog werden die Einstellungen für die Archiv/Diskettenerstellung
  festgelegt:
  \begin{itemize}
    \item Build-Dir - Verzeichnis für die Archive/CD-Images/...
    \item \var{BOOT\_TYPE} - Anzeige des verwendeten/eingestellen \var{BOOT\_TYPE} - nicht änderbar
    \item Verbose - Aktivierung von zusätzlichen Ausgaben während der Erstellung
    \item Filesonly - es werden nur die Archive erstellt - keine Diskette/kein Image
    \item Remoteupdate - Aktivierung des Remoteupdates per SCP
  \end{itemize}

  Mit der Schaltfläche {\bf Aktuelle Einstellungen in mkfli4l.conf speichern}
  können die aktuell eingestellten Werte in der mkfli4l.conf gespeichert werden.

  \subsection{Konfigurationsdialog - Einstellungen für Diskette}
  \begin{figure}[h!]
  \centering
  \includegraphics[width=\columnwidth]{win_build_floppy}
  \caption{Einstellungen für Diskette}
  \label{fig:win_build_floppy}
  \end{figure}

  In diesem Dialog werden die Einstellungen für die Erstellung einer Diskette
  festgelegt:
  \begin{itemize} 
    \item Laufwerksbuchstabe des Diskettenlaufwerkes
    \item Modus für syslinux
  \end{itemize}

  \subsection{Konfigurationsdialog - Einstellungen für Remoteupdate}
  \begin{figure}[h!]
  \centering
  \includegraphics[width=\columnwidth]{win_build_remoteupdate}
  \caption{Einstellungen für Remoteupdate}
  \label{fig:win_build_remoteupdate}
  \end{figure}

  In diesem Dialog werden die Einstellungen für den Remoteupdate festgelegt:
  \begin{itemize}
    \item IP-Adresse oder Hostname
    \item Username auf dem Remotehost
    \item Remotepath (default:/boot)
    \item Remoteport (default:22)
    \item zu verwendendes SSH-Keyfile (Putty-Format)
  \end{itemize}

  \subsection{Konfigurationsdialog - Einstellungen für direkten HD-Install}
  \begin{figure}[h!]
  \centering
  \includegraphics[width=\columnwidth]{win_build_hd_install}
  \caption{Einstellungen für direkten HD-Install}
  \label{fig:win_build_hd_install}
  \end{figure}

   In diesem Dialog können die Optionen für den direkten HD-Install auf einer 
   entsprechend partitionierten und formatierten CF-Karte in einem USB-Reader
   eingestellt werden.

   Mögliche Optionen:
   \begin{itemize}
     \item direkten HD-Install aktivieren
     \item Laufwerksbuchstabe der CF-Karte
  \end{itemize}

  Hinweis zur Partionierung und Formatierung der CF:
  Für eine HD-Installation nach TYP A (siehe dazu Paket HD) muss auf der CF eine 
  primäre aktive und formatierte FAT-Partitionen vorhanden sein. Möchte man 
  weiterhin auch eine Datenpartiton benutzen, wird zusätzlich eine Linux-Partition,
  die mit dem Dateisystem ext3 formatiert ist, sowie die Datei {\tt hd.cfg} auf der
  FAT-Partiton benötigt (hierzu sollten unbedingt die Hinweise im Paket HD beachtet
  werden).

\marklabel{sec:mkfli4lconf}{
  \section{Steuerungsdatei mkfli4l.conf}}
  Seit fli4l-Version 2.1.9 existiert die Steuerungsdatei 
  {\tt $<$config$>$/mkfli4l.conf}. Durch sie werden z.B. vom Standard
  abweichende Verzeichnisse übergeben. Die Steuerungsdatei hat einen 
  ähnlichen Aufbau wie die normalen fli4l Konfigurationsdateien.
  Alle Konfigurationsvariablen sind hier optional, d.h. sie müssen nicht
  in der Konfigurationsdatei vorkommen oder können als Kommentar gekennzeichnet
  werden.
  \begin{description}

  \config {BUILDDIR}{BUILDDIR}{BUILDDIR}

  Standardwert: 'build'

  Legt fest, in welchem Verzeichnis die fli4l Dateien erzeugt werden sollen.
  Ist die Variable undefiniert, setzt mkfli4l unter windows 'build' relativ zum fli4l
  Wurzelverzeichnis ein und meint damit also das Verzeichnis 
  {\tt build} im fli4l Wurzelverzeichnis: {\tt Pfad/fli4l-x.y.z/build}. Unter *nix setzt mkfli4l {\tt $<$config$>$/build} ein und legt damit die generierten Dateien zusammen mit der Konfiguration ab.

  \config {VERBOSE}{VERBOSE}{VERBOSE}

  Standardwert: \var{VERBOSE='no'}

  Mögliche Werte \var{'yes'} oder \var{'no'}. Steuert die {\em Geschwätzigkeit}
  des Build Prozesses.

  \config {DRIVE}{DRIVE}{DRIVE}

  Standardwert: \var{DRIVE='a:'}

  Legt den zu verwendenden Buchstaben des Diskettenlaufwerkes fest. Unter
  Unix/Linux gilt aufgrund der Verwendung der MTOOLS folgende Festlegung:
  \begin{itemize}
    \item \var{'a:'} entspricht {\tt /dev/fd0}
    \item \var{'b:'} entspricht {\tt /dev/fd1}
  \end{itemize}

  \config {FLOPPYMODE}{FLOPPYMODE}{FLOPPYMODE}

  Standardwert: \var{FLOPPYMODE='normal'}

  Mögliche Werte \var{'normal'} oder \var{'safe'}. Hiermit wird festgelegt,
  mit welchem Algorithmus {\tt syslinux} die Bootdiskette beim Starten des Routers 
  liest. \var{'safe'} ist nur bei wenigen Rechnern nötig und verzögert bei vielen 
  Rechnern den Bootvorgang unnötig.

  \config {FILESONLY}{FILESONLY}{FILESONLY}

  Standardwert: \var{FILESONLY='no'}

  Mögliche Werte \var{'yes'} oder \var{'no'}. Hiermit kann das Erstellen einer
  Diskette abgeschaltet werden, es werden also nur die Dateien erzeugt 
  - sinnvoll um zum Beispiel die Diskette remote updaten zu können.

  \config {REMOTEUPDATE}{REMOTEUPDATE}{REMOTEUPDATE}

  Standardwert: \var{REMOTEUPDATE='no'}

  Mögliche Werte \var{'yes'} oder \var{'no'}. Aktiviert das automatische
  Übertragen der erstellten Dateien mittels SCP auf den Router. Dieses setzt
  ein installiertes Paket \jump{OPTSSHD}{SSHD} mit aktiviertem {\tt scp}
  voraus.  Siehe dazu auch die folgenden Variablen.

  \config {REMOTEHOSTNAME}{REMOTEHOSTNAME}{REMOTEHOSTNAME}

  Standardwert: \var{REMOTEHOSTNAME=''}

  Gibt den Ziel-Hostnamen für den SCP Datentransfer an.
  Sollte kein Name angegeben sein, wird dieser der Variable
  \jump{HOSTNAME}{\var{HOSTNAME}} entnommen.

  \config {REMOTEUSERNAME}{REMOTEUSERNAME}{REMOTEUSERNAME}

  Standardwert: \var{REMOTEUSERNAME='fli4l'}

  Username für den SCP Datentransfer.

  \config {REMOTEPATHNAME}{REMOTEPATHNAME}{REMOTEPATHNAME}

  Standardwert: \var{REMOTEPATHNAME='/boot'}

  Ziel-Pfad für den SCP Datentransfer.

  \config {REMOTEPORT}{REMOTEPORT}{REMOTEPORT}

  Standardwert: \var{REMOTEPORT='22'}

  Zielport für den SCP Datentransfer.

  \config {SSHKEYFILE}{SSHKEYFILE}{SSHKEYFILE}

  Standardwert: \var{SSHKEYFILE=''}

  Hier kann man eine SSH-Keydatei für den SCP-Remoteupdate angeben.
  Es kann somit ein Update ohen angabe eines Passwortes erfolgen.

  \config {TFTPBOOTPATH}{TFTPBOOTPATH}{TFTPBOOTPATH}

  Pfad an dem das Netboot-Image abgelegt wird.

  \config {TFTPBOOTIMAGE}{TFTPBOOTIMAGE}{TFTPBOOTIMAGE}

  Name des Netboot-Images.

  \config {PXESUBDIR}{PXESUBDIR}{PXESUBDIR}

  Unterverzeichnis für die PXE-Dateien relativ zu TFTPBOOTPATH.

  \end{description}  
  
\marklabel{sec:bootdisk}{
  \section{Erstellung der Bootdiskette}
  }

  Es wird zunächst ein neuer Boot-Loader {\tt ldlinux.sys} auf der Diskette
  installiert. Danach werden die Dateien {\tt syslinux.cfg} (Boot-Loader
  Konfiguration), {\tt kernel} (Das eigentliche Linux), {\tt rootfs.img} (Das
  Ur-Dateisystem von fli4l), {\tt rc.cfg} (Die fli4l Konfigurationsdatei) sowie
  {\tt opt\_tar.bz2} (Zusätzliche Programme) kopiert. In früheren Versionen reichte 
  es, bei einer Konfigurationsänderung nur die Dateien {\tt rc.cfg}
  und {\tt opt\_tar.bz2} zu kopieren. Das ist bei aktuellen Versionen nicht mehr 
  der Fall, hier wird sogar der Kernel in Abhängigkeit von der Konfiguration
  ausgewählt. Man sollte also sicherheitshalber immer alles kopieren.

  Die Diskette(n) wird/werden dabei nicht formatiert, somit ist es absolut
  notwendig, eine frisch formatierte Diskette zu verwenden. Die Verwendung
  einer bereits teilgefüllten Diskette führt fast unweigerlich zu
  Platzproblemen. Eine bereits vorher für fli4l verwendete Diskette kann
  weiterhin benutzt werden, da hier die {\em störenden} Dateinamen ja die selben
  sind und somit einfach überschrieben werden.
  Wird die Diskette unter Windows erzeugt, erfolgt seit der fli4l-Version 2.1.10
  eine Prüfung auf 'alte' Dateien, diese können per Bestätigung im Dialog gelöscht
  werden. Zusätzlich erfolgt auch vor dem Kopieren der Dateien auf die Diskette
  eine Prüfung des Diskettenplatzes.

  Es ist auch möglich, dichter formatierte Disketten zu verwenden.
  Diese kann man unter Linux so formatieren:

\begin{verbatim}
                fdformat /dev/fd0u1680
		mformat -t 80 -h 2 -n 21 a:
\end{verbatim}

  Es stehen dann 240 KB mehr auf der Diskette zur Verfügung.

  Für Windows kann man sich entsprechende Formatierprogramme besorgen,
  z.B.\\
  \link{ftp://ftp.simtel.net/pub/simtelnet/msdos/diskutil/fdfrm18.zip}\\
  \link{ftp://ftp.simtel.net/pub/simtelnet/msdos/diskutil/hdcp20ad.zip}\\
  \link{http://www.vgasoft.de/files/vgacp625.zip}\\
  \link{http://www.winimage.com} (Shareware)\\

  Die Diskette ist mit 80 Tracks, beidseitig und 21 Sectors/Track zu
  formatieren.

  Am Aufruf zum Erstellen der Diskette ändert sich nichts.

  In seltenen Fällen kann es vorkommen, daß vorformatierte Disketten
  beim Booten von fli4l über 5 Minuten benötigen. Normalerweise dauert
  der fli4l-Boot lediglich 1 bis 2 Minuten. Wenn es wesentlich länger
  dauert, liegt es wahrscheinlich an einem ungüstigen Interleave oder
  einem unnötig eingeschalteten safe-Mode.
  In diesem Fall hilft nur neu formatieren - evtl. auf dem Ziel-Rechner mit
  purem/nacktem DOS.

  Und noch eine Information:

  fli4l mountet die Diskette im Root-Filesystem als Read/Write, wenn
  die Variable \jump{MOUNTBOOT}{\var{MOUNT\_BOOT='rw'}} eingestellt
  ist.  Dann darf kein Schreibschutz aktiviert werden. Wird der
  Schreibschutz trotzdem aktiviert bricht der Startvorgang ab und der
  fli4l-Router arbeitet nicht korrekt.

  Das war's!


  \chapter{Anbindung von PCs im LAN}

  Für jeden Rechner im LAN ist einzustellen:

  \begin{enumerate}
  \item IP-Adresse (siehe \smalljump{sec:pc-lan-ip}{IP-Adresse})
  \item Name des Rechners plus Wunsch-Domain-Name
    (siehe \smalljump{sec:pc-lan-name}{Rechnername und Domain})
  \item Standard-Gateway (siehe \smalljump{sec:pc-lan-gateway}{Gateway})
  \item IP-Adresse des DNS-Servers (siehe \smalljump{sec:pc-lan-dns}{DNS-Server})
  \end{enumerate}


%  \section{IP-Adresse}
  \marklabel{sec:pc-lan-ip}{\section{IP-Adresse}}
  Die IP-Adresse muss im gleichen Netz wie die IP-Adresse des
  fli4l-Routers (auf Ethernet-Seite) liegen, also z.B. 192.168.6.2,
  wenn der fli4l die Adresse 192.168.6.1 hat.
  Kein Rechner darf die gleiche IP-Adresse haben, weshalb man am
  besten (nur) die letzte Zahl ändert. Auch ist darauf zu achten, daß
  man hier die gleiche IP-Adresse angibt, wie man es für diesen
  Rechner in der Datei config/base.txt angegeben hat.


%  \section{Rechnername und Domain}
  \marklabel{sec:pc-lan-name}{\section{Rechnername und Domain}}
  Der Name des Rechners ist dann z.B. ``mein-pc'', die Domain ``lan.fli4l''.

  \wichtig{Die im PC eingestellte Domain muss identisch mit der
  gewählten Domain im fli4l-Rechner sein, wenn man den fli4l-Router
  als DNS-Server verwenden will. Sonst kann es im Netz erhebliche
  Probleme geben.}

  Grund: Windows-Rechner suchen regelmäßig nach Rechnern mit dem Namen
  ihrer Arbeitsgruppte: WORKGROUP.meine-domain.fli4l. Ist dies nicht die in fli4l
  eingestellte Domain (hier: meine-domain.fli4l), wird fli4l
  versuchen, diese Anfrage durch Weiterleiten ins Internet zu
  beantworten \ldots

  Einzutragen ist die Domain in den TCP/IP Einstellungen des Rechners.


  \subsection{Windows 2000}


  Für Windows 2000 findet man das unter:

  Start \pfeil\\
  \hspace*{2ex}  Einstellungen \pfeil\\
  \hspace*{4ex}Systemsteuerung \pfeil\\
  \hspace*{6ex}Netzwerk- und DFÜ-Verbindungen \pfeil\\
  \hspace*{8ex}LAN-Verbindung \pfeil\\
  \hspace*{10ex}Eigenschaften \pfeil\\
  \hspace*{12ex}Internetprotokoll (TCP/IP) \pfeil\\
  \hspace*{14ex}Eigenschaften \pfeil\\
  \hspace*{16ex}Erweitert\ldots \pfeil\\
  \hspace*{18ex}DNS \pfeil\\
  \hspace*{20ex}DNS-Suffix hinzufügen \pfeil\\

  ``lan.fli4l'' (bzw. die eingestellte domain) eingeben (ohne ``''!)
  \pfeil OK drücken.


\subsection{NT 4.0}

  Start \pfeil\\
  \hspace*{2ex}Einstellungen \pfeil\\
  \hspace*{4ex}Systemsteuerung  \pfeil\\
  \hspace*{6ex}Netzwerk \pfeil\\
  \hspace*{8ex}Protokolle \pfeil\\
  \hspace*{10ex}TCP/IP \pfeil\\
  \hspace*{12ex}Eigenschaften \pfeil\\
  \hspace*{14ex}DNS \pfeil\\
  \hspace{16ex}\begin{itemize}
  \item Hostname eintragen (eigener Rechnername)
  \item Domäne eintragen (wie in config/base.txt)
  \item IP-Adresse vom fli4l-Router hinzufügen
  \item DNS-Suffix hinzufügen (Domäne hinzufügen - siehe
    2 Zeilen höher)
  \end{itemize}

\subsection{Win95/98}

  Start \pfeil\\
  \hspace*{2ex}Einstellungen \pfeil\\
  \hspace*{4ex}Systemsteuerung \pfeil\\
  \hspace*{6ex}Netzwerk \pfeil\\
  \hspace*{8ex}Konfiguration \pfeil\\
  \hspace*{10ex}TCP/IP (jenes, das an die Netzwerkkarte zum Router\\
  \hspace*{10ex}angebunden ist) \pfeil\\
  \hspace*{12ex}Eigenschaften \pfeil\\
  \hspace*{14ex}DNS-Konfiguration:

  DNS aktivieren und bei ``Domäne:'' dann ``lan.fli4l'' eingeben (ohne ``''!).



%  \section{Gateway}
  \marklabel{sec:pc-lan-gateway}{\section{Gateway}}
  Die Angabe des Standard-Gateways ist unbedingt erforderlich, denn
  ohne die Angabe der richtigen IP-Adresse an dieser Stelle
  funktioniert nichts.  Es muß hier die IP-Adresse des fli4l-Routers
  (auf Ethernet-Seite) angegeben werden, also z.B. 192.168.6.4
  entsprechend der IP-Adresse, die hier in der Datei config/base.txt
  für den fli4l-Router angegeben wurde.

  Es ist falsch, den fli4l-Router als Proxy in der Windows- oder
  Browser- Konfiguration einzutragen - außer man setzt Junkbuster auf
  dem fli4l-Router ein. Im Normalfall ist fli4l kein Proxy, daher
  bitte {\em nicht} fli4l als Proxy angeben!


%\section{DNS-Server}
\marklabel{sec:pc-lan-dns}{\section{DNS-Server}}



  Als IP-Adresse des DNS-Servers gibt man nicht die Adresse des
  Provider-DNS-Servers an, sondern die des fli4l-Routers (Ethernet),
  da dieser nun selbst Anfragen beantworten kann bzw. diese bei
  Unkenntnis ins Internet weiterleitet.


  Die Punkte 1 bis 4 brauchen bei konfiguriertem DHCP-Server nicht
  eingetragen werden, da dann der fli4l-Router die notwendigen Daten
  automatisch übermittelt.


  Mit der Konstruktion von fli4l als DNS-Server werden viele von den
  Windows-PCs ausgeführten Anfragen nicht ins Internet weitergeroutet,
  sondern werden direkt vom fli4l-Router beantwortet.

  Sonstige Anmerkungen

  {\bf Internetoptionen}

  Bei Verbindungen muß ``keine Verbindung wählen'' angegeben werden.
  Bei Einstellungen für lokales Netzwerk(LAN): es darf hier NICHTS
  angegeben werden (es sei dann es wird \var{OPT\_\-P}roxy verwendet).

  Dank an Alexander Levenetz für die Windows-Konfigurations-Recherche
  :-)


  \marklabel{IMONDSCHNITTSTELLE}{
    \chapter{Client-/Server-Schnittstelle imond}
  }

  \section{imon-Server imond}

  imond ist ein netzwerkfähiges Server-Programm, welches bestimmte
  Anfragen beantwortet oder auch Kommandos zur Steuerung des Routers
  entgegennehmen kann.

  Ausserdem steuert imond das Least-Cost-Routing. Dazu verwendet er
  eine Konfigurationsdatei /etc/imond.conf, welche beim Booten
  automatisch aus den \var{ISDN\_\-CIRC\_\-x\_\-XXX}-Variablen der Datei
  config/isdn.txt und anderen über ein Shell-Script erzeugt wird.

  imond läuft permanent als Daemon und horcht gleichzeitig auf
  TCP/IP-Port 5000 und Device /dev/isdninfo.


  Folgende Kommandos sind über den TCP/IP-Port 5000 möglich:
  \begin{table}
    {\bf Admin-Befehle}

    \vspace{1ex}
    \begin{tabular}{lp{9cm}}

      addlink ci-index              & Channel zum Circuit hinzufügen
                                      (Channel-Bundling) \\
      adjust-time seconds           & Ändert die Uhrzeit des Routers um die
                                      angegebenen Sekunden \\
      delete filename pw            & Löscht die Datei auf dem Router \\
      hup-timeout \#ci-index [value]& Anzeigen bzw. Setzen des HUP-Timeout für
                                      ISDN-Circuits \\
      removelink ci-index           & Zusätzlichen Channel wieder entfernen \\
      reset-telmond-log-file        & Löschen der telmond-Protokolldatei \\
      reset-imond-log-file          & Löschen der imond-Protokolldatei \\
      receive filename \#bytes pw   & Eine Datei auf den Router übertragen.
                                      Dazu quittiert imond den Befehl mit
                                      einem ACK (0x06). Danach wird die Datei
                                      in 1024er-Blöcken übertragen, die imond
                                      auch jeweils mit einem ACK bestätigt.
                                      Als letztes übermittelt imond noch ein
                                      OK. \\
      send filename pw              & Wenn das Passwort stimmt und die Datei
                                      existiert, liefert imond ein OK \#bytes.
                                      Anschliessend überträgt imond die Datei
                                      in 1024er Blöcken, die jeweils mit
                                      einem ACK (0x06) bestätigt werden
                                      müssen. Als letztes liefert imond noch
                                      ein OK. \\
      support pw                    & Liefert den Status/Konfiguration vom
                                      Router \\
      sync                          & Synchronisiert den Cache von gemounteten
                                      Laufwerken \\
    \end{tabular}
  \end{table}


  \begin{table}
    {\bf Admin- oder User-Befehle}

    \vspace{1ex}
    \begin{tabular}{lp{9cm}}

      dial                      &    Wählt den Provider an
                                     (Default-Route-Circuit) \\
      dialmode [auto|manual|off]&    Liefert bzw. setzt den Dialmode \\
      disable                   &    Hängt ein und setzt dialmode auf ``off''
                                      \\
      enable                    &    Setzt dialmode auf ``auto'' \\
      halt                      &    Fährt den Router sauber herunter \\
      hangup                    &    Hängt ein \\
      reboot                    &    Reboot vom i4l-Router! \\
      route [ci-index]          &    Setzen Default-Route auf Circuit X
                                     (0=automatisch) \\
    \end{tabular}
  \end{table}


  \begin{table}
    {\bf User-Befehle}

    \vspace{1ex}
    \begin{tabular}{lp{9cm}}
      channels                  & Ausgabe Anzahl der verfügbaren ISDN-Kanäle\\
      charge \#channel-id       & Ausgabe der Online-Kosten für einen
                                  Channel\\
      chargetime \#channel-id   & Online-Zeit unter Berücksichtigung des
                                  Taktes\\
      circuit [ci-index]        & Ausgabe eines Circuit-Namens\\
      circuits                  & Ausgabe Anzahl der Default-Route-Circuits\\
      cpu                       & Liefert die Auslastung der CPU in Prozent\\
      date                      & Ausgabe Datum/Uhrzeit\\
      device ci-index           & Liefert das Device des Circuits\\
      driverid \#channel-id     & Ausgabe Driver-Id für Channel X\\
      help                      & Ausgabe Hilfe\\
      inout \#channel-id        & Ausgabe der Richtung (incoming/outgoing)\\
      imond-log-file            & Ausgabe imond-Protokolldatei\\
      ip \#channel-id           & Ausgabe der IP\\
      is-allowed command        & Ausgabe, ob Befehl konfiguriert/gültig
                                  ist\newline
                                  Mögliche Befehle:
                                    dial|dialmode|route|reboot|
                                    imond-log|telmond-log|mgetty-log \\
      is-enabled                & Ausgabe, ob dialmode auf off (0) oder auto
                                  (1)\\
      links ci-index            & Ausgabe Anzahl momentaner Channel 0, 1 oder
                                  2, 0 heisst: Kein Channel-Bundling möglich\\
      log-dir imond|telmond|mgetty& Liefert das Logverzeichnis\\
      mgetty-log-file           & Ausgabe mgetty-Protokolldatei\\
      online-time \#channel-id  & Ausgabe Online-Zeit der akt. Verbindung in
                                  hh:mm:ss\\
      pass [password]           & Abfrage, ob Password nötig bzw. Password-
                                  Eingabe\newline
                                  1 Userpassword gesetzt\newline
                                  2 Adminpassword gesetzt\newline
                                  4 imond befindet sich im Admin-Modus\\
      phone \#channel-id        & Ausgabe Telefonnummer/Name des ``Gegners''\\
      pppoe                     & Liefert die Anzahl der pppoe-Devices (also 0
                                  oder 1)\\
      quantity \#channel-id     & Liefert die übertragenen Datenmengen (in
                                  Byte)\\
      quit                      & Beenden der Verbindung zu imond\\
      rate \#channel-id         & Ausgabe Übertragungsraten (incoming/outgoing
                                  in B/sec)\\
      status \#channel-id       & Ausgabe Status für Channel X\\
      telmond-log-file          & Ausgabe telmond-Protokolldatei\\
      time \#channel-id         & Ausgabe Summe Online-Zeiten, Format
                                  hh:mm:ss\\
      timetable [ci-index]      & Ausgabe der Zeittabelle für LC-Routing\\
      uptime                    & Ausgabe der Uptime des Routers in Sekunden\\
      usage \#channel-id        & Ausgabe Art der Verbindung, mögliche
                                  Antworten: Fax, Voice, Net, Modem, Raw\\
      version                   & Ausgabe der Protokoll- und
                                  Programm-Version\\
    \end{tabular}
  \end{table}


  Der TCP/IP-Port 5000 ist nur vom maskierten LAN aus erreichbar.
  Standardmäßig wird ein Zugriff von aussen über die
  Firewall-Konfiguration abgeblockt.

  Imond unterstützt zwei Benutzerebenen: den User- und den
  Admin-Modus.  Für beide Ebenen kann ein Passwort gesetzt werden
  mittels \var{IMOND\_\-PASS} bzw.  \var{IMOND\_ADMIN\_\-PASS}. Dadurch
  werden die imon-Clients von imond gezwungen, eine Password-Abfrage
  durchzuführen und anschließend das Password an imond zu übertragen.
  Solange dieses Password nicht übermittelt wurde, nimmt imond nur die
  beiden Kommandos ``pass'' und ``quit'' entgegen. Alle anderen werden
  mit einem Fehler zurückgewiesen.

  Möchte man das weiter einschränken, z.B. den Zugriff nur von nur
  einem PC erlauben, muss die Firewall-Konfiguration geändert werden.
  Das geht im Moment leider noch nicht über die
  Standard-Konfigurationsdatei config/base.txt. In diesem Fall ist
  eine Änderung in der Datei /etc/rc.d/rc322.masq nötig. 

  Die Befehle

\begin{example}
\begin{verbatim}
         enable/disable/dialmode   dial/hangup   route   reboot/halt
\end{verbatim}
\end{example}

  können durch die Konfigurationsvariablen \var{IMOND\_\-XXX} global ein- oder
  abgeschaltet werden (s. Kapitel ``Konfiguration'').

  Mit einem Unix/Linux-Rechner (oder einem Windows-Rechner in der DOS-Box)
  kann man das Ganze leicht ausprobieren:

  Nach Eingabe von

\begin{example}
\begin{verbatim}
        telnet fli4l 5000        \# oder entsprechender Name des fli4l-Routers
\end{verbatim}
\end{example}

  kann man direkt die oben aufgeführten Kommandos eingeben und sich
  die Ausgabe anschauen.

  Zum Beispiel bekommt man mit ``help'' die Hilfe angezeigt, mit
  ``quit'' wird die Verbindung zum imond abgebaut.

\marklabel{sec:leastcostrouting}{
  \subsection{Least-Cost-Routing - Funktionsweise}
  }

  imond konstruiert aus der Konfigurationsdatei /etc/imond.conf
  (welche wiederum beim Booten aus den Konfigurationsvariablen
  \var{ISDN\_\-CIRC\_\-x\_\-TIMES} usw.  erstellt wird), eine zeitabhängige
  Tabelle (Time-Table). Diese umfasst eine komplette Kalenderwoche im
  1-Stunden-Raster (168 Stunden = 168 Bytes). Die Tabelle setzt sich
  jedoch lediglich aus Circuits zusammen, für die eine Default-Route
  definert ist.

  Mit dem imond-Kommando ``timetable'' kann man sich diese Tabelle
  anschauen.

  Hier ein Beispiel:

  Nehmen wir an, dass 3 Circuits definiert wurden, nämlich:

\begin{example}
\begin{verbatim}
        CIRCUIT_1_NAME='Addcom'
        CIRCUIT_2_NAME='Compuserve'
        CIRCUIT_3_NAME='Firma'
\end{verbatim}
\end{example}

  wobei lediglich die ersten beiden Circuits mit Default-Routen belegt
  sind, also die enstprechenden Variablen ISDN\_CIRC\_x\_ROUTE den
  Wert '0.0.0.0' haben.

  Wenn die dazugehörigen Variablen \var{ISDN\_\-CIRC\_\-x\_\-TIMES} folgendermaßen
  aussehen:

\begin{example}
\begin{verbatim}
        ISDN_CIRC_1_TIMES='Mo-Fr:09-18:0.0388:N Mo-Fr:18-09:0.0248:Y
                      Sa-Su:00-24:0.0248:Y'

        ISDN_CIRC_2_TIMES='Mo-Fr:09-18:0.019:Y Mo-Fr:18-09:0.049:N
                      Sa-Su:09-18:0.019:N Sa-Su:18-09:0.049:N'

        ISDN_CIRC_3_TIMES='Mo-Fr:09-18:0.08:N Mo-Fr:18-09:0.03:N
                      Sa-Su:00-24:0.03:N'
\end{verbatim}
\end{example}

  dann wird daraus folgende Datei /etc/imond.conf:

\begin{example}
\begin{verbatim}
        #day  hour  device  defroute  phone        name        charge  ch-int
        Mo-Fr 09-18 ippp0   no        010280192306 Addcom      0.0388   60
        Mo-Fr 18-09 ippp0   yes       010280192306 Addcom      0.0248   60
        Sa-Su 00-24 ippp0   yes       010280192306 Addcom      0.0248   60
        Mo-Fr 09-18 ippp1   yes       019160       Compuserve  0.019   180
        Mo-Fr 18-09 ippp1   no        019160       Compuserve  0.049   180
        Sa-Su 09-18 ippp1   no        019160       Compuserve  0.019   180
        Sa-Su 18-09 ippp1   no        019160       Compuserve  0.049   180
        Mo-Fr 09-18 isdn2   no        0221xxxxxxx  Firma       0.08     90
        Mo-Fr 18-09 isdn2   no        0221xxxxxxx  Firma       0.03     90
        Sa-Su 00-24 isdn2   no        0221xxxxxxx  Firma       0.03     90
\end{verbatim}
\end{example}

  imond erstellt dann im Speicher folgende Time-Table - hier die Ausgabe
  über das imond-Kommando ``timetable'':

\begin{example}
\begin{verbatim}
         0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
     --------------------------------------------------------------------------
     Su  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3
     Mo  2  2  2  2  2  2  2  2  2  4  4  4  4  4  4  4  4  4  2  2  2  2  2  2
     Tu  2  2  2  2  2  2  2  2  2  4  4  4  4  4  4  4  4  4  2  2  2  2  2  2
     We  2  2  2  2  2  2  2  2  2  4  4  4  4  4  4  4  4  4  2  2  2  2  2  2
     Th  2  2  2  2  2  2  2  2  2  4  4  4  4  4  4  4  4  4  2  2  2  2  2  2
     Fr  2  2  2  2  2  2  2  2  2  4  4  4  4  4  4  4  4  4  2  2  2  2  2  2
     Sa  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3

     No.  Name                   DefRoute  Device  Ch/Min   ChInt
      1   Addcom                   no      ippp0   0.0388     60
      2   Addcom                   yes     ippp0   0.0248     60
      3   Addcom                   yes     ippp0   0.0248     60
      4   Compuserve               yes     ippp1   0.0190    180
      5   Compuserve               no      ippp1   0.0490    180
      6   Compuserve               no      ippp1   0.0190    180
      7   Compuserve               no      ippp1   0.0490    180
      8   Firma                    no      isdn2   0.0800     90
      9   Firma                    no      isdn2   0.0300     90
     10   Firma                    no      isdn2   0.0300     90
\end{verbatim}
\end{example}

  Für den Circuit 1 (Addcom) sind also drei Zeitbereiche (1-3)
  eingetragen, für Circuit 2 (Compuserve) vier Zeitbereiche (4-7) und
  für den letzen drei Zeitbereiche (8-10).

  In der Time-Table werden jeweils die Indices ausgegeben, welche für
  die jeweilige Stunde gültig sind. Hier tauchen lediglich die Indices
  2-4 auf, da alle anderen keine LC-Default-Routen sind.

  Sieht man in der Tabelle irgendwo Nullen, gibt es Lücken in den
  \var{ISDN\_\-CIRC\_\-X\_\-TIMES}-Werten. Dann existiert zu diesen Zeiten keine
  Default-Route, Internet-Zugang abgeknipst!

  Beim Programmstart ermittelt imond zunächst den Wochentag und die
  aktuelle Stunde. Anschließend wird dann über die Time-Table der
  Index ermittelt und damit dann auch der entsprechende Circuit. Auf
  diesen wird dann die Default-Route gesetzt.

  Bei Zustandsänderungen der Channels, z.B. Wechsel von online
  nach offline - jedoch spätestens nach 1 Minute - geht das Spiel von
  neuem los: Zeit ermitteln, Lookup in Tabelle, Default-Route-Circuit
  ermitteln.

  Ändert sich der aktuell verwendete Circuit, z.B. montags um 18:00
  Uhr, wird die alte Default-Route gelöscht, eine vielleicht
  bestehende Verbindung beendet (sorry\ldots) und anschließend die
  Default-Route auf den neuen Circuit gesetzt. Dies kann von imond bis
  zu 60 Sekunden später bemerkt werden, also wird spätestens um
  18:00:59 umgeschaltet.

  Bei Circuits, die keine Default-Route belegen, ändert sich überhaupt
  nichts. Hier wird der Inhalt von \var{ISDN\_\-CIRC\_\-x\_\-TIMES} lediglich zur
  Berechnung der Telefonkosten verwendet. Diese können dann relevant
  sein, wenn man über den Client imonc das LC-Routing temporär
  ausschaltet und einen Circuit manuell wählt.

  Man kann sich jedoch auch die Tabellen für andere
  Zeitbereich-Indices (im Beispiel von 1 bis 10) anschauen, auch die
  der ``Non-LC-Default-Route-Circuits''.

  Kommando:

\begin{example}
\begin{verbatim}
                    timetable index
\end{verbatim}
\end{example}

  Beispiel:

\begin{example}
\begin{verbatim}
                    telnet fli4l 5000
                    timetable 5
                    quit
\end{verbatim}
\end{example}

  Die Ausgabe sieht dann so aus:

\begin{example}
\begin{verbatim}
         0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
     --------------------------------------------------------------------------
     Su  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
     Mo  5  5  5  5  5  5  5  5  5  0  0  0  0  0  0  0  0  0  5  5  5  5  5  5
     Tu  5  5  5  5  5  5  5  5  5  0  0  0  0  0  0  0  0  0  5  5  5  5  5  5
     We  5  5  5  5  5  5  5  5  5  0  0  0  0  0  0  0  0  0  5  5  5  5  5  5
     Th  5  5  5  5  5  5  5  5  5  0  0  0  0  0  0  0  0  0  5  5  5  5  5  5
     Fr  5  5  5  5  5  5  5  5  5  0  0  0  0  0  0  0  0  0  5  5  5  5  5  5
     Sa  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

     No.  Name                   DefRoute  Device  Ch/Min   ChInt
      5   Compuserve               no      ippp1   0.0490    180
\end{verbatim}
\end{example}

  Alles klar?

  Mit dem imond-Kommando ``route'' kann das LC-Routing ein- und
  ausgeschaltet werden. Bei Angabe eines positiven Circuit-Indices
  (1\ldots N) wird die Default-Route auf den angegebenen Circuit
  gelegt. Ist der Index 0, wird das LC-Routing wieder aktiviert und
  der Circuit automatisch ausgewählt.


  \subsection{Zur Berechnung der Onlinekosten}

  Das ganze Modell zur Berechnung der Onlinekosten funktioniert nur
  korrekt, wenn der Zeittakt für einen Circuit (Variable
  \var{ISDN\_\-CIRC\_\-x\_\-CHARGEINT}) über die ganze Woche konstant ist. Dies
  ist im Normalfall bei Internet-Providern die Regel. Wählt man sich
  jedoch über die Telekom (ich meine nicht T-Online!) z.B. in sein
  Firmennetz ein, gilt das als ganz normales Telefongespräch. Und da
  wechselt ab 18:00 der Takt von 90 Sekunden auf 4 Minuten (Stand Juni
  00). Deshalb ist die Definition von

\begin{example}
\begin{verbatim}
        ISDN_CIRC_3_CHARGEINT='90'
        ISDN_CIRC_3_TIMES='Mo-Fr:09-18:0.08:N Mo-Fr:18-09:0.03:N Sa-Su:00-24:0.03:N'
\end{verbatim}
\end{example}

  eigentlich nicht ganz korrekt. Es sind zwar abends umgerechnet auf
  die Minute 3 Pfennig (4 Minuten kosten 12 Telekom-Pfennige), jedoch
  ist der Takt falsch. Deshalb können bei der Kostenanzeige
  Differenzen zu den tatsächlichen Zahlen auftreten.

  Hier ist ein Tipp, wie verschieden lange Taktzeiten dennoch richtig
  berücksichtigt werden können (auch wichtig für
  \var{ISDN\_\-CIRC\_\-x\_\-CHARGEINT}): Man definiert einfach 2 Circuits,
  einen für tagsüber mit \var{ISDN\_\-CIRC\_\-1\_\-CHARGEINT}='90' und den
  anderen mit \var{ISDN\_\-CIRC\_\-2\_\-CHARGEINT}='240'.
  Natürlich muss man dann auch noch \var{ISDN\_\-CIRC\_\-x\_\-TIMES}
  entsprechend wählen, damit tagsüber Circuit 1 und abends Circuit 2
  verwendet wird.

  Wie gesagt: Bei Nutzung von Verbindungen zu Internet-Providern gibt
  es das Problem nicht, weil dort der Zeittakt immer konstant ist und
  lediglich die Kosten pro Minute wechseln (oder gibt es sowas doch???
  Ich traue T-* alles zu :-).

  \input{base_winimonc}

  \section{Unix/Linux-Client imonc}

  Für Linux gibt es mittlerweile 2 Versionen: eine textbasierte
  (imonc) und eine mit graphischer Oberfläche (ximonc). Den Source zu
  ximonc findet man im Verzeichnis src. Die Dokumentation für ximonc
  wird erst in der 1.5-Final-Version zur Verfügung stehen. Ein
  erfahrener Linux-User sollte aber mit den Sources keine Probleme
  haben.

  Beschränken wir uns daher hier zunächst auf die textbasierte Version
  von imonc: Dieses ist ein curses-basiertes Programm, hat also keine
  graphische Oberfläche. Der Source liegt im Verzeichnis unix.

  Installation:

\begin{example}
\begin{verbatim}
        cd unix
        make install
\end{verbatim}
\end{example}

  imonc wird dabei in /usr/local/bin installiert.

  Aufruf:

\begin{example}
\begin{verbatim}
        imonc hostname
\end{verbatim}
\end{example}

  Dabei ist als hostname der Name oder die IP-Adresse des
  fli4l-Routers anzugeben, also z.B.

\begin{example}
\begin{verbatim}
        imonc fli4l
\end{verbatim}
\end{example}


  imonc zeigt folgende Informationen:

  \begin{itemize}
  \item Datum/Uhrzeit des fli4l-Routers

  \item Momentan eingestellte Route

  \item Default-Route-Circuits

  \item ISDN-Kanäle
    \begin{description}
    \item[Status]:         Calling/Online/Offline
    \item[Name]:           Telefonnummer des Gegners oder Circuit-Name
    \item[Time]:           Online-Zeit
    \item[Charge-Time]:    Online-Zeit unter Berücksichtigung des Zeittaktes
    \item[Charge]:         Berechnete Kosten
    \end{description}
  \end{itemize}


  Mögliche Kommandos sind:

  \begin{tabular}{lll}
    Nr   &Befehl              &Bedeutung\\
    0   &quit                &Programm beenden\\
    1   &enable              &Aktivieren\\
    2   &disable             &Deaktivieren\\
    3   &dial                &Wählen\\
    4   &hangup              &Einhängen\\
    5   &reboot              &Neu booten\\
    6   &timetable           &Zeittabelle ausgeben\\
    7   &dflt route          &Neuen Default-Route-Circuit bestimmen\\
    8   &add channel         &2. Kanal hinzuschalten\\
    9   &rem channel         &2. Kanal deaktivieren\\
  \end{tabular}

  Zu den Kommandos im Einzelnen:

  \begin{description}
  \item[0 -- quit] Die Verbindung zum imond-Server wird abgebaut und
    das Programm beendet.


  \item[1 -- enable] Alle Cirucits werden auf dialmode ``auto''
    gestellt. Das ist auch der Default-Zustand von fli4l nach dem
    Booten. Das heisst, dass fli4l bei einem Verbindungsaufbauwunsch
    eines Rechners im Netz automatisch rauswählt.


  \item[2 -- disable] Alle Circuits werden auf dialmode ``off''
    gestellt. Damit ist fli4l so gut wie tot, bis er mit dem
    Enable-Kommando wieder geweckt wird.


  \item[3 -- dial] Manuelle Wahl auf dem Default-Route-Circuit. Ist
    eher für Testzwecke gedacht, da fli4l normalerweise automatisch
    wählt.


  \item[4 -- hangup] Manuelles Einhängen: damit kann man dem
    automatischen Einhängen von fli4l zuvorkommen.


  \item[5 -- reboot] fli4l wird neu gebootet. Ziemlich überflüssiges
    Kommando \ldots


  \item[6 -- timetable] Es wird die Zeittabelle für die
    Default-Route-Circuits ausgegeben.  Beispiel: s.o.


  \item[7 -- default route circuit] Manuelles Wechseln des
    Default-Route-Circuits. Kann z.B. dann sinnvoll sein, wenn man das
    automatische LC-Routing von fli4l für eine Weile ausser Kraft
    setzen will, da einige Provider einen Zugriff auf das eigene
    Postfach nur über den eigenen Internet-Zugang erlauben.


  \item[8 -- add channel] Hier kann der 2. ISDN-Kanal manuell
    hinzugeschaltet werden.  Voraussetzung:
      \var{ISDN\_\-CIRC\_\-x\_\-BUNDLING}
    ist `yes'.


  \item[9 -- remove channel] Abschalten des 2. ISDN-Kanals. Siehe auch
    ``add channel''.

  \end{description}

  Sonst gelten bei diesen Kommandos dieselben Bemerkungen wie für den
  imond-Client imonc.exe unter Windows.


  Noch zu bemerken ist: Ab fli4l-1.4 ist es nun auch möglich, auf dem
  fli4l-Router selbst einen ``minimalisierten'' imon-Client zu
  installieren, nämlich durch Setzen von \var{OPT\_\-TOOLS}='yes'.

  Damit kann man nun auch an der fli4l-Console bestimmte
  Einstellungen, z.B. Routing etc. mit imonc vornehmen. Achtung:
  Dieser Mini-imonc funktioniert nur auf dem fli4l-Router selbst! Auf
  einem Linux-/Unix- Client ist immer der ``große Bruder'' unix/imonc
  zu verwenden.

