Opened 11 years ago

Closed 9 years ago

#427 closed defect (fixed)

UPnP fails to open ports on hardware router

Reported by: killyourtv Owned by:
Priority: minor Milestone: 0.9.2
Component: router/transport Version: 0.8.4
Keywords: upnp Cc: killyourtv
Parent Tickets: Sensitive: no


In the three months that I've been using I2P I have never seen I2P successfully opening ports via UPnP. Recently I switched my (hardware) router to one running DD-WRT from an old unflashable Linksys WRT54G. Since other UPnP-enabled software can open the ports (but I2P cannot) on both hardware routers, I'm opening this bug.

Old router's firmware: (some proprietary Linksys crap running on a WRT54G rev. 7, can hook it up to get more specific version info if needed)
New router's firmware: DD-WRT v24SP2-EU-US (08/19/10) std - build 14998

I2P version: 0.8.4-0
Java version: Sun Microsystems Inc. 1.6.0_22 (Java(TM) SE Runtime Environment 1.6.0_22-b04)
Platform: Linux amd64 2.6.37
Processor: uninitialized (athlon64)
Jbigi: Locally optimized native BigInteger library loaded from the library path
Encoding: UTF-8
UPnP Status


    * Service: Layer 3 Forwarding
          o Default Connection Service: uuid:$UUID:WANConnectionDevice:1,urn:upnp-org:serviceId:WANIPConn1

    * Subdevice: WANDevice
          o Service: WAN Common Interface Config
                + Status: Up
                + Type: Ethernet
                + Upstream: 100000000
                + Downstream: 100000000
          o Subdevice: WAN Connection Device
                + Service: WAN IP Connection
                      # Status: Connected
                      # Type: IP_Routed
                      # External IP: $MYIP
    * Subdevice: LANDevice
          o Service: ~~~~~~~ urn:schemas-upnp-org:service:LANHostConfigManagement:1

The current external IP address reported by UPnP is $MYIP
TCP port $MYPORT for NTCP has not been forwarded by UPnP.
UDP port $MYPORT for SSU has not been forwarded by UPnP.

Note: There is nothing about UPnP in neither wrapper.log nor log-router-?.txt

Apparently I'm not alone with the failure. Earlier today on IRC in #i2phelp:

<dr|z3d> got your i2p port open?
<dr|z3d> Network: Ok or Network: Firewalled?
<dr|z3d> Network: Ok wins prizes. And extra perf.
<E→ firewalled…
<dr|z3d> Read the section on the homepage re port fwd'ing.
<E→ no as soon as you said that i remembered reading it before
<E→ lol
<E→ oops
<dr|z3d> *thwack*
<E→ upnp failed me
<dr|z3d> manual port forwarding and static ip allocation on your modem/router then.


Attachments (1)

upnp.log.gz (1.6 KB) - added by killyourtv 11 years ago.
Results of org.cybergarage.util.Debug=DEBUG

Download all attachments as: .zip

Change History (6)

comment:1 Changed 11 years ago by zzz

Component: otherrouter/transport
Priority: majorminor

Yes, UPnP has a problem with a lot of routers.

You can gather more info by setting org.cybergarage.util.Debug=WARN on /configlogging.jsp and restarting your I2P router, then checking the logs on /logs.jsp.

Changed 11 years ago by killyourtv

Attachment: upnp.log.gz added

Results of org.cybergarage.util.Debug=DEBUG

comment:2 Changed 11 years ago by killyourtv

Setting org.cybergarage.util.Debug=WARN yielded no output. Attached is a sanitized log from org.cybergarage.util.Debug=DEBUG.

comment:3 Changed 11 years ago by zzz

Thanks, sorry I thought WARN would do it.

As you can see, every UPnP response is:

<errorCode>402</errorCode><errorDescription>Invalid Argument</errorDescription>

That's the fun with UPnP. Every error is like this. Except that everybody's error is different. It's a mess and almost impossible to debug. For a while, every time I went to somebody's house I would try out I2P UPnP and then try to fix what didn't work on their particular router. But that gets old after a while.

comment:4 Changed 11 years ago by killyourtv

I don't know if it'll help but here's the source code for the UPnP bits on this router:

comment:5 Changed 9 years ago by zzz

Resolution: fixed
Status: newclosed

Fixed in 0.9.1-11 by updating to CyberLink? 2.1

Note: See TracTickets for help on using tickets.