*.lisp: Deploy `eggle' as a nameserver.
[zones] / distorted.lisp
index 3798725..190c54e 100644 (file)
@@ -71,6 +71,7 @@
        (precision.ns :ip precision)
        (telecaster.ns :ip telecaster)
        (national.ns :ip national)
+       (eggle.ns :ip eggle)
        #-view/inside (mythic-beasts-1.ns :ip mythic-ns1)
        #-view/inside (mythic-beasts-2.ns :ip mythic-ns2)
        #-view/inside (mythic-beasts-3.ns :ip mythic-ns3)
 
   ;; Mail servers.
   ((@ mail blackhole) :mx mail :srv ((:smtp mail)))
-  ((bugs) :ttl 300 :mx lists :srv ((:smtp bugs)))
-  ((lists) :ttl 300 :mx lists :srv ((:smtp lists)))
-
-  (stratocaster.20140403._domainkey
-   :dkim ("stratocaster-20140403"
-         :v "DKIM1" :k "rsa" :h "sha256" :s "email"))
+  (bugs :mx lists :srv ((:smtp bugs)))
+  (lists :mx lists :srv ((:smtp lists)))
+  (_dmarc :dmarc (:v "DMARC1"
+                 :p "quarantine" :sp "quarantine"
+                 :adkim "s" :aspf "s"))
+  ((_domainkey _domainkey.mail) :dname stratocaster.dkim)
+  ((stratocaster @ mail) :spf ((:version "spf1")
+                              (:pass :ip stratocaster.dmz)
+                              (:soft :all)))
+  ((_domainkey.bugs _domainkey.lists) :dname telecaster.dkim)
+  ((telecaster bugs lists) :spf ((:version "spf1")
+                                (:pass :ip telecaster.dmz)
+                                (:soft :all)))
 
   ;; Anycast services.
   (dns0 :anycast ((any dns0.any) (dmz radius.dmz)
 
   ;; Virtual hosts.
   (national :abbrev n (linode :abbrev nl) (upn :abbrev ny))
-  (national (linode :addr national.linode)
-           (upn :addr national.upn))
+  (national (linode :addr national.linode) (upn :addr national.upn))
+  (eggle :abbrev e (jump :abbrev ej) (upn :abbrev ey))
+  (eggle (jump :addr eggle.jump) (upn :addr eggle.upn))
   (mdwdev (upn :addr mdwdev.upn))
 
   ;; Nicko's servers.
   (dhcp :ns ((radius.ns.dhcp :ip radius)
             (precision.ns.dhcp :ip precision)
             (telecaster.ns.dhcp :ip telecaster)
-            (national.ns.dhcp :ip national))
+            (national.ns.dhcp :ip national)
+            (eggle.ns.dhcp :ip eggle))
        :ds ((55966 :rsasha256 :sha1
             "95b05c1f4e84f950f29630004bac447f8a87ca33")
             (55966 :rsasha256 :sha256
   (dyn :ns ((radius.ns.dyn :ip radius)
            (precision.ns.dyn :ip precision)
            (telecaster.ns.dyn :ip telecaster)
-           (national.ns.dyn :ip national))
+           (national.ns.dyn :ip national)
+           (eggle.ns.dyn :ip eggle))
        :ds ((11335 :rsasha256 :sha1
            "7ed2b843b0bfb38ceca68617dfacbeafab1d1ea9")
            (11335 :rsasha256 :sha256
   (dnserr :ns ((radius.ns.dnserr :ip radius.dmz)
               (precision.ns.dnserr :ip precision.dmz)
               (telecaster.ns.dnserr :ip telecaster.dmz)
-              (national.ns.dnserr :ip national.linode))
+              (national.ns.dnserr :ip national.linode)
+              (eggle.ns.dnserr :ip eggle.jump))
          :ds ((40945 :rsasha256 :sha1
                "f35b5d0b877b940e63ad1b3afc21d6ba83cd1b3b")
               (40945 :rsasha256 :sha256
                #.(concatenate 'string "fb171d206d4d64c5a7a6c290ce6e20df"
                                       "44f1db7f41e2260f1fe8d7c55d524c11"))))
+  (stratocaster.dkim
+   :ns ((radius.ns.stratocaster.dkim :ip radius.dmz)
+       (precision.ns.stratocaster.dkim :ip precision.dmz)
+       (telecaster.ns.stratocaster.dkim :ip telecaster.dmz)
+       (national.ns.stratocaster.dkim :ip national.linode)
+       (eggle.ns :ip eggle.jump)
+       (mythic-beasts-1.ns.stratocaster.dkim :ip mythic-ns1)
+       (mythic-beasts-2.ns.stratocaster.dkim :ip mythic-ns2)
+       (mythic-beasts-3.ns.stratocaster.dkim :ip mythic-ns3))
+   :ds ((24577 :rsasha256 :sha1
+        "d06847c01e19098509a8d07a9aafaceff532c9c7")
+       (24577 :rsasha256 :sha256
+        #.(concatenate 'string "a40cdb1c633041cfbc1b80a400cff527"
+                               "2cad051915fc0cd40296a2d4590b9d2b"))))
+  (telecaster.dkim
+   :ns ((radius.ns.telecaster.dkim :ip radius.dmz)
+       (precision.ns.telecaster.dkim :ip precision.dmz)
+       (telecaster.ns.telecaster.dkim :ip telecaster.dmz)
+       (national.ns.telecaster.dkim :ip national.linode)
+       (eggle.ns :ip eggle.jump)
+       (mythic-beasts-1.ns.telecaster.dkim :ip mythic-ns1)
+       (mythic-beasts-2.ns.telecaster.dkim :ip mythic-ns2)
+       (mythic-beasts-3.ns.telecaster.dkim :ip mythic-ns3))
+   :ds ((38896 :rsasha256 :sha1
+        "2c2daea658784e22c46bf9e86da67def1e34cf40")
+       (38896 :rsasha256 :sha256
+        #.(concatenate 'string "66997571c7d47f912caa65f2154ecd37"
+                               "5b9d391e3ed44d79ac35eef59264e521"))))
   (io :ns ((ns.io :ip jazz.dmz)))
-  (play :ns (radius.ns precision.ns telecaster.ns national.ns)))
+  (play :ns (radius.ns precision.ns telecaster.ns national.ns eggle.jump)))
 
 ;;;--------------------------------------------------------------------------
 ;;; Other subsidiary zones.
 
+#+view/outside
 (defzone dhcp.distorted.org.uk
-  :ns ((radius.ns :ip radius.dmz)
-       (precision.ns :ip precision.dmz)
-       (telecaster.ns :ip telecaster.dmz)
-       (national.ns :ip national.linode))
+  :ns ((radius.ns :ip radius)
+       (precision.ns :ip precision)
+       (telecaster.ns :ip telecaster)
+       (national.ns :ip national)
+       (eggle.ns.dhcp :ip eggle))
   (gibson :addr gibson.unsafe)
   (crybaby :addr crybaby.unsafe)
   (lespaul :addr lespaul.unsafe)
   (invader :addr invader.safe)
   (marauder :addr marauder.safe))
 
+#+view/outside
 (defzone (dyn.distorted.org.uk :source telecaster.distorted.org.uk.)
   :ns ((radius.ns :ip radius)
        (precision.ns :ip precision)
        (telecaster.ns :ip telecaster)
-       (national.ns :ip national)))
+       (national.ns :ip national)
+       (eggle.ns.dhcp :ip eggle)))
 
+#+view/outside
 (defzone nicko.org
   (richmond :addr richmond.dmz))
 
+#+view/outside
+(defzone stratocaster.dkim.distorted.org.uk
+  :ns ((radius.ns :ip radius)
+       (precision.ns :ip precision)
+       (telecaster.ns :ip telecaster)
+       (national.ns :ip national)
+       (eggle.ns.dhcp :ip eggle)
+       (mythic-beasts-1.ns :ip mythic-ns1)
+       (mythic-beasts-2.ns :ip mythic-ns2)
+       (mythic-beasts-3.ns :ip mythic-ns3)))
+#+view/outside
+(defzone telecaster.dkim.distorted.org.uk
+  :ns ((radius.ns :ip radius)
+       (precision.ns :ip precision)
+       (telecaster.ns :ip telecaster)
+       (national.ns :ip national)
+       (eggle.ns.dhcp :ip eggle)
+       (mythic-beasts-1.ns :ip mythic-ns1)
+       (mythic-beasts-2.ns :ip mythic-ns2)
+       (mythic-beasts-3.ns :ip mythic-ns3)))
+
 (defrevzone trusted
   :ns (radius.distorted.org.uk.
        precision.distorted.org.uk.
        telecaster.distorted.org.uk.
-       national.distorted.org.uk.)
+       national.distorted.org.uk.
+       eggle.distorted.org.uk.)
   :reverse unsafe
   :reverse vpn
   :reverse its
             national.distorted.org.uk.))
   :multi (((dhcp safe) :family :ipv4 :suffix "199.29.172.dhcp") :cname *))
 
+#+view/outside
 (defzone dhcp.199.29.172.in-addr.arpa
   :ns (radius.distorted.org.uk.
        precision.distorted.org.uk.
        telecaster.distorted.org.uk.
-       national.distorted.org.uk.))
+       national.distorted.org.uk.
+       eggle.distorted.org.uk.))
 
 (defrevzone untrusted
   :ns (radius.distorted.org.uk.
        precision.distorted.org.uk.
        telecaster.distorted.org.uk.
-       national.distorted.org.uk.))
+       national.distorted.org.uk.
+       eggle.distorted.org.uk.))
 
 (defzone 128-143.238.187.81.in-addr.arpa
   :ns (radius.distorted.org.uk.
        precision.distorted.org.uk.
        telecaster.distorted.org.uk.
        national.distorted.org.uk.
+       eggle.distorted.org.uk.
        secondary-dns.co.uk.)
   :reverse ((((:ipv4 dmz)))))
 
        precision.distorted.org.uk.
        telecaster.distorted.org.uk.
        national.distorted.org.uk.
+       eggle.distorted.org.uk.
        secondary-dns.co.uk.)
   :reverse ((((:ipv4 dmz1)))))
 
        precision.distorted.org.uk.
        telecaster.distorted.org.uk.
        national.distorted.org.uk.
+       eggle.distorted.org.uk.
        secondary-dns.co.uk.)
   :reverse ((((:ipv4 gw)))))
 
        precision.distorted.org.uk.
        telecaster.distorted.org.uk.
        national.distorted.org.uk.
+       eggle.distorted.org.uk.
        secondary-dns.co.uk.)
   (0.7.3.6.8.6.4.6.1.0.0.0 :ns (radius.distorted.org.uk.
                                precision.distorted.org.uk.
                                telecaster.distorted.org.uk.
-                               national.distorted.org.uk.))
+                               national.distorted.org.uk.
+                               eggle.distorted.org.uk.))
   :reverse ((((:ipv6 distorted.org.uk-aaisp)))))
 
+(defrevzone jump-ipv6
+  :ns (radius.distorted.org.uk.
+       precision.distorted.org.uk.
+       telecaster.distorted.org.uk.
+       national.distorted.org.uk.
+       eggle.distorted.org.uk.)
+  :reverse ((((:ipv6 jump-ipv6)))))
+
 (defrevzone (dhcp :family :ipv6)
   :ns (radius.distorted.org.uk.
        precision.distorted.org.uk.
        telecaster.distorted.org.uk.
-       national.distorted.org.uk.))
+       national.distorted.org.uk.
+       eggle.distorted.org.uk.))
 
+#+view/outside
 (defzone io.distorted.org.uk
   :ns ((ns :ip jazz.dmz))
   (about :txt "Fake zone used for IP-over-DNS tunnelling."))