O IPTables está trabalhando no nível IP e TCP, por isso não conhece o DNS.
Quando um cliente cria uma conexão TCP com um nome DNS, primeiro procura o endereço IP correspondente ao nome DNS e, em seguida, conecta-se ao IP, não ao nome DNS.
Isso significa que o IPTables não pode saber a qual nome DNS um cliente está se conectando, ele só sabe para qual IP o cliente se conecta.
Se você especificar --destination sub.domain.com
como um parâmetro, o IPTables simplesmente fará um nome procurar o IP que corresponde a esse nome e, em seguida, usar o IP em suas regras.
Se sua porta 1000 serve HTTP, seria possível configurar um servidor HTTP nessa porta para não manipular solicitações para domínios diferentes de sub.dominio.com, mas o IPTables não tem as informações necessárias para isso.
Se você pudesse colocar sub.domain.com e sub.domain2.com em dois IPs diferentes no mesmo servidor, o IPTables poderia negar o acesso a um, mas não ao outro, porque ele poderia decidir com base no IP.
Isso ilustra muito bem que o Domain Name System
está em cima de Transport
(TCP) e Internet
(IP), para mais detalhes, você pode ler o artigo da wikipedia sobre isso: