Re: [pcp] A question: How can an internal client get the external IP and port of the inner NAT

<> Tue, 27 October 2015 07:19 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 9910F1B36DB for <>; Tue, 27 Oct 2015 00:19:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.098
X-Spam-Status: No, score=-1.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, J_CHICKENPOX_35=0.6, J_CHICKENPOX_62=0.6, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id gPJPhKbaZBwt for <>; Tue, 27 Oct 2015 00:19:23 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 222191B36DA for <>; Tue, 27 Oct 2015 00:19:22 -0700 (PDT)
Received: from (unknown [xx.xx.xx.4]) by (ESMTP service) with ESMTP id 48DB63B42F3; Tue, 27 Oct 2015 08:19:20 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown []) by (ESMTP service) with ESMTP id 1F0E3238048; Tue, 27 Oct 2015 08:19:20 +0100 (CET)
Received: from OPEXCLILMA3.corporate.adroot.infra.ftgroup ([fe80::60a9:abc3:86e6:2541]) by OPEXCLILM24.corporate.adroot.infra.ftgroup ([fe80::a1e6:3e6a:1f68:5f7e%19]) with mapi id 14.03.0248.002; Tue, 27 Oct 2015 08:19:19 +0100
From: <>
To: Chenguohai <>, =?utf-8?B?8J+Uk0RhbiBXaW5n?= <>, ChenGuohai <>
Thread-Topic: [pcp] A question: How can an internal client get the external IP and port of the inner NAT
Thread-Index: AdEPkTS5N8S7S0MAT0uh+ygp70n6+wA9dyEA
Date: Tue, 27 Oct 2015 07:19:18 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B933008C87A6D@OPEXCLILMA3.corporate.adroot.infra.ftgroup>
References: <>
In-Reply-To: <>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_787AE7BB302AE849A7480A190F8B933008C87A6DOPEXCLILMA3corp_"
MIME-Version: 1.0
X-PMX-Version:, Antispam-Engine:, Antispam-Data: 2015.10.27.65416
Archived-At: <>
Cc: "" <>
Subject: Re: [pcp] A question: How can an internal client get the external IP and port of the inner NAT
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: PCP wg discussion list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 27 Oct 2015 07:19:25 -0000

Hi Chen,

FWIW, you may read this document: The content is not that “fresh”, but it discusses some sample configurations (PCP-unaware NAT, PCP-aware NAT, etc.)

In case all your NATs are PCP-aware, you may read The recursion can be terminated as detailed in:


De : pcp [] De la part de Chenguohai
Envoyé : lundi 26 octobre 2015 02:55
À : 🔓Dan Wing; ChenGuohai
Cc :
Objet : Re: [pcp] A question: How can an internal client get the external IP and port of the inner NAT

Hi Dan,

Thank again.
What is the workflow in nested NATs for internal host?
1: the client must judge how many NATs are there in the path and the order;
2: nogotiate with the fisrt PCP server(in the most nested NAT) for the exteral IP and port;
3:use the negotiated IP and port with the second PCP server;
4 do step 2 and 3 until communicating to the most external PCP server.

Does this make sense?

G.Robert  Chen

发件人: 🔓Dan Wing []
发送时间: 2015年10月24日 23:54
收件人: ChenGuohai
抄送: Chenguohai;<>
主题: Re: [pcp] A question: How can an internal client get the external IP and port of the inner NAT

On 23-Oct-2015 06:04 pm, ChenGuohai <<>> wrote:
Hi Dan,

Many thanks for your explaination.

Inner NATs are mostly used in residents and external NATs are CGNs is the most common nested NAT case.

Using PCP means that the CPE(inner NAT) must embed a PCP server.  The PCP client should communicats with two PCP servers.


Using STUN means a STUN server need to be deployed between inner NAT and external NAT. Shall this be common?

Not that I have seen.


Manual configuration is very cost.

G.Robert  Chen

Subject: Re: [pcp] A question: How can an internal client get the external IP and port of the inner NAT
Date: Fri, 23 Oct 2015 10:44:15 -0700

On 22-Oct-2015 08:24 pm, Chenguohai <<>> wrote:

Hi all,
I am new to PCP and reading RFC6887.I have a question about section 8.1. On the upper part of page 22 writing following,
the PCP-controlled NAT creating pointless non-functional mappings.
   When such an intervening non-PCP-aware inner NAT is detected,
   mappings must first be created by some other means in the inner NAT,
   before mappings can be usefully created in the outer PCP-controlled
   NAT.  Having created mappings in the inner NAT by some other means,
   the PCP client should then use the inner NAT’s external address as
   the client IP address, to signal to the outer PCP-controlled NAT that
   the client is aware of the inner NAT, and has taken steps to create
   mappings in it by some other means, so that mappings created in the
   outer NAT will not be a pointless waste of resources.

My question is that how an interal client could get the external IP and port of the inner NAT.

PCP, UPnP IGD, STUN, manual configuration.

Should there be server between the inner NAT and the external one? How could it be assured that the inner NAT does not change external port?

Hopefully whatever mechanism the client used (PCP, UPnP IGD, STUN, manual configuration) would tell the client of such a change.


G.Robert  Chen
G.Robert  Chen (Chen Guohai  陈国海). Network Research Department, Huawei Technologies Co., Ltd. Telephone: 0086-25-56624606;<>
This e-mail and its attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the  information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!

pcp mailing list<>