Port Control Protocol
Port Control Protocol – Übersicht
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 auf den MultiServices-PICs MS-DPC, MS-100, MS-400 und MS-500 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 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 mit kleinen NATs (z. B. NATs für Privathaushalte) implementiert werden kann. PCP ermöglicht es Hosts, Server für lange Zeit (wie im Fall einer Webcam) oder für kurze Zeit (z. B. während eines Spiels oder bei einem Telefonanruf) 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 folgenden Komponenten:
PCP-Client: Ein Host oder Gateway, der PCP-Anforderungen an einen PCP-Server sendet, um Ressourcen abzurufen und zu steuern.
PCP-Server: In der Regel ein CGN-Gateway oder ein Co-Location-Server, der PCP-Anforderungen 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 diesen Quellen verarbeitet werden:
Datenverkehr mit PCP-Anfragen, die direkt von den Benutzergeräten empfangen werden, wie in Abbildung 1 dargestellt.
Abbildung 1: Grundlegende PCP-NAPT44-TopologieMapping von Datenverkehr, der PCP-Anfragen enthält, die von einem Router hinzugefügt wurden, der als DS-Lite Softwire-Initiator (B4) fungiert. Dieser Modus, der als DS-Lite Plain-Modus bezeichnet wird, ist in Abbildung 2 dargestellt.
Abbildung 2: PCP mit DS-Lite Plain Mode
Junos OS unterstützt keine deterministische Portblockierungszuweisung für PCP-bezogenen Datenverkehr.
Vorteile des Port Control Protocol
Viele NAT-optimierte Anwendungen senden häufig Meldungen auf Anwendungsebene, um sicherzustellen, dass ihre Sitzungen nicht durch ein NAT-Gerät unterbrochen werden. PCP wird verwendet, um:
Reduzieren Sie die Häufigkeit dieser NAT-Keepalive-Nachrichten
Reduzieren der Bandbreite im Zugangsnetzwerk des Abonnenten
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, die RFC 6887 entspricht. PCP bietet eine Möglichkeit, die Weiterleitung eingehender Pakete durch vorgeschaltete Geräte wie NAT44 und Firewall-Geräte zu steuern und den Keep-Alive-Datenverkehr von Anwendungen zu reduzieren. PCP Version 2 unterstützt die Nonce-Authentifizierung. PCP ermöglicht es Anwendungen, Zuordnungen von einer externen IP-Adresse und einem Port zu einer internen IP-Adresse und einem internen Port zu erstellen. Eine Nonce-Payload 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 in der ursprünglichen Zuordnungsanforderung empfangene Nonce, die die Erstellung der PCP-Zuordnung verursacht, beibehalten wird. Die Version der ursprünglichen Anforderung, mit der das Mapping erstellt werden kann, wird ebenfalls beibehalten. Dieses Verhalten beim Speichern der Nonce- und Versionsparameter bedeutet, dass 13 Byte pro PCP-Mapping verwendet werden. Diese geringfügige Zunahme des Speicherplatzes ist nicht signifikant, wenn sie mit der aktuellen Speicherauslastung eines Systems für ein einzelnes angefordertes Mapping abgeglichen wird (unter Berücksichtigung des endpunktunabhängigen Mappings (EIM) und des endpunktunabhängigen Filters (EIF), die zusammen mit dem Mapping erstellt werden). In einer Kundenbereitstellung bewirkt PCP, dass EIM- und EIF-Zuordnungen nur einen Bruchteil aller derartigen Zuordnungen darstellen.
Bis Junos Release 15.1 unterstützen Service 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 (Ablauf Juli 2012 ) definiert ist, auf eine endgültige Standardversion gemäß Definition in RFC 6887 – Port Control Protocol (PCP) 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 dekodiert keine Nachrichten, die mit dem Format der Version 2 kompatibel sind, 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 (die Versionsaushandlung ist Teil des Standards) und authentifiziert Request-Nonce-Nutzlastpakete, wenn v2-Nachrichten verwendet werden.
Die Ausgabe des show services pcp statistics
Befehls enthält das Feld PCP nicht unterstützte Version, das erhöht wird, um anzugeben, wenn die Version nicht 1 oder 2 ist. Das neue Feld PCP-Anforderungs-Nonce stimmt nicht mit vorhandener Zuordnung überein, um die Anzahl der PCP-Anforderungen der Version 2 anzugeben, die ignoriert wurden, weil die Nonce-Nutzlast nicht mit der in der Zuordnung aufgezeichneten übereinstimmte (Authentifizierung fehlgeschlagen). Wenn Version 2 verwendet wird, wird die Client-Nonce für die Authentifizierung verwendet.
Konfigurieren des Port Control Protocol
In diesem Thema wird beschrieben, wie das Port Control Protocol (PCP) konfiguriert wird. PCP wird auf den MultiServices-PICs MS-DPC, MS-100, MS-400 und MS-500 unterstützt. Ab Junos OS Version 17.4R1 wird PCP für NAPT44 auch auf MS-MPC und MS-MIC unterstützt. Ab Junos OS Version 18.2R1 unterstützt PCP auf 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. Ab Junos OS Version 20.2R1 wird PCP auf der MX-SPC3-Sicherheitsservicekarte für CGNAT-Services unterstützt.
Führen Sie die folgenden Konfigurationsaufgaben aus:
- Konfigurieren von PCP-Serveroptionen
- Konfigurieren einer PCP-Regel
- Konfigurieren einer NAT-Regel
- Konfigurieren eines Servicesatzes zum Anwenden von PCP
- Konfiguration von SYSLOG-Meldungen
Konfigurieren von PCP-Serveroptionen
Konfigurieren einer PCP-Regel
Eine PCP-Regel verfügt über die gleichen grundlegenden Optionen wie alle Service-Set-Regeln:
Eine
term
Option, mit der eine einzelne Regel mehrere Anwendungen verwenden kann.Beim Ausführen der MX-SPC3-Sicherheitsserviceskarte für Services der nächsten Generation ist keine Laufzeit erforderlich.
Eine
from
Option, die den Datenverkehr identifiziert, der der Regel unterliegt.Eine
then
Option, die angibt, welche Aktion zu ergreifen ist. Im Falle einer PCP-Regel identifiziert diese Option den PCP-Server, der den ausgewählten Datenverkehr verarbeitet
Konfigurieren einer NAT-Regel
So konfigurieren Sie eine NAT-Regel:
Konfigurieren eines Servicesatzes zum Anwenden von PCP
Um PCP zu verwenden, müssen Sie den Regelnamen (oder den Namen einer Liste von Regelnamen) in der pcp-rule rule-name
Option angeben.
Ihr Dienstsatz muss auch alle erforderlichen nat-rule
und softwire-rule
.
Konfiguration von SYSLOG-Meldungen
Eine neue Syslog-Klasse, Konfigurationsoption, wurde bereitgestellt, pcp-logs
um die PCP-Protokollgenerierung zu steuern. Sie bietet die folgenden Protokollierungsebenen:
protocol
: Alle Protokolle, die sich auf die Erstellung und Löschung von Zuordnungen beziehen, sind auf dieser Protokollierungsebene enthalten.protocol-error
—–Alle Protokolle im Zusammenhang mit Protokollfehlern (z. B. Zuordnungsaktualisierung fehlgeschlagen, PCP-Suche fehlgeschlagen, Zuordnungserstellung fehlgeschlagen). sind in dieser Protokollierungsebene enthalten.system-error
Speicher- und Infrastrukturfehler sind in dieser Protokollierungsstufe enthalten.
Überwachung der Abläufe des Port Control Protocols
Sie können PCP-Vorgänge (Port Control Protocol) mit den folgenden Betriebsbefehlen überwachen:
Für MS-MPCs verwenden Sie den Befehl
show services nat mappings pcp
.Anmerkung:PCP wird für Services der nächsten Generation in Junos OS Version 19.3R2 nicht unterstützt
Für MS-MPCs verwenden Sie den Befehl
show services nat mappings endpoint-independent
.Verwenden Sie für Dienste der nächsten Generation den Befehl
show services nat source mappings endpoint-independent
.show services pcp statistics protocol
Im Folgenden finden Sie Beispiele für die Ausgabe dieser Befehle.
user@host> show services nat mappings pcp Interface: sp-0/0/0, Service set: in NAT pool: p PCP Client : 10.1.1.2 PCP lifetime : 995 Mapping : 10.1.1.2 : 9000 --> 8.8.8.8 : 1025 Session Count : 1 Mapping State : Active DS-LITE output: =============== PCP Client : 2222::1 PCP lifetime : 106 Mapping : 88.1.0.47 : 47 --> 70.70.70.1 :41972 Session Count : 1 Mapping State : Active B4 Address : 2222::1
user@host> show services nat mappings endpoint-independent Interface: sp-0/0/0, Service set: in NAT pool: p Mapping : 10.1.1.2 :57400 --> 8.8.8.8 : 1024 Session Count : 0 Mapping State : Timeout PCP Client : 10.1.1.2 PCP lifetime : 991 Mapping : 10.1.1.2 : 9000 --> 8.8.8.8 : 1025 Session Count : 1 Mapping State : Active DS-LITE output: =============== PCP Client : 2222::1 PCP lifetime : 190 Mapping : 88.1.1.3 : 4001 --> 70.70.70.2 :58989 Session Count : 1 Mapping State : Active B4 Address : 2222::1
user@host> show services pcp statistics protocol Protocol Statistics: Operational Statistics Map request received :0 Peer request received :0 Other operational counters :0 Option Statistics Unprocessed requests received :0 Third party requets received :0 Prefer fail option received :0 Filter option received :0 Other options counters :0 Option optional received :0 Result Statistics PCP success :0 PCP unsupported version :0 Not authorized :0 Bad requests :0 Unsupported opcode :0 Unsupported option :0 Bad option :0 Network failure :0 Out of resources :0 Unsupported protocol :0 User exceeded quota :0 Cannot provide external :0 Address mismatch :0 Excessive number of remote peers :0 Processing error :0 Other result counters :0
Beispiel: Konfigurieren des Port Control Protocol mit NAPT44
PCP wird auf den MultiServices-PICs MS-DPC, MS-100, MS-400 und MS-500 unterstützt. Ab Junos OS Version 17.4R1 wird PCP für NATP44 auch auf MS-MPC und MS-MIC unterstützt.
Anforderungen
Hardwareanforderungen
UEs mit PCP-Clients.
Ein MX 3D-Router mit einem MS-DPC Services PIC.
Softwareanforderungen
Junos OS 13.2
Layer-3-Services-Paket
Überblick
Ein ISP möchte UEs mit PCP-Clients in die Lage versetzen, Verbindungen zu Servern ohne Zeitüberschreitung aufrechtzuerhalten. Die PCP-Clients generieren PCP-Anforderungen für die Art und Dauer der von ihnen benötigten Verbindung. Verbindungen können von langer Dauer sein, z. B. Anwendungen, die eine Webcam verwenden, oder von kürzerer Dauer, z. B. Onlinespiele. Ein MX 3D-Router stellt einen PCP-Server zur Interpretation von PCP-Client-Anfragen und NAPT44 bereit. Abbildung 3 zeigt die grundlegende Topologie für dieses Beispiel.

PCP-Konfiguration
- CLI Schnellkonfiguration
- Gehäusekonfiguration
- Schnittstellenkonfiguration
- NAT-Konfiguration
- PCP-Konfiguration
- Konfiguration des Servicesatzes
CLI Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle erforderlichen Details, um sie an Ihre Netzwerkkonfiguration anzupassen, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf der Hierarchieebene [Bearbeiten] ein.
set chassis fpc 2 pic 0 adaptive-services service-package layer-3 set interfaces sp-2/0/0 services-options inactivity-timeout 180 cgn-pic set interfaces sp-2/0/0 unit 0 family inet set interfaces xe-3/2/0 unit 0 family inet service input service-set sset_0 set interfaces xe-3/2/0 unit 0 family inet service output service-set sset_0 set interfaces xe-3/2/0 unit 0 family inet address 30.0.0.1/24 set interfaces xe-5/0/0 unit 0 family inet address 25.0.0.1/24 set services nat pool pcp-pool address 44.0.0.0/16 set services nat pool pcp-pool port automatic random-allocation address-allocation round-robin set services nat pool pcp-pool address-allocation round-robin set services nat rule pcp-rule match-direction input set services nat rule pcp-rule term t0 then translated source-pool pcp-pool translation-type napt-44 set services nat rule pcp-rule term t0 then translated mapping-type endpoint-independent filtering-type endpoint-independent set services nat rule pcp-rule term t0 then translated mapping-type endpoint-independent filtering-type endpoint-independent set services pcp server pcp-s1 ipv4-address 124.124.124.122 set services pcp server pcp-s1 mapping-lifetime-minimum 600 mapping-lifetime-maximum 86500 set services pcp server pcp-s1 short-lifetime-error 120 long-lifetime-error 1200 set services pcp server pcp-s1 max-mappings-per-client 128 pcp-options third-party prefer-failure set services service-set sset_0 pcp-rules r1 set services service-set sset_0 nat-rules pcp-rule set services service-set sset_0 interface-service service-interface sp-2/0/0.0
Gehäusekonfiguration
Schritt-für-Schritt-Anleitung
So konfigurieren Sie den Service-PIC (FPC 2 Steckplatz 0) mit dem Layer 3-Servicepaket:
Wechseln Sie zur Hierarchieebene [Chassis bearbeiten].
user@host# edit chassis
Konfigurieren Sie das Layer 3-Servicepaket.
[edit chassis]
user@host# set fpc 2 pic 0 adaptive-services service-package layer-3
Befund
user@host# show chassis fpc 2 pic 0 pcp-rules pcp-napt44-rule; nat-rules pcp-rule; interface-service { service-interface sp-2/0/0.0; }
Schnittstellenkonfiguration
Schritt-für-Schritt-Anleitung
Konfigurieren Sie die Dienste MS-DPC.
user@host# set interfaces sp-2/0/0 services-options inactivity-timeout 180 cgn-pic user@host# set interfaces sp-2/0/0 unit 0 family inet
Konfigurieren Sie die kundenseitige Schnittstelle, die für NAT- und PCP-Services verwendet wird.
user@host# set interfaces xe-3/2/0 unit 0 family inet service input service-set sset_0 user@host# set interfaces xe-3/2/0 unit 0 family inet service output service-set sset_0 user@host# set interfaces xe-3/2/0 unit 0 family inet address 30.0.0.1/24
Konfigurieren Sie die mit dem Internet verbundene Schnittstelle.
user@host# set interfaces xe-5/0/0 unit 0 family inet address 25.0.0.1/24
Befund
user@host# sp-2/0/0 { services-options { inactivity-timeout 180; cgn-pic; } unit 0 { family inet; } } xe-3/2/0 { unit 0 { family inet { service { input { service-set sset_0; } output { service-set sset_0; } } address 30.0.0.1/24; } } } xe-5/0/0 { unit 0 { family inet { address 25.0.0.1/24; } } }
NAT-Konfiguration
Schritt-für-Schritt-Anleitung
Gehe in die
[edit services nat]
Hierarchie.user@host# edit services nat
Konfigurieren Sie einen NAT-Pool mit dem Namen
pcp-pool
.[edit services nat]
user@host# set pool pcp-pool address 44.0.0.0/16 user@host# set pool pcp-pool port automatic random-allocation user@host# set pool pcp-pool address-allocation round-robinKonfigurieren Sie eine NAT-Regel mit dem Namen
pcp-rule
.[edit services nat]
user@host# set rule pcp-rule term t0 then translated source-pool pcp-pool translation-type napt-44 user@host# set rule pcp-rule term t0 then translated mapping-type endpoint-independent filtering-type endpoint-independent
Befund
user@host# show services nat pool pcp-pool { address 44.0.0.0/16; port { automatic { random-allocation; } } address-allocation round-robin; } rule pcp-rule { match-direction input; term t0 { then { translated { source-pool pcp-pool; translation-type { napt-44; } mapping-type endpoint-independent; filtering-type { endpoint-independent; } } } } }
PCP-Konfiguration
Schritt-für-Schritt-Anleitung
So konfigurieren Sie den PCP-Server und die PCP-Regeloptionen.
Wechseln Sie in die Hierarchieebene für den
edit services pcp
Serverpcp-s1
user@host# edit services pcp server pcp-s1
Konfigurieren Sie die PCP-Serveroptionen.
[edit services pcp server pcp-s1] user@host# set ipv4-address 124.124.124.122 user@host# set mapping-lifetime-minimum 600 user@host# set mapping-lifetime-maximum 86500 user@host# set short-lifetime-error 120 user@host# set long-lifetime-error 1200 user@host# set max-mappings-per-client 128 user@host# set pcp-options third-party prefer-failure
Erstellen Sie die PCP-Regel.
[edit services pcp rule pcp-napt44-rule user@host# edit rule pcp-napt44-rule
Konfigurieren Sie die PCP-Regeloptionen.
[edit services pcp rule pcp-napt44-rule] user@host# set match-direction input user@host# set term t0 then pcp-server pcp-s1
Befund
user@host# show services pcp server pcp-s1 { ipv4-address 124.124.124.122; mapping-lifetime-minimum 600; mapping-lifetime-maximum 86500; short-lifetime-error 120; long-lifetime-error 1200; max-mappings-per-client 128; pcp-options third-party prefer-failure; } rule pcp-napt44-rule { match-direction input; term t0 { then { pcp-server pcp-s1; } } }
Konfiguration des Servicesatzes
Schritt-für-Schritt-Anleitung
Erstellen Sie einen Servicesatz
sset_0
auf deredit services service-set
Hierarchieebene.user@host# edit services service-set sset_0
service-set sset_0 { pcp-rules pcp-napt44-rule; nat-rules pcp-rule; interface-service { service-interface sp-2/0/0.0; } }
Identifizieren Sie die NAT-Regel, die dem Servicesatz zugeordnet ist.
[edit services service-set sset_0] user@host# set nat-rules pcp-rule
Identifizieren Sie die PCP-Regel, die dem Servicesatz zugeordnet ist.
[edit services service-set sset_0] user@host# set pcp-rules r1
Identifizieren Sie die Dienstschnittstelle, die dem Servicesatz zugeordnet ist.
[edit services service-set sset_0] user@host# set interface-service service-interface sp-2/0/0.0
Befund
user@host# show pcp-rules pcp-napt44-rule; nat-rules pcp-rule; interface-service { service-interface sp-2/0/0.0; }
Tabellarischer Änderungsverlauf
Die Unterstützung der Funktion hängt von der Plattform und der Version ab, die Sie benutzen. Verwenden Sie Funktionen entdecken , um festzustellen, ob eine Funktion auf Ihrer Plattform unterstützt wird.