Virtuelle Server hinter NAT
Virtuelle Server hinter ein NAT zu setzen ist klasse, plötzlich ist die Zahl
der VServer nicht mehr von der Zahl der öffentlichen IP-Adressen abhängig.
Für eine kleine Testumgebung brauchte ich nämlich mal eben 6 VServer. Also
kurzerhand mit ifconfig
ein dummy-Interface erzeugen, und eine Adresse aus
dem privaten Bereich (RFC 1918) vergeben:
ifconfig dummy0 192.168.1.1 netmask 255.255.255.0 up
Die VServer kriegen dann in der Konfigurationsdatei ebenfalls eine IP-Adresse
aus dem Netz 192.168.1.0/24 zugeordnet und werden an das Interface dummy0
gebunden. Dann setzen wir eine IPTables Regel, welche erstmal sämtlichen
ausgehenden Datenverkehr aus dem privaten Netz auf eine öffentliche Adresse übersetzt:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d ! 192.168.1.0/24 \
-j SNAT --to-source <public IP>
Das wars eigentlich schon fast. Nur falls Dienste aus dem privaten Netz von außen erreichbar sein sollen, müssen wir noch für jeden Dienst den Port forwarden. Als Beispiel hier eine Regel die einen Webserver (TCP Port 80) auf dem VServer mit der Adresse 192.168.1.5 von außen (auf der öffentlichen Adresse) erreichbar macht:
iptables -t nat -A PREROUTING -s ! 192.168.26.0/24 -m tcp -p tcp \ -d <public IP> --dport 80 -j DNAT --to-destination 192.168.1.5:80