]> git.openstreetmap.org Git - dns.git/commitdiff
Add upcoming event domain master
authorGrant Slater <github@firefishy.com>
Thu, 2 May 2024 10:15:54 +0000 (11:15 +0100)
committerGrant Slater <github@firefishy.com>
Thu, 2 May 2024 10:15:54 +0000 (11:15 +0100)
21 files changed:
.github/workflows/check.yml
Dockerfile
bin/mkgeo
dnsconfig.js
src/hosts.js
src/ideditor.js
src/nominatim.openstreetmap.yml
src/opengeodata.js
src/openstreetmap-mg.js [new file with mode: 0644]
src/openstreetmap-town.js [new file with mode: 0644]
src/openstreetmap-za.js
src/openstreetmap.js
src/osm-wiki.js [new file with mode: 0644]
src/osmfoundation.js
src/ptr_equinix_ams_ipv4.js [new file with mode: 0644]
src/ptr_equinix_ams_ipv6.js [new file with mode: 0644]
src/ptr_equinix_dub_ipv4.js
src/ptr_equinix_dub_ipv6.js
src/stateofthemap-eu.js
src/stateofthemap.js
src/switch2osm.js

index 34cbb7fc75b693ec2f1628fbb05ae5d931bf65c6..cf4d39f10ab7d57d152e557dd369fc288c6e4db0 100644 (file)
@@ -14,7 +14,7 @@ jobs:
 
     steps:
     - name: Checkout
-      uses: actions/checkout@v3
+      uses: actions/checkout@v4
 
     - name: Install dependencies
       run: |
index 2c0cc88b904689667711d4212f5b8292da6fb08d..8738966c4be59014457f2883bde4522afbe3894f 100644 (file)
@@ -14,7 +14,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
 SHELL ["/bin/bash", "-o", "pipefail", "-c"]
 
 RUN arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \
-    && curl -fsSL https://github.com/StackExchange/dnscontrol/releases/download/v3.22.0/dnscontrol-3.22.0.${arch}.deb -o /tmp/dnscontrol.deb \
+    && curl -fsSL https://github.com/StackExchange/dnscontrol/releases/download/v4.1.0/dnscontrol-4.1.0.${arch}.deb -o /tmp/dnscontrol.deb \
     && apt install /tmp/dnscontrol.deb -y
 
 WORKDIR /dns
index 4a183e85d210843055549aedbefa5076973bca29..2c0453b96bc784c29f4d7ab9fecca1e3831f1ef2 100755 (executable)
--- a/bin/mkgeo
+++ b/bin/mkgeo
@@ -35,7 +35,7 @@ while (my($name,$cluster) = each %$clusters)
             push @servers, $server;
         }
     }
-    else
+    elsif ($cluster->{requests} > 0)
     {
         my $server = {
             cluster => $cluster,
@@ -50,6 +50,10 @@ while (my($name,$cluster) = each %$clusters)
 
         push @servers, $server;
     }
+    else
+    {
+        $cluster->{servers} = [];
+    }
 
     $cluster->{name} = $name;
     $cluster->{status} = "down";
@@ -145,6 +149,9 @@ foreach my $server (@servers)
     }
 }
 
+# Abort if no servers at all are up
+exit 0 unless grep { $_->{status} eq "up" } values(%$clusters);
+
 # Create target origins object
 my $targetorigins = {};
 
@@ -227,9 +234,17 @@ foreach my $name (sort keys %$clusters)
     my $cluster = $clusters->{$name};
     my $used = int($cluster->{requests_used} + 0.5);
     my $limit = $cluster->{requests_limit};
-    my $proportion = int($used / $limit * 100 + 0.5);
+
+    if ($limit > 0)
+    {
+        my $proportion = int($used / $limit * 100 + 0.5);
     
-    print "${name}: used ${used} of ${limit} (${proportion}%)\n";
+        print "${name}: used ${used} of ${limit} (${proportion}%)\n";
+    }
+    else
+    {
+        print "${name}: used ${used} of ${limit}\n";
+    }
 }
 
 # Create JSON collection object
index e2e9c342befd43592d00c08026c7e88208972355..88b42189972572f96ffaa67f5cdafbbe8cf820e1 100644 (file)
@@ -76,9 +76,21 @@ OPENSTREETMAP("openstreetmap.sg", REG_GANDI);
 OPENSTREETMAP("openstreetmap.tv", REG_GANDI);
 OPENSTREETMAP("openstreetmap.wales", REG_GANDI);
 OPENSTREETMAP("openstreetmapdata.org", REG_GANDI);
+
 // Disable due to registration issue
 // OPENSTREETMAP("openstreetmap.al", REG_NONE);
 
+// Mastodon redirects to en.osm.town
+var OPENSTREETMAP_TOWN = loadTemplate("openstreetmap-town");
+OPENSTREETMAP_TOWN("openstreetmap.town", REG_GANDI);
+
+// Domain owned by Amanda McCann
+// osm.town
+
+// Managed independently by Guillaume Rischard
+// openstreetmap.lu
+// osm.lu
+
 var OSM_LI = loadTemplate("osm-li");
 
 OSM_LI("osm.li", REG_GANDI);
@@ -104,10 +116,13 @@ STATEOFTHEMAP("stateofthemap.org", REG_GANDI);
 STATEOFTHEMAP("stateofthemap.com", REG_GANDI);
 STATEOFTHEMAP("sotm.org", REG_GANDI);
 
+// The domain is registation is managed by FOSSGIS.de
+var STATEOFTHEMAP_EU = loadTemplate("stateofthemap-eu");
+STATEOFTHEMAP_EU("stateofthemap.eu", REG_NONE);
 
-// Domain Owner Issue / Registration Issues - Disable for the moment. 31 May 2021
-// var STATEOFTHEMAP_EU = loadTemplate("stateofthemap-eu");
-// STATEOFTHEMAP_EU("stateofthemap.eu", REG_GANDI);
+// State of the Map Madagascar
+var OPENSTREETMAP_MG = loadTemplate("openstreetmap-mg");
+OPENSTREETMAP_MG("openstreetmap.mg", REG_GANDI);
 
 var OPENGEODATA = loadTemplate("opengeodata");
 OPENGEODATA("opengeodata.org", REG_GANDI);
@@ -126,6 +141,17 @@ var IDEDITOR = loadTemplate("ideditor");
 
 IDEDITOR("ideditor.com", REG_GANDI);
 
+var OSMWIKI = loadTemplate("osm-wiki");
+OSMWIKI("osm.wiki", REG_GANDI);
+
+var PTR_EQUINIX_AMS_IPV4 = loadTemplate("ptr_equinix_ams_ipv4");
+
+PTR_EQUINIX_AMS_IPV4("128-27.179.104.184.in-addr.arpa", REG_NONE);
+
+var PTR_EQUINIX_AMS_IPV6 = loadTemplate("ptr_equinix_ams_ipv6");
+
+PTR_EQUINIX_AMS_IPV6(REV("2001:470:1:fa1::/64"), REG_NONE);
+
 var PTR_EQUINIX_DUB_IPV4 = loadTemplate("ptr_equinix_dub_ipv4");
 
 PTR_EQUINIX_DUB_IPV4("96-27.226.104.184.in-addr.arpa", REG_NONE);
@@ -133,3 +159,10 @@ PTR_EQUINIX_DUB_IPV4("96-27.226.104.184.in-addr.arpa", REG_NONE);
 var PTR_EQUINIX_DUB_IPV6 = loadTemplate("ptr_equinix_dub_ipv6");
 
 PTR_EQUINIX_DUB_IPV6(REV("2001:470:1:b3b::/64"), REG_NONE);
+
+// No immediate plans
+// External DNS and hosting still up
+// freethepostcode.org
+
+// External DNS and hosting
+// openstreetmap.cymru
index 0d2ac32fa3d979bf35de6b2d985eff6e8f32c793..24a2e5b5d451ec2bdee2ecd66718ce52560e6e8b 100644 (file)
@@ -10,37 +10,26 @@ var BALERION_IPV4 = "138.44.68.134";
 
 var BOWSER_IPV4 = "138.44.68.106";
 
-var CLIFFORD_IPV4 = "193.60.236.11";
-var CLIFFORD_INTERNAL = "10.0.0.17";
-var CLIFFORD_OOB = "10.0.1.17";
-
 var CULEBRE_IPV4 = "184.104.226.105";
 var CULEBRE_IPV6 = "2001:470:1:b3b::9";
 var CULEBRE_INTERNAL = "10.0.64.9";
 var CULEBRE_OOB = "10.0.65.9";
 
-var DRACO_IPV4 = "193.60.236.12";
-var DRACO_INTERNAL = "10.0.0.11";
-var DRACO_OOB = "10.0.1.11";
-
-var DRIBBLE_IPV4 = "130.117.76.4";
-var DRIBBLE_IPV6 = "2001:978:2:2c::172:4";
+var DRIBBLE_IPV4 = "184.104.179.132";
+var DRIBBLE_IPV6 = "2001:470:1:fa1::4";
 var DRIBBLE_INTERNAL = "10.0.48.4";
 var DRIBBLE_OOB = "10.0.49.4";
 
-var DROGON_IPV4 = "161.53.30.107";
-var DROGON_IPV6 = "2001:b68:c0ff:0:221:5eff:fe40:c7c4";
-
-var DULCY_IPV4 = "130.117.76.9";
-var DULCY_IPV6 = "2001:978:2:2c::172:9";
+var DULCY_IPV4 = "184.104.179.137";
+var DULCY_IPV6 = "2001:470:1:fa1::9";
 var DULCY_INTERNAL = "10.0.48.9";
 var DULCY_OOB = "10.0.49.9";
 
 var EDDIE_INTERNAL = "10.0.0.10";
 var EDDIE_OOB = "10.0.1.10";
 
-var FAFFY_IPV4 = "130.117.76.3";
-var FAFFY_IPV6 = "2001:978:2:2c::172:3";
+var FAFFY_IPV4 = "184.104.179.131";
+var FAFFY_IPV6 = "2001:470:1:fa1::3";
 var FAFFY_INTERNAL = "10.0.48.3";
 var FAFFY_OOB = "10.0.49.3";
 
@@ -49,35 +38,31 @@ var FAFNIR_IPV6 = "2001:470:1:b3b::2";
 var FAFNIR_INTERNAL = "10.0.64.2";
 var FAFNIR_OOB = "10.0.65.2";
 
-var FIRNEN_IPV4 = "188.241.28.82";
-
-var GORWEN_IPV4 = "184.104.226.107";
-var GORWEN_IPV6 = "2001:470:1:b3b::b";
-var GORWEN_INTERNAL = "10.0.64.11";
-var GORWEN_OOB = "10.0.65.11";
+var FUME_IPV4 = "184.104.226.112";
+var FUME_IPV6 = "2001:470:1:b3b::10";
+var FUME_INTERNAL = "10.0.64.16";
+var FUME_OOB = "10.0.65.16";
 
-var GORYNYCH_IPV4 = "5.45.248.21";
-var GORYNYCH_IPV6 = "2a02:6b8:b010:5065::a001";
+var GRISU_IPV4 = "184.104.226.113";
+var GRISU_IPV6 = "2001:470:1:b3b::11";
+var GRISU_INTERNAL = "10.0.64.17";
+var GRISU_OOB = "10.0.65.17";
 
-var GRINDTOOTH_IPV4 = "193.60.236.15";
-var GRINDTOOTH_INTERNAL = "10.0.0.19";
-var GRINDTOOTH_OOB = "10.0.1.19";
+var HORNTAIL_IPV4 = "184.104.226.106";
+var HORNTAIL_IPV6 = "2001:470:1:b3b::a";
+var HORNTAIL_INTERNAL = "10.0.64.10";
+var HORNTAIL_OOB = "10.0.65.10";
 
 var IDRIS_IPV4 = "184.104.226.102";
 var IDRIS_IPV6 = "2001:470:1:b3b::6";
 var IDRIS_INTERNAL = "10.0.64.6";
 var IDRIS_OOB = "10.0.65.6";
 
-var IRONBELLY_IPV4 = "130.117.76.10";
-var IRONBELLY_IPV6 = "2001:978:2:2c::172:a";
+var IRONBELLY_IPV4 = "184.104.179.138";
+var IRONBELLY_IPV6 = "2001:470:1:fa1::a";
 var IRONBELLY_INTERNAL = "10.0.48.10";
 var IRONBELLY_OOB = "10.0.49.10";
 
-var HORNTAIL_IPV4 = "184.104.226.106";
-var HORNTAIL_IPV6 = "2001:470:1:b3b::a";
-var HORNTAIL_INTERNAL = "10.0.64.10";
-var HORNTAIL_OOB = "10.0.65.10";
-
 var JAKELONG_IPV4 = "184.104.226.108";
 var JAKELONG_IPV6 = "2001:470:1:b3b::c";
 var JAKELONG_INTERNAL = "10.0.64.12";
@@ -123,24 +108,17 @@ var NEAK_IPV4 = "89.234.177.142";
 var NECROSAN_IPV4 = "45.85.134.91";
 var NECROSAN_IPV6 = "2a05:46c0:100:1004:ffff:ffff:ffff:ffff";
 
-var NEPOMUK_IPV4 = "77.95.65.39";
-var NEPOMUK_IPV6 = "2a03:9180:0:100::7";
-
 var NIDHOGG_IPV4 = "194.71.11.111";
 var NIDHOGG_IPV6 = "2001:6b0:19:2::111";
 var NIDHOGG_OOB = "130.239.18.115";
 
-var NOQUIKLOS_IPV4 = "193.60.236.16";
-var NOQUIKLOS_INTERNAL = "10.0.0.13";
-var NOQUIKLOS_OOB = "10.0.1.13";
-
-var NORBERT_IPV4 = "130.117.76.17";
-var NORBERT_IPV6 = "2001:978:2:2c::172:11";
+var NORBERT_IPV4 = "184.104.179.145";
+var NORBERT_IPV6 = "2001:470:1:fa1::11";
 var NORBERT_INTERNAL = "10.0.48.17";
 var NORBERT_OOB = "10.0.49.17";
 
-var ODIN_IPV4 = "130.117.76.15";
-var ODIN_IPV6 = "2001:978:2:2c::172:f";
+var ODIN_IPV4 = "184.104.179.143";
+var ODIN_IPV6 = "2001:470:1:fa1::f";
 var ODIN_INTERNAL = "10.0.48.15";
 var ODIN_OOB = "10.0.49.15";
 
@@ -150,6 +128,10 @@ var OOB1DUB_INTERNAL = "10.0.64.102";
 
 var PALULUKON_IPV4 = "3.144.0.72";
 
+var PIASA_IPV4 = "140.211.167.101";
+var PIASA_IPV6 = "2605:bc80:3010:700::8cd3:a765";
+var PIASA_OOB = "10.0.0.198";
+
 var PDU1AMS_INTERNAL = "10.0.48.100";
 
 var PDU2AMS_INTERNAL = "10.0.48.101";
@@ -158,14 +140,6 @@ var PDU1DUB_INTERNAL = "10.0.64.100";
 
 var PDU2DUB_INTERNAL = "10.0.64.101";
 
-var PUMMELZACKEN_IPV4 = "193.60.236.18";
-var PUMMELZACKEN_INTERNAL = "10.0.0.20";
-var PUMMELZACKEN_OOB = "10.0.1.20";
-
-var PYRENE_IPV4 = "140.211.167.98";
-var PYRENE_IPV6 = "2605:bc80:3010:700::8cd3:a762";
-var PYRENE_OOB = "10.0.0.40";
-
 var RHAEGAL_IPV4 = "161.53.248.77";
 
 var RIDGEBACK_IPV4 = "31.169.50.10";
@@ -175,13 +149,6 @@ var RIDLEY_IPV4 = "193.60.236.19";
 var RIDLEY_INTERNAL = "10.0.0.3";
 var RIDLEY_OOB = "10.0.1.3";
 
-var SAPHIRA_IPV4 = "185.73.44.30";
-var SAPHIRA_IPV6 = "2001:ba8:0:2c1e::";
-
-var SAREL_IPV4 = "193.60.236.20";
-var SAREL_INTERNAL = "10.0.0.12";
-var SAREL_OOB = "10.0.1.12";
-
 var SCORCH_IPV4 = "176.31.235.79";
 var SCORCH_IPV6 = "2001:41d0:2:fc4f::1";
 
@@ -217,18 +184,18 @@ var SPIKE03_IPV6 = "2001:470:1:b3b::5";
 var SPIKE03_INTERNAL = "10.0.64.5";
 var SPIKE03_OOB = "10.0.65.5";
 
-var SPIKE06_IPV4 = "130.117.76.11";
-var SPIKE06_IPV6 = "2001:978:2:2c::172:b";
+var SPIKE06_IPV4 = "184.104.179.139";
+var SPIKE06_IPV6 = "2001:470:1:fa1::b";
 var SPIKE06_INTERNAL = "10.0.48.11";
 var SPIKE06_OOB = "10.0.49.11";
 
-var SPIKE07_IPV4 = "130.117.76.12";
-var SPIKE07_IPV6 = "2001:978:2:2c::172:c";
+var SPIKE07_IPV4 = "184.104.179.140";
+var SPIKE07_IPV6 = "2001:470:1:fa1::c";
 var SPIKE07_INTERNAL = "10.0.48.12";
 var SPIKE07_OOB = "10.0.49.12";
 
-var SPIKE08_IPV4 = "130.117.76.13";
-var SPIKE08_IPV6 = "2001:978:2:2c::172:d";
+var SPIKE08_IPV4 = "184.104.179.141";
+var SPIKE08_IPV6 = "2001:470:1:fa1::d";
 var SPIKE08_INTERNAL = "10.0.48.13";
 var SPIKE08_OOB = "10.0.49.13";
 
@@ -240,34 +207,17 @@ var STORMFLY04_IPV4 = "140.211.167.100";
 var STORMFLY04_IPV6 = "2605:bc80:3010:700::8cd3:a764";
 var STORMFLY04_OOB = "10.0.0.3";
 
-var SWITCH1AMS_IPV4 = "130.117.76.2";
-var SWITCH1AMS_IPV6 = "2001:978:2:2c::172:2";
+var SWITCH1AMS_IPV4 = "184.104.179.129";
+var SWITCH1AMS_IPV6 = "2001:470:1:fa1::1";
 
 var SWITCH1DUB_IPV4 = "184.104.226.97";
 var SWITCH1DUB_IPV6 = "2001:470:1:b3b::1";
 
-var TABALUGA_IPV4 = "130.117.76.14";
-var TABALUGA_IPV6 = "2001:978:2:2c::172:e";
-var TABALUGA_INTERNAL = "10.0.48.14";
-var TABALUGA_OOB = "10.0.49.14";
-
-var TOOTHLESS_IPV4 = "185.73.44.167";
-var TOOTHLESS_IPV6 = "2001:ba8:0:2ca7::";
-
-var TROGDOR_IPV4 = "134.90.146.26";
-var TROGDOR_OOB = "134.90.146.30";
-
-var TAKHISIS_IPV4 = "31.3.110.20";
-var TAKHISIS_IPV6 = "2a03:7900:111:0:31:3:110:20";
-
-var VHAGAR_IPV4 = "130.117.76.5";
-var VHAGAR_IPV6 = "2001:978:2:2c::172:5";
+var VHAGAR_IPV4 = "184.104.179.133";
+var VHAGAR_IPV6 = "2001:470:1:fa1::5";
 var VHAGAR_INTERNAL = "10.0.48.5";
 var VHAGAR_OOB = "10.0.49.5";
 
-var VISERION_IPV4 = "193.198.233.211";
-var VISERION_IPV6 = "2001:b68:4cff:3::3";
-
 var YSERA_IPV4 = "193.60.236.22";
 var YSERA_INTERNAL = "10.0.0.15";
 var YSERA_OOB = "10.0.1.15";
index da8091daeb2df9f751ba25ad835f7eea0381791b..8706619a5247e78ef9b83bf28476ee8c37a88986 100644 (file)
@@ -28,6 +28,7 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
 
   ALIAS("@", "openstreetmap.github.io."),
   CNAME("www", "openstreetmap.github.io."),
-  A("preview", RIDLEY_IPV4)
+  A("preview", NAGA_IPV4),
+  AAAA("preview", NAGA_IPV6)
 
 );
index d52db8d3119b8e19cfe6cad380192c1c7a70800b..8731bad23a3f30ba860adac972e7d6df7944279f 100644 (file)
@@ -1,25 +1,29 @@
-dulcy:
-  lat: 52.33724625
-  lon: 4.93370796776345
-  statuscake:
-    - 2217359
-    - 2217360
+europe:
+  lat: 52.8746661
+  lon: -0.7088728262458915
   colour: "#7fc97f"
-  requests: 300
-  ipv4: 130.117.76.9
-  ipv6: 2001:978:2:2c::172:9
-  default: "xx"
-
-longma:
-  lat: 53.41208595
-  lon: -6.351453620255233
-  statuscake:
-    - 6224536
-    - 6224537
-  colour: "#beaed4"
-  requests: 1500
-  ipv4: 184.104.226.109
-  ipv6: 2001:470:1:b3b::d
+  servers:
+    - statuscake:
+       - 2217359
+       - 2217360
+      requests: 300
+      name: dulcy
+      ipv4: 184.104.179.137
+      ipv6: 2001:470:1:fa1::9
+    - statuscake:
+       - 6224536
+       - 6224537
+      requests: 1500
+      name: longma
+      ipv4: 184.104.226.109
+      ipv6: 2001:470:1:b3b::d
+    - statuscake:
+       - 6726828
+       - 6726827
+      requests: 1500
+      name: vhagar
+      ipv4: 184.104.179.133
+      ipv6: 2001:470:1:fa1::5
   default: "xx"
 
 stormfly-04:
@@ -29,19 +33,7 @@ stormfly-04:
     - 5769055
     - 5769056
   colour: "#fdc086"
-  requests: 800
+  requests: 400
   ipv4: 140.211.167.100
   ipv6: 2605:bc80:3010:700::8cd3:a764
   default: "xx"
-
-vhagar:
-  lat: 52.33724625
-  lon: 4.93370796776345
-  statuscake:
-    - 6726828
-    - 6726827
-  colour: "#ffff99"
-  requests: 1500
-  ipv4: 130.117.76.5
-  ipv6: 2001:978:2:2c::172:5
-  default: "xx"
index a189d3f5c0430a2fcabc247e341d9845581d671d..f7824f2914738e32e1e56e16a30946212d7ab5fd 100644 (file)
@@ -26,8 +26,8 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
 
   // Main web server and it's aliases
 
-  A("@", RIDLEY_IPV4, TTL("10m")),
-  A("old", RIDLEY_IPV4, TTL("10m")),
-  A("www", RIDLEY_IPV4, TTL("10m"))
+  A("@", RIDLEY_IPV4),
+  A("old", RIDLEY_IPV4), // Legacy URL support https://blog.openstreetmap.org/2010/02/25/old-opengeodata-posts-now-up-at-old-opengeodata-org/
+  A("www", RIDLEY_IPV4)
 
 );
\ No newline at end of file
diff --git a/src/openstreetmap-mg.js b/src/openstreetmap-mg.js
new file mode 100644 (file)
index 0000000..80ae23c
--- /dev/null
@@ -0,0 +1,29 @@
+D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
+
+  // Publish CAA records indicating that only letsencrypt should issue certificates
+
+  CAA_BUILDER({
+    label: "@",
+    iodef: "mailto:hostmaster@openstreetmap.org",
+    issue: [
+      "letsencrypt.org",
+    ],
+    issuewild: [
+      "letsencrypt.org",
+    ],
+  }),
+
+  // Block email delivery
+
+  TXT("_dmarc", "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"),
+  TXT("*._domainkey", "v=DKIM1; p="),
+  TXT("@", "v=spf1 -all"),
+
+  // Site hosted on github pages
+
+  ALIAS("@", "openstreetmap-madagascar.github.io."),
+  CNAME("www", "openstreetmap-madagascar.github.io."),
+
+  CNAME("sotm2024", "openstreetmap-madagascar.github.io.")
+
+);
\ No newline at end of file
diff --git a/src/openstreetmap-town.js b/src/openstreetmap-town.js
new file mode 100644 (file)
index 0000000..0d56540
--- /dev/null
@@ -0,0 +1,40 @@
+D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
+
+  // Publish CAA records indicating that only letsencrypt should issue certificates
+
+  CAA_BUILDER({
+    label: "@",
+    iodef: "mailto:hostmaster@openstreetmap.org",
+    issue: [
+      "letsencrypt.org",
+    ],
+    issuewild: [
+      "letsencrypt.org",
+    ],
+  }),
+
+  // Let the main domain handle the email
+
+  MX("@", 10, "a.mx.openstreetmap.org."),
+
+  // Delegate SPF policy to the main domain
+
+  SPF_BUILDER({
+    label: "@",
+    parts: [
+      "v=spf1",
+      "include:openstreetmap.org",      // main openstreetmap.org spf record
+      "-all"
+    ]
+  }),
+
+  // Delegate MTA-STS policy to the main domain
+
+  CNAME("_mta-sts", "_mta-sts.openstreetmap.org."),
+
+  // Redirect en.openstreetmap.town to en.osm.town
+
+  A("en", NAGA_IPV4),
+  AAAA("en", NAGA_IPV6)
+
+);
\ No newline at end of file
index 38090f0916d6992e3a741ab9268097e13cbf5d6d..4fa90fd37692099ead3e81694d6792d79fe9d6d4 100644 (file)
@@ -38,40 +38,44 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
   CNAME("www", "www.openstreetmap.org."),
   CNAME("api", "api.openstreetmap.org."),
 
-  // Aerial imagery sites on draco
+  // Aerial imagery sites on ironbelly
 
-  A("aerial", DRACO_IPV4, TTL("10m")),
-  A("a.aerial", DRACO_IPV4, TTL("10m")),
-  A("b.aerial", DRACO_IPV4, TTL("10m")),
-  A("c.aerial", DRACO_IPV4, TTL("10m")),
+  A("aerial", IRONBELLY_IPV4),
+  AAAA("aerial", IRONBELLY_IPV6),
+  A("a.aerial", IRONBELLY_IPV4),
+  AAAA("a.aerial", IRONBELLY_IPV6),
+  A("b.aerial", IRONBELLY_IPV4),
+  AAAA("b.aerial", IRONBELLY_IPV6),
+  A("c.aerial", IRONBELLY_IPV4),
+  AAAA("c.aerial", IRONBELLY_IPV6),
 
   // Aerial imagery sites on kessie
 
-  A("coct.aerial", KESSIE_IPV4, TTL("30m")),
-  AAAA("coct.aerial", KESSIE_IPV6, TTL("30m")),
-  A("a.coct.aerial", KESSIE_IPV4, TTL("30m")),
-  AAAA("a.coct.aerial", KESSIE_IPV6, TTL("30m")),
-  A("b.coct.aerial", KESSIE_IPV4, TTL("30m")),
-  AAAA("b.coct.aerial", KESSIE_IPV6, TTL("30m")),
-  A("c.coct.aerial", KESSIE_IPV4, TTL("30m")),
-  AAAA("c.coct.aerial", KESSIE_IPV6, TTL("30m")),
-
-  A("topo", KESSIE_IPV4, TTL("30m")),
-  AAAA("topo", KESSIE_IPV6, TTL("30m")),
-  A("a.topo", KESSIE_IPV4, TTL("30m")),
-  AAAA("a.topo", KESSIE_IPV6, TTL("30m")),
-  A("b.topo", KESSIE_IPV4, TTL("30m")),
-  AAAA("b.topo", KESSIE_IPV6, TTL("30m")),
-  A("c.topo", KESSIE_IPV4, TTL("30m")),
-  AAAA("c.topo", KESSIE_IPV6, TTL("30m")),
-
-  A("namibia-topo", KESSIE_IPV4, TTL("30m")),
-  AAAA("namibia-topo", KESSIE_IPV6, TTL("30m")),
-  A("a.namibia-topo", KESSIE_IPV4, TTL("30m")),
-  AAAA("a.namibia-topo", KESSIE_IPV6, TTL("30m")),
-  A("b.namibia-topo", KESSIE_IPV4, TTL("30m")),
-  AAAA("b.namibia-topo", KESSIE_IPV6, TTL("30m")),
-  A("c.namibia-topo", KESSIE_IPV4, TTL("30m")),
-  AAAA("c.namibia-topo", KESSIE_IPV6, TTL("30m"))
+  A("coct.aerial", KESSIE_IPV4),
+  AAAA("coct.aerial", KESSIE_IPV6),
+  A("a.coct.aerial", KESSIE_IPV4),
+  AAAA("a.coct.aerial", KESSIE_IPV6),
+  A("b.coct.aerial", KESSIE_IPV4),
+  AAAA("b.coct.aerial", KESSIE_IPV6),
+  A("c.coct.aerial", KESSIE_IPV4),
+  AAAA("c.coct.aerial", KESSIE_IPV6),
+
+  A("topo", KESSIE_IPV4),
+  AAAA("topo", KESSIE_IPV6),
+  A("a.topo", KESSIE_IPV4),
+  AAAA("a.topo", KESSIE_IPV6),
+  A("b.topo", KESSIE_IPV4),
+  AAAA("b.topo", KESSIE_IPV6),
+  A("c.topo", KESSIE_IPV4),
+  AAAA("c.topo", KESSIE_IPV6),
+
+  A("namibia-topo", KESSIE_IPV4),
+  AAAA("namibia-topo", KESSIE_IPV6),
+  A("a.namibia-topo", KESSIE_IPV4),
+  AAAA("a.namibia-topo", KESSIE_IPV6),
+  A("b.namibia-topo", KESSIE_IPV4),
+  AAAA("b.namibia-topo", KESSIE_IPV6),
+  A("c.namibia-topo", KESSIE_IPV4),
+  AAAA("c.namibia-topo", KESSIE_IPV6)
 
 );
index 7bbbb3f381ccbd45bb533bde019878970ca4a15e..a47808359c672f0326092b3be552493844522a17 100644 (file)
@@ -23,6 +23,8 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
   MX("noreply", 10, QUALIFY("a.mx")),
   MX("otrs", 10, QUALIFY("a.mx")),
   MX("community", 10, QUALIFY("a.mx")),
+  MX("supporting", 10, QUALIFY("a.mx")),
+
   A("a.mx", FAFNIR_IPV4),
   AAAA("a.mx", FAFNIR_IPV6),
   A("mail", FAFNIR_IPV4),
@@ -40,6 +42,11 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
       "ip6:2001:41c9:1:400::32",  // shenron ipv6
       "ip4:184.104.226.98",       // fafnir ipv4
       "ip6:2001:470:1:b3b::2",    // fafnir ipv6
+      "ip4:193.60.236.0/24",          // ucl external
+      "ip4:184.104.179.128/27",       // amsterdam external
+      "ip6:2001:470:1:fa1::/64",      // amsterdam external
+      "ip4:184.104.226.96/27",        // dublin external
+      "ip6:2001:470:1:b3b::/64",      // dublin external
       "mx",                       // safety net if we change mx
       "-all"
     ]
@@ -53,6 +60,11 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
       "ip6:2001:41c9:1:400::32",  // shenron ipv6
       "ip4:184.104.226.98",       // fafnir ipv4
       "ip6:2001:470:1:b3b::2",    // fafnir ipv6
+      "ip4:193.60.236.0/24",          // ucl external
+      "ip4:184.104.179.128/27",       // amsterdam external
+      "ip6:2001:470:1:fa1::/64",      // amsterdam external
+      "ip4:184.104.226.96/27",        // dublin external
+      "ip6:2001:470:1:b3b::/64",      // dublin external
       "mx",                       // safety net if we change mx
       "-all"
     ]
@@ -66,6 +78,11 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
       "ip6:2001:41c9:1:400::32",  // shenron ipv6
       "ip4:184.104.226.98",       // fafnir ipv4
       "ip6:2001:470:1:b3b::2",    // fafnir ipv6
+      "ip4:193.60.236.0/24",          // ucl external
+      "ip4:184.104.179.128/27",       // amsterdam external
+      "ip6:2001:470:1:fa1::/64",      // amsterdam external
+      "ip4:184.104.226.96/27",        // dublin external
+      "ip6:2001:470:1:b3b::/64",      // dublin external
       "mx",                       // safety net if we change mx
       "-all"
     ]
@@ -79,6 +96,11 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
       "ip6:2001:41c9:1:400::32",  // shenron ipv6
       "ip4:184.104.226.98",       // fafnir ipv4
       "ip6:2001:470:1:b3b::2",    // fafnir ipv6
+      "ip4:193.60.236.0/24",          // ucl external
+      "ip4:184.104.179.128/27",       // amsterdam external
+      "ip6:2001:470:1:fa1::/64",      // amsterdam external
+      "ip4:184.104.226.96/27",        // dublin external
+      "ip6:2001:470:1:b3b::/64",      // dublin external
       "mx",                       // safety net if we change mx
       "-all"
     ]
@@ -92,6 +114,29 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
       "ip6:2001:41c9:1:400::32",  // shenron ipv6
       "ip4:184.104.226.98",       // fafnir ipv4
       "ip6:2001:470:1:b3b::2",    // fafnir ipv6
+      "ip4:193.60.236.0/24",          // ucl external
+      "ip4:184.104.179.128/27",       // amsterdam external
+      "ip6:2001:470:1:fa1::/64",      // amsterdam external
+      "ip4:184.104.226.96/27",        // dublin external
+      "ip6:2001:470:1:b3b::/64",      // dublin external
+      "mx",                       // safety net if we change mx
+      "-all"
+    ]
+  }),
+
+  SPF_BUILDER({
+    label: "supporting",
+    parts: [
+      "v=spf1",
+      "ip4:212.110.172.32",       // shenron ipv4
+      "ip6:2001:41c9:1:400::32",  // shenron ipv6
+      "ip4:184.104.226.98",       // fafnir ipv4
+      "ip6:2001:470:1:b3b::2",    // fafnir ipv6
+      "ip4:193.60.236.0/24",          // ucl external
+      "ip4:184.104.179.128/27",       // amsterdam external
+      "ip6:2001:470:1:fa1::/64",      // amsterdam external
+      "ip4:184.104.226.96/27",        // dublin external
+      "ip6:2001:470:1:b3b::/64",      // dublin external
       "mx",                       // safety net if we change mx
       "-all"
     ]
@@ -121,12 +166,16 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
   TXT("@", "_globalsign-domain-verification=ps00GlW1BzY9c2_cwH_pFqRkvzZyaCVZ-3RLssRG6S"),
   TXT("@", "_globalsign-domain-verification=W0buKB5ZmL-VwwHw2oQyQImk3I1q3hSemf2qmB1hjP"),
 
+  // Facebook Business domain verification
+  TXT("@", "facebook-domain-verification=j5hix5i8r0kortfugqf2p9wx9x9by0"),
+
   // Delegate MTA-STS policy for subdomains
 
   CNAME("_mta-sts.messages", QUALIFY("_mta-sts")),
   CNAME("_mta-sts.noreply", QUALIFY("_mta-sts")),
   CNAME("_mta-sts.otrs", QUALIFY("_mta-sts")),
   CNAME("_mta-sts.community", QUALIFY("_mta-sts")),
+  CNAME("_mta-sts.supporting", QUALIFY("_mta-sts")),
 
   // Google postmaster tools verification
 
@@ -252,10 +301,12 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
 
   // Taginfo server
 
-  A("grindtooth", GRINDTOOTH_IPV4),
-  A("taginfo", GRINDTOOTH_IPV4, TTL("10m")),
-  A("grindtooth.ucl", GRINDTOOTH_INTERNAL),
-  A("grindtooth.oob", GRINDTOOTH_OOB),
+  A("dribble", DRIBBLE_IPV4),
+  A("taginfo", DRIBBLE_IPV4),
+  AAAA("dribble", DRIBBLE_IPV6),
+  AAAA("taginfo", DRIBBLE_IPV6),
+  A("dribble.ams", DRIBBLE_INTERNAL),
+  A("dribble.oob", DRIBBLE_OOB),
 
   // Tile servers
 
@@ -284,9 +335,9 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
 
   A("palulukon", PALULUKON_IPV4),
 
-  A("pyrene", PYRENE_IPV4),
-  AAAA("pyrene", PYRENE_IPV6),
-  A("pyrene.oob", PYRENE_OOB),
+  A("piasa", PIASA_IPV4),
+  AAAA("piasa", PIASA_IPV6),
+  A("piasa.oob", PIASA_OOB),
 
   A("bowser", BOWSER_IPV4),
 
@@ -298,53 +349,49 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
   A("necrosan", NECROSAN_IPV4),
   AAAA("necrosan", NECROSAN_IPV6),
 
-  CNAME("tile", "dualstack.n.sni.global.fastly.net.", TTL("10m")),
-  CNAME("a.tile", "dualstack.n.sni.global.fastly.net.", TTL("10m")),
-  CNAME("b.tile", "dualstack.n.sni.global.fastly.net.", TTL("10m")),
-  CNAME("c.tile", "dualstack.n.sni.global.fastly.net.", TTL("10m")),
+  CNAME("tile", "dualstack.n.sni.global.fastly.net."),
+  CNAME("a.tile", "dualstack.n.sni.global.fastly.net."),
+  CNAME("b.tile", "dualstack.n.sni.global.fastly.net."),
+  CNAME("c.tile", "dualstack.n.sni.global.fastly.net."),
 
   A("render", CULEBRE_IPV4),
   A("render", NIDHOGG_IPV4),
   AAAA("render", CULEBRE_IPV6),
   AAAA("render", NIDHOGG_IPV6),
 
-  // Services machine
+  // Site gateways
 
   A("ironbelly", IRONBELLY_IPV4),
   AAAA("ironbelly", IRONBELLY_IPV6),
-  A("backup", IRONBELLY_IPV4, TTL("10m")),
-  AAAA("backup", IRONBELLY_IPV6, TTL("10m")),
-  A("planet", IRONBELLY_IPV4, TTL("10m")),
-  AAAA("planet", IRONBELLY_IPV6, TTL("10m")),
   A("logstash", IRONBELLY_IPV4),
   AAAA("logstash", IRONBELLY_IPV6),
+  A("tiler", IRONBELLY_IPV4),
+  AAAA("tiler", IRONBELLY_IPV6),
   A("ironbelly.ams", IRONBELLY_INTERNAL),
   A("ironbelly.oob", IRONBELLY_OOB),
 
-  A("norbert", NORBERT_IPV4),
-  AAAA("norbert", NORBERT_IPV6),
-  // A("backup", NORBERT_IPV4, TTL("10m")),
-  // AAAA("backup", NORBERT_IPV6, TTL("10m")),
-  // A("planet", NORBERT_IPV4, TTL("10m")),
-  // AAAA("planet", NORBERT_IPV6, TTL("10m")),
-  A("norbert.ams", NORBERT_INTERNAL),
-  A("norbert.oob", NORBERT_OOB),
-
   A("fafnir", FAFNIR_IPV4),
   AAAA("fafnir", FAFNIR_IPV6),
-  // A("backup", FAFNIR_IPV4, TTL("10m")),
-  // AAAA("backup", FAFNIR_IPV6, TTL("10m")),
-  // A("planet", FAFNIR_IPV4, TTL("10m")),
-  // AAAA("planet", FAFNIR_IPV6, TTL("10m")),
   A("fafnir.dub", FAFNIR_INTERNAL),
   A("fafnir.oob", FAFNIR_OOB),
 
+  // Planet servers
+
+  A("norbert", NORBERT_IPV4),
+  AAAA("norbert", NORBERT_IPV6),
+  A("backup", NORBERT_IPV4),
+  AAAA("backup", NORBERT_IPV6),
+  A("planet", NORBERT_IPV4),
+  AAAA("planet", NORBERT_IPV6),
+  A("norbert.ams", NORBERT_INTERNAL),
+  A("norbert.oob", NORBERT_OOB),
+
   A("horntail", HORNTAIL_IPV4),
   AAAA("horntail", HORNTAIL_IPV6),
-  // A("backup", HORNTAIL_IPV4, TTL("10m")),
-  // AAAA("backup", HORNTAIL_IPV6, TTL("10m")),
-  // A("planet", HORNTAIL_IPV4, TTL("10m")),
-  // AAAA("planet", HORNTAIL_IPV6, TTL("10m")),
+  // A("backup", HORNTAIL_IPV4),
+  // AAAA("backup", HORNTAIL_IPV6),
+  // A("planet", HORNTAIL_IPV4),
+  // AAAA("planet", HORNTAIL_IPV6),
   A("horntail.dub", HORNTAIL_INTERNAL),
   A("horntail.oob", HORNTAIL_OOB),
 
@@ -392,11 +439,14 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
   A("otrs", RIDLEY_IPV4),
   A("blog", RIDLEY_IPV4),
   A("foundation", RIDLEY_IPV4),
-  A("hot", RIDLEY_IPV4),
-  A("dmca", RIDLEY_IPV4),
   A("ridley.ucl", RIDLEY_INTERNAL),
   A("ridley.oob", RIDLEY_OOB),
 
+  A("staging.blog", FUME_IPV4),
+  AAAA("staging.blog", FUME_IPV6),
+  A("birthday20", FUME_IPV4),
+  AAAA("birthday20", FUME_IPV6),
+
   // Matomo server
 
   A("smaug", SMAUG_IPV4),
@@ -410,36 +460,34 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
 
   // Imagery servers
 
-  A("draco", DRACO_IPV4),
-  A("draco.ucl", DRACO_INTERNAL),
-  A("draco.oob", DRACO_OOB),
-
   A("kessie", KESSIE_IPV4),
   AAAA("kessie", KESSIE_IPV6),
-  A("agri", KESSIE_IPV4, TTL("1h")),
-  AAAA("agri", KESSIE_IPV6, TTL("1h")),
-  A("a.agri", KESSIE_IPV4, TTL("1h")),
-  AAAA("a.agri", KESSIE_IPV6, TTL("1h")),
-  A("b.agri", KESSIE_IPV4, TTL("1h")),
-  AAAA("b.agri", KESSIE_IPV6, TTL("1h")),
-  A("c.agri", KESSIE_IPV4, TTL("1h")),
-  AAAA("c.agri", KESSIE_IPV6, TTL("1h")),
-  A("os", KESSIE_IPV4, TTL("1h")),
-  AAAA("os", KESSIE_IPV6, TTL("1h")),
-  A("a.os", KESSIE_IPV4, TTL("1h")),
-  AAAA("a.os", KESSIE_IPV6, TTL("1h")),
-  A("b.os", KESSIE_IPV4, TTL("1h")),
-  AAAA("b.os", KESSIE_IPV6, TTL("1h")),
-  A("c.os", KESSIE_IPV4, TTL("1h")),
-  AAAA("c.os", KESSIE_IPV6, TTL("1h")),
+  A("agri", KESSIE_IPV4),
+  AAAA("agri", KESSIE_IPV6),
+  A("a.agri", KESSIE_IPV4),
+  AAAA("a.agri", KESSIE_IPV6),
+  A("b.agri", KESSIE_IPV4),
+  AAAA("b.agri", KESSIE_IPV6),
+  A("c.agri", KESSIE_IPV4),
+  AAAA("c.agri", KESSIE_IPV6),
+  A("os", KESSIE_IPV4),
+  AAAA("os", KESSIE_IPV6),
+  A("a.os", KESSIE_IPV4),
+  AAAA("a.os", KESSIE_IPV6),
+  A("b.os", KESSIE_IPV4),
+  AAAA("b.os", KESSIE_IPV6),
+  A("c.os", KESSIE_IPV4),
+  AAAA("c.os", KESSIE_IPV6),
   A("kessie.oob", KESSIE_OOB),
 
-  // Prometheus server
+  // Prometheus server and munin redirect
 
   A("stormfly-03", STORMFLY03_IPV4),
   AAAA("stormfly-03", STORMFLY03_IPV6),
-  A("prometheus", STORMFLY03_IPV4, TTL("10m")),
-  AAAA("prometheus", STORMFLY03_IPV6, TTL("10m")),
+  A("prometheus", STORMFLY03_IPV4),
+  AAAA("prometheus", STORMFLY03_IPV6),
+  A("munin", STORMFLY03_IPV4),
+  AAAA("munin", STORMFLY03_IPV6),
   A("stormfly-03.oob", STORMFLY03_OOB),
 
   // Management server
@@ -459,13 +507,6 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
   A("idris.dub", IDRIS_INTERNAL),
   A("idris.oob", IDRIS_OOB),
 
-  // Forum server
-
-  A("clifford", CLIFFORD_IPV4),
-  A("forum", CLIFFORD_IPV4, TTL("10m")),
-  A("clifford.ucl", CLIFFORD_INTERNAL),
-  A("clifford.oob", CLIFFORD_OOB),
-
   // KVMs
 
   A("kvm1.ucl", KVM1_INTERNAL),
@@ -513,99 +554,74 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
   AAAA("irc", NAGA_IPV6),
   A("blogs", NAGA_IPV4),
   AAAA("blogs", NAGA_IPV6),
-  A("munin", NAGA_IPV4),
-  AAAA("munin", NAGA_IPV6),
+  A("welcome", NAGA_IPV4),
+  AAAA("welcome", NAGA_IPV6),
+  A("operations", NAGA_IPV4),
+  AAAA("operations", NAGA_IPV6),
+  A("hot", NAGA_IPV4),
+  AAAA("hot", NAGA_IPV6),
+  A("dmca", NAGA_IPV4),
+  AAAA("dmca", NAGA_IPV6),
+
+  A("test.otrs", NAGA_IPV4),
+  AAAA("test.otrs", NAGA_IPV6),
+
   A("naga.dub", NAGA_INTERNAL),
   A("naga.oob", NAGA_OOB),
 
   // Wiki servers
 
-  A("tabaluga", TABALUGA_IPV4),
-  AAAA("tabaluga", TABALUGA_IPV6),
-  A("wiki", TABALUGA_IPV4, TTL("10m")),
-  AAAA("wiki", TABALUGA_IPV6, TTL("10m")),
-  A("tabaluga.ams", TABALUGA_INTERNAL),
-  A("tabaluga.oob", TABALUGA_OOB),
+  A("konqi", KONQI_IPV4),
+  AAAA("konqi", KONQI_IPV6),
+  A("wiki", KONQI_IPV4),
+  AAAA("wiki", KONQI_IPV6),
+  A("konqi.dub", KONQI_INTERNAL),
+  A("konqi.oob", KONQI_OOB),
 
   // Overpass server
 
-  A("gorwen", GORWEN_IPV4),
-  AAAA("gorwen", GORWEN_IPV6),
-  A("query", GORWEN_IPV4, TTL("10m")),
-  AAAA("query", GORWEN_IPV6, TTL("10m")),
-  A("gorwen.dub", GORWEN_INTERNAL),
-  A("gorwen.oob", GORWEN_OOB),
+  A("grisu", GRISU_IPV4),
+  AAAA("grisu", GRISU_IPV6),
+  A("query", GRISU_IPV4),
+  AAAA("query", GRISU_IPV6),
+  A("grisu.dub", GRISU_INTERNAL),
+  A("grisu.oob", GRISU_OOB),
 
   // GPS tile server
 
-  A("noquiklos", NOQUIKLOS_IPV4),
-  A("gps-tile", NOQUIKLOS_IPV4),
-  A("a.gps-tile", NOQUIKLOS_IPV4),
-  A("b.gps-tile", NOQUIKLOS_IPV4),
-  A("c.gps-tile", NOQUIKLOS_IPV4),
-  A("gps.tile", NOQUIKLOS_IPV4),
-  A("gps-a.tile", NOQUIKLOS_IPV4),
-  A("gps-b.tile", NOQUIKLOS_IPV4),
-  A("gps-c.tile", NOQUIKLOS_IPV4),
-  A("noquiklos.ucl", NOQUIKLOS_INTERNAL),
-  A("noquiklos.oob", NOQUIKLOS_OOB),
-
   A("muirdris", MUIRDRIS_IPV4),
   AAAA("muirdris", MUIRDRIS_IPV6),
+  A("gps-tile", MUIRDRIS_IPV4),
+  AAAA("gps-tile", MUIRDRIS_IPV6),
+  A("a.gps-tile", MUIRDRIS_IPV4),
+  AAAA("a.gps-tile", MUIRDRIS_IPV6),
+  A("b.gps-tile", MUIRDRIS_IPV4),
+  AAAA("b.gps-tile", MUIRDRIS_IPV6),
+  A("c.gps-tile", MUIRDRIS_IPV4),
+  AAAA("c.gps-tile", MUIRDRIS_IPV6),
+  A("gps.tile", MUIRDRIS_IPV4),
+  AAAA("gps.tile", MUIRDRIS_IPV6),
+  A("gps-a.tile", MUIRDRIS_IPV4),
+  AAAA("gps-a.tile", MUIRDRIS_IPV6),
+  A("gps-b.tile", MUIRDRIS_IPV4),
+  AAAA("gps-b.tile", MUIRDRIS_IPV6),
+  A("gps-c.tile", MUIRDRIS_IPV4),
+  AAAA("gps-c.tile", MUIRDRIS_IPV6),
   A("muirdris.dub", MUIRDRIS_INTERNAL),
   A("muirdris.oob", MUIRDRIS_OOB),
 
   // Tile cache servers
 
-  A("gorynych", GORYNYCH_IPV4),
-  AAAA("gorynych", GORYNYCH_IPV6),
-  A("trogdor", TROGDOR_IPV4),
-  A("trogdor.oob", TROGDOR_OOB),
   A("ridgeback", RIDGEBACK_IPV4),
   A("ridgeback.oob", RIDGEBACK_OOB),
-  A("nepomuk", NEPOMUK_IPV4),
-  AAAA("nepomuk", NEPOMUK_IPV6),
-  A("viserion", VISERION_IPV4),
-  AAAA("viserion", VISERION_IPV6),
-  A("drogon", DROGON_IPV4),
-  AAAA("drogon", DROGON_IPV6),
-  A("saphira", SAPHIRA_IPV4),
-  AAAA("saphira", SAPHIRA_IPV6),
-  A("toothless", TOOTHLESS_IPV4),
-  AAAA("toothless", TOOTHLESS_IPV6),
   A("angor", ANGOR_IPV4),
-  // AAAA("angor", ANGOR_IPV6),
+  AAAA("angor", ANGOR_IPV6),
   A("ladon", LADON_IPV4),
   AAAA("ladon", LADON_IPV6),
   A("ascalon", ASCALON_IPV4),
-  A("takhisis", TAKHISIS_IPV4),
-  AAAA("takhisis", TAKHISIS_IPV6),
   A("neak", NEAK_IPV4),
   A("meraxes", MERAXES_IPV4),
   AAAA("meraxes", MERAXES_IPV6),
-  A("firnen", FIRNEN_IPV4),
-
-  // Spare
-
-  A("dribble", DRIBBLE_IPV4),
-  AAAA("dribble", DRIBBLE_IPV6),
-  A("dribble.ams", DRIBBLE_INTERNAL),
-  A("dribble.oob", DRIBBLE_OOB),
-
-  A("konqi", KONQI_IPV4),
-  AAAA("konqi", KONQI_IPV6),
-  A("konqi.dub", KONQI_INTERNAL),
-  A("konqi.oob", KONQI_OOB),
-
-  A("pummelzacken", PUMMELZACKEN_IPV4),
-  A("pummelzacken.ucl", PUMMELZACKEN_INTERNAL),
-  A("pummelzacken.oob", PUMMELZACKEN_OOB),
-
-  A("sarel", SAREL_IPV4),
-  A("sarel.ucl", SAREL_INTERNAL),
-  A("sarel.oob", SAREL_OOB),
-  // Temporary name for discourse fluxbb import test
-  A("forum-import-test", SAREL_IPV4),
 
   // Discourse server ("community")
 
@@ -617,21 +633,29 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
   AAAA("community", JAKELONG_IPV6),
   AAAA("communities", JAKELONG_IPV6),
   AAAA("c", JAKELONG_IPV6),
+  CNAME("community-cdn", "dualstack.n.sni.global.fastly.net."),
+  TXT("community", "google-site-verification=hQ8GZyj4KwnPqAX2oAzpbLrh6I5dfR08PSdL3icVkfg"),
+  A("forum", JAKELONG_IPV4),
+  AAAA("forum", JAKELONG_IPV6),
   A("jakelong.dub", JAKELONG_INTERNAL),
   A("jakelong.oob", JAKELONG_OOB),
-  CNAME("community-cdn", "dualstack.n.sni.global.fastly.net."),
 
-  // Donation site
+  // Donation site and new OSMF crm site
 
   A("donate", RIDLEY_IPV4),
+  A("support", RIDLEY_IPV4),
+  A("supporting", RIDLEY_IPV4),
 
-  // Uptime site at StatusCake
+  // Spare servers
 
-  CNAME("uptime", "uptimessl-new.statuscake.com."),
+  A("fume", FUME_IPV4),
+  AAAA("fume", FUME_IPV6),
+  A("fume.dub", FUME_INTERNAL),
+  A("fume.oob", FUME_OOB),
 
-  // Custom Domain for https://github.com/osmfoundation/welcome-mat/
+  // Uptime site at StatusCake
 
-  CNAME("welcome", "osmfoundation.github.io."),
+  CNAME("uptime", "uptimessl-new.statuscake.com."),
 
   // Dynamic DNS records
 
diff --git a/src/osm-wiki.js b/src/osm-wiki.js
new file mode 100644 (file)
index 0000000..c93c810
--- /dev/null
@@ -0,0 +1,77 @@
+D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
+
+  // Publish CAA records indicating that only letsencrypt and globalsign (Fastly) should issue certificates
+
+  CAA_BUILDER({
+    label: "@",
+    ttl: "1h",
+    iodef: "mailto:hostmaster@openstreetmap.org",
+    issue: [
+      "letsencrypt.org",
+      "globalsign.com",   // Used by Fastly for CDN certificates
+    ],
+    issuewild: [
+      "letsencrypt.org",
+      "globalsign.com",   // Used by Fastly for CDN certificates
+    ],
+  }),
+
+  // Mail service
+
+  MX("@", 10, QUALIFY("a.mx")),
+
+  A("a.mx", FAFNIR_IPV4),
+  AAAA("a.mx", FAFNIR_IPV6),
+  A("mail", FAFNIR_IPV4),
+  AAAA("mail", FAFNIR_IPV6),
+  A("mta-sts", FAFNIR_IPV4),
+  AAAA("mta-sts", FAFNIR_IPV6),
+
+  // Publish SPF records indicating that only shenron sends mail
+
+  SPF_BUILDER({
+    label: "@",
+    parts: [
+      "v=spf1",
+      "ip4:212.110.172.32",       // shenron ipv4
+      "ip6:2001:41c9:1:400::32",  // shenron ipv6
+      "ip4:184.104.226.98",       // fafnir ipv4
+      "ip6:2001:470:1:b3b::2",    // fafnir ipv6
+      "ip4:193.60.236.0/24",          // ucl external
+      "ip4:184.104.179.128/27",       // amsterdam external
+      "ip6:2001:470:1:fa1::/64",      // amsterdam external
+      "ip4:184.104.226.96/27",        // dublin external
+      "ip6:2001:470:1:b3b::/64",      // dublin external
+      "mx",                       // safety net if we change mx
+      "-all"
+    ]
+  }),
+
+  // Publish DMARC report-only policy
+
+  DMARC_BUILDER({
+    policy: "none",
+    rua: [
+      "mailto:openstreetmap-d@dmarc.report-uri.com"
+    ],
+    failureOptions: 1
+  }),
+
+  // Announce MTA-STS policy and TLSRPT policy for error reports
+
+  TXT("_mta-sts", "v=STSv1; id=202001291805Z"),
+  TXT("_smtp._tls", "v=TLSRPTv1; rua=mailto:openstreetmap-d@tlsrpt.report-uri.com"),
+
+  // Fastly cert domain ownership confirmation
+
+  TXT("@", "_globalsign-domain-verification=ps00GlW1BzY9c2_cwH_pFqRkvzZyaCVZ-3RLssRG6S"),
+  TXT("@", "_globalsign-domain-verification=W0buKB5ZmL-VwwHw2oQyQImk3I1q3hSemf2qmB1hjP"),
+
+  A("wiki", KONQI_IPV4),
+  AAAA("wiki", KONQI_IPV6),
+  A("www", KONQI_IPV4),
+  AAAA("www", KONQI_IPV6),
+  A("@", KONQI_IPV4),
+  AAAA("@", KONQI_IPV6)
+
+);
\ No newline at end of file
index 4e3c624365abe8140a9c5924085e18c187ddd99d..f36b23a497397ef01a50140ee772ec6e9c78b26d 100644 (file)
@@ -13,13 +13,11 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
     ],
   }),
 
-  // Let google handle email
+  // Let mailbox.org handle email
 
-  MX("@", 1, "aspmx.l.google.com.", TTL("1h")),
-  MX("@", 5, "alt1.aspmx.l.google.com.", TTL("1h")),
-  MX("@", 5, "alt2.aspmx.l.google.com.", TTL("1h")),
-  MX("@", 10, "alt3.aspmx.l.google.com.", TTL("1h")),
-  MX("@", 10, "alt4.aspmx.l.google.com.", TTL("1h")),
+  MX("@", 10, "mxext1.mailbox.org."),
+  MX("@", 10, "mxext2.mailbox.org."),
+  MX("@", 20, "mxext3.mailbox.org."),
 
   // Handle mail for the join subdomain ourselves
 
@@ -31,11 +29,32 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
     label: "@",
     parts: [
       "v=spf1",
-      "include:_spf.google.com",  // Google GSuite
-      "ip4:212.110.172.32",       // shenron ipv4
-      "ip6:2001:41c9:1:400::32",  // shenron ipv6
-      "ip4:184.104.226.98",       // fafnir ipv4
-      "ip6:2001:470:1:b3b::2",    // fafnir ipv6
+      "include:mailbox.org",     // mailbox.org
+      "include:_spf.google.com", // Google GSuite
+      "ip4:212.110.172.32",      // shenron ipv4
+      "ip6:2001:41c9:1:400::32", // shenron ipv6
+      "ip4:184.104.226.98",      // fafnir ipv4
+      "ip6:2001:470:1:b3b::2",   // fafnir ipv6
+      "ip4:193.60.236.0/24",     // ucl external
+      "ip4:184.104.179.128/27",  // amsterdam external
+      "ip6:2001:470:1:fa1::/64", // amsterdam external
+      "ip4:184.104.226.96/27",   // dublin external
+      "ip6:2001:470:1:b3b::/64", // dublin external
+      "-all"
+    ]
+  }),
+
+  SPF_BUILDER({
+    label: "wiki",
+    parts: [
+      "v=spf1",
+      "ip4:184.104.226.98",      // fafnir ipv4
+      "ip6:2001:470:1:b3b::2",   // fafnir ipv6
+      "ip4:193.60.236.0/24",     // ucl external
+      "ip4:184.104.179.128/27",  // amsterdam external
+      "ip6:2001:470:1:fa1::/64", // amsterdam external
+      "ip4:184.104.226.96/27",   // dublin external
+      "ip6:2001:470:1:b3b::/64", // dublin external
       "-all"
     ]
   }),
@@ -43,11 +62,30 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
   // Apple Business Manager verification
   TXT("@", "apple-domain-verification=ZzBG2msRtUDehTMW"),
 
+  // Mailbox.org registration verification
+  TXT("d00f46a3fde45d06c53f3cd5b21f213ea384e7f5", "4a229bebe41606a1f7d909507846729a73998c31"),
+
+  // Publish DMARC report-only policy
+
+  DMARC_BUILDER({
+    policy: "none",
+    rua: [
+      "mailto:openstreetmap-d@dmarc.report-uri.com"
+    ],
+    failureOptions: 1
+  }),
+
   // DKIM keys
 
   TXT("google._domainkey", "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJmTBAkYRCocCCNtVsdRNMlQel8kNfjPYJpjEm7woEgZh9yZeDzxImtz+u73oUF4+7bXzrNYbP946WNQIwAba1J69he8L1qfPBJLd3Z/fgmuaGdWcxpDno2EY4cQ8PrzvI6Vfm+6YAFANl8w09CIg41ykdlzH4iUJXD35k3SIl3wIDAQAB"),
   TXT("20201112._domainkey", "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz4OyJc77mpW5djxVfZm18HcmJHQLpo7B2Z8Og8byICjDiG91Tpkv5ws3xIbMsi/tVA6p5L76uL0TGKlo4ayewYvJUTC22+hBWARUuWA0DgeMwBpW/dNUOJHBABCTouolvXLKRTPTefA177Y5jYbD7ZeJAR4ZnFbZX6spimXCT66AyhqCBSrOCXYXFm3ons5ANkkQBNZ/jMYczYs9T1ijNEbBNTJmLO+whOrYLyGd3iZ9X9iOmuNFBCgXp0tsN//FBsOyTl559/XY25r3GZhiKXMbrZ1IJewqJlG0+hN1y9qwWGgq5YpZPt5YJ1KGjIrcFX59/PhNQX4khPOaD5g7ZQIDAQAB", AUTOSPLIT),
 
+  // https://kb.mailbox.org/en/private/custom-domains/spf-dkim-and-dmarc-how-to-improve-spam-reputation-and-avoid-bounces
+  CNAME("MBO0001._domainkey", "MBO0001._domainkey.mailbox.org."),
+  CNAME("MBO0002._domainkey", "MBO0002._domainkey.mailbox.org."),
+  CNAME("MBO0003._domainkey", "MBO0003._domainkey.mailbox.org."),
+  CNAME("MBO0004._domainkey", "MBO0004._domainkey.mailbox.org."),
+
   // Google postmaster tools verification
 
   CNAME("uaqn4jv2xaoe", "gv-jun5dginqysxph.dv.googlehosted.com."),
@@ -60,18 +98,32 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
   CNAME("calendar", "ghs.googlehosted.com."),
   CNAME("sites", "ghs.googlehosted.com."),
 
+  // Aliases for mailbox.org services
+
+  CNAME("autoconfig", "mailbox.org."),
+  SRV("_hkps._tcp", 1, 1, 443, "pgp.mailbox.org."),
+
   // Main web server and it's aliases
 
   A("@", RIDLEY_IPV4),
   A("www", RIDLEY_IPV4),
   A("wiki", RIDLEY_IPV4),
   A("blog", RIDLEY_IPV4),
+
+  A("staging.blog", FUME_IPV4),
+  AAAA("staging.blog", FUME_IPV6),
+
   A("crm", RIDLEY_IPV4),
   A("join", RIDLEY_IPV4),
+  A("support", RIDLEY_IPV4),
+  A("supporting", RIDLEY_IPV4),
+  A("donate", RIDLEY_IPV4),
+
   A("board", RIDLEY_IPV4),
   A("dwg", RIDLEY_IPV4),
   A("mwg", RIDLEY_IPV4),
-  A("operations", RIDLEY_IPV4),
+  A("operations", NAGA_IPV4),
+  AAAA("operations", NAGA_IPV6),
 
   // Nextcloud instance
 
diff --git a/src/ptr_equinix_ams_ipv4.js b/src/ptr_equinix_ams_ipv4.js
new file mode 100644 (file)
index 0000000..46e0704
--- /dev/null
@@ -0,0 +1,14 @@
+// http://www.he.net/adm/reverse.dns.html (RFC4183 notation)
+D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
+  PTR(DRIBBLE_IPV4.split(".").pop(), "dribble.openstreetmap.org."),
+  PTR(DULCY_IPV4.split(".").pop(), "dulcy.openstreetmap.org."),
+  PTR(FAFFY_IPV4.split(".").pop(), "faffy.openstreetmap.org."),
+  PTR(IRONBELLY_IPV4.split(".").pop(), "ironbelly.openstreetmap.org."),
+  PTR(NORBERT_IPV4.split(".").pop(), "norbert.openstreetmap.org."),
+  PTR(ODIN_IPV4.split(".").pop(), "odin.openstreetmap.org."),
+  PTR(SPIKE06_IPV4.split(".").pop(), "spike-06.openstreetmap.org."),
+  PTR(SPIKE07_IPV4.split(".").pop(), "spike-07.openstreetmap.org."),
+  PTR(SPIKE08_IPV4.split(".").pop(), "spike-08.openstreetmap.org."),
+  PTR(VHAGAR_IPV4.split(".").pop(), "vhagar.openstreetmap.org."),
+  PTR(SWITCH1AMS_IPV4.split(".").pop(), "switch1.ams.openstreetmap.org.")
+);
diff --git a/src/ptr_equinix_ams_ipv6.js b/src/ptr_equinix_ams_ipv6.js
new file mode 100644 (file)
index 0000000..c670fb0
--- /dev/null
@@ -0,0 +1,13 @@
+D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
+  PTR(DRIBBLE_IPV6, "dribble.openstreetmap.org."),
+  PTR(DULCY_IPV6, "dulcy.openstreetmap.org."),
+  PTR(FAFFY_IPV6, "faffy.openstreetmap.org."),
+  PTR(IRONBELLY_IPV6, "ironbelly.openstreetmap.org."),
+  PTR(NORBERT_IPV6, "norbert.openstreetmap.org."),
+  PTR(ODIN_IPV6, "odin.openstreetmap.org."),
+  PTR(SPIKE06_IPV6, "spike-06.openstreetmap.org."),
+  PTR(SPIKE07_IPV6, "spike-07.openstreetmap.org."),
+  PTR(SPIKE08_IPV6, "spike-08.openstreetmap.org."),
+  PTR(VHAGAR_IPV6, "vhagar.openstreetmap.org."),
+  PTR(SWITCH1AMS_IPV6, "switch1.ams.openstreetmap.org.")
+);
index ada63be280598aa358567b43c1cbf6fa3e720f64..66cee2640be22fa0a44f15ca256cbcf1cbbb9c0f 100644 (file)
@@ -1,16 +1,17 @@
 // http://www.he.net/adm/reverse.dns.html (RFC4183 notation)
 D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
-  PTR(SWITCH1DUB_IPV4.split(".").pop(), "switch1.dub.openstreetmap.org."),
+  PTR(CULEBRE_IPV4.split(".").pop(), "culebre.openstreetmap.org."),
   PTR(FAFNIR_IPV4.split(".").pop(), "fafnir.openstreetmap.org."),
-  PTR(SPIKE01_IPV4.split(".").pop(), "spike-01.openstreetmap.org."),
-  PTR(SPIKE02_IPV4.split(".").pop(), "spike-02.openstreetmap.org."),
-  PTR(SPIKE03_IPV4.split(".").pop(), "spike-03.openstreetmap.org."),
+  PTR(HORNTAIL_IPV4.split(".").pop(), "horntail.openstreetmap.org."),
   PTR(IDRIS_IPV4.split(".").pop(), "idris.openstreetmap.org."),
+  PTR(JAKELONG_IPV4.split(".").pop(), "jakelong.openstreetmap.org."),
   PTR(KONQI_IPV4.split(".").pop(), "konqi.openstreetmap.org."),
+  PTR(LONGMA_IPV4.split(".").pop(), "longma.openstreetmap.org."),
+  PTR(MUIRDRIS_IPV4.split(".").pop(), "muirdris.openstreetmap.org."),
   PTR(NAGA_IPV4.split(".").pop(), "naga.openstreetmap.org."),
-  PTR(CULEBRE_IPV4.split(".").pop(), "culebre.openstreetmap.org."),
-  PTR(HORNTAIL_IPV4.split(".").pop(), "horntail.openstreetmap.org."),
-  PTR(GORWEN_IPV4.split(".").pop(), "gorwen.openstreetmap.org."),
-  PTR(JAKELONG_IPV4.split(".").pop(), "jakelong.openstreetmap.org."),
-  PTR(LONGMA_IPV4.split(".").pop(), "longma.openstreetmap.org.")
+  PTR(SMAUG_IPV4.split(".").pop(), "smaug.openstreetmap.org."),
+  PTR(SPIKE01_IPV4.split(".").pop(), "spike-01.openstreetmap.org."),
+  PTR(SPIKE02_IPV4.split(".").pop(), "spike-02.openstreetmap.org."),
+  PTR(SPIKE03_IPV4.split(".").pop(), "spike-03.openstreetmap.org."),
+  PTR(SWITCH1DUB_IPV4.split(".").pop(), "switch1.dub.openstreetmap.org.")
 );
index 706207e1356b02dafd0644dc2aacbe7cd72e4c5d..2bf34f83b7b44e48ea14d4f2392631ae6277c734 100644 (file)
@@ -1,15 +1,16 @@
 D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
-  PTR(SWITCH1DUB_IPV6, "switch1.dub.openstreetmap.org."),
+  PTR(CULEBRE_IPV6, "culebre.openstreetmap.org."),
   PTR(FAFNIR_IPV6, "fafnir.openstreetmap.org."),
-  PTR(SPIKE01_IPV6, "spike-01.openstreetmap.org."),
-  PTR(SPIKE02_IPV6, "spike-02.openstreetmap.org."),
-  PTR(SPIKE03_IPV6, "spike-03.openstreetmap.org."),
+  PTR(HORNTAIL_IPV6, "horntail.openstreetmap.org."),
   PTR(IDRIS_IPV6, "idris.openstreetmap.org."),
+  PTR(JAKELONG_IPV6, "jakelong.openstreetmap.org."),
   PTR(KONQI_IPV6, "konqi.openstreetmap.org."),
+  PTR(LONGMA_IPV6, "longma.openstreetmap.org."),
+  PTR(MUIRDRIS_IPV6.split(".").pop(), "muirdris.openstreetmap.org."),
   PTR(NAGA_IPV6, "naga.openstreetmap.org."),
-  PTR(CULEBRE_IPV6, "culebre.openstreetmap.org."),
-  PTR(HORNTAIL_IPV6, "horntail.openstreetmap.org."),
-  PTR(GORWEN_IPV6, "gorwen.openstreetmap.org."),
-  PTR(JAKELONG_IPV6, "jakelong.openstreetmap.org."),
-  PTR(LONGMA_IPV6, "longma.openstreetmap.org.")
+  PTR(SMAUG_IPV6.split(".").pop(), "smaug.openstreetmap.org."),
+  PTR(SPIKE01_IPV6, "spike-01.openstreetmap.org."),
+  PTR(SPIKE02_IPV6, "spike-02.openstreetmap.org."),
+  PTR(SPIKE03_IPV6, "spike-03.openstreetmap.org."),
+  PTR(SWITCH1DUB_IPV6, "switch1.dub.openstreetmap.org.")
 );
index 76e0ddf12f82499e98d2e98b3f5488e36ecb0292..14776b1ebfd9df7168232dce76a8caf2c6b29715 100644 (file)
@@ -13,13 +13,21 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
     ],
   }),
 
-  // Let openstreetmap.at handle email
+  // Block email delivery
 
-  MX("@", 1, "openstreetmap.at.", TTL("1h")),
+  TXT("_dmarc", "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"),
+  TXT("*._domainkey", "v=DKIM1; p="),
+  TXT("@", "v=spf1 -all"),
 
-  // Main web server and it's aliases
-
-  A("@", "88.198.206.107", TTL("10m")),
-  A("www", "88.198.206.107", TTL("10m"))
+  // Site hosted on github pages
 
+  ALIAS("@", "openstreetmap-polska.github.io."),
+  CNAME("www", "openstreetmap-polska.github.io."),
+  
+  // Previous editions
+  
+  A("2014", "49.12.5.171"),
+  CNAME("2023", "osmbe.github.io."),
+  CNAME("2024", "openstreetmap-polska.github.io.")
+  
 );
index 79021c4e9eee5dbfc93421c8f11729e28f2da76e..a54d5c03ec1122263fa58cf31c4beaa60212f892 100644 (file)
@@ -30,11 +30,11 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
 
   // Let google handle email
 
-  MX("@", 1, "aspmx.l.google.com.", TTL("1h")),
-  MX("@", 5, "alt1.aspmx.l.google.com.", TTL("1h")),
-  MX("@", 5, "alt2.aspmx.l.google.com.", TTL("1h")),
-  MX("@", 10, "alt3.aspmx.l.google.com.", TTL("1h")),
-  MX("@", 10, "alt4.aspmx.l.google.com.", TTL("1h")),
+  MX("@", 1, "aspmx.l.google.com."),
+  MX("@", 5, "alt1.aspmx.l.google.com."),
+  MX("@", 5, "alt2.aspmx.l.google.com."),
+  MX("@", 10, "alt3.aspmx.l.google.com."),
+  MX("@", 10, "alt4.aspmx.l.google.com."),
 
   // Aliases for google services
 
@@ -46,25 +46,37 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
 
   // Main web server and it's aliases
 
-  A("@", RIDLEY_IPV4, TTL("10m")),
-  A("www", RIDLEY_IPV4, TTL("10m")),
-  A("2022", RIDLEY_IPV4, TTL("10m")),
-  A("2021", RIDLEY_IPV4, TTL("10m")),
-  A("2020", RIDLEY_IPV4, TTL("10m")),
-  A("2019", RIDLEY_IPV4, TTL("10m")),
-  A("2018", RIDLEY_IPV4, TTL("10m")),
-  A("2017", RIDLEY_IPV4, TTL("10m")),
-  A("2016", RIDLEY_IPV4, TTL("10m")),
-  A("2014", RIDLEY_IPV4, TTL("10m")),
-  A("2013", RIDLEY_IPV4, TTL("10m")),
-  A("2012", RIDLEY_IPV4, TTL("10m")),
-  A("2011", RIDLEY_IPV4, TTL("10m")),
-  A("2010", RIDLEY_IPV4, TTL("10m")),
-  A("2009", RIDLEY_IPV4, TTL("10m")),
-  A("2008", RIDLEY_IPV4, TTL("10m")),
-  A("2007", RIDLEY_IPV4, TTL("10m")),
+  A("@", NAGA_IPV4),
+  AAAA("@", NAGA_IPV6),
+  A("www", NAGA_IPV4),
+  AAAA("www", NAGA_IPV6),
+  A("2024", NAGA_IPV4),
+  AAAA("2024", NAGA_IPV6),
+  A("2022", NAGA_IPV4),
+  AAAA("2022", NAGA_IPV6),
+  A("2021", NAGA_IPV4),
+  AAAA("2021", NAGA_IPV6),
+  A("2020", NAGA_IPV4),
+  AAAA("2020", NAGA_IPV6),
+  A("2019", NAGA_IPV4),
+  AAAA("2019", NAGA_IPV6),
+  A("2018", NAGA_IPV4),
+  AAAA("2018", NAGA_IPV6),
+  A("2017", NAGA_IPV4),
+  AAAA("2017", NAGA_IPV6),
+  A("2016", NAGA_IPV4),
+  AAAA("2016", NAGA_IPV6),
+  A("2013", NAGA_IPV4),
+  AAAA("2013", NAGA_IPV6),
+  A("2012", RIDLEY_IPV4),
+  A("2011", RIDLEY_IPV4),
+  A("2010", RIDLEY_IPV4),
+  A("2009", RIDLEY_IPV4),
+  A("2008", RIDLEY_IPV4),
+  A("2007", RIDLEY_IPV4),
 
   // Google Site Verification - Grant
-  TXT("2022", "google-site-verification=wT1dJzSYM_2By372lJ_v9IU1crF21qOySEAPABxUcyo")
+  TXT("2022", "google-site-verification=wT1dJzSYM_2By372lJ_v9IU1crF21qOySEAPABxUcyo"),
+  TXT("@", "google-site-verification=pqJHZHtrC4UhevQdPlR_2gVDPml6UCwmyHq75bfWLRQ")
 
 );
index fa425c129f290fe595864945454b00b13b87734c..e6763c7075298a0dcdafa7651aee49e8b03aba07 100644 (file)
@@ -17,7 +17,6 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
 
   SPF_BUILDER({
     label: "@",
-    ttl: "1h",
     parts: [
       "v=spf1",
       "include:openstreetmap.org",  // main openstreetmap.org spf record
@@ -27,7 +26,9 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
 
   // Main web server and it's aliases
 
-  A("@", RIDLEY_IPV4, TTL("10m")),
-  A("www", RIDLEY_IPV4, TTL("10m"))
+  A("@", NAGA_IPV4),
+  AAAA("@", NAGA_IPV6),
+  A("www", NAGA_IPV4),
+  AAAA("www", NAGA_IPV6)
 
 );