Tech:DNS

From Meta
Jump to navigation Jump to search

Miraheze's DNS is self-hosted, on two servers: ns1 and ns2. GDNSD is the software used for this task, and we chose it because GDNSD is open-source, fast and easy.

Configuration[edit | edit source]

Our GDNSD configuration can be found at GitHub, and can be edited by staff with global root access. That doesn't mean though no one can improve our configuration, because everyone is welcome to create pull requests.

config[edit | edit source]

config is the file that contains GDNSD configuration. There is a stanza in it that can be used to load balance the main traffic to multiple servers (e.g. servers running HAProxy). More information about the available options in this file can be found here.

zones[edit | edit source]

DNS records (for one domain name) are stored in a zone (e.g. https://raw.githubusercontent.com/miraheze/dns/master/zones/miraheze.org).

Deployment[edit | edit source]

Code is deployed automatically through puppet. This allows code to be merged and put into production within a short time frame and aids quick development cycles as the TTL means a record can be live within 15 minutes to all users. This does however bring issues in that deployment is not monitored and a failure (whilst very visible) can cause service issues.

The system should be moved to manual at some point though there is not enough risk to justify this yet.