F5 iRule-Aufschlüsselung
In der Regel ist die F5 iRule in drei Teile unterteilt:
- Wann sollte die Regel angewendet werden?
- Was zu vergleichen ist
- Was ist zu tun
Weitere Informationen zu diesen Teilen finden Sie in den folgenden Abschnitten.
Application Delivery Controller werden häufig für intelligentes Traffic-Routing verwendet. Anwender profitieren von einer optimierten Content-Auslieferung, indem sie beispielsweise Anfragen für Multimedia-Inhalte an speziell konfigurierte Server senden. Während F5 Flexibilität bietet, Es erfordert die Entwicklung und Wartung von Skripten, um den HTTP-Datenverkehr zu überprüfen und zu manipulieren. Die LoadMaster-A/D-Wandler von Kemp hingegen verfügen über eine einfach zu bedienende, intuitive Benutzeroberfläche, mit der die gleichen Ergebnisse erzielt werden können. Wenn es darum geht, Um skriptbasierte Funktionen von anderen ADCs, einschließlich Cisco, Brocade und F5, zu migrieren, verfügt Kemp über das Know-how, ein Migrationstool für die Beta-Version und bietet eine kostenlose 30-Tage-Testversion für eine LoadMaster-Lösung an.
Das lokale BIG-IP-Verkehrsmanagementsystem® von F5 verwendet iRulesTM-Skripte zur Verwaltung des Netzwerkverkehrs. Die Syntax basiert auf der branchenüblichen Tools Command Language (Tcl) und ermöglicht die Umleitung des Datenverkehrs durch die Suche nach jeder Art von Inhalt. So ermöglicht iRules die Anpassung des Inhaltswechsels an spezifische Anforderungen.
In der Regel durchsucht eine iRule entweder den Header eines Pakets oder den tatsächlichen Paketinhalt und leitet das Paket dann basierend auf dem Ergebnis dieser Suche um. Skripte werden mit den folgenden iRule-Elementen geschrieben:
Diese definieren, wie die Regel ausgelöst und verarbeitet wird.
Kemps LoadMaster implementiert die Umschaltung von Inhalten und kann auf der Grundlage folgender Maßnahmen Maßnahmen ergreifen:
Reguläre Ausdrücke werden verwendet, um den Inhalt zu verarbeiten, und Anfragen können dann basierend auf dem Ergebnis an bestimmte Real Server umgeleitet werden. Im Gegensatz zum für F5 erforderlichen Scripting können Inhaltsregeln in der LoadMaster-WUI oder programmgesteuert über verfügbare APIs.
iRules | LoadMaster |
---|---|
Wann eine Regel angewendet werden soll (Trigger-Ereignis) | Definiert im virtuellen Dienst |
Was zu vergleichen ist (Operator) | Host-Header und/oder URL |
Was zu tun ist (Befehl) | Umschreiben/Umleiten |
In der Regel ist die F5 iRule in drei Teile unterteilt:
Weitere Informationen zu diesen Teilen finden Sie in den folgenden Abschnitten.
Diese bestimmen in der Regel, wo im virtuellen Dienst die Inhaltsregel angewendet wird, d. h. Anforderung oder Antwort.
Um zum Bildschirm Regelverwaltung für die HTTP-Header-Änderung zu gelangen, gehen Sie zu Virtual Services > Services anzeigen/ändern > Ändern > erweiterten Eigenschaften > Headerregeln anzeigen.
Hier können Sie Anforderungs- und Antwortregeln hinzufügen.
when HTTP_REQUEST {
}
Virtuelle Dienste > Dienste anzeigen/ändern > Ändern > erweiterten Eigenschaften > Anzeigen von Headerregeln > Anforderungsregeln
when HTTP_RESPONSE {
}
Virtuelle Dienste > Anzeigen/Ändern von Diensten > Ändern > erweiterten Eigenschaften > Anzeigen von Headerregeln > Antwortregeln
Weiterleitungsregeln sind unterschiedlich - Weiterleitungsregeln sollten angewendet werden unter:
Virtuelle Dienste > Dienste anzeigen/ändern > > erweiterten Eigenschaften ändern > Auswahlregeln anzeigen
Die Regel ändert in diesem Fall keine Header, sondern führt stattdessen dazu, dass die Anforderung immer fehlschlägt. Mit einer zweiten Option unter " Nicht verfügbare Umleitungsbehandlung" können wir dann eine Umleitung hinzufügen, die stattfinden soll, wenn dieser erzwungene Fehler auftritt geschieht.
In der Regel umfasst dies die Betrachtung von Host-Headern und/oder URLs und ist in der von uns erstellten Inhaltsregel enthalten.
In den meisten Fällen führt dies zu einem Umschreiben des Host-Headers/der URL oder im Falle einer Weiterleitung führt die Regel einfach einen Vergleich durch und wenn das Ergebnis übereinstimmt, führen Sie ein "Fail on Match" durch. Dies kann dann verwendet werden, um eine vordefinierte 302-Umleitungsbehandlung im virtuellen Dienst.
if {{HTTP::uri] equals "/exacttextmatch"}{
HTTP::uri "/newtext"
}
Virtuelle Dienste > Dienste anzeigen/ändern > > erweiterten Eigenschaften ändern > Headerregeln > Antwortregeln anzeigen
In diesem Fall ist das Verfahren anders, da wir den spezifischen Host-Header oder die URL abgleichen und dann eine 302-Umleitung innerhalb des virtuellen Dienstes verursachen müssen.
if { [HTTP::host] equals "domain.com" } {
HTTP::redirect "http://www.newdomain.com/index.htm"
}
Wenden Sie die Regel unter folgenden Bedingungen an:
Virtuelle Dienste > Dienste anzeigen/ändern > > erweiterten Eigenschaften ändern > Auswahlregeln anzeigen
Fügen Sie unter Erweiterte Eigenschaften des virtuellen Dienstes eine Umleitung im Abschnitt Behandlung der nicht verfügbaren Umleitung hinzu.
C:\GNUwin32\bin>wget-1.12 domain.com/welcome.png
--2015-08-24 11:35:58-- http://domain.com/welcome.png
Resolving domain.com... 10.111.0.173
Connecting to domain.com|10.111.0.173|:80... connected.
HTTP request sent, awaiting response... 302 Found
Für Weiterleitungen, die auf der URL basieren, ist das Verfahren dasselbe, außer dass die Regel mit der URL übereinstimmt (das Header-Feld in der Inhaltsregel kann leer gelassen werden) und nicht mit dem Hostnamen.
if { [HTTP::uri] starts_with "/sometext" } {
HTTP::uri "/newtext"
}
Wenden Sie die Regel unter folgenden Bedingungen an:
Virtuelle Dienste > Dienste anzeigen/ändern > > erweiterten Eigenschaften ändern > Auswahlregeln anzeigen
Fügen Sie unter Erweiterte Eigenschaften des virtuellen Dienstes eine Umleitung im Abschnitt Behandlung der nicht verfügbaren Umleitung hinzu.
Error Code: 302 Found
Redirect URL:http://%h/newtext
Test: Redirect URL containing /sometext to http://<domain>/welcome.png where <domain> is the domain in initial request.
C:\GNUwin32\bin>wget-1.12 domain.com/wrong.
--2015-08-24 11:32:30-- http://domain.com/wrong.png
Resolving domain.com... 10.111.0.173
Connecting to domain.com|10.111.0.173|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://domain.com/welcome.png [following]
--2015-08-24 11:32:30-- http://domain.com/welcome.png
Connecting to domain.com|10.111.0.173|:80... connected.
HTTP request sent, awaiting response... No data received.
Retrying.
--2015-08-24 11:32:31-- (try: 2) http://domain.com/welcome.png
Connecting to domain.com|10.111.0.173|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 184946 (181K) [image/png]
Saving to: `welcome.
'
100%[======================================>] 184,946 --.-K/s in 0.03s