Ugo Viti
2005-Jul-08 21:56 UTC
izbalancing - a GNU/Linux Firewall/Router Bash Script feauturing Incoming/Outgoing MultiHomed/LoadBalanced Subsystem Management
Hello, i wrote a simple but useful (i hope) bash script featuring a easly and fastly configuration method for implementing a Linux Gateway feauturing Incoming/Outgoing MultiHomed/LoadBalanced Subsystem Management. I want share this little script. you can download a copy from the following address: http://www.initzero.it/products/opensource/izbalancing/download/izbalancing just save it in your hd and open it with a text editor (vi, emacs, gedit...) to configure the minimal variables. the file it self contains istructions... just read. don''t forget to ''chmod 750 izbalancing'' :-) Follow the readme contained in the script file: Best Regards ############################################################################################## # What is this? # ============# This bash script allow you to easly and fastly configure a complex Load Balancing Multi Homed Internet Gateway # for inbound and outbound traffic # Key Features: # ============# - Multiple Balanced Default Gateway Configuration # - Load Balanced outgoing connections from LAN to INTERNET connections # - Management of multiple incoming connection from many INTERNET ISP lines to DMZ/LAN Servers # - SystemV compliant script... you can run easly at boot up (like Red Hat, Fedora, SuSE, Mandrake, etc...) # - Automatically discover your local IP addresses... you can change your IP without reconfigure this script, just restart # - Start and Stop Cleanly your MultiHomed Configuration with simple command (izbalancing start|stop|restart) # - Adding new Internet Connections is very easy and fast # - You only must know the TABLE ID to assign to the new line, Ethernet Name of your NIC, and the Router IP Address # Requirements: # ============# - GNU/Linux Firewall running Kernel >=2.6.10 (with iptables module CONNMARK available) # - Bash Shell >= 2.0 # - Standard GNU/Linux coreutils utilities (cat, echo, grep, if, etc...) # - GNU Version of awk and sed utilities # - GNU/Linux Netfilter user space utilities (iptables >= 1.2.11) # - iproute2 utilities # - Two or more Internet connections (also from different ISPs and IP classes) # - An ethernet card for each ISP Router # Tested On: # =========# - GNU/Linux Fedora Core 3 with 2 Internet Connections # - GNU/Linux Fedora Core 4 with 2 Internet Connections # Script Usage: # ============# 1) Configure or add the following variables: # TABLEn = Table number of internet connection ''n'' # IFn = The Ethernet Interface name of internet connection ''n'' # GWn = The Router IP Address of Internet connection ''n'' # 2) Add a line for any internet connection in the izbalancing function # 3) Modify the command "ip route add default equalize nexthop via ..." adding all ISP''s Routers IP # 4) Comment out the iptables rules # 5) Save this file and execute it a boot time (for Red Hat systems you can copy this script in /etc/rc.d/init.d/ directory # and launch ''chkconfig --add izbalancing'') # That''s all... -- Ugo Viti Linux Red Hat Certified Engineer InitZero S.r.l. Via P. Calamandrei 24, 52100 Arezzo Tel. +39 0575 1822155 - Fax. +39 0575 1822156 WWW: http://www.initzero.it E-Mail: info@initzero.it