Welches ist die beste Art und Weise alle Anforderungen an einem bestimmten Port an einem anderen Rechner im Netzwerk zu übermitteln?

StackOverflow https://stackoverflow.com/questions/327952

Frage

Ich habe zwei dedizierte Server und keine Hardware-Firewall. Ich möchte alle Anfragen weiterleiten, die auf Port 1008 in den primären Server kommen von einem anderen dedizierten Server auf dem gleichen Netzwerk erfüllt werden. Ich weiß, dass ich eine Art von TCP-Proxy einzurichten, aber ich zum ersten Mal von IPTables gestern gehört. Irgendwelche schnelle Tipps?

War es hilfreich?

Lösung

Carson hat Recht: eine Brücke Firewall zwischen Servern und Clients setzen. Shorewall (IP-Tabellen) können dann Verkehr zu verschiedenen Häfen und verschiedene Maschinen umgeleitet werden.

Mit der Firewall eine Brücke zu sein, Sie müssen nicht Ihre Netzwerkeinstellungen ändern, noch die Bridge-Schnittstelle muss eine IP-Adresse zugewiesen wird jedes Netzwerk-Clients und Server sind in. Else die Umleitung nicht funktionieren.

Vorab: die Maschine, wo die Verbindung ursprünglich hingewiesen wurde online zu sein hat (bedeutet: seine IP-Adresse in Gebrauch sein)., Sonst die Umleitung nicht funktionieren

Wenn die Umleitung als Mittel zur Failover für Hochverfügbarkeit gemeint ist, würde ich einen Load-Balancer (Cluster) anstelle dem Firewall, sollte die virtuellen Server auf Linux führt (für einen allgemeinen Ansatz) oder mit einer Load-Balancer-Software wie Apache (mit mod proxy_balancer), Balance oder Pount (wenn nur HTTP-Anforderung seine ausgeglichen ist). Es gibt auch Hardware-Appliances wie von f5 für den Lastausgleich.

Andere Tipps

Der einfachste Weg ist, etwas zu verwenden, die nur ein TCP-Proxy ist. Es ist möglich, dies mit iptables zu erreichen, aber nicht einfach.

Es ist einfach für B zu C-Anfragen von A sollten weiterleiten (mit DNAT), aber härter C Antworten zu bekommen, um A über B zurück zu gehen (weil DNAT nicht die Absenderadresse ändern). A würde dann die Antworten ignorieren, wie sie von C kommen würden, anstatt B.

Im Grunde wäre der Weg, es zu tun B als C der Standard-Gateway einzurichten und Forwarding jedoch stellt dies einen zusätzlichen Punkt des Scheiterns in B; wenn B ausfällt, C des ausgehende Datenverkehr (einschließlich Antworten auf Anfragen an C direkt gesendet) würde ein schwarzes Loch im Boden versickert werden.

Mit IPtables es möglich ist, ohne dass dieser Routing-Trick, den ich denke, aber Sie würden die gleiche Verbindung SNAT'd und DNAT'd haben müssen, die heikel besten ist.

Normalerweise in solchen Situationen stellen die meisten Menschen einen anderen Host (Firewall) vor den beiden Maschinen und haben es DNAT Entscheidungen treffen - dies natürlich auch einen Fehlerpunkt führt, weshalb in kritischen Setups ist, die Firewall-Regel ein rendundant Backup hat (seine Konfiguration synchronisiert und manchmal seine Verbindung Nachverfolgungstabelle ist)

Als erstes würde ich empfehlen Sie eine Firewall vorhanden zu bekommen. Ich habe verwendet Shorewall für eine lange Zeit iptables zu verwalten, und es ist ziemlich einfach zu konfigurieren. Zweitens, wenn Sie so etwas wie Shorewall verwenden gibt es einfache Leitfäden für DNAT zu tun (Port fowarding) .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top