Protocole de contrôle de port
Présentation du protocole de contrôle de port
Le protocole PCP (Port Control Protocol) permet de contrôler le transfert de paquets entrants par les périphériques en amont, tels que les périphériques NAT44 et les pare-feu, et de réduire le trafic keepalive des applications. Le PCP est pris en charge sur les PIC multiservices MS-DPC, MS-100, MS-400 et MS-500. À partir de la version 17.4R1 de Junos OS, PCP pour NAPT44 est également pris en charge sur les MS-MPC et MS-MIC. À partir de Junos 20.2R1, PCP pour les services CGNAT DS-Lite est pris en charge pour les services nouvelle génération. À partir de la version 18.2R1 de Junos OS, PCP sur MS-MPC et MS-MIC prend en charge DS-Lite. Dans Junos OS version 18.1 et versions antérieures, PCP sur MS-MPC et MS-MIC ne prend pas en charge DS-Lite.
Le PCP est conçu pour être mis en œuvre dans le contexte des NAT de classe opérateur (CGN) et des NAT de petite taille (par exemple, les NAT résidentiels). Le PCP permet aux hôtes d’utiliser des serveurs pendant une longue période (comme dans le cas d’une webcam) ou une courte période (par exemple, en jouant à un jeu ou lors d’un appel téléphonique) lorsqu’ils sont derrière un appareil NAT, y compris lorsqu’ils sont derrière un CGN exploité par leur FAI. Le PCP permet aux applications de créer des mappages à partir d’une adresse IP et d’un port externes vers une adresse IP et un port internes. Ces mappages sont nécessaires pour réussir les communications entrantes destinées à des machines situées derrière un NAT ou un pare-feu. Une fois le mappage des connexions entrantes créé, les ordinateurs distants doivent être informés de l’adresse IP et du port de la connexion entrante. Cette opération est généralement spécifique à l’application.
Junos OS prend en charge PCP version 2 et version 1.
Le PCP se compose des composants suivants :
Client PCP : hôte ou passerelle qui émet des requêtes PCP à un serveur PCP afin d’obtenir et de contrôler des ressources.
Serveur PCP : généralement une passerelle CGN ou un serveur colocalisé qui reçoit et traite les demandes PCP
Junos OS permet de configurer les serveurs PCP pour mapper des flux à l’aide des capacités NAPT44 telles que le transfert de ports et l’attribution de blocs de ports. Les flux peuvent être traités à partir des sources suivantes :
Trafic contenant des requêtes PCP reçues directement de l’équipement de l’utilisateur, comme illustré dans la Figure 1.
Figure 1 : Topologie de base du PCP NAPT44
Mappage du trafic contenant des requêtes PCP ajoutées par un routeur fonctionnant comme un initiateur de fil souple DS-Lite (B4). Ce mode, connu sous le nom de mode simple DS-Lite, est illustré à la figure 2.
Figure 2 : PCP avec mode
simple DS-Lite
Junos OS ne prend pas en charge l’attribution déterministe de blocs de ports pour le trafic provenant de PCP.
Avantages du protocole de contrôle de port
De nombreuses applications compatibles NAT envoient fréquemment des messages au niveau de l’application pour s’assurer qu’un périphérique NAT n’interrompt pas leurs sessions. Le PCP est utilisé pour :
Réduisez la fréquence de ces messages keepalive NAT
Réduire la bande passante sur le réseau d'accès de l'abonné
Réduire le trafic vers le serveur
Réduire la consommation de la batterie des appareils mobiles
Protocole de contrôle de port version 2
À partir de la version 15.1 de Junos OS, la version 2 du protocole de contrôle de port (PCP) est prise en charge, conformément à la norme RFC 6887. Le PCP permet de contrôler le transfert de paquets entrants par les périphériques en amont, tels que NAT44, et les pare-feu, et de réduire le trafic keep-alive des applications. PCP version 2 prend en charge l’authentification nonce. Le PCP permet aux applications de créer des mappages d’une adresse IP et d’un port externes vers une adresse IP et un port internes. Une charge utile nonce empêche une attaque par rejeu et elle est envoyée par défaut sauf si elle est explicitement désactivée.
La vérification du nonce client pour les demandes de mappage de version 2 (pour actualisation ou suppression) nécessite que le nonce reçu dans la demande de mappage d’origine qui entraîne la création du mappage PCP soit conservé. La version de la requête initiale qui permet de créer le mappage est également conservée. Ce comportement d’enregistrement des paramètres nonce et version indique que 13 octets par mappage PCP sont utilisés. Cette légère augmentation de l’espace de stockage n’est pas significative lorsqu’elle correspond à l’utilisation actuelle de la mémoire d’un système pour un seul mappage demandé (en tenant compte du mappage indépendant du point de terminaison (EIM) et du filtrage indépendant du point de terminaison (EIF) qui sont créés avec lui). Dans un déploiement client, PCP fait en sorte que les mappages EIM et EIF représentent une fraction de tous ces mappages.
Jusqu’à la version 15.1 de Junos, les PIC de services prennent en charge les serveurs PCP sur les routeurs Juniper Networks conformément à la version 22 de PCP avec le codage des messages de la version 1. Le PCP étant passé de la version préliminaire telle que définie dans le protocole de contrôle de port (PCP) draft-ietf-pcp-base-22 (expiration de juillet 2012) à une version standard finalisée telle que définie dans RFC 6887 - Protocole de contrôle de port (PCP), le codage des messages a été modifié en version 2 avec l’ajout d’une charge utile nonce aléatoire pour authentifier les demandes d’homologue et de mappage si nécessaire. La version 1 ne décode pas les messages conformes au format de la version 2 et l’authentification nonce n’est pas prise en charge. Dans un environnement réseau réel, les équipements CPE (Customer Premises Equipment) prenant de plus en plus en charge la version 2 uniquement, il est nécessaire d’analyser et d’envoyer des messages de version 2. La rétrocompatibilité avec les équipements CPE prenant en charge la version 1 est maintenue (la négociation de version fait partie de la norme) et authentifie les paquets de charge utile Request Nonce lorsque des messages v2 sont utilisés.
La sortie de la show services pcp statistics commande contient le champ Version PCP non prise en charge, qui est incrémenté pour indiquer chaque fois que la version n’est pas 1 ou 2. Un nouveau champ, PCP request nonce ne correspond pas au mappage existant, est introduit pour indiquer le nombre de requêtes PCP version 2 qui ont été ignorées car la charge utile nonce ne correspondait pas à celle enregistrée dans le mappage (échec de l’authentification). Si la version 2 est utilisée, le nonce client est utilisé pour l’authentification.
Configuration du protocole de contrôle de port
Cette rubrique décrit comment configurer le protocole de contrôle de port (PCP). Le PCP est pris en charge sur les PIC multiservices MS-DPC, MS-100, MS-400 et MS-500. À partir de la version 17.4R1 de Junos OS, PCP pour NAPT44 est également pris en charge sur les MS-MPC et MS-MIC. À partir de la version 18.2R1 de Junos OS, le PCP sur les MS-MPC et MS-MIC prend en charge DS-Lite. Dans Junos OS version 18.1 et versions antérieures, PCP sur MS-MPC et MS-MIC ne prend pas en charge DS-Lite. À partir de la version 20.2R1 de Junos OS, le PCP est pris en charge sur la carte de services de sécurité MX-SPC3 pour les services CGNAT.
Effectuez les tâches de configuration suivantes :
- Configuration des options du serveur PCP
- Configuration d’une règle PCP
- Configuration d’une règle NAT
- Configuration d’un ensemble de services pour l’application de PCP
- Configuration des messages SYSLOG
Configuration des options du serveur PCP
Configuration d’une règle PCP
Une règle PCP a les mêmes options de base que toutes les règles d’ensemble de services :
Une
termoption qui permet à une seule règle d’avoir plusieurs applications.Aucune durée n’est requise lors de l’exécution de la carte de services de sécurité MX-SPC3 pour les services nouvelle génération.
Option
fromqui identifie le trafic soumis à la règle.Une
thenoption qui identifie les mesures à entreprendre. Dans le cas d’une règle PCP, cette option Identifie le serveur pcp qui gère le trafic sélectionné
Configuration d’une règle NAT
Pour configurer une règle NAT :
Configuration d’un ensemble de services pour l’application de PCP
Pour utiliser PCP, vous devez fournir le nom de la règle (ou le nom d’une liste de noms de règles) dans l’option pcp-rule rule-name .
Votre ensemble de services doit également identifier les fichiers nat-rule softwire-ruleet .
Configuration des messages SYSLOG
Une nouvelle classe syslog, l’option de configuration, pcp-logsa été fournie pour contrôler la génération de journaux PCP. Il fournit les niveaux de journalisation suivants :
protocol: tous les journaux liés à la création et à la suppression de mappages sont inclus à ce niveau de journalisation.protocol-error—–Tous les journaux liés aux erreurs de protocole (tels que l’échec de l’actualisation du mappage, l’échec de la recherche PCP, l’échec de la création du mappage). sont inclus dans ce niveau de journalisation.system-error: les erreurs de mémoire et d’infrastructure sont incluses dans ce niveau de journalisation.
Surveillance des opérations des protocoles de contrôle de port
Vous pouvez surveiller les opérations PCP (Port Control Protocol) à l’aide des commandes opérationnelles suivantes :
Pour les MS-MPC, utilisez la
show services nat mappings pcpcommande.Remarque :PCP n’est pas pris en charge pour les services nouvelle génération dans Junos OS version 19.3R2
Pour les MS-MPC, utilisez la
show services nat mappings endpoint-independentcommande.Pour les services nouvelle génération, utilisez la
show services nat source mappings endpoint-independentcommande.show services pcp statistics protocol
Voici des exemples de sortie de ces commandes.
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
Exemple : configuration d’un protocole de contrôle de port avec NAPT44
Le PCP est pris en charge sur les PIC multiservices MS-DPC, MS-100, MS-400 et MS-500. À partir de la version 17.4R1 de Junos OS, le PCP pour NATP44 est également pris en charge sur les MS-MPC et MS-MIC.
Exigences
Exigences matérielles
UE avec des clients PCP.
Un routeur MX 3D avec un PIC de services MS-DPC.
Exigences logicielles
Junos OS 13.2
Ensemble de services de couche 3
Vue d’ensemble
Un FAI souhaite permettre aux UE avec des clients PCP de maintenir les connexions aux serveurs sans expiration. Les clients PCP génèrent des requêtes PCP pour le type et la durée de la connexion dont ils ont besoin. Les connexions peuvent être de longue durée, comme les applications utilisant une webcam, ou de plus courte durée, comme les jeux en ligne. Un routeur 3D MX fournit un serveur PCP pour interpréter les demandes des clients PCP et NAPT44. La figure 3 illustre la topologie de base de cet exemple.
PCP Configuration
- Configuration rapide de la CLI
- Configuration du châssis
- Configuration de l’interface
- NAT Configuration
- PCP Configuration
- Configuration de l’ensemble de services
Configuration rapide de la CLI
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez-collez les commandes dans la CLI au niveau de la hiérarchie [modifier].
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
Configuration du châssis
Procédure étape par étape
Pour configurer le PIC de service (FPC 2 Slot 0) avec le package de services de couche 3 :
Allez au niveau hiérarchique [edit chassis].
user@host# edit chassis
Configurez le package de services de couche 3.
[edit chassis]user@host# set fpc 2 pic 0 adaptive-services service-package layer-3
Résultats
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;
}
Configuration de l’interface
Procédure étape par étape
Configurez les services 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
Configurez l’interface client utilisée pour les services NAT et PCP.
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
Configurez l’interface Internet.
user@host# set interfaces xe-5/0/0 unit 0 family inet address 25.0.0.1/24
Résultats
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 Configuration
Procédure étape par étape
Allez dans la
[edit services nat]hiérarchie.user@host# edit services nat
Configurez un pool NAT appelé
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-robinConfigurez une règle NAT appelée
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
Résultats
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 Configuration
Procédure étape par étape
Pour configurer le serveur PCP et les options de règle PCP.
Accéder au niveau hiérarchique
edit services pcppour serveurpcp-s1user@host# edit services pcp server pcp-s1
Configurez les options du serveur PCP.
[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
Créez la règle PCP.
[edit services pcp rule pcp-napt44-rule user@host# edit rule pcp-napt44-rule
Configurez les options de la règle PCP.
[edit services pcp rule pcp-napt44-rule] user@host# set match-direction input user@host# set term t0 then pcp-server pcp-s1
Résultats
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;
}
}
}
Configuration de l’ensemble de services
Procédure étape par étape
Créez un ensemble de services,
sset_0, au niveau de laedit services service-sethiérarchie.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; } }Identifiez la règle NAT associée à l’ensemble de services.
[edit services service-set sset_0] user@host# set nat-rules pcp-rule
Identifiez la règle PCP associée à l’ensemble de services.
[edit services service-set sset_0] user@host# set pcp-rules r1
Identifiez l’interface de service associée à l’ensemble de services.
[edit services service-set sset_0] user@host# set interface-service service-interface sp-2/0/0.0
Résultats
user@host# show
pcp-rules pcp-napt44-rule;
nat-rules pcp-rule;
interface-service {
service-interface sp-2/0/0.0;
}
Tableau de l’historique des modifications
La prise en charge des fonctionnalités est déterminée par la plateforme et la version que vous utilisez. Utilisez l’explorateur de fonctionnalités pour déterminer si une fonctionnalité est prise en charge sur votre plateforme.