]> git.openstreetmap.org Git - dns.git/blobdiff - src/osmfoundation.js
Add additional HTTPS / SVCB records
[dns.git] / src / osmfoundation.js
index 81aec60e2d126d9719f036a7a2c1a5143858be93..89e71e00d51380d24e8ff0546666deee56c4ccc4 100644 (file)
@@ -2,17 +2,22 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
 
   // Publish CAA records indicating that only letsencrypt should issue certificates
 
-  CAA("@", "issue", "letsencrypt.org", CF_TTL_ANY),
-  CAA("@", "issuewild", "letsencrypt.org", CF_TTL_ANY),
-  CAA("@", "iodef", "mailto:hostmaster@openstreetmap.org"),
-
-  // 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")),
+  CAA_BUILDER({
+    label: "@",
+    iodef: "mailto:hostmaster@openstreetmap.org",
+    issue: [
+      "letsencrypt.org",
+    ],
+    issuewild: [
+      "letsencrypt.org",
+    ],
+  }),
+
+  // Let mailbox.org handle email
+
+  MX("@", 10, "mxext1.mailbox.org."),
+  MX("@", 10, "mxext2.mailbox.org."),
+  MX("@", 20, "mxext3.mailbox.org."),
 
   // Handle mail for the join subdomain ourselves
 
@@ -20,44 +25,126 @@ D(DOMAIN, REGISTRAR, DnsProvider(PROVIDER),
 
   // SPF policy
 
-  TXT("@", "v=spf1 ip4:212.110.172.32 ip6:2001:41c9:1:400::32 a mx include:_spf.google.com -all"),
-
-  // DKIM key
-
-  TXT("google._domainkey", "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJmTBAkYRCocCCNtVsdRNMlQel8kNfjPYJpjEm7woEgZh9yZeDzxImtz+u73oUF4+7bXzrNYbP946WNQIwAba1J69he8L1qfPBJLd3Z/fgmuaGdWcxpDno2EY4cQ8PrzvI6Vfm+6YAFANl8w09CIg41ykdlzH4iUJXD35k3SIl3wIDAQAB", TTL("15m")),
+  SPF_BUILDER({
+    label: "@",
+    parts: [
+      "v=spf1",
+      "include:mailbox.org",     // mailbox.org
+      "include:_spf.google.com", // Google GSuite
+      "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"
+    ]
+  }),
+
+  // 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."),
 
-  // XMPP chat servers
+  // Aliases for google services
 
-  SRV("_xmpp-server._tcp", 5, 0, 5269, "xmpp-server.l.google.com."),
-  SRV("_xmpp-server._tcp", 20, 0, 5269, "xmpp-server1.l.google.com."),
-  SRV("_xmpp-server._tcp", 20, 0, 5269, "xmpp-server2.l.google.com."),
-  SRV("_xmpp-server._tcp", 20, 0, 5269, "xmpp-server3.l.google.com."),
-  SRV("_xmpp-server._tcp", 20, 0, 5269, "xmpp-server4.l.google.com."),
+  CNAME("login", "ghs.googlehosted.com."),
+  CNAME("docs", "ghs.googlehosted.com."),
+  CNAME("mail", "ghs.googlehosted.com."),
+  CNAME("calendar", "ghs.googlehosted.com."),
+  CNAME("sites", "ghs.googlehosted.com."),
 
-  // Aliases for google services
+  // Aliases for mailbox.org services
 
-  CNAME("login", "ghs.google.com."),
-  CNAME("docs", "ghs.google.com."),
-  CNAME("mail", "ghs.google.com."),
-  CNAME("calendar", "ghs.google.com."),
-  CNAME("sites", "ghs.google.com."),
+  CNAME("autoconfig", "mailbox.org."),
+  SRV("_hkps._tcp", 1, 1, 443, "pgp.mailbox.org."),
 
   // 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("wiki", RIDLEY_IPV4, TTL("10m")),
-  A("blog", RIDLEY_IPV4, TTL("10m")),
-  A("crm", RIDLEY_IPV4, TTL("10m")),
-  A("join", RIDLEY_IPV4, TTL("10m")),
-  A("board", RIDLEY_IPV4, TTL("10m")),
-  A("dwg", RIDLEY_IPV4, TTL("10m")),
-  A("mwg", RIDLEY_IPV4, TTL("10m")),
-  A("operations", RIDLEY_IPV4, TTL("10m"))
+  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", NAGA_IPV4),
+  AAAA("operations", NAGA_IPV6),
+
+  // HTTPS / SVCB records
+  HTTPS("www", 1, ".", "alpn=h2"),
+  HTTPS("wiki", 1, ".", "alpn=h2"),
+  HTTPS("blog", 1, ".", "alpn=h2"),
+  HTTPS("staging.blog", 1, ".", "alpn=h2"),
+  HTTPS("crm", 1, ".", "alpn=h2"),
+  HTTPS("join", 1, ".", "alpn=h2"),
+  HTTPS("support", 1, ".", "alpn=h2"),
+  HTTPS("supporting", 1, ".", "alpn=h2"),
+  HTTPS("donate", 1, ".", "alpn=h2"),
+  HTTPS("board", 1, ".", "alpn=h2"),
+  HTTPS("dwg", 1, ".", "alpn=h2"),
+  HTTPS("mwg", 1, ".", "alpn=h2"),
+  HTTPS("operations", 1, ".", "alpn=h2"),
+
+  // Nextcloud instance
+
+  CNAME("files", "nextcloud-openstreetmapfoundation.cloud68.systems."),
+
+  A("hardware", IDRIS_IPV4),
+
+  // HTTPS / SVCB records
+  HTTPS("hardware", 1, ".", "alpn=h2")
 
 );