Встроенные балансировщики есть в iptable и pf. Но они, так сказать, высокоуровневые.
С помощью ipfw можно сделать систему исключительно гибкую.
Я делал балансировку и резервирование с помощью ipfw. Уже несколько лет - полет нормальный.
Лучший справочник по ipfw - это man ipfw без него все равно никуда.
В балансировке основное это не nat global, а несколько таблиц маршрутизации.
Переключение между таблицами осуществляете в общем случае с помощью ipfw prob.
Мне в свое время очень помогло, что в ipfw появились процедуры:
ipfw call и ipfw return
Активно их использую.
Так же свой конфиг делал на основе "улучшенного фаервола":
www.opennet.ru/base/net/advanced_ipfw.txt.html
Такой конфиг получается более структурированным и легче читаемым, хотя и нужна некоторая вводная.
Вообще сколько не искал нормальной howoto по построению балансировщика на основе ipfw - не нашел. Везде были только идеи и мысли. Так что пришлось много самому додумывать, но результатом доволен. Сам так и не разродился на статью, хотя можно было бы.
Если нужна помощь, то в профиле есть мыло. Правда я сейчас в отпуске поэтому оперативность гарантировать не могу :)