No Description
Tom Hughes ec28cb7ebb Increase bandwidth to viserion 1 week ago
bandwidth Update tile bandwidth statistics 2 months ago
bin Attempt to rebalance the render servers 1 month ago
data Drop output files from git as it just causes conflicts 7 years ago
json Generate GeoJSON instead of KML 6 years ago
lib Update country data 11 months ago
origins Add dynamic mapping of tile caches to render servers 5 years ago
src Increase bandwidth to viserion 1 week ago
.dockerignore Add Dockerfile for building from templates 8 months ago
.gitignore Switch to using statuscake for monitoring servers 1 year ago
Dockerfile Add Dockerfile for building from templates 8 months ago
Makefile Attempt to rebalance the render servers 1 month ago
README.md Tweak README.md intro 2 months ago

README.md

OpenStreetMap DNS

This repository contains the DNS zone file templates and related code for managing OpenStreetMap.org and other domain names DNS. The full list of domains are in the Makefile.

The authoritative DNS nameservers we use are kindly run by Bytemark. We would like to thank Bytemark for their many years of support.

Standard DNS Zone Files

The zone files templates are in tinydns-data syntax and are written out by the Makefile.

On a repo commit, a git post-receive runs make update via a script which then pushes the updated zone files to the authoritative DNS nameservers.

GeoDNS Zones

The GeoDNS zones are handled differently.

tile.openstreetmap.org (mkgeo Generated)

The tile.openstreetmap.org and [a|b|c].tile.openstreetmap.org are CNAME’ed to the tile.geo.openstreetmap.org zone.

The tile.openstreetmap.org zone file is written by mkgeo which attempts to match the estimated country bandwidth requirements to the nearest running tile cache server with available capacity.

Example tile.openstreetmap.org zone file snippet in tinydns-data syntax as generated by mkgeo:

# Afghanistan
Caf.tile.openstreetmap.org:baku.tile.openstreetmap.org:600
# Albania
Cal.tile.openstreetmap.org:osijek.tile.openstreetmap.org:600
# Algeria
Cdz.tile.openstreetmap.org:zaragoza.tile.openstreetmap.org:600
# American Samoa
Cas.tile.openstreetmap.org:sanfrancisco.tile.openstreetmap.org:600
...
# Servers
+aalborg.tile.openstreetmap.org:130.225.254.123:600
+amsterdam.tile.openstreetmap.org:134.90.146.26:600
+baku.tile.openstreetmap.org:94.20.20.55:600

The current tile.openstreetmap.org matching is here: https://dns.openstreetmap.org/tile.openstreetmap.org.html

tile.geo.openstreetmap.org (GeoIP)

The tile.geo.openstreetmap.org zone uses authoritative gdnsd DNS nameservers (a.ns.openstreetmap.org, b.ns.openstreetmap.org, etc ).

The gdnsd config is managed using a chef cookbook.

The DNS responses from tile.geo.openstreetmap.org are CNAMEs to XX.tile.openstreetmap.org, where XX is the ISO 3166-1 alpha-2 country code from the client subnet if supplied by EDNS0 or the IP address of the resolving DNS if the client subnet is not supplied by EDNS0.

A typical DNS query flow example: a.tile.openstreetmap.org -> CNAME tile.geo.openstreetmap.org -> CNAME gb.tile.openstreetmap.org. -> CNAME aalborg.tile.openstreetmap.org. -> A aaa.bbb.ccc.ddd

render.openstreetmap.org (mkgeo Generated)

The render.openstreetmap.org zone is a DNS zone used internally by the tile.openstreetmap.org cache servers and SHOULD NOT BE BE USED BY OTHERS.

The render.openstreetmap.org zone file is written by mkgeo which attempts to match the estimated caches’ bandwidth requirement (dynamically generated above tile.openstreetmap.org mkgeo) to the nearest running render server with available capacity.

Example tile.openstreetmap.org zone file snippet in tinydns-data syntax as generated by mkgeo:

# aalborg
Caalborg.render.openstreetmap.org:vial.render.openstreetmap.org:600
# amsterdam
Camsterdam.render.openstreetmap.org:yevaud.render.openstreetmap.org:600
# baku
Cbaku.render.openstreetmap.org:vial.render.openstreetmap.org:600
...
# Servers
+orm.render.openstreetmap.org:193.63.75.98:600
+vial.render.openstreetmap.org:138.201.195.31:600
+yevaud.render.openstreetmap.org:128.40.45.208:600

The current render.openstreetmap.org matching is here: https://dns.openstreetmap.org/render.openstreetmap.org.html