Portweiterleitung Host->Gast

Manchmal kann es für bestimmte Anwendungen sinnvoll sein, dass mehrere bwLehrpool-VMs über einen bestimmten Port miteinander kommunizieren können. Beispielsweise könnte Rechner 'A' eine Serveranwendung bereitstellen, auf die von den Rechnern 'B', 'C', 'D', … zugegriffen werden soll.

Dazu muss eine entsprechende iptables-Konfiguration ins MiniLinux integriert werden (Generisches Modul).

Legen Sie zunächst die nötige Ordnerhierarchie an:

mkdir -p ~/portForwarding/opt/openslx/iptables/rules.d
cd ~/portForwarding/opt/openslx/iptables/rules.d

Legen Sie dort folgende Beispielregel ab, die Port 1234 des Hostsystems auf Port 8080 der VM weiterleitet:

10-port-forwarding
#!/bin/sh
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 1234 -j DNAT --to 192.168.101.20:8080
Falls Sie dies per Zwischenablage kopieren, achten Sie darauf, dass insbesondere in der ersten Zeile keine führenden Tabulatoren, Leerzeichen o.ä. enthalten sind. Sie können durchaus mehrere iptables-Zeilen in dieser Datei eintragen.
Falls Sie unter Windows arbeiten, achten Sie außerdem darauf, dass die Datei keine Windows Zeilenumbrüche (CRLF) enthält - ansonsten schlägt die Ausführung fehl. Konvertieren Sie die DOS-Datei mit einem Tool Ihrer Wahl, z.B. Notepad++, zu einer UNIX-Datei.

Die Datei muss ausführbar sein. Ansonsten kann die Regel später nicht angewendet werden.

chmod +x 10-port-forwarding

Wechseln Sie dann in das von Ihnen angelegte Verzeichnis ~/portForwarding:

cd ~/portForwarding

und packen Sie dieses Skript als tar-gz-basiertes Archiv (Endung .tgz) so ein, dass das Verzeichnis opt direkt im Archiv erscheint:

tar czf portForwarding.tgz opt/

Prüfen Sie sicherheitshalber das richtige Einpacken:

tar tvf portForwarding.tgz

so dass Sie sicher sind, dass folgende Verzeichnisstruktur abgebildet wurde:

opt/
opt/openslx/
opt/openslx/iptables/
opt/openslx/iptables/rules.d/

Dieses tgz-Archiv kann dann als generisches Modul auf den Satellitenserver geladen werden.