There's lots of free external DNS hosts out there, http://www.no-ip.com being one of them. In order to route traffic to an internal host, you will need to set up port forwarding on your Broadband Router to forward all incoming traffic destined for port 80 to the internal address of your choice, where the server exists.
There are guides on portforward.com for various routers that will walk you through setting up the forwarding.
I have DMZ setup for the server on eth0 (192.168.1.103)
That should forword all traffic to the server, but here my problem:
all domain names would forword to the only ip address provided by my ISP... now lets say i have 2 virtual hosts, "domain1.com, and domain2.com", each account is on a different Internal IP address, one is on 192.168.1.110, other is on 192.168.1.111, how would i make the domain names goto each of those internal IP address, to be able to display the correct website?
For example: domain1.com goes to 18.104.22.168 and domain2.com goes to 192.168.1.111