Projects / Fair NAT

Fair NAT

Fair NAT is a script for configuring NAT on dedicated Linux routers. It's designed to be highly customizable and therefore well documented. A configuration file lets you specify which clients on your LAN should be allowed to use the router, which ports are to be forwarded to which client, and much more. It uses the kernel's Traffic Shaping capabilities to share bandwidth in a fair manner among users. Some kernel patches are recommended for better performance. Experimental support for peer-to-peer traffic detection is available.


Recent releases

  •  10 Jan 2008 14:47

    Release Notes: This is a simplified implementation of the Fair NAT traffic shaping script, designed for OpenWRT routers which have only limited resources. While the basic concept is still the same, it does not have any of the bells and whistles that the original Fair NAT script offers. It does not have a configuration file, instead you have to adapt the script itself to make it fit your needs. To make this still somewhat comfortable, every user has a subroutine in which they may create shaping and filtering rules.

    •  21 Aug 2005 09:36

      Release Notes: Experimental Firewall support was added. Selectable features allow parts of the script to be disabled. The recent IPP2P ability is supported to match UDP as well.

      •  19 Apr 2005 17:57

        Release Notes: This release adds support for rate units (e.g. 2mbit, 100kbit, and 4096bps are now all valid). The default unit is kilobit for backward compatibility. You can specify a custom download/upload ceiling rate per user. However, it must not be lower than the guaranteed rate.

        •  15 Nov 2004 22:41

          Release Notes: The IP address wasn't detected when using a localized version of ifconfig. The configuration option TTL_SET has been added, and replaces the previously hard-coded TTL setting.

          •  22 Oct 2004 19:58

            Release Notes: It's now possible to specify maximum upload and download rates other than the total available bandwidth. This is useful, for example, if you don't want any single user to get more than 300kbit/s on a 500kbit/s line. User-specific rates are still not possible.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.