Le protocole PCP décrit un mécanisme (ayant
vocation à remplacer UPnP) pour configurer
automatiquement son routeur/pare-feu, notamment
pour autoriser les connexions entrantes. Que doit faire un client PCP
s'il reçoit plusieurs adresses IP de serveurs
PCP ?
Dans quels cas a-t-on plusieurs serveurs PCP (donc, a priori,
plusieurs routeurs à sa disposition) ? Un exemple typique est le
multi-homing, si une machine
est connectée en filaire et en radio en même temps, par exemple
(l'annexe A du RFC décrit en détail un cas de multi-homing). Le , qui normalise PCP, en parlait un
peu (dans sa section 8.1, qui explique en outre comment on trouve le
ou les serveurs PCP, par exemple en suivant le ), mais ne normalisait que le cas à un seul
serveur, reportant à plus tard le cas à plusieurs serveurs. C'est donc
désormais fait, deux ans après. Que doit donc faire le client qui a à
sa disposition les adresses de plusieurs serveurs PCP ? D'autant plus
que ceux-ci n'ont pas forcément les mêmes capacités, et ne sont
typiquement pas coordonnés entre eux. Notez que les règles données
dans ce nouveau RFC exigent que le client puisse déterminer si deux
adresses IP pointent vers le même serveur PCP ou bien deux serveurs différents.
La section 3 décrit le cas où il y a plusieurs adresses mais un
seul serveur : le client doit alors choisir l'adresse IP source de sa
requête PCP, en suivant les règles habituelles (section 4 du ) et les contraintes spécifiques à PCP du
. Un exemple de ces contraintes est que,
si on veut configurer une connexion existante, il faut utiliser comme
adresse IP source celle utilisée par ladite connexion. Une fois ce
choix fait, le client crée une liste d'adresses IP possibles pour le
serveur (section 6 du ) et les essaie
successivement (rappelez-vous que PCP fonctionne sur UDP). Une fois
qu'on en a trouvé une qui marche, on la mémorise pour les futures
requêtes.
Si les différentes adresses IP obtenues concernent plusieurs
serveurs PCP, c'est plus compliqué (section 4). Il faut alors que le
client mémorise plusieurs serveurs et, si nécessaire, les synchronise
lui-même (rappelez-vous que les différents serveurs PCP ne se
coordonnent pas entre eux). Par exemple, si on veut configurer le
pare-feu, c'est de la responsabilité du client
d'envoyer la même configuration à tous les serveurs PCP. En revanche,
si on veut configurer le NAT, le client ne
s'adresse typiquement qu'à un seul serveur PCP, celui correspondant à
l'adresse IP externe qu'on veut utiliser. (Il faut donc que le client
PCP, lorsqu'il reçoit l'information sur l'existence d'un serveur PCP,
se souvienne de l'interface et des adresses IP correspondantes.)
La section 5 fournit plusieurs exemples concrets de ces
procédures. Par contre, aucune idée de combien d'implémentations de
PCP suivent ce RFC (on ne peut pas dire que PCP soit largement déployé...)