Jump to content

uTorrent with UPNP<->PCP Interworking


Recommended Posts

Hi There,

As a Service Provider we're currently testing CGN with PCP, the idea being CPEs can translate internal UPNP requests in to PCP MAP requests to pinhole ports back through a service provider's CGN gateway.

This interworking function is outlined here: http://tools.ietf.org/html/rfc6970 and specifically section 5.6.2 which even refers to uTorrent's behaviour.

The issue is thus: uTorrent uses the AddPortMapping() function as opposed to the newer AddAnyPortMapping() function.

It also continues retrying the failed AddPortMapping() with the same port that's unavailable.

In the CGN world, a single public IP can be shared with multiple internal subscribers, the entire port range being split into blocks and allocated out. So it's unlikely that an internal subscriber will get the exact port requested via UPNP. It's also unlikely that, if the subscriber reconnects, the same port will continue to be available at a later time.

In our CGN implementation, the ports available for PCP are allocated out of yet another port block range dedicated for PCP mappings.

Sadly not all CPEs support new IGD2 AddAnyPortMapping() function, but perhaps at least attempting it first before the more specific approach, might help.

Also, if failing back to AddPortMapping() is required, perhaps iterating through random ports until one is successful, could help.

It's not an ideal solution but the whole scenario is pretty lame.

Hope this helps. Let me know if you need me to clarify anything further.


Link to comment
Share on other sites

  • 3 months later...


This topic is now archived and is closed to further replies.

  • Create New...