AUF DIESER SEITE
Übersicht über das Port Control Protocol
Das Port Control Protocol (PCP) bietet eine Möglichkeit, die Weiterleitung eingehender Pakete durch vorgeschaltete Geräte wie NAT44- und Firewall-Geräte zu steuern und den Keepalive-Datenverkehr von Anwendungen zu reduzieren. PCP wird von den MS-DPC-, MS-100-, MS-400- und MS-500-MultiServices-PICs unterstützt. Ab Junos OS Version 17.4R1 wird PCP für NAPT44 auch auf MS-MPC und MS-MIC unterstützt. Ab Junos 20.2R1 werden PCP für CGNAT DS-Lite-Services für Services der nächsten Generation unterstützt.Ab Junos OS Version 18.2R1 unterstützt PCP auf der MS-MPC und MS-MIC DS-Lite. In Junos OS Version 18.1 und früheren Versionen unterstützt PCP auf MS-MPC und MS-MIC DS-Lite nicht.
PCP ist so konzipiert, dass es sowohl im Kontext von Carrier-Grade NATs (CGNs) als auch von kleinen NATs (z. B. NATs für Privathaushalte) implementiert werden kann. PCP ermöglicht es Hosts, Server für eine lange Zeit (wie im Fall einer Webcam) oder für eine kurze Zeit (z. B. während eines Spiels oder eines Telefonats) zu betreiben, wenn sie sich hinter einem NAT-Gerät befinden, einschließlich hinter einem CGN, das von ihrem ISP betrieben wird. PCP ermöglicht es Anwendungen, Zuordnungen von einer externen IP-Adresse und einem externen Port zu einer internen IP-Adresse und einem internen Port zu erstellen. Diese Zuordnungen sind für eine erfolgreiche eingehende Kommunikation erforderlich, die für Computer bestimmt ist, die sich hinter einer NAT oder einer Firewall befinden. Nachdem eine Zuordnung für eingehende Verbindungen erstellt wurde, müssen Remotecomputer über die IP-Adresse und den Port für die eingehende Verbindung informiert werden. Dies geschieht in der Regel anwendungsspezifisch.
Junos OS unterstützt PCP Version 2 und Version 1.
PCP besteht aus den folgenden Komponenten:
PCP-Client: Ein Host oder Gateway, der PCP-Anfragen an einen PCP-Server sendet, um Ressourcen zu erhalten und zu steuern.
PCP-Server: In der Regel ein CGN-Gateway oder ein Co-Location-Server, der PCP-Anfragen empfängt und verarbeitet
Junos OS ermöglicht die Konfiguration von PCP-Servern für die Zuordnung von Datenströmen mithilfe von NAPT44-Funktionen wie Portweiterleitung und Portblockzuweisung. Flows können aus folgenden Quellen verarbeitet werden:
Datenverkehr mit PCP-Anforderungen, die direkt von Benutzergeräten empfangen werden, wie in Abbildung 1 dargestellt.
Abbildung 1: Grundlegende PCP-NAPT44-TopologieZuordnung von Datenverkehr mit PCP-Anforderungen, der von einem Router hinzugefügt wurde, der als DS-Lite-Softwire-Initiator (B4) fungiert. Dieser Modus, der als einfacher DS-Lite-Modus bezeichnet wird, ist in Abbildung 2 dargestellt.
Abbildung 2: PCP mit DS-Lite Plain Mode
Junos OS unterstützt keine deterministische Portblockzuweisung für PCP-basierten Datenverkehr.
Vorteile des Port Control Protocol
Viele NAT-freundliche Anwendungen senden häufig Nachrichten auf Anwendungsebene, um sicherzustellen, dass ihre Sitzungen nicht durch ein NAT-Gerät unterbrochen werden. PCP wird zu folgenden Zwecken eingesetzt:
Verringern Sie die Häufigkeit dieser NAT-Keepalive-Meldungen
Reduzieren Sie die Bandbreite im Zugangsnetzwerk des Teilnehmers
Reduzieren Sie den Datenverkehr zum Server
Reduzieren Sie den Akkuverbrauch auf mobilen Geräten
Port Control Protocol, Version 2
Ab Junos OS Version 15.1 wird Port Control Protocol (PCP) Version 2 unterstützt, das RFC 6887-konform ist. PCP bietet eine Möglichkeit, die Weiterleitung eingehender Pakete durch Upstream-Geräte wie NAT44 und Firewall-Geräte zu steuern und den Keep-Alive-Datenverkehr von Anwendungen zu reduzieren. PCP Version 2 unterstützt Nonce-Authentifizierung. PCP ermöglicht es Anwendungen, Zuordnungen von einer externen IP-Adresse und einem externen Port zu einer internen IP-Adresse und einem internen Port zu erstellen. Eine Nonce-Nutzlast verhindert einen Replay-Angriff und wird standardmäßig gesendet, sofern sie nicht explizit deaktiviert ist.
Die Client-Nonce-Überprüfung für Zuordnungsanforderungen der Version 2 (zum Aktualisieren oder Löschen) erfordert, dass die Nonce, die in der ursprünglichen Zuordnungsanforderung, die die Erstellung der PCP-Zuordnung bewirkt, empfangen wurde, beibehalten wird. Die Version der ursprünglichen Anforderung, die die Erstellung des Mappings ermöglicht, bleibt ebenfalls erhalten. Dieses Verhalten beim Speichern der Nonce- und Versionsparameter bedeutet, dass 13 Byte pro PCP-Mapping verwendet werden. Dieser geringfügige Zuwachs an Speicherplatz ist nicht signifikant, wenn er mit der aktuellen Speicherauslastung eines Systems für ein einzelnes angefordertes Mapping abgeglichen wird (unter Berücksichtigung des damit verbundenen endpoint-unabhängigen Mappings (EIM) und der endpunktunabhängigen Filterung (EIF). In einer Kundenbereitstellung bewirkt PCP, dass EIM- und EIF-Zuordnungen nur einen Bruchteil aller derartigen Zuordnungen ausmachen.
Bis Junos Version 15.1 unterstützen Services PICs PCP-Server auf Routern von Juniper Networks gemäß PCP-Entwurf Version 22 mit Nachrichtencodierung der Version 1. Mit der Verfeinerung von PCP von der Entwurfsversion, wie sie in Port Control Protocol (PCP) draft-ietf-pcp-base-22 (Ablaufdatum Juli 2012) definiert ist, auf eine endgültige Standardversion, wie in RFC 6887 -- Port Control Protocol (PCP) definiert, wurde die Nachrichtencodierung auf Version 2 geändert, wobei eine zufällige Nonce-Nutzlast hinzugefügt wurde, um Peer- und Zuordnungsanforderungen nach Bedarf zu authentifizieren. Version 1 decodiert keine Nachrichten, die dem Format der Version 2 entsprechen, und die Nonce-Authentifizierung wird nicht unterstützt. In einer realen Netzwerkumgebung, in der CPE-Geräte (Customer Premises Equipment) zunehmend nur Version 2 unterstützen, ist es erforderlich, Nachrichten der Version 2 zu analysieren und zu senden. Die Abwärtskompatibilität mit CPE-Geräten, die Version 1 unterstützen, wird beibehalten (Versionsaushandlung ist Teil des Standards) und authentifiziert Anforderungs-Nonce-Nutzlastpakete, wenn v2-Nachrichten verwendet werden.
Die Ausgabe des show services pcp statistics
Befehls enthält das Feld für die nicht unterstützte PCP-Version, das inkrementiert wird, um anzuzeigen, wenn die Version nicht 1 oder 2 ist. Ein neues Feld, PCP-Anforderungsnonce stimmt nicht mit vorhandenem Mapping überein, wird eingeführt, um die Anzahl der PCP-Version-2-Anforderungen anzugeben, die ignoriert wurden, weil die Nonce-Nutzlast nicht mit der im Mapping aufgezeichneten übereinstimmte (Authentifizierung fehlgeschlagen). Wenn Version 2 verwendet wird, wird die Client-Nonce für die Authentifizierung verwendet.