2016-04-05 20 views
0

Ich möchte Iptables verwenden, um DNAT Ziel zu setzen. Der Multiport-Server ist der Zweck, den ich machen möchte. Aber ich habe festgestellt, dass DNAT multi-port zu Ziel Multiport nicht zuordnen kann. z.B.iptables mit DNAT Ziel auf mehrere Port Bereich Übersetzung

iptables -t nat -A PREROUTING -p tcp --dport 1000: 2000 -j DNAT --to-Ziel 192.168.1.100:3000-4000

Ich denke, diese Regel 1000 sein sollte - ----> 3000 1001 ------> 3001 ........................... 2000 ---- -> 4000

Ich versuchte whireshark zu verwenden, um Pakete zu erfassen. Egal original Pakete sind 1000, 1001, 2000 und so weiter, scheinen sie zu Port 3000 nur übersetzen. Das ist verdrahtet die iptables nur viele Ports zu einem Port zuordnen.

Irgendwelche Ratschläge?

Danke.

Antwort

1

iptables-extensions' man page besagt, dass Kernel 2.6.11-rc1 und neuere keine Ziel-Ports unterstützen die Angabe nicht mehrere:

In Kerneln bis zu 2.6.10 Sie mehrere --to-destination Optionen hinzufügen können. Wenn Sie für diese Kernel mehr als eine Zieladresse angeben, entweder über einen Adressbereich oder mehrere --to-destination Optionen, findet ein einfacher Round-Robin (nacheinander im Zyklus) Load Balancing zwischen diesen Adressen statt. Spätere Kernel (> = 2.6.11-rc1) haben nicht mehr die Fähigkeit, NAT auf mehrere Bereiche zu verteilen.

+0

Vielen Dank für Ihren Vorschlag. Mehrere Zielports scheinen im selben Portbereich zu arbeiten, z. B. 30000: 31000 <----> 30000: 31000. Die iptables können diese Aktion zuweisen, ohne den Portbereich in "--to-destination" zu setzen. Zurück zu dem Punkt, wenn ich verschiedene mehrere Zielports zuweisen möchten, z. B. 30000: 31000 ----> 40000: 41000. Sollte ich 1000 Regeln mit iptables hinzufügen, die ich selbst mapped? – user1190887

+0

Das würde funktionieren, aber ich bin mir nicht sicher, wie effizient es wäre. Sie können auch versuchen, Ihr eigenes * iptables * -Erweiterungsmodul zu schreiben, aber das erfordert ein gewisses Know-how ... – Yoel