Should clustering use RFC1996 or is it okay if it uses another solution? #813
-
Hi, I wonder if the RFC 1996 should be the initial way of clustering Technitium. If used, it will not only implement another RFC but also improve interoperability with other DNS server implementations if one needs it. On the other hand, if the long-term strategy is to use a pure Technitium cluster, then one can utilize any other replication method, like a database replication service such as rqlite or litestream That would decouple cluster synchronization and management from the DNS implementation and easier to implement. But it also increases complexity due to external dependencies. There is also a possibility to use dqlite but one needs to write a C# wrapper around it. This would integrate into the software directly as it is not a service but a library. The last option of replication without RFC 1996 is to write a Technitium-specific replication protocol, which would cover the replication. The intent of this discussion is that implementing RFC 1996 would not be enough for a full replication implementation. Because, RFC 1996 mentions only sending notification messages to slaves in the master-slave architecture. But there are issues on it:
The second issue is getting out of sync when cluster members have not taken some notifications due to an issue. It is possible to track SOA serial number. But in case of a problem where synchronization is lost, there is a possibility that serial numbers match but the records do not. Because SOA serial numbers are not hashed of data, they are just version numbers. Though it is possible to use a date time based format like YYYYMMDDXX where XX is the version number of the changes on that date. Some implementations use YYYYMMDDSS or Unix EPOC. This approach decreases the possible problems, not eliminates. A diff based replication or a full replication may be needed in case of node failures. So, even if RFC 1996 DNS NOTIFY messages are implemented, there must be other means to replicate and ensure integrity of records amongst cluster nodes. Though the likelihood is so low, the impact may be high. It is up to the users' risk appetite. I wanted to start a discussion and asking your feedback. |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
These problems occur on other DNS implementations, too. For instance, many BIND users utilize https://dotat.at/prog/nsdiff/ for DNS zone comparison, a tool which creates a diff and outputs an |
Beta Was this translation helpful? Give feedback.
-
Thanks for the post. Technitium DNS server supports NOTIFY (RFC 1996) along with IXFR to sync zones. The DNS server stores zone data internally in an in-memory tree data structure and thus there is no database like sqlite being used so any database based solution wont work. The clustering feature that is planned for Technitium DNS server will be using NOTIFY and IXFR standards along with Catalog Zones for automatic provision of secondary zones. |
Beta Was this translation helpful? Give feedback.
-
Another topic is the multi-master cluster -where is it the best way in larger environments- and the possible disaster scenario of connection loss between data centers. It may be a network loss or another error causing problems. The master election may result with a split-brain scenario because the DNS servers may elect themselves as the sole masters in two separate locations. Any changes conducted during the outage would increase complexity and must be solved after the resolution of the problem. Technitium's cluster synchronization should solve conflicts where both DNS master nodes have different values. |
Beta Was this translation helpful? Give feedback.
Thanks for the post. Technitium DNS server supports NOTIFY (RFC 1996) along with IXFR to sync zones. The DNS server stores zone data internally in an in-memory tree data structure and thus there is no database like sqlite being used so any database based solution wont work.
The clustering feature that is planned for Technitium DNS server will be using NOTIFY and IXFR standards along with Catalog Zones for automatic provision of secondary zones.