Netzwerk-Bridge unter Linux mit TUN/TAP

Seit längerem trage ich bereits das Projekt in meinem Kopf herum, einen Mainframe-Computer der VAX-Reihe von Digital Equipment Corporation (kurz DEC) zu emulieren und auf diesem emulierten System wiederum das auch von DEC dazu entwickelte ‚Virtual Memory System‘ (kurz VMS später OpenVMS) als Betriebssystem zu installieren um damit ein wenig herum zu spielen. Ich habe aber bereits NetBSD, das ebenfalls von DEC entwickelte und proprietäre Unix Ultrix, als auch OpenVMS auf die emulierte Maschine kurz installiert. Nur waren diese Unternhmungen eher halbherzig, denn eine wichtige Komponente hatte ich bisher nie mit einbezogen. Nämlich die Netzwerkfähigkeit eines dieser Systeme. Ohne Netzwerk ist so eine emulierte Maschine zwar schön zum anschauen und herum probieren, aber sie verharrt weiterhin als eine Art Insellösung, wie früher, als die Computer in den häuslichen Wohnstuben noch nicht mit einem (Drahtlos-) Netzwerk verbunden waren und selbst das Internet mittels eines Modemzugangs noch teuer und keine Selbstveständlichkeit waren. Erst die Kommunikation von Computern untereinander macht sie flexibel und nochmals interessanter. Mit einer Netzwerkanbindung lassen sich Betriebssystem und Programme updaten oder gar upgraden, Dateien und Nachrichten hin und her übertragen und eigene Dienste anbieten.

Die Möglichkeit der Netzwerkkonnektivität ist aus meiner Sicht zumindest bei der Desktop-Virtualisierung eine recht einfache Sache. Denn die VMWare’s, Parallels und VirtualBox’es dieser Welt richten während ihrer Installation eine Netzwerkbridge in Software für das Wirtssystems automatisch mit ein, da sie die nötigen Treiber bereits mitbringen. So kann für eine virtuelle Maschine der Bridge-Modus zum direkten Zugriff auf ein physikalisches Netz, ein geteiltes Subnet mit NAT für mehrere virtuelle Maschinen untereinander oder eine Peer-To-Peer Verbindung zum Wirtssystem angeboten werden.

Bei der Emulationssoftware simh ist das etwas anders. Das Programm bringt keinen eigenen Treiber für eine Netzwerkbridge mit. Das Programm selber ist zwar netzwerkfähig, aber es ist nötig einen virtuellen Netzwerk-Kernel-Treiber wie TUN/TAP zu installieren, um die Netzwerkgeräte zu simulieren.

TUN simuliert dabei ein Ende-zu-Ende-Netzwerkgerät (ISO OSI-Schicht 3) und kommuniziert mit IP-Paketen mit der Software, während TAP eine Punkt-zu-Punkt-Verbindung mittels Ethernet-Gerät simuliert (ISO OSI-Schicht 2) und über Ethernet-Frames mit der Software kommuniziert.

In meinem DokuWiki habe ich einen ersten Workaround zur Erstellung einer Netzwerk-Bridge unter Linux mit TUN/TAP erstellt.:
Netzwerk-Bridge mit TUN/TAP für eine Computer-Emulation

Links:
TUN/TAP (engl. Wikipedia)
TUN/TAP (Projektseite auf source forge)
SIMH (dt. Wikipedia)
DEC VAX (engl. Wikipedia)
DEC OpenVMS (engl. Wikipedia)
Ultrix (engl. Wikipedia)
NetBSD (dt. Wikipedia)

Kurzeinstieg zum ed-Editor

Nachdem ich vor ungefähr 11 bis 12 Jahren begann, mich mit der Bedienung des Texteditors vi für BSD-Unix und Linux anzufreunden, ist dieser auf einer Shell inzwischen auch für mich der Texteditor erster Wahl. Im Kontext einer Linux User Group hatte ich bereits damals mitbekommen, dass dieser Texteditor – sowie dessen weiterentwickelter Nachfolger vim – bei durchaus langjährigen Linux-Anwendern beziehungsweise -Administartoren sehr geschätzt wird, während Neulinge durch das ungewohnte Bedienungskonzept eher erst einmal irritiert und verschreckt reagieren und ihn dann mit Unverständnis begegnen.
Es ist durchaus interessant zu wissen, dass der vi zu einer Zeit entwickelt wurde, in der Computererminals mit einer Tastatur ausgestattet waren, die im Umfang an verfügbaren Tasten noch Schreibmachinen glichen und es eben noch keine Cursor-Tasten gab, um im Text zeilen- und spaltenweise den Cursor zu navigieren. Er arbeitet stattdessen kontextbasiert. Mit einem Befehlsmodus, einem Einfügemodus, bei dem der Text direkt bearbeitet werden kann, sowie dem Kommandozeilenmodus.

Zur Zeit beschäftige ich mich zunehmend mal mit Unix-Versionen, die inzwischen einen historischen Status genießen. Bei diesen ist zum einen vermutlich aus Speicherplatzgründen des Installationsmediums, und in einem anderen Fall auf Grund des enormen Alters der Unix-Version, kein vi vorhanden und stattdessen als einziger Texteditor der ed verfügbar.

Bei dem ed handelt es sich auch wie beim vi um einen kontextbasierten Texteditor. Allerdings arbeitet Dieser nicht Seitenbasiert mit den Text-Dateien, sondern nur zeilenorientiert. Das liegt daran, dass er natürlich älter als der vi ist, und zu einer Zeit Anfang der 1970er Jahre von Ken Thompson mit Unix mit entwickelt wurde, als die Programmierer die Computer noch mit einem Fernschreiber als Ein- und Ausgabegerät bedienten und noch keine elektrischen Bildschirmterminals zur Verfügung standen, die Dateien seitenweise ausgeben konnten.

Vor vielen Jahren bin ich dann beim Durchstöbern des Internets auf eine ISO-Datei gestoßen, die für einen normalen PC bootfähig ist und einen etwa 10 Megabyte großen Emulator zur Ausführung des ‚Unix Time-Sharing System Seventh Edition (V7)‘ vom Januar 1979 beinhaltet. Bei dem Emulator habe ich dann damals recht schnell wieder das Handtuch geworfen, weil ich trotz meiner bereits bestenenden Erfahrung hinsichtlich der Bedienung des vi’s zusätzlich nur mit der zeilenweisen Ausgabe einer Textdatei nicht zurecht kam.

Vor ein paar Tagen habe ich schließlich noch einmal einen Versuch erfolgreich gestartet und mich mit den wichtigsten Befehlen – beziehungsweise dessen Kommandozeilenmodus vertraut gemacht. Als Einstieg hat mir dabei auch der Beitrag „Eine Anleitung für Anfänger zur Verwendung des ed Editor unter Linux“ des Blog’s HowtoForge geholfen.

Die wichtigsten Kommandos und Befehle habe ich mir auch noch einmal zusätzlich in eine eigen kleine Tabelle ins Wiki gestellt.
Link: – Kurzübersicht ed Editorkommandos (eigenes Wiki)

Weitere Links:
Ersterfahrungen mit NetBSD (Blog-Artikel vom 25. Oktober 2008)
Texteditor vi (dt. Wikipedia)
Texteditor vim (dt. Wikipedia)
Texteditor ed (dt. Wikipedia)
Eine Anleitung für Anfänger zur Verwendung des ed Editor unter Linux (HowtoForge)

Tastatur-Layouts unter dem X Window System

Gestern Abend habe ich mal wieder meine BSD-Grundkenntnisse mit dem aktuellen Release von NetBSD aufgefrischt. Für die Einstellung des verwendeten Tastatur-Layouts bin ich bei meiner Internetrecherche auf die Manpage des OpenBSD-Befehls xkeyboard-config gestoßen. Wobei eine Auflistung der am meisten gebräuchlichsten Tastatur-Modellen und -Layouts für die Sprache eigentlich in jedem Betriebssystem und Anwendungsprogramm zur Bearbeitung von Texten enthalten ist. Aber in keinem Dokument habe ich sie so übersichtlich veranschaulicht gesehen. – Meine Güte, es gibt – oder es gab zumindest mal – ein ‚Yahoo Internet Keyboard‚?

Mehr noch: Neben Tastatur-Typ und -Layout gibt es noch Möglichkeiten zur Konfiguration für einen Wechsel zwischen unterschiedlichen Sprach-Layouts mit bestimmten Tastenkombinationen, der Konfiguration über das Verhalten der Windows-Taste, oder der Kompatibilität zu dem Tasten-Code von Sun’s alten Solaris-Betriebssystem.

Es gibt in der Konfiguration von Spracheinstellungen, sowie Zeichensätzen, bei Betriebssystemen und Anwendungen so einige tiefe Fässer, in die ich nicht gerne hineinschaue, weil man für den korrekten Betrieb einiges Beachten muss. Aber diese Manpage von OpenBSD hat zumindest mir etwas Licht in das Dickicht zu den Einstellungsmöglichkeiten einer Tastatur gebracht.

Links:
Guide Konfiguration X Window System unter NetBSD
Manpage setxkbmap NetBSD
Guter tabellarische Übersicht der Tastaturlayouts in OpenBSD

Ich habe die tabellarische Übersicht der OpenBSD-Version zusätzlich mal in mein Wiki eingepflegt.:
https://sommteck.net/wiki/doku.php?id=openbsd:manpage_xkeyboard-config