1. Practically, the process for creating a new DNS record type is bureaucratic and slow.
2. New record types have a limited number, but names are unlimited as long as they are unique.
3. If the data you’re storing is perfectly compatible with an existing record type, like TXT, it seems silly to overload semantics into a new, but otherwise identical, record type. You can compare record types to variable types in a programming language. I.e. instead of having
name_t x = "foo"; /* C */
x: Name = "foo" # Python
x IN NAME "foo" ; DNS
you instead have:
char *name = "foo"; /* C */
name: str = "foo" # Python
_name IN TXT "foo" ; DNS
Sure, DNS might not have integer types, but it has host names (PTR), IP addresses (AAAA and A), and strings (TXT, which also can work as an array of strings up to 255 bytes in length if you prefer). These, with added semantics of an underscored name prefixed, will get you quite far without having to invent a new record type to contain your specific semantic meaning to, say, a plain TXT record.
Because:
1. Practically, the process for creating a new DNS record type is bureaucratic and slow.
2. New record types have a limited number, but names are unlimited as long as they are unique.
3. If the data you’re storing is perfectly compatible with an existing record type, like TXT, it seems silly to overload semantics into a new, but otherwise identical, record type. You can compare record types to variable types in a programming language. I.e. instead of having
you instead have: Sure, DNS might not have integer types, but it has host names (PTR), IP addresses (AAAA and A), and strings (TXT, which also can work as an array of strings up to 255 bytes in length if you prefer). These, with added semantics of an underscored name prefixed, will get you quite far without having to invent a new record type to contain your specific semantic meaning to, say, a plain TXT record.