[ Zu JKCEMU ]


Netzwerkemulation



Screeshot Ping

1. Allgemeines

Ralf Kästner hat eine TCP/IP-fähige Lösung zum Anschluss der KC85-Computer aus Mühlhausen an ein Ethernet-Netzwerk entwickelt. Diese Lösung nennt sich KCNet und findet sich in dem Modul M052. Für andere 8-Bit-Computer steht KCNet in Form einer separaten Netzwerkkarte zur Verfügung.

Basis von KCNet ist der Chip WIZnet W5100, der einen vollständigen TCP/IPv4-Protokollstack enthält. JKCEMU emuliert diese Netzwerklösung, wobei der Protokollstack des Betriebssystems verwendet wird, auf dem der Emulator läuft. Dieses Prinzip, insbesondere das Berechtigungskonzept des Betriebssystems, bedingen allerdings einige Einschränkungen:

2. Konfiguration

KCNet muss nach dem Start des Computers erst konfiguriert werden, bevor es verwendet werden kann. Dafür gibt es ein spezielles Programm, mit dem man die Werte für IP-Adresse, Subnetzmaske, Gateway und DNS-Server im Netzwerkmodul eintragen kann. In der Emulation werden aber die im KCNet eingestellten Werte für IP-Adresse, Subnetzmaske und Gateway gar nicht verwendet, da das ja Sache des Betriebssystems ist, auf dem JKCEMU läuft. Sie müssen aber trotzdem mindestens die IP-Adresse und die Subnetzmaske im KCNet konfigurieren, da sonst die entsprechenden Anwendungsprogramme ein nicht konfiguriertes Netzwerk erkennen und somit ihren Dienst verweigern. Das Gateway kann dagegen leer bleiben. Es hat in der Emulation sowieso keine Bedeutung.

Anders sieht es beim DNS-Server aus. Hier ist das Betriebssystem des Emulatorrechners nicht involviert. Die im Emulator laufenden Netzwerkprogramme nehmen die Namensauflösung selbst vor und verwenden dazu den im KCNet eingestellten DNS-Server.

JKCEMU bietet die Möglichkeit, KCNet vorzukonfigurieren, d.h., beim Start der Emulation ist das Netzwerk bereits konfiguriert, und sie brauchen das spezielle Konfigurationsprogramm nicht mehr starten. Die vier einzelnen Werte für die Netzwerkkonfiguration können Sie in den Einstellungen, Bereich Netzwerk, festlegen. Das ist aber i.d.R. nicht notwendig, da nämlich standardmäßig eine Option eingeschaltet ist, die die IP-Adresse, die Subnetzmaske und den DNS-Server automatisch ermittelt und in das emulierte KCNet-Modul eingeträgt.

Auf manchen Systemen kann JKCEMU den DNS-Server nicht ermitteln. Ist das bei Ihnen der Fall, müssen Sie selbst die IP-Adresse des DNS-Servers herausfinden. Auf einem Windows-Betriebssystem geht das folgendermaßen:
  1. Starten Sie die DOS-Box, indem Sie in der Windows-Suche cmd.exe eingeben.
  2. Tippen Sie in der DOS-Box ipconfig /all ein und drücken Enter.
  3. Suchen Sie in der DOS-Box in den Programmausgaben die Zeile mit dem DNS-Server heraus und tragen die dort angegebene IP-Adresse im Emulator in das Feld DNS-Server ein.

3. Hinweise zu IPv6

Die emulierte Netzwerklösung KCNet verwendet ausschließlich die alte TCP/IP-Version IPv4 mit den 4 Byte langen IP-Adressen, die in Form von vier mit einem Punkt getrennten Dezimalzahlen geschrieben werden. Inzwischen ist jedoch immer häufiger auch das neue IPv6 mit 16 Byte langen IP-Adressen anzutreffen, meistens in Form einer gemischten IPv4/IPv6-Umgebung. Anhand der IP-Adresse wird dann unterschieden, ob IPv4 oder IPv6 verwendet wird.

Wenn nun in einer solchen Umgebung JKCEMU Datenpakete im IPv6-Format empfängt, kann es die dort eingetragene IPv6-Adresse nicht in Form einer IPv4-Adresse dem emulierten KCNet mitteilen, d.h., das im Emulator laufende Programm sieht die Gegenstelle mit der IP-Adresse 0.0.0.0, was für eine fehlende IP-Adresse steht. Damit kann aber das Programm nichts anfangen. Sie müssen deshalb sicherstellen, dass die Netzwerkkommunikation immer mit IPv4 abläuft.

Ist das im Emulator laufende Programm eine Client-Anwendung und somit der Initiator einer Netzwerkkommunikation, gibt es kein Problem, da JKCEMU die Kommunikation mit IPv4 beginnt, woraufhin ein Server auch mit IPv4 antworten wird.

Problematisch wird es aber, wenn das im Emulator laufende Programm eine Server-Anwendung ist und die Netzwerkkommunikation somit außerhalb von JKCEMU initiiert wird. Hier müssen Sie sicherstellen, dass beim Verbindungsaufbau zum Emulatorrechner hin die IPv4-Adresse angegeben wird. Bei Verwendung von logischen Rechnernamen, die über DNS aufgelöst werden, liegt es an der DNS-Konfiguration, ob nun eine IPv4- oder IPv6-Adresse genommen wird. Liefert das DNS eine IPv6-Adresse, bleibt Ihnen nichts anderes übrig, als auf den logischen Rechnernamen zu verzichten und die IPv4-Adresse des Emulatorrechners direkt anzugeben.

© 2012 Jens Müller