Download Fair NAT - Fair NAT Description, Fair NAT Reviews
Contact
 


 

Download

 
Download Now (31K)
GPL (GNU General Public License)
Downloads till now: 2
 
 

Quick search

 



 

Rate this software

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

No. Votes

0

 

Linux

Archiving , Backup , Benchmarks , Boot , Clustering and Distributed Net, Clustering and Distributed Networks , Console Fonts, Diagnostics, Emulators , Filesystems , Hardware , Installer/Setup , Logging , Monitoring , Networking , Operating Systems , Operating Systems Kernels, Operating Systems Linux Distri, Operating Systems Other, Recovery , Shells , Software Distribution , System Administration ,

Windows

Mac

Mobile

Drivers

Scripts - DHTML

Scripts - DHTML (new)

Web Developer Blog

Web Developer Blog (new)

Scripts and Applications

Ajax
ASP
ASP.NET
C and C++
CFML
CGI and Perl
Flash
Java
JavaScript
PHP
Python
XML

Fair NAT

 

Details

Size: 31K
Last Update: 2008-06-03 23:26:45
Version: 0.80
OS Support: Linux
License/Program Type: GPL (GNU General Public License)
Publisher: Andreas Klauer
Price:$0.00
Description:

Fair NAT 0.80 is networking software developed by Andreas Klauer.
Fair NAT is a script for configuring NAT on dedicated Linux routers. This is the home of my linux router shaper script which allows something like fair bandwidth sharing among clients in the local network. The script is not great or anything - please don't expect the holy grail here - I just thought I'd publish it because many people helped me write it and maybe someone has some use for it. I bet there are still lots of things that can be improved. Sorry about the crappy design of this page, I don't have time to put more effort in better looks.



You have a certain number of Clients (User A - User N) in your LAN which are connected by a Switch (or a Hub or BNC) to the Linux Router which is supposed to act as a gateway to the internet. The trouble now is, User B has a lot of downloads running and User C uploads stuff day and night, which leaves User A who only wants to use an interactive SSH shell in the rain, since B and C already use up all bandwidth the internet connection offers.

What we need to do is to share available bandwidth fairly among clients. In order to achieve this, I first tried several searches at Google and Freshmeat. This turned up quite a lot of results, like the Linux Advanced Routing & Traffic Control HOWTO which is a must-read and also contains great scripts, like the Wondershaper for single users. Another great general purpose script I found was HTB.init, which doesn't do anything by default, but gives you an easy way to setup HTB queues. In case you prefer CBQ, there's a CBQ.init too. If you don't know what I'm talking about, read the HOWTO above or continue reading here.

Since I never found a script that did exactly what I wanted, I decided to write my own. It's designed to be an all-I-need script, therefore it does not just setup Traffic Shaping, but Masquerading and Port Forwarding too. In short, it does everything that has to do with IPTables and Traffic Control. I use HTB (Hierarchical Token Bucket) to share bandwidth among clients (one class per client). On top of that I added a PRIO queue to prioritize interactive traffic on a per-user basis. On top of PRIO I set SFQ to treat connections fairly. In version 0.72, experimental support for IPP2P to recognize peer-to-peer traffic was added.

This is the simplified scheme for routing:

HTB class (for bandwidth sharing)
|
-- PRIO (for prioritizing interactive traffic)
|
--- Interactive: SFQ (to treat concurrent connections fairly)
--- Normal: SFQ
--- High-Traffic: SFQ
[ --- P2P: SFQ (if IPP2P support is enabled only) ]

I bet this can still be improved and I'm always interested in ways to do so. In case you want another class structure, this can be done by replacing the parent_class and user_class functions in the script. See CLASS_MODE in Configuration section and the function documentation in the script for details. Feel free to send me your own functions with a short explanation, if you want me to make them available for everybody.

Here's a "real" graphic, which shows the complete qdisc/class structure on $DEV_LAN if you use the unmodified example configuration file. This graphic was created using a hacked version of Stef Coene's show.pl script and GraphViz. Click here to see it, but I warn you: it's quite big. Here's a similar picture, which includes IPP2P support. Note that there are more filter rules (the blue arrows) now which put the filesharing traffic into the user's prio band 4.


Here are some key features of "FairNAT":
This is a variable with a space-separated list of features that should be enabled. Default is all enabled if you dont set this variable.
PROC:
Allow Fair NAT to change some system variables in /proc, like setting /proc/sys/net/ipv4/ip_forward to 1.
MODULES:
Try to load kernel modules for QoS first.
RESET:
Fair NAT will replace all existing iptables rules with a very basic (empty) configuration. Not healthy for firewalls. You can disable this feature to keep the original rules in place. See Firewall Support below.
NAT:
Allow Fair NAT to configure NAT. You could disable this if you prefer to set this up yourself / let your firewall do it.
FORWARD:
Allow Fair NAT to configure Port Forwarding. Same as NAT, you can disable this if you don't need it.
QOS_DOWN:
Shape download traffic. If you know a little bit about traffic shaping and believe that download shaping is completely useless, feel free to disable this.
QOS_UP:
Shaping upload traffic can be disabled also. If you disable this and QOS_DOWN also, you could use Fair NAT for setting up NAT and Port Forwarding only, although that's not really the purpose of the script ;-)
TOS:
Allow Fair NAT to modify the TOS (type-of-service) field of packets. Right now, Fair NAT relies on this TOS field for shaping, so using this feature is highly recommended.


Requirements:
For this script, you need iptables, tc and a QoS-enabled kernel. All these binaries must support HTB (usually the case unless you got a really old installation, in which case you ought to update anyway). I also use several kernel patches, none of which are actually required (unless if you want P2P shaping and some other Hacks). See README.patches in the tarball.
Fair NAT 0.80 supports different languages (including english). It works with Linux.

Downloading Fair NAT 0.80 will take several seconds if you use fast ADSL connection.

Leave a comment




(optional)

What is 7-3?




0 comments


Add to

 Del.icio.us   Digg It   Furl   YahooMyWeb   Blinklist
 

Fair NAT Version History

Product Date Added
Fair NAT 0.80 2008-06-03 23:26:45


Related Software

Devil-Linux
From category: Operating-Systems-Linux-Distri
Devil-Linux 1.2.11 is operating systems linux distri software developed by Devil-Linux. Devil-Linux is a distribution which boots and runs completely from CDROM. The configuration can be saved to a...
bytetraf
From category: Monitoring
bytetraf 1.0 is monitoring software developed by Dawid Michalczyk. bytetraf project is a small tool for monitoring traffic to and from your machine. The following information is printed to s...
CBM BASIC Lister
From category: Emulators
CBM BASIC Lister 2.02 Beta is emulators software developed by Luigi Di Fraia. CBM BASIC Lister is a Commodore related application to convert BASIC programs from their binary form to text. C...
PacketFence
From category: Monitoring
Packetfence is an open-source network registration and worm detection system....
WinShares
From category: Networking
WinShares is a Linux program that scans the network and mounts all Windows and Samba shares available....
ExiBomb Mail
From category: Monitoring
ExiBomb Mail 0.1 is monitoring software developed by Christiaan Frans Rademan. ExiBomb is a system designd to monitor mail traffic on the Exim based MTA server. The interface is developed in PHP. I...
Cisco Monitoring Tool
From category: Networking
Cisco Monitoring Tool 0.3 is networking software developed by Alexander Jeliazkov. Cimon is Perl program wich monitors the load (memory and CPU) on Cisco routers using SNMP, and generates graphics...
Cygwin
From category: Emulators
Cygwin is a DLL which provides a Unix emulation environment for Windows....
Echelog
From category: Monitoring
Echelog 0.6.3 is monitoring software developed by Pavel Kankovsky. Echelog is a distributed system consisting of one or more agents and one or more servers. Agents, distributed on computers...
Aware 0.11.1
From category: Networking
Aware 0.11.1 is networking software developed by Russell Leighton. Aware is a high performance distributed event processing framework built for systems management. It comes with probes for common n...
Conary
From category: Software-Distribution
Conary 1.0.40 is software distribution software developed by Michael K. Johnson. Conary is a distributed software management system for Linux distributions. It replaces traditional package manageme...
GAG
From category: Boot
GAG 4.7 is boot software developed by Raster Software Vigo. GAG (initials, in spanish, of Graphical Boot Manager) is a Boot Manager program. GAG&039;s loaded when the computer is turned on and all...
devfsd
From category: Filesystems
devfsd 1.3.25 is filesystems software developed by Richard Gooch. The devfsd program is a daemon, run by the system boot, which can provide for intelligent management of device entries in the Devic...
ClusterIt
From category: Clustering-and-Distributed-Net
ClusterIt 2.4 is clustering and distributed net software developed by Tim Rightnour. ClusterIt is a collection of clustering tools, to turn your ordinary everyday pile of UNIX workstations into a s...
Fair NAT
From category: Networking
Fair NAT 0.80 is networking software developed by Andreas Klauer. Fair NAT is a script for configuring NAT on dedicated Linux routers. This is the home of my linux router shaper script which allows...
 

Top Downloads

 
1. Canon PIXMA iP1000 Printer Driver
2. Canon PIXMA iP1200 Printer Driver x64 d
3. Canon PIXMA iP1200 Printer Driver
4. Canon PIXMA iP1300 Printer Driver a
5. Realtek ALC/ 262/ 265/ 268/ 660/ 861/ 880/ 882/ 883/ 885/ 888 Audio
6. Canon PIXMA MP210 MP Drivers
7. Canon PIXMA iP1600 Printer Driver
8. Canon i-SENSYS LBP2900 Printer Driver R
9. Asus EZVcr II
10. Canon PIXMA iP1300 Printer Driver c
11. Canon PIXMA MP160 MP Drivers xp64
12. Realtek RTL8100B(L)/RTL8100C(L)/RTL8101L/RTL8139C(L) Driver XP
13. Canon i560 Printer Driver
14. Canon PIXMA MP160 MP Drivers 9xME
15. Canon LaserShot LBP-1210 Printer Driver
16. Realtek RTL8139C(L)+/RTL8139D(L)/RTL8100(L)/RTL8130/RTL8139B(L) Driver
17. SendSong
18. Alcatel SpeedTouch 330/USB
19. Genius VideoCAM Trek
20. We iSMS

DownloadTube Editor Reviews

 
1. Able Fax Tif View
Able Fax Tif View is a FAX, TIF, PDF, EPS, PS, AI, DCX, DICO...
2. Access Manager for Windows
Access Manager for Windows is a feature-rich software that a...
3. Vista User Time Manager
Vista User Time Manager is a powerful software that enables ...
4. River Past Video Cleaner
River Past Video Cleaner is an easy-to-use, flexible, powerf...
5. Tube Explorer Lite
Tube Explorer Lite is a smart tool that will help you browse...
6. Convert MPEG To WMV
EZ MPEG To WMV Converter is an easy to use video conversion ...
7. Convert Video To AVI
EZ Video TO AVI Converter has a powerful media conversion en...
8. A-one Video Convertor
A-one video converter is a powerful tool that offers you an ...
9. ALPass
ALPass is a smart tool that allows you to automatically logi...
10. Smart Pix Manager
Smart Pix Manager is a powerful, feature-rich and user-frien...

Software Reviews Full List



Recent Blog Posts

 
1. Google Chrome – It’s Finally Here. Will A Revolution Begin?
First, it was the rumors. Then, Google announced it official...
2. An Amazing Free Document Processing Software: LyX
The documents management task could be difficult in absence ...
3. DownloadTube Toolbar is Available For Free Download
Recently, we have made available for free download the Dow...
4. A Revolution in Web Browsing: The New Firefox 3.1b1 Already Beats All Speed Records
The latest beta1 release of Mozilla Firefox 3.1 shows majo...
5. Some Little, Nice, Freeware Tools You May Never Know When You'll Need
This time I won’t speak about a single freeware program that...
6. How To Increase The Quality of Your News Articles For Search Engine Spiders
The process of articles publishing is a common practice to...
7. Digg in Press: Tips and Opinions
Regarding Digg social bookmarking service there are many a...
8. Ubuntu Linux and Windows Can Share The Desktop In Absence Of Virtual Machines
Many people asked themselves how to run Ubuntu Linux and W...
9. 2.5 Millions Downloads for FireTune: It Makes Mozilla Firefox To Run With The Speed of Light
It is well known the fact that even the latest version of M...
10. Image Galleries on Autopilot: Instant Gallery Maker
The creation of image galleries ready for web publishing...

Last 20 Scripts

 
1. Tube Spider
Tube Spider allows your visitors to search videos in Youtube
2. Azure CMS
Azure CMS is a universal software product for the developmen
3. Azure Portal
Azure Portal is a social networking script made with PHP pro
4. One Frog
One Frog is a content management system that allows you to u
5. Cigmas CMS
Cigmas CMS is a powerful web content management system for g
6. WebWord CMS
WebWord CMS is a full featured web content management system
7. Marjetica Content Management System
Marjetica Content Management System is a powerful, easy to u
8. Phenotype CMS
Phenotype CMS is a PHP/MySQL - Smarty Content Application Fr
9. Chupix CMS
Chupix is a content management system written in PHP and sto
10. Interspire Website Publisher
Interspire Website Publisher (formerly ArticleLive) is a con
11. Interspire Email Marketer
Interspire Email Marketer (formerly SendStudio) is a web bas
12. Comments RAM
Comments RAM is a lightweight PHP script that allows you to
13. KoolAjax
KoolAjax facilitates data exchange between server-side and c
14. KoolTreeView
KoolTreeView is a unique treeview control for PHP.
15. petitforum
This is a little discussion board which does not use MySQL a
16. eliteCMS
Elite CMS is an ideal content management system for a small
17. TotalW
TotalW is a simple to install and use file manager written i
18. alizer
alizer is a PHP script that analyzes the Apache log file.It
19. dpDebug 2
dpDebug 2 allows you to track down any problem with certain
20. Projector
Projector is a very simple project management system that is