This page is designed to help you configure FreePastry for your particular NAT/firewall setup. It covers FreePastry 2.0.
If FreePastry detects an invalid configuration, it will prompt the user for how to proceed. However if you are a developer, you should read over this document to understand how FreePastry will behave in various scenarios so you can pre-configure FreePastry to do the appropriate behaviour for your application.
The document has 3 sections. The first shows you how to configure FreePastry's parameters. The second section consists of quick links to help you configure FreePastry based on your particular setup. Some require you to run with additional libraries in your classpath, some require to adjust your parameters. The third is a detailed explanation of how FreePastry's firewall configuration works.
FreePastry should work fine for you by default. Sometimes it may fail the firewall test which verifies bidirectional connectivity to the bootstrap. If this happens, it means that your connectivity to the Bootstrap node is too poor for FreePastry to get any communication through, and thus freepastry incorrectly assumes you are firewalled. If you want to disable this test set:
firewall_test_policy = never
It is also possible that while you do have an internet routable address, there is still a firewall blocking one or more of your ports. Verify that you don't have blocked ports.
Disable UPnP altogether by setting this:
nat_search_policy = never
Note that you need to re-enable this if you wish to join/create a network that goes over the internet.
Enable UPnP on your router if you haven't already done so. If you have trouble with this check your router's documentation online at your manufacturer's site.
Include these libraries in your classpath when you run the FreePastry based application. They can be found in the source distribution.
commons-jxpath-1.1.jar:commons-logging.jar:sbbi-upnplib-xxx.jarSo, to run the lesson3 tutorial:
java -cp .:FreePastry-2.0b2.jar:commons-jxpath-1.1.jar:commons-logging.jar:sbbi-upnplib-1.0.3.jar rice.tutorial.lesson3.DistTutorial 9001 10.9.8.7 9001
probe_for_external_address = true
Note:The external port and local port must be the same for this to work. In other words you can't forward port 9300 -> 9001, you must use the same port.
external_address = 123.45.67.89:1234