Поднимаете на своем сервере DNS-сервер, для убунты это например BIND. Статей по настройке куча. Сервер настраиваете как master-сервер для зоны .dom, и как forward на dns провайдера для всех остальных.
На DHCP сервере всем клиентам раздаете адрес своего DNS сервера.
С настройкой virtual domain на апаче думаю справитесь.
Но вообще, идея с зоной .dom может быть не совсем верной с точки зрения стандартов. Работать безусловно будет, но лучше использовать зону dom.local