Ich dachte, dass
<Virtual erde.kosmos.all>
...
ein namensbasierender VHosts ist, weil erde.kosmos.all ein Name und keine Adresse ist und dass
<Virtual 192.168.1.10>
...
ein adressbasierender VHost ist, weil da ja eine IP-Adresse steht.
Nein, umgekehrt, siehe <?m=124706&t=22428>.
Bei Deinem ersten Beispiel bestimmt die IP-Adresse, welcher Host gemeint ist, weil erde.kosmos.all auf exakt eine IP-Adresse verweist und, wichtiger, weil an dieser IP-Adresse nur ein Webserver/VirtualHost wartet -> daher adressbasiert.
Beim zweiten Beispiel hängen hingegen alle Hosts auf derselben IP-Adresse (192.168.1.10), hier bestimmt tatsächlich der Name, der als ServerName bzw. Host: angegeben wurde, welcher Host vom Browser gemeint ist -> namensbasiert.
Ich muß die Seite in der Apache-Anleitung auch immer erst zweimal durchlesen, bevor ich das auf die Reihe kriege :)
Bei mir läuft das so: Unter Linux hab ich in der Hosts-Datei die verschiedenen Namen für die IP eingetragen und das ganze per <Virtual erde.kosmos.all> in der httpd.conf gelöst. Ein DNS ist also nicht notwendig.
Du hast das DNS schon im Einsatz, auch die hosts-Datei gehört schließlich ein klein bißchen dazu, auch wenn man mit ihr keine Leute erschrecken kann wie mit http://www.isc.org/products/BIND/ ;)
Gruß,
soenk.e