Konfigurieren von Routing-Engine-basierten, konvergierten HTTP-Umleitungsservices
Ab Junos OS Version 19.3R1 wird der HTTP-Umleitungsdienst auch unterstützt, wenn Sie Services der nächsten Generation auf der MX-Serie aktiviert haben.
Sie können konvergente HTTP-Umleitungsservices auf der Routing-Engine als Alternative zur Verwendung einer MS-MPC/MS-MIC- oder MX-SPC3-Servicekarte konfigurieren. Bei der konvergenten Servicebereitstellung werden die Servicedefinition von der Serviceinstanziierung getrennt. Nachdem ein Service definiert wurde, kann ein Service bei der Anmeldung des Anwenders oder durch die Verwendung einer Änderung der Autorisierung (Change of Authorization, CoA) während der Sitzung dynamisch instanziiert werden. Die Service-Instanziierung verwendet nur den Namen des definierten Services, wodurch alle Servicedetails vor den Systembetreibern verborgen werden. Die konvergente Servicebereitstellung unterstützt die Serviceparametrisierung, die dynamischen Variablen innerhalb dynamischer Profile entspricht.
Für konvergente HTTP-Umleitungsdienste bedeutet dies, dass Sie den Dienst und die Dienstregeln innerhalb eines dynamischen Profils definieren. Die CPCD-Serviceregeln werden dynamisch basierend auf den im dynamischen Profil konfigurierten Variablen erstellt.
Optional können Sie die Umleitungs-URL parametrisieren, indem Sie eine redirect-url Variable in das dynamische Profil aufnehmen. Der Wert der Variablen wird von einem RADIUS-VSA während des Aufrufs des Anwenders oder mit einer CoA-Nachricht (Change of Authorization) bereitgestellt. Auf diese Weise können Sie die Umleitungs-URLs für jeden Anwender anpassen. Sie können einen Standardwert für die URL definieren, die verwendet wird, wenn kein Wert von RADIUS bereitgestellt wird.
Sie konfigurieren den Walled Garden als Firewall-Servicefilter. Ein Walled Garden ist eine Gruppe von Servern, die Anwendern Zugriff auf Websites innerhalb des Walled Garden ermöglichen, ohne dass eine erneute Autorisierung über ein Captive Portal erforderlich ist. Der Servicefilter Walled Garden identifiziert Datenverkehr, der für den Walled Garden bestimmt ist, und Datenverkehr, der außerhalb des Walled Garden bestimmt ist. Nur HTTP-Datenverkehr, der außerhalb des Walled Garden bestimmt ist, wird zur Verarbeitung an den dynamischen Dienst übergeben.
Die Serviceschnittstellen der Routing-Engine sind mit einem si-Präfix gekennzeichnet (z. B. si-1/1/0). Die si-Schnittstelle verarbeitet sämtlichen umgeleiteten und umgeschriebenen Datenverkehr und Services für die Routing-Engine. Die si-Schnittstelle muss mit dem Status bis betriebsbereit sein, um den CPCD-Service (Captive Portal Content Delivery) aktivieren und aktivieren zu können. Nachdem der CPCD-Dienst aktiviert wurde, wirkt sich eine Änderung des Betriebszustands der si-Schnittstelle nicht auf vorhandene CPCD-Dienste aus.
Genau wie bei statischen HTTP-Umleitungsdiensten enthält ein Dienstprofil die Dienstregeln. Sie konfigurieren einen Servicesatz außerhalb des dynamischen Profils, um das CPCD-Serviceprofil einer bestimmten SI-Serviceschnittstelle auf der Routing-Engine zuzuordnen. Innerhalb des dynamischen Profils wenden Sie das Service-Set und den Walled Garden-Service-Filter auf eine dynamische Schnittstelle an.
Konfigurieren eines Walled Garden als Firewall-Dienstfilter
Wenn Sie den Walled Garden als Firewalldienstfilter konfigurieren, wird Datenverkehr, der für Server innerhalb des Walled Garden bestimmt ist, identifiziert und übersprungen. Da dieser Datenverkehr nicht zur Linecard fließt, werden die Anforderungen an die Handhabung reduziert.
Der gesamte andere HTTP-Datenverkehr ist für Adressen außerhalb des Walled Garden bestimmt. Da dieser Datenverkehr nicht den Filterbedingungen entspricht, fließt er zur Verarbeitung an die Linecard.
Sie können den Service-Filter so konfigurieren, dass der Walled Garden einen einzelnen Server als Captive Portal oder eine Liste von Servern enthält.
Konfigurieren Sie den Walled Garden mit einem einzigen Server als Captive Portal:
Erstellen Sie den Dienstfilter.
[edit] user@host# edit firewall family address-family service-filter filter-name
Definieren Sie einen Filterbegriff, um die Verarbeitung für den Datenverkehr zum Captive Portal zu identifizieren und zu überspringen.
Geben Sie Filterbedingungen an, um Datenverkehr abzugleichen, der für das Captive Portal bestimmt ist, indem Sie die Zieladresse des Captive Portals und den Zielport angeben.
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-address ip-address user@host# set term name from destination-port port-number
Geben Sie an, dass der übereinstimmende Datenverkehr die Verarbeitung auf der Linecard überspringt.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
Definieren Sie einen Filterbegriff, um HTTP-Datenverkehr aus dem gesamten Datenverkehr zu identifizieren, der nicht mit dem vorherigen Begriff übereinstimmte, und senden Sie ihn zur Verarbeitung durch CPCD-Serviceregeln.
Geben Sie eine oder mehrere HTTP-Portnummern an, die mit dem übersprungenen HTTP-Datenverkehr übereinstimmen.
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-port http-port-number
Geben Sie an, dass der übereinstimmende Datenverkehr von einem CPCD-Service verarbeitet wird.
[edit firewall family inet service-filter filter-name] user@host# set term name then service
Definieren Sie einen Filterbegriff, um weitere Aktionen für den verbleibenden Nicht-HTTP-Datenverkehr zu überspringen.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
Die folgende Konfiguration erstellt beispielsweise einen Filter für IPv4-HTTP-Datenverkehr, walled-v4, mit dem Captive Portal auf 192.0.2.0. Datenverkehr, der mit der Adresse übereinstimmt, wird übersprungen. Nicht übereinstimmender Datenverkehr geht an den Begriff http, wo der HTTP-Datenverkehr aus dem gesamten übersprungenen Datenverkehr ausgewählt und zur Verarbeitung gemäß einem CPCD-Service gesendet wird. Schließlich bewirkt Term Skip, dass der gesamte verbleibende Nicht-HTTP-Datenverkehr übersprungen wird.
[edit] user@host# edit firewall family inet service-filter walled-v4 [edit firewall family inet service-filter walled-v4] user@host# set term portal from destination-address 192.0.2.0 user@host# set term portal from destination-port 80 user@host# set term portal then skip user@host# set term http from destination-port 80 user@host# set term http then service user@host# set term skip then skip
Konfigurieren Sie den Walled Garden als Liste oder Subnetz von Servern.
Erstellen Sie den Dienstfilter.
[edit] user@host# edit firewall family address-family service-filter filter-name
Definieren Sie einen Filterbegriff.
Geben Sie Filterbedingungen an, um Datenverkehr abzugleichen, der für einen beliebigen Server im Walled Garden bestimmt ist, indem Sie eine Zielpräfixliste von Servern angeben.
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-prefix-list list-name user@host# set term name from destination-port port-number
Geben Sie an, dass der übereinstimmende Datenverkehr die Verarbeitung auf der Linecard überspringt.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
Definieren Sie einen Filterbegriff, um HTTP-Datenverkehr aus dem gesamten Datenverkehr zu identifizieren, der nicht mit dem vorherigen Begriff übereinstimmte, und senden Sie ihn zur Verarbeitung durch CPCD-Serviceregeln.
Geben Sie eine oder mehrere HTTP-Portnummern an, die mit dem übersprungenen HTTP-Datenverkehr übereinstimmen.
[edit firewall family inet service-filter filter-name] user@host# set term name from destination-port http-port-number
Geben Sie an, dass der übereinstimmende Datenverkehr von einem CPCD-Service verarbeitet wird.
[edit firewall family inet service-filter filter-name] user@host# set term name then service
Definieren Sie einen Filterbegriff, um weitere Aktionen für den verbleibenden Nicht-HTTP-Datenverkehr zu überspringen.
[edit firewall family inet service-filter filter-name] user@host# set term name then skip
(Optional) Definieren Sie eine Präfixliste, die Server innerhalb des Walled Garden angibt. Sie können ein Subnetz oder mehrere einzelne Adressen angeben.
[edit policy-options] user@host# set prefix-list list- name ip-address/mask user@host# set prefix-list list- name ip-address1 user@host# set prefix-list list- name ip-address2
Mit der folgenden Konfiguration wird beispielsweise ein Dienstfilter für IPv6-HTTP-Datenverkehr, walled-v6-list, mit einer Präfixliste, wg-list, erstellt, die zwei Server im Walled Garden angibt. Filterbegriff portal6 identifiziert IPv6-Datenverkehr, der für den Walled Garden bestimmt ist. Nicht übereinstimmender Datenverkehr geht an den Begriff http6, wo der HTTP-Datenverkehr aus dem gesamten übersprungenen Datenverkehr ausgewählt und zur Verarbeitung gemäß einem CPCD-Service gesendet wird. Schließlich führt das Überspringen des Begriffs dazu, dass der gesamte verbleibende Nicht-HTTP-Datenverkehr übersprungen wird.
[edit] user@host# edit firewall family inet6 service-filter walled-v6-list user@host# set term portal6 from destination-prefix-list wg-list user@host# set term portal6 then skip user@host# set term http6 from destination-port [80 8080] user@host# set term http6 then service user@host# set term skip6 then skip [edit policy-options] user@host# set prefix-list wg-list 2001:db8::10.10 user@host# set prefix-list wg-list 2001:db8::10.22
HTTP-Umleitung für lokale und Remote-Umleitungsserver konfigurieren
Wenn HTTP-Anforderungen für Standorte außerhalb des Walled Garden gestellt werden, kann CPCD den Datenverkehr zur Authentifizierung und Autorisierung an ein Captive Portal umleiten.
Konfigurieren Sie eine CPCD-Dienstregel, die die Aktion angibt, die für den HTTP-Datenverkehr ausgeführt werden soll, der vom Walled Garden-Dienstfilter identifiziert und an den Dienst übergeben wird. Die Aktion, die Sie konfigurieren, hängt davon ab, ob Sie einen lokalen oder einen Remote-HTTP-Umleitungsserver verwenden:
Wenn Sie einen lokalen HTTP-Umleitungsserver auf dem Router verwenden, geben Sie die Umleitungsaktion an.
Wenn Sie einen Remote-HTTP-Umleitungsserver verwenden, der sich in einem ummauerten Garten hinter dem Router befindet, können Sie nicht einfach eine Umleitungs-URL angeben. In diesem Fall muss die Dienstregel die IP-Zieladresse für den Datenverkehr umschreiben. Die neue Zieladresse ist die Adresse des Remote-HTTP-Umleitungsservers. Der Remote-Server stellt dann eine Umleitungs-URL bereit, um den Datenverkehr an ein Captive Portal zu senden.
In der folgenden Konfiguration für einen lokalen Server enthält das dynamische Profil http-redir-converged beispielsweise die CPCD-Dienstregel redir-svc. Die Regel leitet den Datenverkehr an ein Captive Portal um. http://www.portal.example.com Die vom Anwender eingegebene Original-URL wird an die Umleitungs-URL angehängt. Das CPCD-Service-Profil redir-prof enthält die Regel und wird später von einem Service-Set auf eine Service-Schnittstelle angewendet.
user@host# edit dynamic-profiles http-redir-converged user@host# edit services captive-portal-content-delivery user@host# edit rule redir-svc user@host# set match-direction input user@host# set term redir1 then redirect http://www.portal.example.com/url=%dest-url%
Die folgende Konfiguration für einen fernen Server erstellt die CPCD-Dienstregel rewr-svc, die die ursprüngliche Zieladresse in die Adresse des fernen Servers, 192.0.2.230, umschreibt.
user@host# edit dynamic-profiles http-redir-converged user@host# edit services captive-portal-content-delivery user@host# edit rule rewr-svc user@host# set match-direction input user@host# set term rewr1 then rewrite destination-address 192.0.2.230
Konfiguration der Parametrisierung für die Umleitungs-URL
Optional können Sie die Umleitungs-URL und die Umschreibungszieladresse parametrisieren, indem Sie benutzerdefinierte Variablen im dynamischen Profil angeben. Parametrisieren bedeutet, dass URL oder Adresse zu einer dynamischen Variablen wird. Der Wert wird von RADIUS bereitgestellt, wenn der Anwender authentifiziert wird oder wenn ein CoA empfangen wird. Folglich können Sie die RADIUS-Attribute verwenden, um unterschiedliche URLs oder Zieladressen für verschiedene Abonnenten bereitzustellen.
Die folgende Konfiguration zeigt beispielsweise zwei benutzerdefinierte Variablen, redirect-url und rewrite-da, die extern bereitgestellte Werte erfordern, wenn sie instanziiert werden. Die CPCD-Serviceregel redir1 gibt an, dass Datenverkehr an $redirect-URL umgeleitet wird. Die CPCD-Serviceregel rewr1 gibt an, dass die Zieladresse für den Datenverkehr in $rewrite-da umgeschrieben wird.
user@host# edit dynamic-profiles http-redir-converged user@host# edit variables user@host# set redirect-url mandatory user@host# set rewrite-da mandatory user@host# edit services captive-portal-content-delivery user@host# edit rule redir-svc user@host# set match-direction input user@host# set term redir1 then redirect $redirect-url user@host# edit rule rewr-svc user@host# set match-direction input user@host# set term rewr1 then rewrite $rewrite-da
Konfigurieren des Service-Sets zum Zuordnen des Service-Profils zu einer Serviceschnittstelle
Service-Sets definieren einen oder mehrere Services, die von der Routing-Engine ausgeführt werden sollen. Für HTTP-Umleitungsdienste definieren Sie ein CPCD-Dienstprofil, das CPCD-Regeln enthält. Das Service-Set wendet das CPCD-Serviceprofil auf eine bestimmte Serviceschnittstelle an.
Mit der folgenden Konfiguration wird beispielsweise das CPCD-Dienstprofil redir-prof erstellt, das auf die CPCD-Regel redir-svc verweist. Der Servicesatz cvgd ordnet das CPCD-Serviceprofil rewr-prof der Serviceschnittstelle si-4/0/0 zu.
[edit services captive-portal-content-delivery] user@host# edit profile redir-prof user@host# set cpcd-rules redir-svc user@host# set dynamic [edit services] user@host# edit service-set cvgd user@host# set captive-portal-content-delivery-profile redir-prof user@host# set interface-service service-interface si-4/0/0
CPCD-Service-Set und Service-Filter an eine dynamische logische Schnittstelle anhängen
Um die HTTP-Umleitungsservices verwenden zu können, müssen Sie den CPCD-Servicesatz an eine logische Schnittstelle anfügen. Da der Walled Garden als Dienstfilter konfiguriert ist, müssen Sie ihn an dieselbe Schnittstelle wie den Dienstsatz anfügen. Der Datenverkehr, der an dieser Schnittstelle ein- und ausgeht, wird durch den Servicefilter gefiltert. Der für die Wartung identifizierte Datenverkehr wird an die Serviceschnittstelle der Routing-Engine gesendet, wo das CPCD-Profil angewendet wird.
Dieses Verfahren zeigt nur Elemente der Konfiguration des dynamischen Profils, die für die Konfiguration konvergenter Services spezifisch sind. Das vollständige dynamische Profil hängt von Ihrem Anwendungsfall ab.
Mit der folgenden Konfiguration wird beispielsweise das dynamische Profil http-redir-converged erstellt. Es spezifiziert vordefinierte Variablen zur Erstellung der dynamischen physischen und logischen Schnittstellen in der IPv4-Adressfamilie. Das Profil fügt den Service-Satz cvgd und den Service-Filter walled-v4 an die dynamische logische Schnittstelle an, wenn es bei der Anmeldung des Anwenders erstellt wird. Der Servicesatz und der Filter werden beide auf die Schnittstelleneingabe und -ausgabe angewendet.
user@host# edit dynamic-profiles http-redir-converged user@host# edit interfaces $junos-interface-ifd-name user@host# edit unit $junos-underlying-interface-unit user@host# edit family inet user@host# set service input service-set cvgd service-filter walled-v4 user@host# set service output service-set cvgd service-filter walled-v4