A me sembra che nel modo specificato da te, si venga a creare un ulteriore livello.
In realtà posso dire di aver risolto, conscio di averlo fatto con una accozzaglia di tentativi.
Resta un interrogativo non tanto sul Bind ma su apache.
In realtà non ho ben capito il funzionamento del file 000-default, mi spiego:
Se non sbaglio, i Virtual Host possono essere suddivisi in file di inclusione.
I file di inclusione sono contenuti nella cartella sites-available mentre nella cartella sites-enabled ci sono i collegamenti simbolici a ciascuno di questi file.
Pensando che aggiornare il file default in sites-available significasse anche aggiornare automaticamente il file 000-default in sites-enabled ho proseguito incappando in un mal funzionamento generale.

Detto questo, ho anche notato che se vengono creati tanti file di inclusione per quanti sono i virtual host, al riavvio apache2, sforna degli "avvisi" sul NameVirtualHost o l'overlaps se questo non è specificato.. insomma, a me non sembra che questo sistema sia incoraggiante.
Quindi ho messo tutto nel file default, ho dovuto aggiornare "a manina" il file 000-default (copia incolla del contenuto del file default), ho dovuto cancellare l'istruzione NameVirtualHost * nel file ports.conf, perchè altrimenti si andava a ripetere nel gioco delle inclusioni e alla fine mi ha funzionato tutto.

Praticamente, ecco che tipo di architettura mi premeva testare:
attraverso un servizio free di gestione dei DNS, disponibili su internet, ho scelto due indirizzi di test:
subdomain1.domain.com
subdomain2.domain.com
dove domain.com è un'opzione forzata, resa disponibile dal fornitore del servizio di gestione del DNS

All'interno del file /etc/bind/named.conf.local, ho aggiunto le seguenti istruzioni:
zone "subdomain1.domain.com" {
type master;
file "/etc/bind/db.subdomain1.domain.com";
};
zone "subdomain2.domain.com" {
type master;
file "/etc/bind/db.subdomain2.domain.com";
};

All'interno del file (ex novo) /etc/bind/db.subdomain1.domain.com ho aggiunto queste istruzioni
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA subdomain1.domain.com. hostmaster.subdomain1.domain.com. (
13 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; Negative Cache TTL
;
@ IN NS subdomain1.domain.com.
@ IN A 192.168.1.101


All'interno del file (ex novo) /etc/bind/db.subdomain2.domain.com ho aggiunto queste istruzioni

;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA subdomain2.domain.com. hostmaster.subdomain2.domain.com. (
13 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; Negative Cache TTL
;
@ IN NS subdomain2.domain.com.
@ IN A 192.168.1.101

dove 192.168.1.101 è l'indirizzo ip della macchina server dove girano le applicazioni web

All'interno del file /etc/resolv.conf ho inserito la riga:

nameserver 192.168.1.101

All'interno del file /etc/hosts ho inserito le due righe:

192.168.1.101 sito1.test
192.168.1.101 sito2.test

Infine ho eseguito i comandi:

sudo /etc/init.d/bind9 restart
sudo /etc/init.d/networking restart

Fatto ciò, sono passato ad apache e sia all'interno del file default (in sites-available) che all'interno del file 000-default (in sites-enabled), ho inserito questo codice:

NameVirtualHost 192.168.1.101:80

<VirtualHost subdomain1.domain.com:80>
ServerName subdomain1.domain.com
ServerAdmin indirizzo@email.it
DocumentRoot /var/www/sito1.test
<Directory /var/www/sito1.test>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>

<VirtualHost 192.168.1.101:80>
DocumentRoot /var/www
ServerName server1
ServerAdmin indirizzo@email.it
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>



<VirtualHost subdomain2.domain.com:80>
DocumentRoot /var/www/sito2.test
ServerName subdomain2.domain.com
ServerAdmin indirizzo@email.it
DocumentRoot /var/www/sito2.test
<Directory /var/www/sito2.test>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>


Fatto questo, ho riavviato apache, ho impostato i DNS sulle altre macchine, impostato il ruter ed ora le applicazioni sono raggiungibili sia dall'interno della rete che dall'esterno attraverso gli indirizzi:

http://subdomain1.domain.com
http://subdomain2.domain.com

Sono convinto che si possa fare molto meglio, questo esempio manca del reverse che ora testerò... ma se qualcuno sà come fare meglio tutta questa struttura, spero di poter avere notizie