Isso não é algo que o dnsmasq pode fazer, porque não é algo que o próprio DNS pode fazer. Portas TCP só se envolvem após a busca de endereço foi feita. Portanto, qualquer um dos seus hosts example.com
resolve, deve ser capaz de lidar com todas dessas conexões - possivelmente usando um proxy reverso HTTP quando possível, ou ainda outra camada de encaminhamento de porta (iptables, pf redirecionar, & c.).
Alguns aplicativos específicos têm seus próprios mecanismos, no entanto. Para a porta 25 (servidor-SMTP), crie um registro MX
que aponte para outro domínio. Se o servidor de envio de correio encontrar um, ele usará apenas os servidores listados no registro MX. (É assim que quase todos os domínios redirecionam seus e-mails para um servidor de "e-mail" dedicado ou até mesmo para o Gmail.
example.com. MX 10 smtp-in.example.com.
smtp-in.example.com. A 10.0.0.25
Para IMAP e SMTP do cliente (143, 993, 587), você pode ter sorte com a criação de registros SRV para cada serviço. Eles são semelhantes em propósito, mas podem informar ao aplicativo qual host e qual porta usar:
_imap._tcp.example.com. SRV 10 0 143 mail.example.com.
_imaps._tcp.example.com. SRV 10 0 993 mail.example.com.
_submission._tcp.example.com. SRV 10 0 587 mail.example.com.
mail.example.com. A 10.0.0.143
Ou o mesmo na sintaxe perversa do dnsmasq:
mx-host=example.com,smtp-in.example.com,10
address=/smtp-in.example.com/10.0.0.25
srv-host=_imap._tcp.example.com,mail.example.com,143
srv-host=_imaps._tcp.example.com,mail.example.com,143
srv-host=_submission._tcp.example.com,mail.example.com,587
address=/mail.example.com/10.0.0.143
Note que apenas alguns programas se importam com registros SRV. Enquanto o acima _imap
& c. exemplos são tecnicamente padrão, eles ainda são muito raramente usados por aplicativos de email reais. (Praticamente os únicos usuários SRV generalizados são Kerberos, LDAP, SIP, XMPP e Minecraft).