DMARC
record is in fact a DNS TXT
record on name _dmarc
at apex of zone.
As such, you can completely use a CNAME there:
_dmarc.client1.example. CNAME _dmarc_for_clients.provider.example.
_dmarc.client2.example. CNAME _dmarc_for_clients.provider.example.
_dmarc.client3.example. CNAME _dmarc_for_clients.provider.example.
_dmarc.client42.example. CNAME _dmarc_for_clients.provider.example.
_dmarc_for_clients.provider.example. TXT "v=DMARC1; p=none"
(better not to use _dmarc
for this need in the provider.example.
zone as you might/need want, to setup DMARC as well for the name provider.example
and the content could be completely different than the one needed for "clients" DMARC).
The same trick is used for DKIM records, but can not be used for SPF
records which are in fact TXT
records but at apex, and you can't have a CNAME
record at apex (which is why basically you have redirect=
inside the SPF pseudo record).