
\section{Tools - Zusätzliche Werkzeuge zum Debugging}

    Das Package Tools liefert eine Reihe von Unix Programmen, die zumeist für
    Administrations- und Debugzwecke gedacht sind. Andere Programme wie wget
    werden z.B. dafür verwendet, die erste (Werbungs-)Seite einiger Provider
    abzufangen. Mit dem Wert 'yes' wird das jeweilige Programm mit auf den
    fli4l-Router kopiert. Die Standardeinstellung ist 'no'. Die Programme werden
    nur kurz vorgestellt, wie sie zu bedienen sind, entnehme man bitte den man
    Pages einer beliebigen Unix/ Linux Distribution oder online unter:
    \link{http://linux.ctyme.com}


\subsection{Die Tools}


    \begin{description}

\config{OPT\_ARP}{OPT\_ARP}{OPTARP} Ansehen und Manipulieren der ARP Tabelle

    Den Befehl arp verwendet man, um die Ethernetadresstabelle des Kernels zu
    bearbeiten oder anzusehen.

\config{OPT\_E3}{OPT\_E3}{OPTE3} Ein Editor für fli4l

    Dies ist ein sehr kleiner, in Assembler geschriebener Editor. Er stellt
    verschiedene Editor-Modi zur Verfügung, die andere (,,große'') Editoren
    nachstellen. Um einen bestimmten Modus zu wählen, reicht es e3 mit dem
    richtigen Befehl zu starten. Eine Kurzübersicht der Tastenbelegung
    bekommt man, wenn man e3 ohne Parameter startet oder Alt+H drückt (außer
    im VI-Modus, dort muß man im CMD-Modus ,,:h'' eintippen). Zu beachten ist
    auch, daß das Caret-Zeichen (\^{ }) für die Ctrl-/Strg-Taste steht.

    \begin{tabular}{ll}
      Befehl & Modus \\
      \hline
      e3 / e3ws & WordStar, JOE \\
      e3vi      & VI, VIM \\
      e3em      & Emacs \\
      e3pi      & Pico \\
      e3ne      & NEdit
    \end{tabular}

\config{OPT\_FTP}{OPT\_FTP}{OPTFTP} FTP-Client

\config{OPT\_IFTOP}{OPT\_IFTOP}{OPTIFTOP} Netzwerküberwachung

    Mit dem Programm iftop wird eine Auflistung alle aktiven
    Netzwerkverbindung und deren Durchsatz direkt auf dem fli4l
    angezeigt.

    Das Programm iftop wird nach dem Anmelden auf dem fli4l-Router
    durch Eingabe von iftop gestartet.

\config{OPT\_IMONC}{OPT\_IMONC}{OPTIMONC} Textorientiertes Steuerprogramm für imond

    Dieses Programm liefert ein textorientiertes Frontend für den Router, um
    den imond zu steuern.

\config{OPT\_NETCAT}{OPT\_NETCAT}{OPTNETCAT} Übertragen von Daten an TCP basierte Server

\config{OPT\_NETSTAT}{OPT\_NETSTAT}{OPTNETSTAT} Auflisten von Netzwerkinformationen

    netstat -{}-inet zum Beispiel liefert eine auführliche Liste aller 
    internetbasierten Verbindungen auf dem Rechner. Damit lassen sich
    auch Verbindungen darstellen, die zwischen lokal laufenden Anwendungen
    bestehen.

\config{OPT\_TAIL}{OPT\_TAIL}{OPTTAIL} Betrachten der letzten Zeilen einer Textdatei

\config{OPT\_TRACEROUTE}{OPT\_TRACEROUTE}{OPTTRACEROUTE} Verfolgen von Netzwerkrouten im Internet

\config{OPT\_WGET}{OPT\_WGET}{OPTWGET} http/ftp Client

    Mit dem Programm wget können Daten von einem Webserver im Batch
    abgerufen werden. Praktisch ist aber (und deswegen ist wget im
    fli4l-Paket dabei), daß man damit Umlenkungen des Providers auf
    den eigenen Webserver nach einem Verbindungsaufbau auf einfache
    Weise abfangen kann, z.B. für Freenet. Wie das geht, hat Steffen
    Peiser $<$stpeiser@fli4l.de$>$ in einem Mini-HowTo (zu finden auf
    www.fli4l.de) erklärt.

\config{OPT\_BCRELAY}{OPT\_BCRELAY}{OPTBCRELAY} Weiterleiten von Broadcasts

    Mit dem Programm bcrelay können Broadcasts zwischen Interfaces
    weitergeleitet werden. Beispiel:

    bcrelay 137-139 ``eth0|eth1''

\config{OPT\_STRACE}{OPT\_STRACE}{OPTSTRACE} debug 

    Mit dem Programm strace können die Funktionsaufrufe, der Ablauf eines
    Programmes beobachtet werden

    strace $<$programm$>$

\config{OPT\_TCPDUMP}{OPT\_TCPDUMP}{OPTTCPDUMP} debug

    Mit dem Programm tcpdump kann Netzwerkverkehr beobachtet, ausgewertet
    mitgeschnitten werden. Mehr dazu unter z.B. Google mit den Suchworten
    \grqq{}tcpdump man\grqq{}

    tcpdump $<$parameter$>$

\config{OPT\_TOP}{OPT\_TOP}{OPTTOP} Prozessüberwachung

    Mit dem Programm top wird eine Auflistung alle aktiven Prozesse
    angezeigt die sekündlich aktualisiert wird. Bei jedem Prozess wird
    der Benutzer, Priorität, Nicelevel, Speicher und CPU Nutzung
    ausgegeben.  \grqq{}top man\grqq{}

    Das Programm top wird nach dem Anmelden auf dem fli4l-Router durch
    Eingabe von top gestartet.

\config{OPT\_NTTCP}{OPT\_NTTCP}{OPTNTTCP} Netzwerktest

    Mit dem Programm NTTCP kann man die Netzwerkgeschwindigkeit
    testen. Dazu wird auf einer Seite ein Server gestartet und auf
    einer anderen Seite ein entsprechende Client.

    Den Server startet man durch Eingabe von nttcp -i -v. Der Server
    wartet dann auf eine Testanforderung des Clients. Um jetzt z.B die
    Geschwindigkeit zu testen gibt man auf dem Client nttcp -t $<$IP
    Adresse des Servers$>$ ein.

    So sieht ein gestarteter nttcp Server aus:

\begin{example}
\begin{verbatim}
fli4l-server 2.1.7 # nttcp -i -v
nttcp-l: nttcp, version 1.47
nttcp-l: running in inetd mode on port 5037 - ignoring options beside -v and -p
\end{verbatim}
\end{example}

    So sieht ein Test mit einem nttcp Client aus:

\begin{example}
\begin{verbatim}
fli4l-client 2.1.7 # nttcp -t 192.168.77.77
l  8388608    4.77    0.06     14.0713   1118.4811    2048    429.42   34133.3
1  8388608    4.81    0.28     13.9417    239.6745    6971   1448.21   24896.4
\end{verbatim}
\end{example}

    Die Hilfeseite von nttcp zeigt alle weiteren Parameter:

\begin{verbatim}
Usage: nttcp [local options] host [remote options]
       local/remote options are:
        -t      transmit data (default for local side)
        -r      receive data
        -l#     length of bufs written to network (default 4k)
        -m      use IP/multicasting for transmit (enforces -t -u)
        -n#     number of source bufs written to network (default 2048)
        -u      use UDP instead of TCP
        -g#us   gap in micro seconds between UDP packets (default 0s)
        -d      set SO_DEBUG in sockopt
        -D      don't buffer TCP writes (sets TCP_NODELAY socket option)
        -w#     set the send buffer space to #kilobytes, which is
                dependent on the system - default is 16k
        -T      print title line (default no)
        -f      give own format of what and how to print
        -c      compares each received buffer with expected value
        -s      force stream pattern for UDP transmission
        -S      give another initialisation for pattern generator
        -p#   specify another service port
        -i      behave as if started via inetd
        -R#     calculate the getpid()/s rate from # getpid() calls
        -v      more verbose output
        -V      print version number and exit
        -?    print this help
        -N      remote number (internal use only)
        default format is: %9b%8.2rt%8.2ct%12.4rbr%12.4cbr%8c%10.2rcr%10.1ccr
\end{verbatim}

\end{description}

