Ivan Pepelnjak of IOS Hints recently posted two great CT3 wiki articles on running Quagga, an open source routing software suite which allows you to perform RIP, RIPng, OSPFv2, OSPFv3, and BGP routing on a Linux or other UNIX-like operating system. At its core is the "zebra" daemon, which provides for basic interface configuration, and individual routing protocols are implemented in separate daemons (ripd, ospfd, bgpd, etc.). Quagga's configuration syntax is very similar to Cisco's IOS.
Ivan's first article details the steps necessary to install and run Quagga. Note that these instructions assume an install direct from source; many distributions may have premade packages available (Gentoo users, simply
emerge quagga). Once things are set up, generating BGP routes is pretty painless. You can see from Ivan's examples that Quagga's BGP configuration very closely mirrors IOS syntax, so if you're familiar with BGP on IOS Quagga should be a breeze.