Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

RTSP-ALG

Das Echtzeit-Streaming-Protokoll (RTSP) steuert die Bereitstellung von Daten mit Echtzeiteigenschaften wie Audio und Video. Medien können über denselben RTSP-Steuerungsstrom übertragen werden. Dies ist ein HTTP-ähnliches textbasiertes Protokoll, aber Client und Server pflegen Sitzungsinformationen. Eine Sitzung wird mithilfe der SETUP-Nachricht eingerichtet und mit der TEARDOWN-Nachricht beendet. Der Transport (Medienprotokoll, Adresse und Portnummern) wird bei der Einrichtung und der Setup-Antwort ausgehandelt.

Die Unterstützung von Stateful-Firewalls und NAT-Services erfordert, dass Sie die RTSP-ALG für TCP-Port 554 konfigurieren. Die ALG überwacht die Steuerungsverbindung, öffnet Datenströme dynamisch für RTP/RTSP-Streams und führt NAT-Adressen- und Port-Umschreibungen durch.

Verstehen der RTSP-ALG

Übersicht

RTSP (Real-Time Streaming Protocol) ist ein Protokoll auf Anwendungsebene zur Steuerung der Datenbereitstellung mit Echtzeiteigenschaften. Es ist ähnlich in Syntax und Betrieb wie HTTP/1.1. Im Gegensatz zu SIP und H.323 besteht der Zweck von RTSP darin, über das Netzwerk auf vorhandene Mediendateien zuzugreifen und die Wiedergabe der Medien zu steuern. Die typische Kommunikation erfolgt zwischen einem Client (z. B. RealPlayer) und einem Streaming-Medienserver. Die Befehle umfassen die Möglichkeit, Mediendateien vom Remote-Server anzuhalten und abzuspielen.

RTSP ist ein Steuerungskanalprotokoll zwischen dem Medienclient und dem Medienserver. Der Datenkanal verwendet ein anderes Protokoll, in der Regel Echtzeit Transport Protocol (RTP) oder RTP Control Protocol (RTCP).

Im RTSP-Standardmodus richtet der Client drei Netzwerkkanäle mit dem RTSP-Server ein, wenn Mediendaten über RTP über UDP übermittelt werden.

RTSP läuft über TCP. RTP und RTCP laufen über UDP. Die Ports für RTP- und RTCP-Pakete werden dynamisch vom Client und Server mit RTSP ausgehandelt. Da RTP- und RTCP-Ports dynamisch sind, können diese Ports nicht durch eine statische Richtlinie zugelassen werden. Der Hauptzweck der Einführung eines RTSP-ALG in einer Firewall besteht darin, dynamische Richtlinien (Pinhole) entsprechend dem Ergebnis der Client-/Server-Aushandlung zu erstellen, sodass RTP- und RTCP-Datenverkehr passieren kann.

Wenn sich Client und Server in verschiedenen Bereichen befinden, können sie möglicherweise nicht bestimmen, wie sie an die Adresse des RTP- oder RTCP-Angebots des Peers weitergeleitet werden sollen. In diesem Fall muss ALG eingebunden werden, um die RTP- oder RTCP-Angebotsadresse zu übersetzen und in der Nutzdaten zu ändern.

Nach dem Herstellen der Verbindung überwacht die RTSP-ALG die zwischen Client und Server ausgetauschten Nachrichten, verfolgt die Statusänderung des Dialogs und gibt alle Ressourcen, die zur Unterstützung eines RTSP-Dialogs erworben wurden, zurück an das System, nachdem der Dialog abgeschlossen oder fehlgeschlagen ist.

RTSP-Modi

Standardmodus

Im RTSP-Standardmodus richtet der Client drei Netzwerkkanäle mit dem RTSP-Server ein, wenn Mediendaten über RTP über UDP übermittelt werden.

Für die Steuerung und Aushandlung wird eine Vollduplex-TCP-Verbindung verwendet. Für die Mediendatenbereitstellung im RTP-Paketformat wird ein UDP-Kanal im Vollduplex-Format verwendet. In den meisten Fällen wird RTP vom Server initiiert. Ein vollduplexer UDP-Kanal namens RTCP wird verwendet, um Synchronisierungsinformationen für den Client und Informationen zu Paketverlusten an den Server bereitzustellen.

Abbildung 1 zeigt den RTSP-ALG-Standardmodus.

Abbildung 1: RTSP ALG-Standardmodus RTSP ALG Standard Mode

Interleave-Modus

Im RTSP-Interleave-Modus können Mediendaten mit RTP oder RDT über TCP in Pakete umgewandelt werden. In diesem Szenario wird eine einzige Vollduplex-TCP-Verbindung sowohl für die Steuerung als auch für die Bereitstellung von Mediendaten vom RTSP-Server an den Client verwendet. Der Datenstrom ist mit dem RTSP-Steuerungsstrom interleaviert.

Abbildung 2 zeigt den RTSP-ALG-Interleave-Modus.

Abbildung 2: RTSP ALG Interleave Mode RTSP ALG Interleave Mode

Grundlegendes zu RTSP-ALG-Nachrichten

RTSP-Nachrichtenformat

RTSP ist textbasiert und verwendet den ISO 10646-Zeichensatz in der Codierung VON FIGUR-8. Zeilen werden durch CRLF beendet, und eine Leerzeile ist das Trennzeichen für die Nachricht und den Haupttext.

Die erste Zeile heißt Start-Line. Für Anforderungsnachrichten vom Client zum Server stellt die Startzeile die RTSP-Methode dar. Für die Antwortnachricht vom Server zum Client stellt die Startzeile den RTSP-Statuscode als Antwort der Methode dar. Das Statuscodeelement ist ein 3-stelliger integerer Ergebniscode.

RTSP-Methoden

Es gibt neun Arten von Methoden während einer Transaktion.

  • OPTION– Stellt eine Anforderung dar, um Informationen über die in der Anfrage-/Antwortkette verfügbaren Kommunikationsoptionen zu erhalten, die über die Anforderungs-URL identifiziert werden. Mit dieser Methode kann der Client die Mit einer Ressource verbundenen Optionen, Anforderungen oder beides der Funktionen eines Servers bestimmen, ohne eine Ressourcenaktion zu implizieren oder einen Ressourcenabfrage einzuleiten.

  • DESCRIBE— Ruft die Beschreibung eines Präsentations- oder Medienobjekts ab, das durch die Anforderungs-URL eines Servers identifiziert wird. Diese Methode kann den Accept-Header verwenden, um die Beschreibungsformate anzugeben, die der Client interpretiert.

  • ANNOUNCE— Eine Anfrage, die von Client zu Server gesendet wird, veröffentlicht mit dieser Methode die Beschreibung eines Präsentations- oder Medienobjekts, das durch die Anforderungs-URL an einen Server identifiziert wird. Wenn eine Anfrage von Server an Client gesendet wird, aktualisiert diese Methode die Sitzungsbeschreibung in Echtzeit.

  • SETUP— Fordert einen URI an und gibt den Übertragungsmechanismus an, der für die gestreamten Medien verwendet werden soll.

  • PLAY— Informiert den Server, mit dem Senden von Daten über den in SETUP angegebenen Mechanismus zu beginnen.

  • PAUSE— Fordert eine vorübergehende Unterbrechung der Stream-Bereitstellung an.

  • TEARDOWN— Stoppt die Stream-Bereitstellung für den gegebenen URI, wodurch die zugeordnete Ressource frei wird.

  • GET_PARAMETER— Ruft den Wert eines Parameters einer Präsentation oder eines Datenstroms ab, der im URI angegeben wurde.

  • SET_PARAMETER– Legt den Wert eines Parameters für eine Präsentation oder einen Stream fest, der vom URI angegeben wird.

RTSP-Statuscode

Die erste Ziffer des Statuscodes definiert die Antwortklasse.

  • 1**: Informational – Anfrage erhalten, Prozess fortgesetzt.

  • 2**: Erfolg

  • 3**: Umleitung– Es müssen weitere Maßnahmen ergriffen werden, um die Anfrage zu erfüllen.

  • 4**: Client-Fehler: Die Anforderung enthält eine schlechte Syntax oder kann nicht erfüllt werden.

  • 5**: Serverfehler: Der Server konnte eine offensichtlich gültige Anfrage nicht erfüllen.

RTSP-Header

Der RTSP-Header besteht aus den folgenden Feldern:

  • CSeq– Gibt die Sequenznummer für ein RTSP-Anforderungs-Antwortpaar an. Für jede RTSP-Anfrage, die die angegebene Sequenznummer enthält, wird eine entsprechende Antwort mit der gleichen Nummer angezeigt.

  • Content-Length— Enthält die Länge des Inhalts der Methode, das heißt nach dem doppelten CRLF nach dem letzten Header.

  • TRANSPORT– Gibt an, welches Transportprotokoll verwendet werden soll, und konfiguriert seine Parameter.

  • SESSION— Identifiziert eine RTSP-Sitzung, die vom Medienserver in einer SETUP-Antwort gestartet und von TEARDOWN auf der Präsentations-URL abgeschlossen wurde.

Grundlegendes zu RTSP-ALG-Gesprächen und NAT

In diesem Thema finden Sie Details zu typischen RTSP-ALG-Gesprächen.

Im Allgemeinen sind RTP- und RTCP-Pakete bidirektional, was bedeutet, dass entweder der Client oder server eine RTP- oder RTCP-Sitzung initiieren kann.

Abbildung 3 beschreibt ein Beispiel für eine Beispielpaketerfassung in einem Standard-RTSP-Gespräch.

Abbildung 3: RTSP ALG-Gespräch RTSP ALG Conversation

Der RTSP-ALG führt die folgenden Aktionen für eine RTSP-Beispielpaketerfassung in einem Standard-RTSP-Gespräch aus:

  1. Überwacht SETUP- und 200 OK-Nachrichten.

  2. Empfängt ausgehandelte Ports (6543 und 8765 in diesem Beispiel)

  3. Öffnet ein Pinhole für UDP-Mediendaten von Server zu Client.

  4. Empfängt die IP-Adresse in der Nutzdaten und übersetzt die Adresse, wenn NAT erforderlich ist.

    Tabelle 1 beschreibt die RTSP-Payload-IP-NAT.

    Tabelle 1: RTSP Payload IP NAT
     

    Weiterleitung(C->S)

    Reverse(S->C)

    Lochkamera

    Payload-IP-Übersetzung

    Payload-Port übersetzen

    Keine NAT

    A/4321->B/554

    A/4321<-B/554

    B/9876->A/5678

    A/5678->B/9876

    Nicht-/A-nen

    Nicht-/A-nen

    Quell-NAT (IPvx)

    A/4321->B/554

    A'/P'<-B/554

    B/9876->A'/P''

    A/5678->B/9876

    Nicht-/A(*)

    5678<->P''

    Ziel-NAT (IPvx)

    A/4321->B'/554

    A/4321<-B/554

    B/9876->A/5678

    A/5678->B'/9876

    B' -> B (**)

    Nicht-/A-nen

    NAT64

    A/4321->B'/554

    A''/Q'<-B/554

    B/9876->A''/Q''

    A/5678->B'/9876

    B''(IPv6)->B(IPv4)

    5678<->Q''

    NAT46

    A/4321->B''/554

    A'''/R'<-B/554

    B/9876->A'''/R''

    A/5678->B''/9876

    B'''(IPv4)->B(IPv6)

    5678<->R"

    In Tabelle 1 werden folgende Buchstaben und Symbole verwendet:

    • A – RTSP-Client-IP-Adresse

    • A' – Übersetzte IPv4- oder IPv6-Adresse des RTSP-Clients

    • A'' – Übersetzte IPv4-Adresse

    • A''' – Übersetzte IPv6-Adresse

    • B – RTSP-Server-IP-Adresse

    • B' – RTSP-Server-IP-Adresse vor Ziel-NAT

    • B'' – RTSP-Server-IP-Adresse im IPv6-Realm

    • B''' — RTSP-Server-IP-Adresse im IPv4-Bereich

    • P' – Übersetzter Port (übersetzt von 4321) des RTSP-Clients

    • P'' – Übersetzter Port (übersetzt von 5678 in Nachrichtennutzlast) des RTSP-Clients

    • Q' – Übersetzter (IPv6 zu IPv4) Port (übersetzt von 4321) des RTSP-Clients

    • Q'' – Übersetzter Port (IPv6 zu IPv4) (übersetzt von 5678 in Nachrichtennutzlast) des RTSP-Clients

    • R' – Übersetzter Port (IPv4 zu IPv6) (übersetzt von 4321) des RTSP-Clients

    • R'' – Übersetzter (IPv4 zu IPv6) Port (übersetzt von 5678 in Nachrichtennutzlast) des RTSP-Clients

    • (*)— DIE IP-Adresse B des RTSP-Servers wird in der Nutzdatennachricht angezeigt; es muss nicht übersetzt werden,

    • (**) — IP-Adresse B' wird in der Nutznachricht vom Client zum Server angezeigt; muss es zu B

Beispiel: Konfigurieren der RTSP-ALG

Dieses Beispiel zeigt, wie Sie die RTSP-ALG so konfigurieren, dass sie RTSP-Datenverkehr mit einem Quell-NAT-Pool auf Geräten von Juniper Networks passiert.

Anforderungen

  • Konfigurieren Sie Proxy-ARP für alle IP-Adressen im Quell-NAT-Pool.

  • Aktivieren Sie die RTSP-ALG.

  • Verstehen Sie die Grundlagenkonzepte der RTSP ALG. Siehe Verstehen der RTSP-ALG.

Übersicht

In diesem Beispiel ist die RTSP-ALG so konfiguriert, dass RTSP-Datenverkehr überwacht und erlaubt wird, der Medien zwischen Client und Server auf der gegenüberliegenden Seite eines Geräts von Juniper Networks überträgt.

Konfiguration

Aktivieren von RTSP-ALG

CLI-Schnellkonfiguration

Um diesen Abschnitt des Beispiels schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern alle erforderlichen Details, um ihre Netzwerkkonfiguration zu entsprechen, kopieren Sie die Befehle, fügen Sie sie auf Hierarchieebene in die [edit] CLI ein, und geben Sie dann aus dem Konfigurationsmodus ein commit .

So konfigurieren Sie Proxy-ARP für alle IP-Adressen im Quell-NAT-Pool und aktivieren RTSP-ALG:

Geben Sie aus dem Konfigurationsmodus ein commit .

Konfigurieren eines NAT-Quellpools, eines Regelsatzes und einer Richtlinie

CLI-Schnellkonfiguration

Um diesen Abschnitt des Beispiels schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern alle erforderlichen Details, um ihre Netzwerkkonfiguration zu entsprechen, kopieren Sie die Befehle, fügen Sie sie auf Hierarchieebene in die [edit] CLI ein, und geben Sie dann aus dem Konfigurationsmodus ein commit .

Geben Sie aus dem Konfigurationsmodus ein commit .

Hinweis:

Wenn Sie sich über die RTSP-Client- und Server-IP-Adresse nicht sicher sind, können Sie "da1" und "sa1" durch "any" ersetzen.

Schritt-für-Schritt-Verfahren

Im folgenden Beispiel müssen Sie auf verschiedenen Ebenen in der Konfigurationshierarchie navigieren. Anweisungen dazu finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.

So konfigurieren Sie einen Quell-NAT-Pool:

  1. Erstellen Sie einen NAT-Quellpool.

  2. Konfigurieren Sie Adressbucheinträge in der Sicherheitszone.

  3. Erstellen Sie einen NAT-Quellregelsatz.

  4. Konfigurieren Sie eine Richtlinie.

Ergebnisse

Bestätigen Sie Ihre Konfiguration im Konfigurationsmodus, indem Sie die Befehle und show security policies die show security nat Befehle eingeben. Wenn in der Ausgabe die beabsichtigte Konfiguration nicht angezeigt wird, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.

Wenn Sie mit der Konfiguration des Geräts fertig sind, geben Sie im Konfigurationsmodus ein commit .

Konfigurieren von RTSP-ALG-Trace-Optionen

CLI-Schnellkonfiguration

Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen sie in eine Textdatei ein, entfernen alle Zeilenumbrüche, ändern alle erforderlichen Details, um mit Ihrer Netzwerkkonfiguration zu übereinstimmen, kopieren Sie die Befehle, fügen Sie sie auf Hierarchieebene in die [edit] CLI ein, und geben Sie dann aus dem Konfigurationsmodus ein commit .

Schritt-für-Schritt-Verfahren

So konfigurieren Sie RTSP-ALG-Trace-Optionen:

  1. Aktivieren Sie RTSP-ALG-Trace-Optionen.

  2. Konfigurieren Sie einen Dateinamen für den Empfang von Ausgaben aus dem Ablaufverfolgungsvorgang.

  3. Geben Sie die maximale Größe der Trace-Datei an.

  4. Geben Sie die Ebene der Tracing-Ausgabe an.

Ergebnisse

Bestätigen Sie ihre Konfiguration im Konfigurationsmodus, indem Sie den show security alg Befehl eingeben. Wenn in der Ausgabe die beabsichtigte Konfiguration nicht angezeigt wird, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.

Wenn Sie mit der Konfiguration des Geräts fertig sind, geben Sie im Konfigurationsmodus ein commit .

Überprüfung

Bestätigen Sie, dass die Konfiguration ordnungsgemäß funktioniert.

RTSP-ALG überprüfen

Zweck

Stellen Sie sicher, dass die RTSP-ALG aktiviert ist.

Aktion

Geben Sie im Betriebsmodus den show security alg status Befehl ein.

Bedeutung

Die Ausgabe zeigt den RTSP-ALG-Status wie folgt:

  • Aktiviert: Zeigt, dass rtsp ALG aktiviert ist.

  • Deaktiviert: Zeigt, dass die RTSP-ALG deaktiviert ist.

Überprüfung der RTSP ALG Control Session

Zweck

Stellen Sie sicher, dass die Steuerungssitzung erstellt und alle RTSP-Steuerungs- und Datensitzungen erstellt werden.

Aktion

Geben Sie im Betriebsmodus den show security flow session Befehl ein.

Bedeutung
  • Session ID— Nummer, die die Sitzung identifiziert. Verwenden Sie diese ID, um weitere Informationen zur Sitzung zu erhalten, z. B. Den Richtliniennamen oder die Anzahl der ein- und ausgehenden Pakete.

  • Policy name— Name der Richtlinie, die den Datenverkehr zugelassen hat.

  • In— Eingehender Datenfluss (Quell- und Ziel-IP-Adressen mit ihren jeweiligen Quell- und Ziel-Portnummern, Sitzung ist TCP, und die Quellschnittstelle für diese Sitzung ist ge-0/0/1.0).

  • Out— Reverse Flow (Quell- und Ziel-IP-Adressen mit ihren jeweiligen Quell- und Ziel-Portnummern, Sitzung ist TCP, und Zielschnittstelle für diese Sitzung ist fe-0/0/2.0).

Überprüfung der RTSP ALG Flow Gate-Informationen

Zweck

Stellen Sie sicher, dass das Flow-Gate für die TCP-Datenkanalverbindung geöffnet ist.

Aktion

Geben Sie im Betriebsmodus den show security flow gate Befehl ein.

Bedeutung

Die Beispielausgabe zeigt, dass das Flow-Gate für die TCP-Datenkanalverbindung geöffnet ist.

Überprüfung der RTSP Resource Manager-Gruppe

Zweck

Überprüfen Sie die Gesamtzahl der Ressourcenmanagergruppen und aktiven Gruppen, die von der RTSP-ALG verwendet werden.

Aktion

Geben Sie im Betriebsmodus den show security resource-manager group active Befehl ein.

Bedeutung

Die Beispielausgabe zeigt die Gesamtzahl der Ressourcenmanagergruppen und aktiven Gruppen, die von der RTSP-ALG verwendet werden.

Überprüfung der RTSP-Ressourceninformationen

Zweck

Überprüfen Sie die Gesamtzahl der ressourcen und aktiven Ressourcen, die von der RTSP ALG verwendet werden.

Aktion

Geben Sie im Betriebsmodus den show security resource-manager resource active Befehl ein.

Bedeutung

Die Beispielausgabe zeigt die Gesamtzahl der Ressourcen und aktiven Ressourcen, die von der RTSP-ALG verwendet werden.