====== 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 ([[satellite:generisches_modul|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:
#!/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.