Layer 2 (Ethernet) “switching engine” based software load balancer.
Running under macOS (BPF API), Linux (Using the PF_PACKET socket API) and Solaris (STREAMS/DLPI API).
IPv6 ready (BalanceNG V3)
Backup targets (hosts) specifiable in case of failure of all primary targets.
“Alert” and “Upalert” notification script interface.
Direct Server Return (DSR) operation support.
Unchanged client addresses on IP-level.
Small, very fast and reliable.
Simple to implement and administer.
Simple “init script style” arguments like “start”, “stop” and “status” (and “control” for interactive configuration and control).
Interactive communications mode with command line editing.
Pcap packet dumping with automated dumpfile rotation (e.g. to implement a “transparent forensic logging bridge”).
Multi-Node High Availability capability using standard VRRP (Virtual Router Redundancy Protocol).
“All service load balancing” based on client IP address allows generic load balancing independent of specific ports.
SNMP support integrating into Net-SNMP with the BalanceNG MIB.
Up to 128 parallel instances (fully independent BalanceNG load balancers) on the same host machine.
Up to 1024 load balancing target servers (hard limit) per instance.
Up to 512 virtual servers (hard limit) per instance.
NAT state replication between master and backup node.
VRRP tracking supported to allow automatic resource tracking and failover.
Location-based server load-balacing utilizing a very fast in-memory IP-to-location database (IPDB/LGRP).
DNS-based GSLB (Global Server Load-Balancing).
Session Table Features
Session table capable to hold 10 million sessions per 512MByte of main memory.
Support of session table state replication / session synchronisation between VRRP master and backup.
Session persistence based on client address and optional source port.
Available Load Balancing Methods
agent: based on bngagent returned value (system load or user supplied script return). Bngagent supplied as open source and precompiled binaries.
bw: based on overall bandwidth
bwin: based on incoming bandwidth
bwout: based on outgoing bandwidth
hash: based on hash function called with source IP address
plugin: based on user supplied plugin script or program
random: based on pseudo randomness (optionally weighted)
rndagent: based on agent returned value, but randomized
rr: based on simple round robin
session: based on the least number of current sessions
Available Health Check Methods
agent: Target server side user supplied script or program functionality
ping: ICMP echo request/reply health check
script: user supplied health check script or program (Mon monitoring daemon scripts and other tools like “wget” are supported for many common protocols like HTTP, SNMP, LDAP, POP3, IMAP, FTP, DNS and many more).
tcpopen: TCP open health check for IPv4 and IPv6 with a tcp-halfopen option