SNAT vs PBR für den Serverlastenausgleich


8

In einer einarmigen SLB-Konfiguration wird SNAT verwendet, um den Rückverkehr durch den SLB zu zwingen. Dies hat einen Nachteil: Einfach, dass Webprotokolle die wahre Client-IP nur erfassen können, wenn sie im XFF-Header (X-Forwarded-For) übergeben werden und der Webserver protokollieren kann.

Eine Alternative besteht darin, PBR (richtlinienbasiertes Routing) zu verwenden, um den Rückverkehr zum SLB zurückzuleiten. Ich versuche jedoch, PBR zu vermeiden, es sei denn, es gibt keine andere / bessere Lösung auf der 6500E-Plattform mit SUP720 / PFC3B - und ich kenne das Besondere Die IOS-Version kann ebenfalls ein Faktor sein. Fügt PBR eine Latenz gegenüber SNAT hinzu, vorausgesetzt, PBR wird ausschließlich in Hardware ausgeführt? Wenn PBR in Hardware nur mit den heute von ihr unterstützten Befehlen ausgeführt wird, ist es dann möglich, dass ein zukünftiges Upgrade von IOS die PBR in Software / prozessgeschaltet ändert?

Heutzutage haben unsere Load-Balancer die meisten Webserver-VLANs direkt hinter sich - Standard-G / W zeigt auf SLB - und andere Server wie SQL in Nicht-SLB-VLANs. Dieser Web-SQL-Verkehr überträgt jedoch die SLB. Unser Ziel wäre es, das Überqueren des SLB zu vermeiden und nur den SQL-Verkehr getrennt zu halten und dennoch den wahren Client in Webprotokollen zu behalten. Ich würde es vorziehen, die Komplexität der Fehlerbehebung bei PBR nicht einzuführen und möglicherweise diesen Wechsel von Hardware zu Software in Zukunft verarbeiten zu lassen. Ist PBR neben XFF und SNAT die einzige Option, und wie lässt sich PBR am besten eng konfigurieren?


Ich bin nicht 100% sicher, ob ich die Topologie verstehe. Verfügt Ihr Server über zwei Schnittstellen und Sie benötigen SNAT, damit der Server über eine einzige statische Route verfügt, um den Produktionsverkehr an die SLB-Schnittstelle zurückzugeben? Aber SNAT in 1: N-Konfiguration impliziert Zustände, die immer vermieden werden müssen. PBR ist zustandslos und skaliert daher viel besser.
ytti

3
Normalerweise rate ich vom einarmigen Load-Balancer-Design ab (oder Sie nennen es Load-Balancer auf einem Stick) und verwende ein Front-Side-Subnetz für VIPs mit Lastenausgleich und ein Back-Side-Subnetz für den Server Pools. Die Server werden standardmäßig über die Rückseite des Load-Balancers verwendet. Dadurch entfällt die Notwendigkeit von SNAT oder PBR vollständig.
Mike Pennington

Abgesehen von meinem Kommentar zu Load-Balancer-Topologien ... könnten Sie ein paar Diagramme als Referenz hinzufügen, da einige der Fragen unklar sind, wenn Sie nicht sicher sind, wie das Gesamtbild aussieht.
Mike Pennington

@ytti, in der aktuellen Topologie ist SLB inline, wobei das Standard-G / W des Servers auf SLB verweist - einzelne Netzwerkkarte / Server. Wir haben das Wesentliche, was Mike jetzt mit clientseitigen und serverseitigen VLANs auf zwei Schnittstellen des SLB beschrieben hat, aber dies ist eine Frage zum Wechsel zu einer anderen Topologie wie einarmig, damit der Server-zu-SQL-Verkehr nicht durchlaufen werden muss Der SLB und wir ziehen es vor, den Servern keine Komplexität hinzuzufügen, wie z. B. zwei Netzwerkkarten mit statischen Serverrouten usw. Das Verständnis der Latenz von SNAT gegenüber PBR ist ebenso wichtig wie andere Designs, die ich verpasst habe (wie die in einer Antwort beschriebene direkte Serverrückgabe) ).
Generalnetworkerror

Welche Server sind das? Unter Linux (oder * BSD) ist es einfach einzurichten, sodass das Paket an die Schnittstelle zurückgegeben wird, an der es sich befindet. Dies ist nützlich bei SLB-Setups (wir verwenden dies, um Server redundant mit zwei getrennten SLB-Boxen zu verbinden. VIPs sind ECMPd, also sind beide heiß, könnte aber auch von verschiedenen Anbietern stammen, da sie sich nicht kennen).
Ytti

Antworten:


6

Fügt PBR eine Latenzzeit gegenüber SNAT hinzu, vorausgesetzt, PBR wird ausschließlich in Hardware ausgeführt?

Sup720 unterstützt PBR in HW , die zusätzliche Latenz (falls vorhanden) ist vernachlässigbar, da PBR keine weitere Schnittstellenwarteschlange hinzufügt. Ich denke, PBR würde die Dinge schwieriger machen, als sie sein müssen (und ich bin mir immer noch nicht einmal sicher, ob es funktionieren würde ... die Einzelheiten dieser Option sind nicht ganz klar).

Ist PBR neben XFF und SNAT die einzige Option, und wie lässt sich PBR am besten eng konfigurieren?

Züchterrechte sind nicht die einzige Option. Ihre vorgeschlagene Option ist etwas unklar, aber PBR läuft normalerweise nur auf eine ausgefallenere Art des statischen Routings hinaus.

In der Regel ist dies die beste Topologie für Dienste mit Lastenausgleich, für die SQL-Abfragen erforderlich sind ...

  • Stellen Sie Ihre VIPs in ein Front-Side-Subnetz ... 172.16.1.0/24 im Diagramm
  • Stellen Sie Ihre Serverpools in ein rückseitiges Subnetz ... 172.16.2.0/24 im Diagramm
  • Stellen Sie Ihre SQL-Abfragen auf eine andere Schnittstelle ... 172.16.3.0/24 im Diagramm. Fügen Sie allen Servern, für die SQL-Abfragen erforderlich sind, eine zweite Schnittstelle hinzu. Stellen Sie alle Ihre SQL-Abfragen an Adressen in diesem Subnetz. Diese Topologie funktioniert sowohl für Unix als auch für Windows, da Sie sich für die SQL-Konnektivität nur auf ARP oder Host-Routen (je nach Ihren Vorlieben) verlassen.

Diagramm:

LB w SQL-Abfragenetzwerk

Diese Topologie bietet zusätzliche Vorteile:

  • Es trennt SQL-Schnittstellen vom Webverkehr, da SQL-Abfragen platzen und möglicherweise den Webverkehr überlasten.
  • Es bietet verschiedene MTUs für Ihre Dienste mit Lastenausgleich (die normalerweise bei 1500 oder weniger bleiben müssen, wenn sie das Internet übertragen) und Ihre SQL-Dienste (die Jumbo-Frames bevorzugen).

Jede einarmige Load-Balancer-Topologie ist eine weniger wünschenswerte Option, da Sie Ihren maximalen Durchsatz aufgrund der einarmigen Topologie halbieren.

BEARBEITEN für Fragen zu HW vs SW beim Einschalten von Sup720

Dies ist ein tiefgreifendes Thema, aber ich werde die zusammenfassende Version geben ... Sup720 wendet eine ACL in jede Richtung (Eingang / Ausgang) an und die ACL muss basierend auf dem von der Plattform gewählten Zusammenführungsalgorithmus in TCAM passen. Der Feature Manager (dh FM) von Sup720 ist dafür verantwortlich, die Funktionen in TCAM zu vermitteln und zu melden, ob Sie eine Punt-Adjazenz haben (dh SW-Umschaltung) oder ob die Kombination aus Protokoll und Richtung in HW umgeschaltet wird. Um zu isolieren, ob

  1. Zuerst identifiziert alle Eingangs- und Ausgangs - Layer3 - Schnittstellen dass der PBR - Verkehr könnte Transit
  2. Untersuchen show fm fie int <L3_intf_name> | i ^Interf|Result|Flow|ConfigSie als Nächstes die Ausgabe von (Sie müssen sowohl die Eingangs- als auch die Ausgangsrichtung für alle Schnittstellen in Schritt 1 überprüfen ). Ihr Datenverkehr wird HW-umgeschaltet, wenn die Werte in CAPS mit den unten angezeigten Werten übereinstimmen. Beachten Sie, dass die Ausgabe des von mir verwendeten Befehls der in show fm fie summary... gezeigten sehr ähnlich ist.

Tx.Core01#sh fm fie int Vl220 | i ^Interf|Result|Flow|Config
Interface Vl220:
 Flowmask conflict status for protocol IP : FIE_FLOWMASK_STATUS_SUCCESS      <--- in HW
 Flowmask conflict status for protocol OTHER : FIE_FLOWMASK_STATUS_SUCCESS   <--- in HW
 Flowmask conflict status for protocol IPV6 : FIE_FLOWMASK_STATUS_SUCCESS    <--- in HW
Interface Vl220 [Ingress]:
 FIE Result for protocol IP : FIE_SUCCESS_NO_CONFLICT                        <--- in HW
 Features Configured : V4_DEF   - Protocol : IP
 FIE Result for protocol OTHER : FIE_SUCCESS_NO_CONFLICT                     <--- in HW
 Features Configured : OTH_DEF   - Protocol : OTHER
 FIE Result for protocol IPV6 : FIE_SUCCESS_NO_CONFLICT                      <--- in HW
 Features Configured : V6_DEF   - Protocol : IPV6
Interface Vl220 [Egress]:
 No Features Configured
No IP Guardian Feature Configured
No IPv6 Guardian Feature Configured
No QoS Feature Configured
Tx.Core01#

Die obige Schnittstelle zeigt keine Ausgangsausgabe, aber das ist irrelevant ... die Ausgabe ähnelt der Eingangsrichtung. Ricky Micky hat eine hervorragende Erklärung für 'sh fm fie interface' verfasst, wenn Sie weitere Details zur Dynamik von TCAM-Banken / Merge-Ergebnissen wünschen.


Ich hatte diese Entwurfsoption bereits gestrichen, da sie eine L2-Adjazenz zwischen der Front-End-Schicht und der Back-End-Schicht erfordert und für unsere mehreren Back-End-VLANs nicht gut skaliert werden kann und möglicherweise eine Firewall platziert werden muss (nicht transparent) ) zwischen den Ebenen. Es ist jedoch immer noch eine ausgezeichnete Option für diejenigen, die diese Bedenken nicht haben. Guter Punkt über die MTUs.
Generalnetworkerror

Kann dies innerhalb von IOS festgestellt werden, ohne die Dokumentation der Züchterrechte für bestimmte IOS-Versionen zu konsultieren, um festzustellen, ob eine bestimmte Züchterrechtsfunktion die Notwendigkeit einer Software-Software auslöst? Dies ist, was ich mit "eng konfiguriert" für PBR gemeint habe, damit es innerhalb der Hardware funktioniert.
Generalnetworkerror

@generalnetworkerror, auf welcher Hardware möchten Sie PBR ausführen? Wenn es sich um Sup720 / Sup2T handelt, ist es nicht so schwer zu erkennen, ob Sie zwischen HW und SW wechseln. Wir benötigen weitere Einzelheiten, um Ihnen zu helfen. In der Tat, wenn Sie nichts dagegen hätten, ein Diagramm darüber, wie dieses PBR-Konzept funktioniert, wäre wirklich hilfreich
Mike Pennington

SUP720 / PFC3B ... um zu sehen, wie Sie anhand der CLI feststellen können, ob eine bestimmte PBR-Funktion dies zu einer S / W-Umschaltung gezwungen hat
Generalnetworkerror

@generalnetworkerror, sh fm fie summary... oder lesen Sie meine Antwort für weitere Informationen ...
Mike Pennington

1

Wenn Ihr Load Balancer dies unterstützt, würde Direct Server Return auch das tun, was Sie wollen. Es muss von Ihrem Load Balancer unterstützt werden, und es gibt einige Bedenken hinsichtlich des Betriebssystems. Es beinhaltet das Einfügen von 'Loopback'-Schnittstellen in jeden Server, die alle die IP-Adresse des VIP haben, den Load Balancer, während die realen Serveradressen nur die MAC-Adresse des realen Servers verwenden, um das Paket weiterzuleiten, da der Server die Loopback-Schnittstelle mit hat Wenn der VIP darin ist, akzeptiert der Server das Paket.

Sie müssen das Dokument des jeweiligen LB-Anbieters konsultieren und Ihre Serverteams müssen in der Lage sein, den virtuellen Adapter zu verwalten (wir verwenden diese Funktion nicht, da wir nicht dachten, dass unsere automatisierte Serverbereitstellung einen MS-Loopback-Adapter verwalten könnte.

Dies verwendet jedoch kein NAT in der LB und Sie müssen keine PBR durchführen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.