-*-text-*-
Written by zephyrus00jp.
( Please visit http://upnpproxy.sourceforge.net/ )
(The Japanese version of this document is available in the same
distribution. Look for a file with "-jp" inserted before
the suffix ".txt" in the filename.)
(Caution: The main files are developed by Japanese programmer(s) for a
router made by a Japanese company. So there are a few Japanese
comments in the script file(s), C source files, etc. If you use a
capable editor such as Emacs, you will have no difficulty handling
such Japanese characters in the source files when you edit them.)
--------------
Change History: September 25, 2009.
File names are changed to end in ".txt" suffix, so that reading them
by browsers is easy.
File names for Japanese versions end with "-jp" just before ".txt".
March, 2012: Fixed a few typos.
September, 2012: Added a comment about downloading gzipped source tar ball.
Spelling fixes.
--------------
Offered Function
Basically, this UPnP proxy program and the associated perl script
together implement the following functions of IGD (Internet Gateway
Device) UPnP functions.
- Inquiry of WAN-side IP address
- Add/Delete NAT port mapping.
- List NAT mapping rule(s).
Other UPnP requests are accepted, but nothing interesting happens.
The program returns proper response (either failure or success). But
even in the case of success, the response packet may contain bogus
data.
Tested with MSN Messenger, Skype, PortMapper-1.6, etc. to see if
desired port mappings are established.
Security
- Certain port numbers are considered security risks, and is not
forwarded. This program returns an error to the requester.
Limitations
(The following is the list of reasonable limitations for
a UPNP implementation.)
1- external WAN IP address is assumed to be wild card [null/empty string].
2- external port and internal port must be the same.
3- lease is assumed to be 0 [i.e., forever]
4- enable field is assumed to 1 [for adding NAT rule].
Comments
1. The above is usual for many routers.
2. The above restriction applies to many UPnP-aware routers, also.
3. The above may be true for many UPnP-aware routers, also.
4. Usual for UPnP-aware routers. I don't know how many routers
support enable = 0 request. For that matter, I have not seen a
linux IGD that supports this feature. Correct me if I am wrong.
How to Use:
Please download INITIAL.zip archive that contains only the
document files, and the gzipped tar archive that contains all the
files including the document files and whose name is in the
following format:
UPNP-PROXY.YYYY-MM-DD.tgz
(YYYY is the year, MM is the month, and dd is the day of the month
when the gzipped tar archive is created.)
Unzip INITIAL.zip and read the files.
For initial setup of external upnp-auxiliary.pl and the router
itself, please read
README-getting-started.txt
For now, please test your environment (router setup, etc) by
running the following command after proper initial setup.
perl upnp-auxiliary.pl
perl upnp-auxiliary.pl | grep ^X
You need to install a version of libupnp.
This is explained in README-upnp.txt
For building the binary, read README-how-to-run.txt
After the final make step, the following will run the UPNP Proxy.
./main-daemon
Again, the above README files will guide you.
[end of memo]