Have a look at the links below. The one with Untangle may be overkill for your use case but that can be removed.
http://everythingshouldbevirtual.com/super-router-pfsense-untangle
http://everythingshouldbevirtual.com/virtualized-internet-firewall-with-ha-and-drs