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

Chenguohai <> Mon, 26 October 2015 01:55 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id B988A1B34CA for <>; Sun, 25 Oct 2015 18:55:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.811
X-Spam-Status: No, score=-0.811 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, HTML_MESSAGE=0.001, J_CHICKENPOX_35=0.6, J_CHICKENPOX_62=0.6, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id fVL68cSgvCqv for <>; Sun, 25 Oct 2015 18:55:04 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id B9F561B34CD for <>; Sun, 25 Oct 2015 18:55:02 -0700 (PDT)
Received: from (EHLO ([]) by (MOS 4.3.7-GA FastPath queued) with ESMTP id BZG61998; Mon, 26 Oct 2015 01:55:01 +0000 (GMT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id; Mon, 26 Oct 2015 01:54:59 +0000
Received: from ([]) by ([]) with mapi id 14.03.0235.001; Mon, 26 Oct 2015 09:54:53 +0800
From: Chenguohai <>
To: =?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: AdEPkTS55VolCqU8SbKCef9br3WRKg==
Date: Mon, 26 Oct 2015 01:54:52 +0000
Message-ID: <>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_70006713F8B28D4F88E17B98E1459AB5A3B8B8B7nkgeml501mbschi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
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: Mon, 26 Oct 2015 01:55:08 -0000

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<>