This major release V6 is all about packaging and the build process itself. Regardless the binary compatibility among the different Linux flavours, we focussed to build and test BalanceNG separately and natively on (and for) each supported Linux distribution.
The Linux distribution landscape has changed a bit in the meantime, therefore we are glad to also natively support two recent RHEL9 derivatives, Rocky Linux 9 and AlmaLinux 9. I think they both will play a significant role in the upcoming years.
The macOS port is mainly kept and maintained because of personal interest and with current R&D projects in mind (most notably Inlab Scheme). There’s otherwise no customer demand that we are aware of.
There are two package formats available for each OS platform:
Here’s the list of supported distributions:
Operating System | Exact Build (and Testing) Platform |
---|---|
RHEL7 | Red Hat Enterprise Linux 7.2 x86_64 |
RHEL8 | Red Hat Enterprise Linux 8.8 x86_64 |
RHEL9 | Red Hat Enterprise Linux 9.2 x86_64 |
Rocky9 | Rocky Linux 9.2 x86_64 |
Alma9 | AlmaLinux 9.2 x86_64 |
Debian11 | Debian 11.3.0 amd64 |
Debian12 | Debian 12.1.0 amd64 |
Ubuntu20 | Ubuntu 20.04.6 LTS amd64 |
Ubuntu22 | Ubuntu 22.04.3 LTS amd64 |
macOS | macOS 12 x86_64 |
BalanceNG is not supported (and not available) for Apple Silicon M1/M2.
There are no functional changes compared to the latest V5 release.
Relesae 5.020 is the last of BalanceNG release branch V5.
BalanceNG V5 integrates the DB1-Lite IP location database from ip2location.com replacing the prior two supported database sources (which are no longer available).
The PDF manual documentation reflects the (small) command change, basically there’s now only one file containing IPv4 and IPv6 data and therefore only one single command “ipbd” to load the complete database from a single file into memory.
For the procedure to upgrade the database file take a look here .
Solaris (Intel and SPARC) related code sections have been removed from BalanceNG V5 (all customers with active support plans have finished migration).
The following packages are available:
BalanceNG is currently not supported on Apple Silicon M1/M2.
Relesae 4.132 has been the last of BalanceNG release branch V4.
The IPv4 and IPv6 location databases have been updated. The license revocations have been updated.
The IPv4 and IPv6 location databases have been updated. The ASCII-art in the copyright notice has been removed. The license revocations have been updated. The manual has been updated accordingly.
A shared library issue with the Debian/Ubuntu 64Bit package has been resolved.
A shared library issue with the Debian/Ubuntu 64Bit package has been resolved.
An issue for the macOS release has been fixed, upgrade is recommended on macOS. The license revocation list has been updated.
The Mac OS release is now for Mac OS 10.14 (Mojave) and signed, the Mac OS tarball distribution is no longer available. The BalanceNG V3 release branch will no longer be updated, please move to BalanceNG V4 at the next opportunity (and contact us in case of any problems or questions). The primary device list for the Debian distribution has been updated fixing some rare problems. The license revocation list has been updated.
License maintenance release with no functional changes.
The IPv4 and IPv6 location databases have been updated.
BalanceNG V4 is now a STABLE release. Any further feature enhancements will be applied to the development branch BalanceNG V5 wich has been split internally.
The session table entry data structure size has been increased in preparation for upcoming feature enhancements with BalanceNG V5. The license revocation list has been updated.
The parameter haswitch:timeout has been introduced allowing to configure the haswitch forwarding table entry timeout. The haswitch:isolate boolean parameter and functionality has been introduced. This feature allows to isolate LANs on interfaces with scope “internal” in order to prevent any communication among them (within the “haswitch” module). The manual has been updated accordingly.
An issue with the snmpd interface has been fixed avoiding a possible deadlock in some rare cases. Upgrade is recommended if snmpd is used to access the BalanceNG MIBs.
The xnf0 interface has been added to the list of recognized main interfaces on Solaris.
License maintenance with no functional changes. The manual has been updated.
Minor formating improvements have been implemented for “show module lfilter”.
The module “switch” is now discontinued and has been removed. The module “haswitch” has been implemented (fully replacing and extending the former “switch” module). The directive “interface N switching” has been implemented allowing to specify if an interface is being considered by the “haswitch” module (enabled/disabled). The directive “interface N scope” has been implemented allowing to specify the orientation (internal/external) of a specific interface. The module “lfilter” has been implemented allowing a location based filtering of IPv4 and IPv6 traffic. The BNG prompt now instantly shows the VRRP status by showing either “MASTER” or “backup” on the command line interface (CLI) prompt. TCP offloading is now automatically disabled if “ethtool” is present on Linux. The manual has been updated accordingly.
A locking problem in the area of command interface / backend communication has been fixed. Upgrade is recommended.
There’s now an error message if the “network N mask6” configuration directive is called with an invalid IPv6 netmask specification. The manual has been updated clarifying the usage of the “network N mask6” command.
A new distribution method “server N method first” has been implemented allowing to direct new sessions to the first operational target. If the IP location databases are loaded and the location group mechanism is active, the method “first” takes the originating location into account. The IPv4 and IPv6 location databases have been updated. The manual has been updated accordingly.
A buffer overflow condition in the SNMP interface has been addressed and fixed. Before BNG could theoretically crash in some cases. Upgrade is recommended.
The “bng -V” command line option now allows to display the vnodeid without starting a BalanceNG instance. The manual has been updated accordingly. The license revocation list has been updated.
An issue with the server N ftimeout feature has been resolved (fast session table entry timeout on TCP connection close). Upgrade is recommended if this feature is being used.
A multithreading related locking problem with the bngsync session table synchronization has been resolved. Upgrade is recommended.
A realtime event management functionality has been implemented in preparation for upcoming rate controlling and protection modules. The “eventinterval” parameter has been added. The commands event, evcount, evtime, evrate, evfix and exunfix have been implemented. The command “show module " now allows to display module specific information. The “interface modules” directive now allows to specify an interface specific module chain. The “imc” module has been implemented which processes the interface specific module chain (at the place where inserted in the global module chain). The manual has been updated accordingly.
The IPv4 and IPv6 location databases have been updated.
Forwarding table updates are now ignored if a MAC address appears on different connected interfaces simultaneously.
A packaging problem for macOS has been fixed (the bng and bngagent binaries now install in /usr/local/bin).
License maintenance with no functional changes.
Several similar buffer overflow vulnerabilities in the BNG CLI command parsing have been addressed and fixed. Before an attacker or malfunctioning script with local CLI access could crash BNG by sending crafted commands. Upgrade is strongly recommended.
The target and backup lists of a virtual server may now also be altered when the server is in “enabled” state.
Minor spelling issues have been fixed. The license revocation list has been updated. The manual has been updated.
The server N udpdup configuration directive and functionality has been added. This allows UDP IPv4 and IPv6 packet duplication to multiple virtual servers. The manual has been updated accordingly.
The server N tcprefuse configuration directive may now also be applied on virtual servers in registered and enabled states. The server N tcpreset configuration directive and functionality has been implemented, thus allowing to terminate currently active TCP connections to a virtual server (IPv4 and IPv6). The new server N tcpreset configuration directive may also be applied on virtual servers in registered and enabled states. The manual has been updated accordingly.
The DSR / Proxy Dual Mode functionality has been implemented. The manual has been updated accordingly.
License maintenance with no functional changes.
The boolean parameter tcphalfopen and functionality has been implemented. If set to 1 (active and default), all tcpopen and tcpopen6 health checks perform a TCP half-open health check by sending a RST packet immediately after a SYN-ACK packet has been received from the target service. The “network N syncpeer” directive has been included in the bng.private configuration file and is processed accordingly. An issue with unspecified IPv4 network data has been fixed: A netmask of 0.0.0.0 is now correctly exempted by the matching algorithm. The manual has been updated accordingly.
This release supports arbitrary primary interface names including the “consistent network device naming” scheme as introduced by RHEL7/CentOS 7.
This is the initial release of BalanceNG V4. The nodeid and vnodeid for BalanceNG V4 differ in the last octet. The module classic has been removed. The configuration directive “server N portrel” has been removed. The parameter “multithreading” is always enabled (1) by default.
Relesae 3.642 has been the last of BalanceNG release branch V3.
An issue with the snmpd interface has been fixed avoiding a possible deadlock in some rare cases. Upgrade is recommended if snmpd is used to access the BalanceNG MIBs.
The xnf0 interface has been added to the list of recognized main interfaces on Solaris.
License maintenance with no functional changes. The manual has been updated.
A locking problem in the area of command interface / backend communication has been fixed. Upgrade is recommended.
There’s now an error message if the “network N mask6” configuration directive is called with an invalid IPv6 netmask specification. The manual has been updated clarifying the usage of the “network N mask6” command.
The IPv4 and IPv6 location databases have been updated.
A buffer overflow condition in the SNMP interface has been addressed and fixed. Before BNG could theoretically crash in some cases. Upgrade is recommended.
The “bng -V” command line option now allows to display the vnodeid without starting a BalanceNG instance. The manual has been updated accordingly. The license revocation list has been updated.
An issue with the server N ftimeout feature has been resolved (fast session table entry timeout on TCP connection close). Upgrade is recommended if this feature is being used.
A multithreading related locking problem with the bngsync session table synchronization has been resolved. Upgrade is recommended.
License maintenance with no functional changes.
The IPv4 and IPv6 location databases have been updated.
A packaging problem for macOS has been fixed (the bng and bngagent binaries now install in /usr/local/bin).
License maintenance with no functional changes.
Several similar buffer overflow vulnerabilities in the BNG CLI command parsing have been addressed and fixed. Before an attacker or malfunctioning script with local CLI access could crash BNG by sending crafted commands. Upgrade is strongly recommended.
Minor spelling issues have been fixed. The license revocation list has been updated. The manual has been updated.
The internal log and startuplog buffers have both been increased to 100 lines. The license revocation list has been updated.
License maintenance with no functional changes.
The license revocation list has been updated.
An issue with unspecified IPv4 network data has been fixed: A netmask of 0.0.0.0 is now correctly exempted by the matching algorithm.
The “network N syncpeer” directive has been included in the bng.private configuration file and is processed accordingly.
This release supports arbitrary primary interface names including the “consistent network device naming” scheme as introduced by RHEL7/CentOS 7.
The ixgbe0 interface has been added to the list of recognized main interfaces on Solaris.
Certain unnecessary symbolic links are no longer created during package installation (applies to RHEL/Centos .rpm package only).
The IPv4 default location database has been moved to the constantly maintained version from software77.net. The IPv6 location database has been updated from the same source. A parsing issue with the latest IPv6 location database has been resolved. The unmaintained IPv4 location database file from WebHosting.info is no longer included.
The 32 bit Linux packages are statically linked as before release 3.607. The manual has been extended to include interface offload disable instructions for Linux.
A non specified UDP checksum of value 0 is now correctly forwarded. Upgrade is recommended for non-DSR setups load-balancing UDP IPv4/IPv6 traffic where non specified (zero value) checksums may occur. SUSE .rpm packages are no longer provided, installation needs to be done from the tarball distribution packages (as specified in the BalanceNG manual). The nodeid computation mechanism on Linux systems has been further extended.
The nodeid computation mechanism on Linux systems has been extended.
Old style BalanceNG V2 session table synchronization packets are now accepted thus allowing live/onsite migration from BalanceNG V2 setups (including legacy TKLB Thomas Krenn Load Balancer hardware).
A new parameter “xstlog” now allows to enable logging of session table entry creation for debugging purposes. The manual has been updated accordingly.
This release reflects our new company name “Inlab Networks”. The manual has been updated accordingly.
An issue with the source MAC address used with IPv6 Neighbour Solicitation Messages has been resolved.
The license revocation list has been updated.
The configuration directive and functionality “server N tcprefuse” has been added allowing to configure connection refusal for TCP over IPv4 and IPv6. The manual has been updated accordingly.
The “imsctl” control interface (as invoked by “bng imsctl”) is now working as expected.
The presence of a “network virt” or “network virt6” address is no longer required for VRRP v3. The output of “show vrrp” now shows the VRRP version being active and the transport IP protocol.
Processing of incoming ICMPv6 “Packet Too Big” messages has been added to the tnat module. An OS X “installer” package is now available for direct installation on Mac OS X. The manual has been updated accordingly.
BalanceNG is available the first time for Mac OS X 10.9 (Mavericks) + 10.10 (Yosemite). The manual has been updated accordingly.
BalanceNG now comes with an “automatic” 30 day trial license (extra licensing steps are no longer required). The “free basic license” has been discontinued (but legally remains valid for older installations).
An issue with session table lookups concerning multiple referenced targets in non-DSR setups has been resolved.
An issue with target-side session handling has been resolved, multiple referenced targets are now handled correctly in all cases. Upgrade is recommended (only) for setups using the “target N screate enable” directive and functionality.
An issue with the session table lookup in the area of target-side session handling has been fixed. Upgrade is recommended (only) for setups using the “target N screate enable” directive and functionality.
An issue with the SIP sessionid handler has been resolved, upgrade is strongly recommended for setups using the “server N sessionid sip” directive and functionality.
The command “arp-insert” has been implemented allowing the simulation of ARP/ND6 entries for testing purposes. The command “pcap-search” has been implemented allowing to search for specific textual contents in pcap capture files for testing and analysis. The reload functionality has been improved, working with “unregister target” and “purge target” is no longer necessary in specific cases. The manual has been updated accordingly.
A bngsync enabled backup node now always responds with “old-style” VRRP v2 ACK packets to “old-style” VRRP v2 SYNC packets. This allows a live upgrade with the purpose to enable the bngsync synchronization protocol on both nodes.
A new -c option now allows to load a specific configuration file on startup. If a backup receives VRRP v2 non standard synchronization packets from the master, a warning message is only reported once (e.g. during an upgrade procedure enabling the bngsync protocol). The manual has been updated accordingly.
BalanceNG now allocates needed MAC addresses out of the IEEE registered MA-L (MAC Address Large) pool assigned to Inlab Networks GmbH. Enabling a target from prior “softdisabled” state does no longer restart ARP/ND6 resolution. If a change of target NIC or hardware is required, it is now recommended to put the target into “disabled” state before. The manual has been updated accordingly.
A bug with the “target N screate” feature has been resolved, target initiated sessions are now working (again) as expected. An issue with the sessionid_sip handler has been resolved, SIP call-IDs may now also be specified as “Call-Id:” within the SIP UDP packet (with a lower case “d”).
The tarpit module and functionality has been implemented allowing to set up a high available IP level tarpit for IPv4 and IPv6 networks in parallel to any additional load-balancing functionality. The directive “network N tarpit” has been added to allow enabling of the tarpit functionality for selected networks. The parameters “tarpittrapto” and “tarpitrealto” have been added controlling the timeouts of tarpit session table entries. A new online example explains the basic setup in 3 steps: Example 18 (Implementing a high available tarpit for IPv4 and IPv6 with the tarpit module). The manual has been updated accordingly.
VRRP v3 according to RFC 5798 is now the default master/backup HA negotiation protocol (by setting the default of parameter “vrrpversion” to 3). In order to enable session table synchronization the bngsync functionality and protocol now needs to be configured as shown in this example: Example 17 (Activating Session Table Synchronization with bngsync). The prior use of session table synchronization with non standard VRRP v2 packets is now deprecated (but still functional as before). The default value of parameter “sessionsyncack” is now 1 (active), thus enabling synchronization acknowledgements automatically. The default value of parameter “sessionautoresync” is now 1 (active), the backup node automatically requests a resynchronization of the session table on restart. A “name” column for the output of “show servers” has been added. A bug with parameter settings for the upcoming tarpit module and functionality has been resolved. The manual has been updated accordingly.
A command parsing issue with the “arp” command has been fixed, IPv4 and IPv6 addresses as are now accepted as expected. An issue with misleading tp_drops packet statistics display on Linux after a reload has been fixed (as shown by “show interfaces”). The error message on CLI after a “reload” with a fixed configuration is now cleared as expected. A minor title display formatting bug on “show session
Thread execution of packet processing threads is now halted during a configuration reload in multithreading mode (set multithreading 1). A new parameter “sweeponreload” allows to exempt the processing of the session table during pass 2 of the reload if set to 0. The default of this parameter is 1 (active). Additional log messages have been added to mark the begin and the end of session table processing during reload. IP address conflict messages are no longer reported if a node happens to see its own gratuitous ARP or ND6 requests for some reason. The manual has been updated accordingly.
A licensing issue with the “full functionality testing license” has been resolved.
An issue where VRRP advertisements were delayed during a “reload” on the current VRRP master with very large session tables has been resolved. Upgrade is recommended if the reload functionality is used on the current VRRP master and the session table contains usually many more than 500,000 entries.
VRRP v3 according to RFC 5798 has been implemented, if the new parameter “vrrpversion” is set to 3 (“set vrrpversion 3”), BalanceNG talks VRRP v3 in order to negotiate VRRP mastership. A new parameter “vvrpv3ip” has been introduced: If set to 4 and vrrpversion to 3 at the same time, VRRP v3 advertisements are sent over IPv4. If set to 6, VRRP v3 advertisements are sent over IPv6. If set to 5 (default), VRRP v3 over IPv6 is used if possible, otherwise IPv4. If the new parameter “vrrpversion” is set to 3 and session table synchronization is needed at the same time, the already existing directive “network N syncpeer” needs to be applied in order to activate the bngsync protocol over IANA registered port 10439. The “bngfilt” STREAMS module for Solaris has been updated to release 3.12 and now supports the MAC addresses for VRRP v3 (IPv4 or IPv6) as well. The manual has been updated accordingly. There are no BalanceNG configuration changes necessary to maintain compatibility to prior releases.
The bngsync session table synchronization protocol has been implemented. The following example shows how to setup bngsync for IPv4 or IPv6: Example 17: Session Table Synchronization with bngsync. A new parameter “bngsyncport” has been added defining the UDP port being used for the bngsync protocol (defaults to the IANA registered port 10439). A new directive “network N syncpeer” has been added to allow the configuration of the synchronization peer. The command “bngsyncudptest” has been implemented to allow manual and automatic testing of UDP packet generation. The command “bngsynctest” has been implemented to allow manual and automatic testing of bngsync UDP packet generation. The “show bngsync” CLI command allows to inspect the current bngsync status. Solaris file descriptors are now set to “non blocking” thus fixing a logging issue. The GNAT port management has been reimplemented thus fixing a failover issue with GNAT state synchronization. A bug with the internal command management has been resolved fixing an issue with snapshot generation (a light snapshot is now generated by default). The snapshot generation has been extended to include “show bngsync” information. The manual has been updated accordingly.
A major bug affecting multithreading mode has been resolved, upgrade is strongly recommended if BNG is operated in multithreading mode (with “set multithreading 1”). Releases prior 3.532 with this issue present may generate invalid synchronization packets and may crash thus affecting stability. The manual has been updated.
A bug with the GNAT implementation has been resolved, upgrade is recommended if GNAT (BalanceNG V3 NAT) is in use. A bug with location based load balancing has been resolved, a location group may now contain up to 128 characters. The manual has been updated and contains already the description of the upcoming bngsync protocol (UDP port 10439).
A bug with addressing VRRP represented targets has been resolved (Solaris version). An additional log and syslog message is generated when a target is enabled from the “softdisable” state. The manual has been updated.
A bug with the generation of session table synchronization packets has been fixed, the IP packet length now contains the correct value.
A new experimental parameter “noftupdate” allows to disable all updates of the forwarding table. A bug with the “bng reload” functionality has been fixed. The manual has been updated accordingly.
The sessionid handlers “src+tag” and “dst+tag” have been implemented together with the “sessiontag” server and target directives. This functionality allows to group multiple ports being handled together by the same sessiontable entry. The manual has been updated accordingly.
A mutex locking problem with the “reload” functionality has been resolved.
The gnatEntries SNMP object allows access to the total number of GNAT (generic NAT) table entries. The “gnatdlimit” paramter maximum has been set to 100000. The license revocation list has been updated. The manual has been updated accordingly.
IPv4 path MTU discovery (PMTUD) support has been implemented for non-DSR setups. An extra syslog message is generated when a target is placed into softdisabled mode.
ICMPv6 “Packet Too Big” Messages are now also properly forwarded to target servers not in DSR (Direct Server Return) mode.
The process synchronization has been optimized also for single- and dual-core machines.
The IPv4 and IPv6 location databases have been updated. The maximum number of in-memory location database entries has been increased.
The license revocation list has been updated.
The SIP Call-ID long and short forms now generate the same session identifier.
The SIP Call-ID short form “i:” is now accepted by the SIP sessionid handler.
ICMPv6 “packet too big” messages are now forwarded to all target servers.
An issue with command parsing has been resolved.
A major issue with the “tcpopen” health-check in multithreading mode has been resolved.
The thread synchronization debugging library has been disabled to optimize for speed.
Two new SNMP Objects have been implemented (sessionsCreated and serverSessionsCreated), the instance specific MIBs have been extended accordingly . The “snapshot” command now generates a snapshot without a full session table dump. A new “snapshot-full” command has been implemented, the command “snapshot-light” is now a synonym for “snapshot”. The commands “dump” and “no dump” are no no longer available in multithreading mode (“set multithreading 1”). The “show uptime” command now additionally displays the uptime in hours, minutes and seconds. A new parameter “pthreadstacksize” has been introduced. Several issues with the multithreading scheduler have been resolved, upgrade is recommended for all setups being operated in multithreading mode. The license revocation list has been updated. The manual has been updated accordingly.
The output of “show threads” is now included in the snapshot information. A new command “show maxbucket” has been implemented. The display of the length of the largest bucket list has been moved from the command “show stinfo” to the new “show maxbucket” command. Some unnecessary warning messages in the mutithreading scheduler are now supressed. The license revocation list has been updated. The manual has been updated accordingly.
A new multithreading scheduler has been implemented (activated by “set multithreading 1”). The new directive “interface N threads” controls the number of threads per interface (if the multithreading scheduler is active). A new informational command “show threads” shows thread information (if multithreading is activated). A minor bug has been fixed, server “-1” is no longer reported when there’s no 1:1 server/target relationship. A new module “crossover” allows the implementation of a virtual crossover cable (Linux only). The manual has been updated accordingly.
Specific LOG_INFO syslog messages have been introduced on bng start, stop and reload. The host operating system architecture is logged on startup. Special Solaris DLPI timing issues have been resolved. The Solaris bnx0 interface is now recognized as “primary interface”. A “bng reload” is now refused after a vrrp priority change.
An issue with “ICMP Fragmentation Needed” packet forwarding has been fixed. “bng stop” now uses SIGTERM, SIGHUP and SIGKILL in that order. A new command “inject” allows packet injections from a PCAP file for debugging and QA purposes.
Outdated session table entries are now reclaimed very fast on an idle BalanceNG system. The rate per second is controlled by the new parameter “sessiongclimit”.
“ICMP Fragmentation Needed” packets are now forwarded to all associated targets of a virtual server (DSR mode only).
The command “rmt” (remove target session table entries) now accepts a comma separated list of targets. The server plugin implementation and protocol now supports IPv6. A new parameter “vrrpstateplugin” has been introduced, if set to 1 (active), a VRRP state change is reported to all active server plugins (see manual for protocol semantics). The default module chain is now “vrrp,arp,ping,hc,master,slb,tnat,nat,rt”, to obtain BalanceNG V2 backwards compatibility the module chain “vrrp,classic” needs to be set explicitly. Running BNG V3 on TKLB legacy hardware now requires an additional action and a valid support contract (BNGSUP or BNGHPS). Please contact us specifying your TKLB serial number or support identifier. The manual has been updated accordingly.
A fourth CLI command frontend has been added (bng imsctl). The command “rms” has been implemented allowing the removal of one specific session table entry performing one single session table lookup. The command “rmt” has been implemented allowing the removal of all session table entries belonging to a specific target. The manual has been updated accordingly.
IPv6 Neighbor Solicitation messages are now properly sent to the solicited-node multicast address according to RFC-4861 and RFC-4291. Before, they had been sent wrongly to the unicast IPv6 address, which made some devices not to respond to those messages. Updating is recommended if BNG is deployed in IPv6 environments.
The pthread stacksize is now initialized to be 200KB for each helper thread. As a result, lowering the “ulimit -s” settings is no longer necessary on Linux.
An automatic session table resync has been implemented. If the parameters “sessionautoresync” and “sessionsyncack” are both set to 1 (active), then the current VRRP master resyncs the session table automatically to a freshly started or restarted VRRP backup node. The manual has been updated accordingly.
A major issue with the “reload” functionality has been solved (all target session counters have been reset to 0 on reload). Upgrade is recommended if the “reload” functionality is used.
Some log messages are now only shown with “set debugscope 8”. The directive “target
An issue with server specific session timeout handling has been resolved.
The gcc optimization for the Solaris build has been reverted to its original state.
The bngfilter Solaris STREAMS module low water mark and the high water mark have been increased to 128 KB and 1024 KB respectively. The Solaris binaries are now compiled with gcc -O3 option. A small issue with unwanted side-effects after a unsuccessful “reload” command has been resolved. The IPv6 source MAC-address in DSR mode is now also changed to a node specific address if there’s no “virt6” address specified.
An issue with session table synchronization during target reassignment has been resolved. Minor textual issues have been resolved.
BalanceNG now sets RLIMIT_STACK to 1024K on Linux systems, thus limiting the consumed stack size per thread. The reload command now clears the ARP/ND6 cache only for changed target IPv4 and IPv6 addresses.
“bng stop” now uses the SIGTERM signal instead of SIGHUP in order to improve CFEngine integration. The session table garbage collection is now faster on busy systems and “show sessions” does no longer display outdated entries. A new “-e” command line option makes all interactive frontends (bng control/auxctl/cmdctl) to terminate with EX_TEMPFAIL if an invocation is already running for the same BNG instance. A “bng reload” now completes without moving the targets to “down” state for a short period of time. The manual has been updated accordingly.
A major issue with gratuitous ARP and IPv6 NAs in conjunction with multiple connected VLANs has been resolved. The manual has been updated.
A minor bug with the “reload” functionality has been resolved. The manual has been updated.
The parameter “sessionsyncetype” has been added allowing to change the Ethertype of session synchronization packets to a specific, non-standard value. The manual has been updated accordingly.
The boolean parameter “stickytarget” has been added controlling the update of the forwarding table for known targets. The manual has been updated accordingly.
A minor bug with warning messages issued by the “check” command has been resolved. An additional warning message is reported to the log if all targets of a server become inoperational. The manual has been updated accordingly.
A major bug with the internal parameter table has been fixed, upgrade is strongly recommended.
Session table entry synchronization has been added introducing the new parameters sessionsyncack, syncackbdelay, syncackmaxps, syncackresend and syncackwsize. The commands “resync”, “show nous” have been implemented also in the context of session table synchronization. The output of the commands “show stinfo” and “show sessions” has been extended accordingly. The session table testing command “stfill” has been implemented. Minor bugs with the “reload” command and functionality have been resolved. The manual has been updated accordingly.
A RPM package for Red Hat RHEL6 and CentOS 6 (64Bit) is now additionally available. A new “sessionload” command now allows to import session table contents that have been exported with “sessiondump” before. The “reload” command may now also be started with “bng reload” directly from the shell. Several bugs with the “reload” command and functionality have been resolved. The manual has been updated accordingly.
A “reload” command has been implemented allowing to reload the complete server/target-relationships while valid session table entries are maintained. The manual has been updated accordingly.
Gratuitous ARP requests are now accepted initiating an ARP table update. A bug with VRRP advertisements not updating the internal switch forwarding table has been fixed.
The default value of the parameter “psvrelearn” is now 0 (disabled).
The igb0 interface is now accepted as primary interface on Solaris.
The internal buffers of the Solaris STREAMS module (“bngfilt”) have been increased to 512KB. The “strict routing” functionality has been included in the “slb” and “llb” modules. With this, a packet duplication effect is now fixed per default when BalanceNG is connected to VMware vswitches. The manual has been updated accordingly.
A message queue has been implemented for the “bngfilt” STREAMS module coming with BalanceNG for Solaris. Upgrade is strongly recommended for SPARC systems with poor single thread performance (like UltraSPARC T1 and T2).
A “interface N access” directive has been introduced allowing to specify “raw” (default) and “tap” (Ethertap) access. A “tap” interface name may now be chosen freely as necessary or desired. The “tap” interface access method is not available on Solaris platforms. The “bngfilt” STREAMS module as installed on Solaris platforms does now also support GLDv3 M_MULTIDATA messages. The manual has been updated accordingly.
Ethertap (“TAP”) virtual network kernel devices are now supported on Linux operating systems through the new special interface names “bng0” up to “bng9”. The new directive “interface N init” allows to initialize BalanceNG interfaces on startup executing arbitrary operating system commands. The manual has been extended and updated accordingly.
The link detection for “ce” interfaces on Solaris/SPARC has been fixed. Experimental SCTP support has been added for DSR topologies (module “slb”). The manual has been extended and updated accordingly.
The “light” licensing functionality (BNGLNL) has been implemented. The manual has been extended and updated accordingly.
The directive “server N ftimeout” has been implemented allowing to quickly remove session table entries when the associated TCP connection has been terminated. The manual has been extended and updated accordingly.
The “tnat” module now only processes packets that are designated to the own instance. The manual has been updated accordingly.
A new “tnat” module has been implemented allowing 1:1 NAT for IPv4 and IPv6. The manual has been updated accordingly.
The BalanceNG agent (bngagent 3.10) now exits with a warning message if it’s not capable to create a server socket. The output of “show nat” has been improved. The manual has been updated accordingly.
The ARP address resolution for TNAT entries is now correctly provided in all cases (module “classic”).
The TNAT functionality implemented with module “classic” is now working again with the default parameter settings.
A bug in the “slb” module has been solved: The SNAT proxy mode (activated by “server N proxy enable”) is now working correctly when accessed externally through a routing device.
The IPv4 location database has been updated to the latest release (ip-to-country.csv). The IPv6 location database has been updated to the latest release (IpToCountry.6R.csv). IPv4 ICMP TTL exceeded packets are now silently discarded (modules “classic” and “arp”). An additional “interface” column has been added to the output of “show networks”.
The SNMP MIBs have been revised and are now passing smilint without any problems (severity level < 4).
An initialization bug with handling of multi-instance MIB SNMP requests has been fixed. Upgrading is recommended if multi-instance MIBs are in use.
The sessionid handlers “src+dstport” and “dst+srcport” have been added. The manual has been updated accordingly.
BalanceNG V3 Debian/Ubuntu packages and Linux “Tarball” distributions are now also available for amd64 (x86-64) architectures.
The output of “show networks”, “show servers” and “show targets” has been beautified and extended to show IPv6 settings (if present). The manual has been revised and updated accordingly.
A minor bug has been fixed (A “disable interface” of an interface with no link detected caused bng to consume unnecessary CPU cycles). The manual has been updated accordingly.
The parameters “hashbytes4” and “hashbytes6” have been introduced, allowing to specify the number of bytes considered by the “hash” distribution method (IPv4 and IPv6). The manual has been updated accordingly.
The MAC address format used to represent non VRRP IPv6 addresses has been changed. If the parameter “bngfilter” is active on Solaris systems (being the default), multiple instances may now share the same physical interface even for IPv6 traffic. The manual has been updated accordingly.
The new directive “target N autodisablecount” now allows to take a target down after a specific number of failures (if “target N autodisable” is active as well). The manual has been updated accordingly.
BalanceNG V3 has now been declared stable (production) with a few minor cosmetic changes. The manual has been updated accordingly.
The new command “show startuplog” now displays the first startup log messages. The output of “show startuplog” is also included in the service snapshot. The new command “log message” allows to send an arbitrary message to the BalanceNG log. The manual has been updated accordingly.
Proxy mode or SNAT (Source-NAT) has been implemented in the SLB module for IPv4 and IPv6, introducing the new configuration command “server N proxy enable”. Proxy SNAT state replication from the VRRP master to the VRRP backup has been implemented. The manual has been updated accordingly.
The node specific network IPv6 address is now maintained if found in the bng.private configuration file. The “save private” command has been updated as well.
The ipallow and ipdeny commands and modules have been implemented to allow simple filtering of IPv4 and IPv6 packets based on the source address. The manual has been updated accordingly.
An IPv6 MAC address conflict between different instances on the same node has been fixed. Upgrade is recommended if multiple instances are used in conjunction with IPv6.
The “target N script6” directive has been implemented allowing to invoke an additional IPv6-related external health check script. The manual has been updated accordingly.
The variable $ipaddr6$ has been made available to the target script functionalities (script, alert and upalert). The manual has been updated accordingly.
A Solaris problem with code optimization has been solved (by using a lower optimization level). The “ldns” Library has been upgraded to release 1.6.6.
The internal packet buffers have been extended, jumbo frames with a MTU of 9000 bytes are now fully supported.
A serious bug in the checksum calculation function for UDP/IPv6 has been fixed. Upgrading is strongly recommended if IPv6 functionality is used.
The OEM licensing now additionally recongnizes the upcoming new Thomas-Krenn Load-Balancer hardware.
IPv6 location support has been implemented. A recent version of the IPv6 range .csv file (IpToCounty.6R.csv) is now part of the BalanceNG V3 distribution. The command ipdb6 has been implemented to load the IPv6 in memory location database from a 5-column .csv file (as in IpToCounty.6R.csv). The “locate” command has been extended to accept IPv6 addresses. The location group mechanisms have been extended to support IPv6 load balancing decisions based on the location of the IPv6 client IP address. The manual has been updated accordingly.
The IPv6 mask6 directive is no longer restricted to be on byte boundary. The link detection mechanisms for Solaris on SPARC have been improved for e1000g and nxge interfaces. The manual has been updated accordingly.
The “interface N upalert” and “interface N alert” directives have been extended to replace a special $name$ variable by the interface name. The manual has been updated accordingly.
The “llb” (Link Load-Balancing) module has been implemented allowing load balancing of IPv4 and IPv6 traffic over multiple links (e.g. DSL-Lines). NAT is also automagically provided for both IPv4 and IPv6. The ping,ping6,tcpopen,tcpopen6,agent and agent6 internal health checks now allow an additional, prepended parameter being the IP address (4 and 6) of an alternate target. This has been implemented specifically for the “llb” link load-balancing module. The manual has been updated accordingly.
The “nat”-module has been implemented allowing IPv4-IPv4 and IPv6-IPv6 network address translations. The module handles UDP, TCP and ICMP ECHO/REPLY (ping) traffic for both IPv4 and IPv6 and synchronizes the NAT states from the master to the backup accordingly. The manual has been updated accordingly.
A native IPv6 TCP-open healthcheck has been implemented (“target N tcpopen6”). The manual has been updated accordingly.
The “interface N upalert” and “interface N alert” script directives have been added allowing to call external scripts in case of interface link availability and loss, repectively. Solaris vmxnet3s0 interfaces are now recognized. The manual has been updated accordingly.
Several IPv6/VRRP related bugs in the “slb” module have been resolved. The manual has been updated accordingly.
The “slb” module has been extended to support IPv6 SLB in multiple legged, non DSR mode. The “rt” module has been added to allow IPv4 and IPv6 routing if present at the end of the module chain.
The session-id handlers “src+ports” and “dst+ports” have been added allowing session-ids to be based on both the source and destination port (valid for both IPv4 and IPv6). The manual has been updated accordingly.
The BalanceNG agent (“bngagent”) has been rewritten fixing several IPv6 related bugs. The directive “target N agent6” has been implemented now supporting agent communication over UDP/IPv6. The manual has been updated accordingly.
The module chain “vrrp,arp,ping,hc,master,slb” has been implemented supporting IPv6 SLB (Server Load-Balancing) in DSR (Direct Server Return) mode.
The following new configuration directives have been implemented:
network N mask6
network N real6
network N virt6
gateway ipaddr6
gateway nd6
gateway ping6
server N ipaddr6
target N ipaddr6
target N ping6
The manual has been updated accordingly.
A bug with link detection on Solaris SPARC systems has been fixed. The internal ARP handling has been extended to support IPv6 NDP (Neighbour Discovery Protocol).
A new parameter “sessionsyncbup” now allows to control the speed of the session table garbage collection when the node is in VRRP “BACKUP” state. The IP-to-country database has been upgraded to the latest release. The manual has been updated accordingly.
A new OID tree has been implemented supporting SNMP access to all active BalanceNG instances. A set of MIBs has been implemented accordingly. The “bng -i” option has been removed since it’s no longer needed. IPv6 support has been added to the open source BalanceNG agent “bngagent”. The manual has been updated accordingly.
The configuration directives “macallow” and “macdeny” have been added together with the matching modules.
A new server specific session counter has been added, server sessions are now reported correctly using SNMP. A bug with method “rr” (round robin) and “server N failover backup” has been resolved. A special SNAT functionality has been added (not yet documented).
A major bug in the “slb” module has been fixed (missing packet forwarding on the backward path in non-DSR setups), upgrade is recommended.
The module chain “vrrp,arp,ping,hc,master,slb” is now available for the first time. A UDP SIP Call-ID session handler has been implemented for the “slb” module. The commands “target N sessionid sip” and “server N sessionid sip” have been implemented (activating the new SIP session handler). The command “target N screate enable” now enables target server initiated session creation.
The command line and configuration file processing is now implemented as a separate thread. The packet processing has been substantially optimized. The session and session table concept has been generalized, now allowing arbitrary session identifiers (which is needed for various upcoming extensions). A new VRRP extension packet type has been implemented for session synchronization of the new session table information. A new module concept has been implemented together with the “module” command line directive and the “show modules” informational command. The “benchmark” command functionality is now implemented in a separate “benchmark” module. The former “l2switch” command has been removed, the functionality is now implemented as a separate “switch” module. The module chain “vrrp,classic” implements BalanceNG Release 2 functionality and is preloaded by default. The LDNS library for GSLB processing has been upgraded to the current release 1.6.0. The maximum of the “bmduration” parameter has been increased to be now 86400 seconds (24 hours) allowing longer NIC stress testing.
Relesae 2.320 has been the last of BalanceNG release branch V2.
The ARP address resolution for TNAT entries is now correctly provided in all cases.
The TNAT functionality is now working again with the default parameter settings. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
IPv4 ICMP TTL exceeded packets are now silently discarded. The BalanceNG 2.x MIB has been revised and now passes smilint without problems (severity level < 4). The IPv4 to location database has been updated to the latest release. The Ubuntu JeOS VMware virtual appliance has been updated accordingly. The manual has been updated accordingly.
The license revocation list has been updated. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
The OEM licensing now additionally recongnizes the upcoming new Thomas-Krenn Load-Balancer hardware. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
A Solaris vmxnet3s0 interface is now recognized. The manual has been updated. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
The IP location database (ip-to-country.csv) has been updated. The OEM-appliance licensing has been updated. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
Minor typos in text messages have been fixed. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
A new parameter “sessionsyncbup” now allows to control the speed of the session table garbage collection when the node is in VRRP “BACKUP” state. The IP-to-country database has been upgraded to the latest release. The Ubuntu JeOS VMware virtual appliance has been updated accordingly. The manual has been updated accordingly.
A new parameter “psvrelearn” allows to disable passive updates to the ARP table. The Ubuntu JeOS VMware virtual appliance has been updated accordingly. The manual has been updated accordingly.
The forwarding table is no longer updated if BalanceNG sees routed packets with the same source IPv4 address on a different interface and network. The IP to location database has been updated to the latest release. The Ubuntu JeOS VMware virtual appliance has been updated accordingly. The manual has been updated accordingly.
The thread stacksize is now initialized with 1048576 bytes on thread creation (thus allowing a higher number of total threads).
A bug with SNMP server specific session counting has been resolved.
A new server specific session counter has been added, server sessions are now reported correctly using SNMP. A bug with method “rr” (round robin) and “server N failover backup” has been resolved.
A bug with “server N method session” in conjunction with “target N offset” has been resolved.
A minor bug at “show vrrp” has been resolved.
A thread synchronization problem has been fixed. Session counting is now properly inhibited when “server N stimeout null” is in place.
The glibc 2.4 dependency has been removed (again running on glibc 2.3 systems as well).
The maximum of the bmduration parameter has been extended to be 86400 seconds (24 hours). Linux installations now require libc6 2.4 or higher. The BalanceNG manual has been updated accordingly.
The IP-to-country database has been upgraded to the latest release. The licensing has been extended to allow site licenses for customers with many installations.
Several possible minor buffer overflow issues have been solved. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
The directive “server N stimeout null” has been added. If activated, this directive inhibits session generation and thus allows true round robin load balancing of UDP based protocols (like SIP). The manual has been updated accordingly. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
The IP to country database file ip-to-country.csv has been updated to the latest release in all packages. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
The Debian/Ubuntu package name has been changed to lowercase (conforming to apt-repository conventions).
A bug in server specific session timeout management has been fixed (upgrade is recommended if “server N stimeout” is in use). “show target N” now displays correct information with “target N ascript” active. Licensing and node-id generation now works on Solaris machines with nxge0 interfaces. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
The health check, script, ascript and agent timeouts may now be smaller than the interval (with a fixed minimum of 2 seconds). The “strictrouting” parameter setting functionality is now also active with VRRP disabled. The “target ascript” logging and status messages have been improved. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
The parameter “strictrouting” now defaults to 1 (active). A bug in target NAT (tnat) processing has been fixed where packets have been duplicated erroneously in some cases. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
A bug in “tcpopen” health-check processing has been resolved. Upgrade is strongly recommended for non-VRRP and trial setups. The Ubuntu JeOS VMware virtual appliance has been updated and now includes a properly configured SNMPD environment.
A bug in health-check script processing on Linux has been resolved. Upgrade is recommended for Linux operating systems. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
The SNMP interface command line options “bng -g” and “bng -n” may now also be invoked as a non-root user. The commands “show conf remark” and “show conf hostname” have been added to facilitate GUI and Web-UI interfacing. The manual has been updated accordingly. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
The configuration directive “network N synciface” has been added, allowing the direction of session and NAT synchronization traffic over a dedicated interface (using a crossover cable, for example). The manual has been updated accordingly.
An additional IP address conflict check has been implemented. The ARP table now refuses to update locally represented entries in such conflict cases.
This is a license maintenance release.
The LDNS library has been upgraded to release 1.4.1. The IP to country database (ip-to-country.csv) has been upgraded to the latest release. A RPM Package for SUSE Linux Enterprise Server SLES10 SP2 and above is now available for the first time.
A new boolean parameter, “strictrouting”, has been added. If this parameter is set to 1, only packets directed directly to the Layer 2 VRRP address of the instance are accepted for NAT and IP forwarding (routing).
The license revocation list has been updated.
The license revocation list has been updated.
The initial value of the parameter “bngfilter” is now set to 1 (as expected).
A general problem with NAT and multiple instances on the same machine has been fixed, upgrading is recommended if multiple instances are being used in conjunction with NAT. A problem with packet processing and multiple instances on Solaris based machines has been fixed and a new controlling parameter has been added (bngfilter). Upgrading is recommended if multiple instances are being used on Solaris.
An important bug in target ARP-processing has been fixed, upgrade is recommended.
The license revocation tables have been updated.
A bug in the MAC address change logging has been resolved. An issue with the OEM hardware licensing has been resolved. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
MAC address changes in the BalanceNG internal ARP table are now reported in the log. The ip-to-country.csv IP-to-location database file has been updated in the packages (Source: webhosting.info, September 01 2008). The OEM licensing has been extended to include the upcoming SECUDOS appliances. The manual has been updated to release 2.183.0. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
A small bug with GSLB servers has been fixed (an unnecessary entry in the internal ARP table has been removed in that case). The manual has been updated to release 2.181.0. The Ubuntu JeOS VMware virtual appliance has been updated accordingly.
The BalanceNG 2.x branch has been moved to status STABLE. The command “target
The DNS-based Global Server Load-Balancing (GSLB) feature has been added introducing the commands “server
BalanceNG runs now also on Solaris Logical Domains (LDOM’s) recognizing the vnet0 interface.
The “Location Based Server Load Balancing” (IPDB/LGRP) feature set has been added introducing the following commands: “ipdb”, “lgrp”, “server
A bug in the IPDB (IP to location database) implementation has been fixed.
A minor command line parsing bug has been fixed. The maximum number of targets per server has been increased from 32 to 64. The command “target
BalanceNG does no longer respond to ICMP ECHO (ping) requests to native OS addresses if “ipforwarding” is set (“set ipforwarding 1”).
Minor bugs with command handling (reversion) have been resolved. The Debian/Ubuntu package now also contains a precompiled BalanceNG agent (bngagent).
The feature “target
Unnecessary and confusing forwarding table “relearning” warnings concerning VRRP traffic are now suppressed.
A code cleanup with no functional changes has been performed. The BalanceNG open source agent “bngagent” has been updated to release 1.45 and now compiles without warnings on gcc 4.0.3.
BalanceNG 2.x is now also available as a .deb i386 package for Debian and Ubuntu Linux systems.
The sessiongroup handling has been optimized. The command “show sessiongroups” has been added.
A new parameter “vrrppreemptts” (VRRP preemption threshold) has been added. The “sessiongroup” specifier has been added to the target section together with the “maxgrpsessions” specifier, thus allowing to express a maximum number of sessions of a group of targets.
A memory alignment problem has been fixed together with release 1.920 (visible on Solaris SPARC only). A small typo in the output of “show networks” has been fixed.
A new parameter “maxsyncps” allows to limit the maximum number of new session table entries per second being synced from the master VRRP node to the backup VRRP node. This is useful to avoid unwanted synchronization traffic during DOS/DDOS attacks towards the virtual server. A minor bug in parameter processing has been fixed, upgrading systems running the 2.x branch is recommended.
Processing of private, node specific configuration files has been added allowing easy implementation of configuration synchronization between nodes. The commands save private, save all and save conf have been added to support this concept.
Relesae 1.944 has been the last of BalanceNG release branch V1.
The Debian/Ubuntu package name has been changed to lowercase (conforming to apt-repository conventions).
A bug in server specific session timeout management has been fixed (upgrade is recommended if “server N stimeout” is in use).
A bug in target NAT (tnat) processing has been fixed where packets have been duplicated erroneously in some cases.
A bug in “tcpopen” health-check processing has been resolved. Upgrade is strongly recommended for non-VRRP and trial setups.
The initial value of the parameter “bngfilter” is now set to 1 (as expected).
A general problem with NAT and multiple instances on the same machine has been fixed, upgrading is recommended if multiple instances are being used in conjunction with NAT. A problem with packet processing and multiple instances on Solaris based machines has been fixed and a new controlling parameter has been added (bngfilter). Upgrading is recommended if multiple instances are being used on Solaris.
An important bug in target ARP-processing has been fixed, upgrade is recommended.
The license revocation tables have been updated.
BalanceNG runs now also on Solaris Logical Domains (LDOM’s) recognizing the vnet0 interface.
A minor command parsing problem has been fixed.
BalanceNG does no longer respond to ICMP ECHO (ping) requests to native OS addresses if “ipforwarding” is set (“set ipforwarding 1”).
Minor bugs with command handling (reversion) have been resolved.
Unnecessary and confusing forwarding table “relearning” warnings concerning VRRP traffic are now suppressed.
A memory alignment problem has been fixed (visible on Solaris SPARC only). A small typo in the output of “show networks” has been fixed.
The IP address conflict check between BalanceNG and the local machine TCP/IP stack now works for other language settings than English too (Linux only).
The IP address conflict warning message shows now correctly the source mac address of the conflicting device.
The target session counters are now updated on the VRRP backup node during session synchronization.
A new parameter “outmtu” has been added which allows an optional truncation of outgoing packets in case that an unwanted FCS (Frame Check Sequence) needs to be suppressed. A new parameter “backupalerts” has been added which allows to suppress the execution of target and gateway alert and upalert scripts if the current node is in VRRP backup state. Both parameters have been added to the “development” branch as well resulting in 2.026. The manual has been updated to release 1.914.0.
Minor text formatting and help text issues have been resolved (applied to the “development” branch as well resulting in 2.023). The manual has been updated to release 1.910.0.
Additional configuration file syntax checks have been added (applied to the “development” branch as well resulting in 2.022).
A problem with syslog() messaging on Solaris has been fixed (applied to the “development” branch as well resulting in 2.020).
Automatic licensing for specific OEM hardware has been added.
A bug in ARP resolving during NAT has been fixed (applied to the “development” branch as well resulting in 2.016).
A bug in the “hash” distribution has been fixed (applied to the “development” branch as well resulting in 2.014).
The VRRP ID and priority are now returned correctly by the SNMP subsystem.
An internal IPC bug has been fixed, upgrading is recommended.
BalanceNG now recognizes the e1000g interfaces on newer Sun Niagara 2 machines (update not required otherwise).
The tnat (target NAT) command has been extended to support arbitrary ports (“any”). The VMware virtual machine has been updated. The manual has been updated to release 1.890.0.
A warning message is generated for a target in enabled state with no associated health checks.
A bug at the command communication between frontend and backend has been fixed. Upgrade is recommended if non interactive programs are being used to pipe commands into “bng control” or “bng auxctl”.
The options “-L” and “-W” have been added to bng. The VMware virtual machine has been updated. The manual has been updated to release 1.880.0.
A warning message in case of a needed “network real” address has been added.
The commands “bng -I” and “bng -N” were added (displaying instance information and nodeid). A new command line option “bng purge” has been added. Preceding the special token “!” to a command suppresses the output of an interactive prompt afterwards. The new file /etc/bng.global is pre-evaluated by all instances (allowing global settings and global licensing). All inherited and unneeded filedescriptors are now closed on startup. The manual has been updated to release 1.870.0.
“show conf network”, “show conf server” and “show conf target” commands have been added to facilitate interfacing to external programs. The error returncode of “bng control” in case of an already active session has been changed to EX_TEMPFAIL (75). The manual has been updated to release 1.850.0.
A “show instance” has been included in the service snapshot file generation. An unnecessary prompt has been removed in the output from “bng auxctl” when called by “non-tty” applications.
Piping multiple command lines into “bng control” is now working correctly.
The commands “show conf vrrp”, “show conf gateway” and “show conf parameters” have been added interfacing to external user interface functionality. The VMware virtual machine has been updated. The manual was upgraded to release 1.840.0.
A duplicate free() when trying to attach an unknown interface has been removed.
The command “interface
Additional server/target configuration file checks have been added.
Several bugs in the BalanceNG MIB have been fixed. The manual has been upgraded to release 1.823.0.
An interactive timeout of 5 minutes has been added to the “bng control” mode. Multiple identical warnings when updating the ethernet forwarding table are now suppressed correctly.
The SNMP functionality has been extended (now including gateway scripts, all LB methods and VRRP bscript/mscript settings). The BALANCENG-MIB has been updated accordingly. The online help informations have been revised and optimized for 80 chars/line. The VMware virtual machine has been updated. The manual has been updated to release 1.820.0.
Several minor bugs have been fixed. A preconfigured BalanceNG Virtual Appliance (VWware) based on Ubuntu 6.10 has been added.
The capability to specify external “alert” and “upalert” notification scripts in the gateway section of the configuration has been added. The BalanceNG “Full Node License” now enables full functionality for all instances of BalanceNG on the same physical host. The manual has been updated to release 1.814.0.
BalanceNG has been extended to run as multiple instances on the same host machine. Multiple repeating logfile warnings concerning the same ethernet address are suppressed. Sessions are created in LLB (Link Load Balancing) mode now additionally also in the reverse direction.
A generic ARP based IP address conflict detection mechanism has been added.
An unnecessary delay when piping into “bng control” has been removed. The distribution of the session hash table function has been improved. Packet forwarding at “set ipforwarding 1” is no longer affected by disabled targets. A system “snapshot” functionality collecting support service data has been added. The manual has been updated to release 1.792.0.
An alternate control interface has been added intended to be used by external programs and user interface addons (“bng auxctl”). The manual has been updated to release 1.784.0.
The precision of the internal integer weight at the “rndagent” method has been increased from 3 to 5 digits.
The “random” distribution method has been extended to allow optional target weights. A randomized and automatically weighted, agent score based distribution method has been added (“rndagent”). Target “maxsessions” and “maxagent” parameters have been added. The manual has been updated to release 1.782.0.
An important bug at session table management has been fixed, upgrading is recommended. CPHA packets are no longer reported on forwarding table updates.
The target “alert” and “upalert” scripts are now called even at very small target outages. The target status string has been added to the operational/down log messages.
Master and backup VRRP state notification scripts have been added (“vrrp mscript” and “vrrp bscript”). The manual has been updated to release 1.754.0.
A bug related to the execution of target scripts on Solaris has been fixed. Disabling a target now degrades VRRP priority by it’s tracking value (if VRRP tracking is active).
A bug which made script based health checks on Linux systems to work unreliably has been fixed. The output of “show target N” has been optimized and beautified.
The ability to operate as a VRRP daemon without load balancing has been added introducing the “localvirt” parameter. The manual has been updated to release 1.736.0.
The “server plugin” feature has been added allowing the implementation of custom filters and target selection methods. The manual has been updated to release 1.734.0.
A bug in the Solaris packaging has been fixed making pkgadd working again on Solaris 10 / SPARC.
A bug in bngagent has been fixed. The manual has been updated to release 1.714.0.
A major bug has been fixed that caused BalanceNG to consume too many CPU cycles on Linux systems. Upgrading is strongly recommended.
A general code review and cleanup has been performed. The manual has been updated to release 1.710.0.
The robustness of the internal uptime timer system in case of a too slow system clock has been further improved.
An internal timer problem has been fixed.
Bugfix: The date at “show log” is now displayed correctly (instead of one day ahead).
BalanceNG now comes with a free Basic License: A basic one node load balancer setup with one virtual server and two targets may now be evaluated as long as needed at no charge. The “softdisable” status is shown in the “show targets” overview. The manual has been updated to release 1.700.0.
The session table memory allocation has been improved for speed: Session table entries are now pre-allocated in chunks. A “show stinfo” command has been added. The manual has been updated to release 1.691.0.
The internal timer system has been revised and improved. The Solaris distribution has been moved to a single “pkgadd” package for all supported platforms. The manual has been updated to release 1.685.0.
The new boolean parameter “localdsr” allows operation of BalanceNG in single legged DSR (Direct Server Return) mode directly on the target machine itself. Network Address Translation (NAT) has been implemented, including state synchronization between master and backup node. The manual has been updated to release 1.672.0.
An integer alignment problem on Solaris/SPARC has been fixed. Upgrading is recommended.
The “sessiondlimit” parameter has been added controlling the maximum number of session table entries displayed at “show session”. A new command “sessiondump” allows dumping of all session table entries to a file in readable text format for debugging and analysis purposes. The “show session” command has been extended to allow lookup of session table entries of a specific IP address. The manual has been updated to release 1.645.0.
A bug in the snmp-getnext functionality has been fixed, upgrading is recommended if SNMP functionality is used. The BalanceNG MIB has been updated to release 1.41 (now including the stimeout server parameter). The session table synchronization has been extended to allow larger stimeout values (uint32). The manual has been updated to release 1.638.0.
The sessiontimeout parameter range has been extended to be 10 seconds minimum and 48 hours maximum. An optional server specific session timeout has been introduced (server N stimeout). The sessionsync parameter now defaults to 1, the vrrppreempt parameter now defaults to 0. In practice session table entries are now synchronised between master and backup per default. A minor bug in the benchmark result display functionality has been fixed. Session table synchronization has been extended to include session entry specific timeouts. The manual has been updated to release 1.632.0.
An additional $status$ parameter has been added to the target alert and upalert scripting functionality. A tcpopen healthcheck problem has been fixed (failing tcpopen healthcheck in some cases). The manual has been updated to release 1.615.0.
The “arptimeout” parameter now defaults to 0, which avoids that targets get inoperational just because of missing ARP replies in some cases. The manual has been updated to release 1.612.0.
The session table implementation has been revised and optimized, it’s now possible to associate the same target to multiple servers. The manual has been updated to release 1.610.0.
The tcpopen health check functionality has been reimplemented. Upgrade is recommended if the tcpopen health check method is referenced from the configuration. Health check interval/timeout plausibilty checks have been added. Logging during bng.conf evaluation at startup has been extended. The manual has been updated to release 1.594.0.
Sending of IP address conflict ARP probes is now controlled by the new parameter “sendprobes”, which is off per default. VRRP handling in dual node trial license mode has been improved. The manual has been updated to release 1.585.0.
ARP requests with non broadcast destination addresses (unicast ARP requests) are no longer ignored.
A bug in target “alert” and “upalert” script processing has been fixed. “bngagent” has been updated to release 1.42, a potential issue with negative values returned by getloadavg() has been fixed. Precompiled binaries for HP-UX and Max-OSX are no longer supplied. The manual has been updated to release 1.582.0.
Several messages have been changed for better understanding, target and gateway availability is reported correctly on startup, IP address conflicts are detected and reported, the bngfilt streams module for Solaris has been optimized, the manual has been updated to release 1.581.0.
The bngfilt streams module has been updated for Solaris systems, update is recommended for all Solaris users of BalanceNG. A code cleanup has been performed with several speed optimizations. The “benchmark” command has been added introducing a convenient way to measure and compare hardware, operating system and switch performance below (and together with) BalanceNG. The manual has been updated to release 1.568.0.
Several plausibility checks have been added to make common configuration errors impossible. The manual has been updated to release 1.550.0.
A minor bug in target session counter management has been fixed.
Session table state replication has been added using a BalanceNG specific VRRP extension. This feature is activated simply by setting the new parameter “sessionsync” to 1 and the parameter “vrrppreempt” to 0 on all participating BalanceNG nodes. The manual has been updated to release 1.548.0.
The maximum numbers of virtual servers and targets have been increased to be 512 and 1024, respectively. The manual has been updated to release 1.540.0.
A bug in LLB (Link Load Balancing) session table management has been fixed. The bngfilt STREAMS modules for Solaris have been updated, fixing a VRRP advertisement packet handling problem.
Minor bugfixes allow parallel operation of SLB (Server Load Balancing) and LLB (Link Load Balancing). The manual has been updated to release 1.536.0.
A set of bandwidth based load balancing distribution methods has been added (“bw”, “bwin” and “bwout”) including optional weighting using the “offset” and “scale” target parameters. The BalanceNG MIB (Management Information Base) has been updated now including target based bandwidth information (Gauges). The manual has been updated to release 1.535.0.
Small textual help text errors have been fixed. The manual has been updated to release 1.528.0.
Layer 3 link load balancing capabilities have been added. The manual has been updated to release 1.526.0.
The SNMP object TargetAgentData was made retrievable and added to the MIB. The manual has been updated to release 1.505.0.
SNMP support was added introducing the BalanceNG MIB. BalanceNG now integrates nicely into the standard Net-SNMP environment on Linux and Solaris 10. A new command (“softdisable”) has been added which allows to remove a target softly from the load balancing distribution. The manual has been updated to release 1.503.0.
A bug in dual port server load balancing was fixed. The manual has been updated to release 1.501.0.
Command line editing has been extended by ^W and ^U (delete previous word and delete left of cursor, respectively). Commands may be abbreviated in interactive mode (e.g. “sh ta” for “show targets”). A bug in “bng control” pipeline processing has been fixed. A server may now control up to two related ports to allow HTTP/HTTPS simultaneous session persistence. The manual has been updated to release 1.486.0.
A new parameter, “ipforwarding”, has been introduced, enabling layer 3 routing between all BalanceNG networks and the gateway if set to 1 (“enabled”). The manual has been updated to release 1.474.0.
VRRP tracking has been introduced, allowing degradation of VRRP priority (and controlled failover) on local resource failure. The availability of the default gateway can be checked by ARP and ICMP ECHO (ping) health checks; consequently, the gateway now has its own status of “operational” or “down” (if specified). The new configuration commands are: “gateway arp”, “gateway ping”, “gateway trackval”, “target n trackval”, and “vrrp tracking”. A new informational command “show gateway” has been added to display the current status of the gateway. The manual has been updated to 1.468.0.
A bug at DSR operation with an invalid MAC address if the virtual network address is not specified was fixed.
The online help function has been extended with subtopics (vrrp, network, gateway, server, and target). A new distribution method “session” has been added, choosing the target which holds the least number of current sessions.
The syntax of the “gateway” command was extended to a block to prepare for upcoming extensions. The old syntax is automatically converted, maintaining backward compatibility. A bngagent implementation for Windows has been added to the “contrib” directory of the distribution, being a customer contribution without any warranty or support. It’s called “BngAgentService” and implements a Windows Service. The manual has been updated to release 1.450.0.
A problem with the health checking of targets with the same IP address but different ports was fixed.
Multi-threading support has been added, which allows implementation of “helper threads”. The ability to call external health check scripts has been added (command “target N script”). The ability to call external notification scripts has been added (command “target N alert” and “target N upalert”). The manual has been updated to release 1.443.0.