// Publish CAA records indicating that only letsencrypt and globalsign (Fastly) should issue certificates
- CAA("@", "issue", "letsencrypt.org", CF_TTL_ANY),
- CAA("@", "issuewild", "letsencrypt.org", CF_TTL_ANY),
- CAA("@", "issue", "globalsign.com", CF_TTL_ANY),
- CAA("@", "issuewild", "globalsign.com", CF_TTL_ANY),
- CAA("@", "iodef", "mailto:hostmaster@openstreetmap.org"),
+ 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
+ ],
+ }),
// Use shenron as the MX host
// Publish SPF records indicating that only shenron sends mail
- TXT("@", "v=spf1 ip4:212.110.172.32 ip6:2001:41c9:1:400::32 mx -all"),
- TXT("otrs", "v=spf1 ip4:212.110.172.32 ip6:2001:41c9:1:400::32 mx -all"),
+ SPF_BUILDER({
+ label: "@",
+ ttl: "1h",
+ parts: [
+ "v=spf1",
+ "ip4:212.110.172.32", // shenron ipv4
+ "ip6:2001:41c9:1:400::32", // shenron ipv6
+ "mx", // safety net if we change mx
+ "-all"
+ ]
+ }),
+
+ SPF_BUILDER({
+ label: "messages",
+ ttl: "1h",
+ parts: [
+ "v=spf1",
+ "ip4:212.110.172.32", // shenron ipv4
+ "ip6:2001:41c9:1:400::32", // shenron ipv6
+ "mx", // safety net if we change mx
+ "-all"
+ ]
+ }),
+
+ SPF_BUILDER({
+ label: "noreply",
+ ttl: "1h",
+ parts: [
+ "v=spf1",
+ "ip4:212.110.172.32", // shenron ipv4
+ "ip6:2001:41c9:1:400::32", // shenron ipv6
+ "mx", // safety net if we change mx
+ "-all"
+ ]
+ }),
+
+ SPF_BUILDER({
+ label: "otrs",
+ ttl: "1h",
+ parts: [
+ "v=spf1",
+ "ip4:212.110.172.32", // shenron ipv4
+ "ip6:2001:41c9:1:400::32", // shenron ipv6
+ "mx", // safety net if we change mx
+ "-all"
+ ]
+ }),
// Publish DKIM public key
TXT("20200301._domainkey", "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzvoNZVOGfw1V4A171hxHMhzVTAnIUQVJ8iX3wbqCld8A5iIaXeTGYvBmewymax/cYJS4QqzbpUzkgrrTA9avuZhd+QGJDgjADgx4VyMOaOS6FwAxS0uXtLrt+lsixRDx/feKyZHaxjzJAQy46ok77xXL4UXIaaovw6G6eZpIScMzZQ2zkKNJxTICzzSOduIilHhMWte4XP+/2PdRmD7Ge9jb0U4bZjswX0AqKSGzDKYw+yxVna9l53adeCnklqg2ofoXu+ResiH+kt05aCUOMo8en3em6yBnRCMalgi1E3Tt7I5BWcYFRkT/8agUGW4gGC6XMV9IskOsYL0emG0kGwIDAQAB", AUTOSPLIT),
+ // Publish DMARC report-only policy
+
+ DMARC_BUILDER({
+ policy: "none",
+ rua: [
+ "mailto:openstreetmap-d@dmarc.report-uri.com"
+ ],
+ ruf: [
+ "mailto:admins@openstreetmap.org"
+ ],
+ 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:postmaster@openstreetmap.org"),
-
+ 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"),
// Rails application servers
- A("thorn-01.ams", THORN01_INTERNAL),
- A("rails1.ams", THORN01_INTERNAL),
- A("thorn-01.oob", THORN01_OOB),
-
A("thorn-02.ams", THORN02_INTERNAL),
A("rails2.ams", THORN02_INTERNAL),
A("thorn-02.oob", THORN02_OOB),
CNAME("a.tile", "dualstack.osff2.map.fastly.net.", TTL("10m")),
CNAME("b.tile", "dualstack.osff2.map.fastly.net.", TTL("10m")),
CNAME("c.tile", "dualstack.osff2.map.fastly.net.", TTL("10m")),
-
+
// Services machine
A("ironbelly", IRONBELLY_IPV4),
A("clifford.ucl", CLIFFORD_INTERNAL),
A("clifford.oob", CLIFFORD_OOB),
+ // Discourse server
+
+ A("lockheed", LOCKHEED_IPV4),
+ AAAA("lockheed", LOCKHEED_IPV6),
+ A("lockheed.ams", LOCKHEED_INTERNAL),
+ A("lockheed.oob", LOCKHEED_OOB),
+
// KVMs
A("kvm1.ucl", KVM1_INTERNAL),
AAAA("nidhogg", NIDHOGG_IPV6),
A("boitata", BOITATA_IPV4),
AAAA("boitata", BOITATA_IPV6),
- A("fafnir", FAFNIR_IPV4),
- AAAA("fafnir", FAFNIR_IPV6),
A("fume", FUME_IPV4),
A("takhisis", TAKHISIS_IPV4),
AAAA("takhisis", TAKHISIS_IPV6),
// Donation site
- A("donate", RIDLEY_IPV4, TTL("10m")),
+ A("donate", RIDLEY_IPV4),
// Uptime site at StatusCake