Natkeep is two programs, one which listens to the network for a pattern of packets. Once a pattern has been identified, the second program begins to inject similar packets into the network. The purpose of this is to keep a NAT's UDP port map alive (hence the name) so that programs which use a call back mechanism will be able to find the client over the network. You also set the TTL with natkeep, which is part of the porint. If TTL is set to 1, the first router that encounters the packets sent by netkeep will discard them, and return an ICMP port unreachable message. The notion is that by keeping the TTL low, you can touch your NAT with packets regularly enough to keep the port mappings active, but other devices further down the network don't have to hear the traffic.
One one the programs this can be used with is AFS. If you're behind a NAT and you've been having problems with AFS maintaining connections or with file corruptions, you may be able to use natkeep to eliminate the problems (I stress the "may" since it depends on what the problem really is).
Fair warning, this is manipulating network in a pretty heinous fashion, so if you work on someone else's network, be cautious with your testing.
For more information, see the Readme file.
Natkeep requires GNU pth, and for OS X that is availble via the Fink package manager. Life's better with fink, although I do recommend you have fink build software for you from the source rather than just install the binaries.
I also strongly recommend you install a sniffer such as wireshark, formally known as ethereal and learn how to use it before playing with natkeep--ethereal will make it much much easier to figure out what natkeep is doing. Ethereal is also available via Fink
Finally, you might consider installed a packet injector, such as Nemesis. I used the one from DarwinPorts, but Fink also has this in their unstable tree. A packet injector is handy for testing in that you can build a rule in natkeep that doesn't correspond to any running application, and then inject a packet matching that rule--after that, natkeep should continue to regularly inject similar packets into the network. Again, fair warning, be careful with packet injectors--systems and network administrators take a very dim view of those who carelessly dump malformed packets onto their networks...
I was able to build a working copy of natkeep for OS X pretty easily, using this sequence from within the source directory.
./configure --prefix="/usr/local" --without-pth-test make sudo make install
You can get natkeep from:
Original source: http://mit.edu/zacheiss/www/natkeep/
Local source: natkeep-0.1.tar.gz
Local OS X binaries: natkeep0.1.bin.tgz
The binaries were compiled without the pth-test option, but ran ok on my G4 system.