| 1 | ;;; Zone file for distorted.org.uk |
| 2 | |
| 3 | (load "hosts.lisp" :verbose nil) |
| 4 | |
| 5 | ;;;-------------------------------------------------------------------------- |
| 6 | ;;; Anycast services. |
| 7 | |
| 8 | (defvar *anycast-routable-families* (list :ipv6)) |
| 9 | |
| 10 | (defzoneparse :anycast (name data rec :prefix prefix :zname zname) |
| 11 | (destructuring-bind (any-provider default-provider &rest other-providers) |
| 12 | data |
| 13 | |
| 14 | ;; First, the default address. If the anycast network is preferred then |
| 15 | ;; this is easy; otherwise we have something complicated to do because |
| 16 | ;; IPv6 anycast addresses are globally routable, while IPv4 ones aren't. |
| 17 | (if (zone-preferred-subnet-p (car any-provider)) |
| 18 | (zone-set-address #'rec (cdr any-provider) :make-ptr-p t) |
| 19 | (do-host (addr (cdr any-provider)) |
| 20 | (let ((family (ipaddr-family addr))) |
| 21 | (if (member family *anycast-routable-families*) |
| 22 | (zone-set-address #'rec addr |
| 23 | :family family :make-ptr-p t) |
| 24 | (zone-set-address #'rec (cdr default-provider) |
| 25 | :family family :make-ptr-p nil))))) |
| 26 | |
| 27 | ;; Now for all of the others. |
| 28 | (dolist (provider (list* any-provider default-provider other-providers)) |
| 29 | (zone-set-address #'rec (cdr provider) |
| 30 | :make-ptr-p (eq provider any-provider) |
| 31 | :name (domain-name-concat prefix |
| 32 | (zone-parse-host |
| 33 | (car provider) |
| 34 | zname)))))) |
| 35 | |
| 36 | ;;;-------------------------------------------------------------------------- |
| 37 | ;;; Hostname abbreviations. |
| 38 | |
| 39 | (defvar *abbrev-subdomain* |
| 40 | (make-domain-name :labels '("abbrev") :absolutep nil)) |
| 41 | (defparameter *abbrev-used* (make-hash-table :test #'equal)) |
| 42 | |
| 43 | (defzoneparse :abbrev (name data rec :zname zname) |
| 44 | (let* ((domain (zone-parse-host data |
| 45 | (domain-name-concat *abbrev-subdomain* |
| 46 | zname))) |
| 47 | (key (princ-to-string domain)) |
| 48 | (existing (gethash key *abbrev-used*))) |
| 49 | (when existing |
| 50 | (error "Abbrev collision for ~A between ~A and ~A." |
| 51 | domain existing name)) |
| 52 | (setf (gethash key *abbrev-used*) name) |
| 53 | (rec :name domain |
| 54 | :type :cname |
| 55 | :data name))) |
| 56 | |
| 57 | ;;;-------------------------------------------------------------------------- |
| 58 | ;;; Other definitions. |
| 59 | |
| 60 | (setf *default-zone-admin* "hostmaster@distorted.org.uk") |
| 61 | |
| 62 | (setf *default-zone-source* 'radius.distorted.org.uk.) |
| 63 | |
| 64 | ;;;-------------------------------------------------------------------------- |
| 65 | ;;; Main zone definition. |
| 66 | |
| 67 | (defzone distorted.org.uk |
| 68 | |
| 69 | ;; Nameservers. |
| 70 | :ns #+view/inside ((radius.ns :ip radius) |
| 71 | (precision.ns :ip precision) |
| 72 | (telecaster.ns :ip telecaster) |
| 73 | (vampire.ns :ip vampire)) |
| 74 | #-view/inside ((radius.ns :ip radius) |
| 75 | (precision.ns :ip precision) |
| 76 | (telecaster.ns :ip telecaster) |
| 77 | (mythic-beasts-1.ns :ip mythic-ns1) |
| 78 | (mythic-beasts-2.ns :ip mythic-ns2) |
| 79 | (chiark.ns :ip chiark.greenend.org.uk)) |
| 80 | |
| 81 | ;; Mail servers. |
| 82 | ((@ mail blackhole) :mx mail :srv ((:smtp mail))) |
| 83 | ((bugs) :ttl 300 :mx lists :srv ((:smtp bugs))) |
| 84 | ((lists) :ttl 300 :mx lists :srv ((:smtp lists))) |
| 85 | |
| 86 | (stratocaster.20140403._domainkey |
| 87 | :dkim ("stratocaster-20140403" |
| 88 | :v "DKIM1" :k "rsa" :h "sha256" :s "email")) |
| 89 | |
| 90 | ;; Anycast services. |
| 91 | (dns0 :anycast ((any dns0.any) |
| 92 | (jump precision.jump) |
| 93 | (colo precision.colo) |
| 94 | (dmz radius.dmz) |
| 95 | (unsafe radius.unsafe))) |
| 96 | (dns1 :anycast ((any dns1.any) |
| 97 | (jump telecaster.jump) |
| 98 | (dmz vampire.dmz) |
| 99 | (unsafe vampire.unsafe) |
| 100 | (colo telecaster.colo))) |
| 101 | (dns :cname dns0) |
| 102 | |
| 103 | (ntp0 :anycast ((any ntp0.any) |
| 104 | (jump fender.jump) |
| 105 | (dmz ibanez.dmz) |
| 106 | (unsafe ibanez.unsafe) |
| 107 | (colo fender.colo))) |
| 108 | (ntp1 :anycast ((any ntp1.any) |
| 109 | (dmz vampire.dmz) |
| 110 | (unsafe vampire.unsafe))) |
| 111 | (ntp :cname ntp0) |
| 112 | |
| 113 | (www-cache :anycast ((any www-cache.any) |
| 114 | (jump telecaster.jump) |
| 115 | (dmz roadstar.dmz) |
| 116 | (unsafe roadstar.unsafe) |
| 117 | (colo telecaster.colo))) |
| 118 | (wpad :cname www-cache) |
| 119 | |
| 120 | (_kerberos :txt "DISTORTED.ORG.UK") |
| 121 | (krb0 :anycast ((any krb0.any) |
| 122 | (jump precision.jump) |
| 123 | (dmz radius.dmz) |
| 124 | (unsafe radius.unsafe) |
| 125 | (colo precision.colo))) |
| 126 | (krb1 :anycast ((any krb1.any) |
| 127 | (dmz vampire.dmz) |
| 128 | (unsafe vampire.unsafe))) |
| 129 | (krb-master (unsafe :svc radius.unsafe) |
| 130 | (dmz :svc radius.dmz)) |
| 131 | :srv (((:kerberos :protocol :udp) |
| 132 | krb0 |
| 133 | (krb1 :prio 100)) |
| 134 | ((:kerberos-master :protocol :udp :port 88) krb-master) |
| 135 | (:kerberos-adm krb-master) |
| 136 | ((:kpasswd :protocol :udp) krb-master)) |
| 137 | (krb :cname krb0) |
| 138 | |
| 139 | ;; Other services. |
| 140 | :srv ((:http www) |
| 141 | (:ftp ftp)) |
| 142 | |
| 143 | ;; Colocated services. |
| 144 | ((irc vox keys) (colo :svc jazz.colo :sshfp "jazz") |
| 145 | (jump :svc jazz.jump :sshfp "jazz")) |
| 146 | ((bugs lists) (colo :svc telecaster.colo :sshfp "telecaster") |
| 147 | (jump :svc telecaster.jump :sshfp "telecaster")) |
| 148 | ((git www mail) (colo :svc stratocaster.colo :sshfp "stratocaster") |
| 149 | (jump :svc stratocaster.jump :sshfp "stratocaster")) |
| 150 | ((www @) :tlsa (:https (:service-certificate-constraint |
| 151 | :certificate :sha-256 #p"http-server-www#1"))) |
| 152 | ((git mail) :tlsa (:https #1=(:trust-anchor-assertion |
| 153 | :certificate :sha-256 #p"distorted-ca"))) |
| 154 | (www-cache :tlsa (3127 #1#)) |
| 155 | ((bugs lists) :tlsa (:smtp #1#)) |
| 156 | (mail :tlsa ((:smtp :submission :imap :imaps) #1#)) |
| 157 | :svc #+view/inside stratocaster.colo |
| 158 | #-view/inside stratocaster.jump |
| 159 | (cabal :svc stratocaster.colo :sshfp "stratocaster") |
| 160 | ((db ftp) (colo :svc telecaster.colo :sshfp "telecaster") |
| 161 | (jump :svc telecaster.jump :sshfp "telecaster")) |
| 162 | (dyndns :svc telecaster.jump :sshfp "telecaster") |
| 163 | |
| 164 | ;; Local services. |
| 165 | ((rawk pifi) (unsafe :svc artist.unsafe) |
| 166 | (dmz :svc artist.dmz)) |
| 167 | (mirror (dmz :svc roadstar.dmz :sshfp "roadstar") |
| 168 | (unsafe :svc roadstar.unsafe :sshfp "roadstar")) |
| 169 | |
| 170 | ;; Internal services. |
| 171 | #+view/inside ((news lpr) :svc vampire.unsafe :sshfp "vampire") |
| 172 | |
| 173 | ;; Anonymity services. |
| 174 | (anon (colo :svc jazz.colo) |
| 175 | (unsafe :svc vampire.unsafe) |
| 176 | (jump :addr anon.jump) |
| 177 | (dmz :addr anon.dmz)) |
| 178 | |
| 179 | ;; Fancy connectivity. |
| 180 | (iodine (jump :svc jazz.jump)) |
| 181 | |
| 182 | ;; Colocated hosts. |
| 183 | (colo :net colo) |
| 184 | (jump :net jump) |
| 185 | (gate (jump :addr gate.jump :sshfp "precision")) |
| 186 | (fender :abbrev f (colo :abbrev fc) (jump :abbrev fj)) |
| 187 | (fender (colo :addr fender.colo :sshfp "fender") |
| 188 | (jump :addr fender.jump :sshfp "fender")) |
| 189 | (precision :abbrev p (colo :abbrev pc) (jump :abbrev pj) (vpn :abbrev pv)) |
| 190 | (precision (colo :addr precision.colo :sshfp "precision") |
| 191 | (jump :addr precision.jump :sshfp "precision") |
| 192 | (vpn :addr precision.vpn :sshfp "precision")) |
| 193 | (telecaster :alias tele :abbrev t |
| 194 | (colo :alias tele.colo :abbrev tc) |
| 195 | (jump :alias tele.jump :abbrev tj)) |
| 196 | (telecaster (colo :addr telecaster.colo :sshfp "telecaster") |
| 197 | (jump :addr telecaster.jump :sshfp "telecaster")) |
| 198 | (stratocaster :alias strat :abbrev s |
| 199 | (colo :alias strat.colo :abbrev sc) |
| 200 | (jump :alias strat.jump :abbrev sj)) |
| 201 | (stratocaster (colo :addr stratocaster.colo :sshfp "stratocaster") |
| 202 | (jump :addr stratocaster.jump :sshfp "stratocaster")) |
| 203 | (jazz :abbrev z (colo :abbrev zc) (jump :abbrev zj) (vpn :abbrev :zv)) |
| 204 | (jazz (colo :addr jazz.colo :sshfp "jazz") |
| 205 | (jump :addr jazz.jump :sshfp "jazz") |
| 206 | (vpn :addr jazz.vpn :sshfp "jazz") |
| 207 | (iodine :addr jazz.iodine :sshfp "jazz")) |
| 208 | |
| 209 | ;; Virtual hosts. |
| 210 | (national :abbrev n (linode :abbrev nl) (upn :abbrev ny)) |
| 211 | (national (linode :addr national.linode) |
| 212 | (upn :addr national.upn)) |
| 213 | |
| 214 | ;; Media server (on loan to Good Technology HSTG). |
| 215 | (jaguar :abbrev jag) |
| 216 | (jaguar (jump :addr jaguar.jump :sshfp "jaguar")) |
| 217 | |
| 218 | ;; Nicko's server. |
| 219 | (richmond (jump :svc richmond.jump)) |
| 220 | |
| 221 | ;; Entry is via little router box. |
| 222 | (dmz :net dmz) |
| 223 | (guvnor (dmz :addr guvnor.dmz)) |
| 224 | (nat (dmz :addr nat.dmz)) |
| 225 | |
| 226 | ;; Wireless gateway. |
| 227 | (wireless :net wireless) |
| 228 | (evolution (safe :addr evolution.safe)) |
| 229 | (evolution :alias evo) |
| 230 | |
| 231 | ;; Switches. |
| 232 | (grigsby :alias tp0) |
| 233 | (grigsby (safe :addr grigsby.safe)) |
| 234 | (carling :alias tp1) |
| 235 | (carling (safe :addr carling.safe)) |
| 236 | (tritan :alias tp2) |
| 237 | (tritan (safe :addr tritan.safe)) |
| 238 | |
| 239 | ;; Wired ethernet. |
| 240 | (unsafe :net unsafe) |
| 241 | (safe :net safe) |
| 242 | (untrusted :net untrusted) |
| 243 | (vampire :abbrev v |
| 244 | (unsafe :abbrev vu) (dmz :abbrev vd) (vpn :abbrev vv) |
| 245 | (safe :abbrev vs) (untrusted :abbrev vx)) |
| 246 | (vampire (unsafe :addr vampire.unsafe :sshfp "vampire") |
| 247 | (dmz :addr vampire.dmz :sshfp "vampire") |
| 248 | (vpn :addr vampire.vpn :sshfp "vampire") |
| 249 | (safe :addr vampire.safe :sshfp "vampire") |
| 250 | (untrusted :addr vampire.untrusted :sshfp "vampire")) |
| 251 | (ibanez :abbrev i (unsafe :abbrev iu) (dmz :abbrev id)) |
| 252 | (ibanez (unsafe :addr ibanez.unsafe :sshfp "ibanez") |
| 253 | (dmz :addr ibanez.dmz :sshfp "ibanez")) |
| 254 | (radius :abbrev r |
| 255 | (unsafe :abbrev ru) (dmz :abbrev rd) (vpn :abbrev rv) |
| 256 | (safe :abbrev rs) (untrusted :abbrev rx)) |
| 257 | (radius (unsafe :addr radius.unsafe :sshfp "radius") |
| 258 | (dmz :addr radius.dmz :sshfp "radius") |
| 259 | (vpn :addr radius.vpn :sshfp "radius") |
| 260 | (safe :addr radius.safe :sshfp "radius") |
| 261 | (untrusted :addr radius.untrusted :sshfp "radius")) |
| 262 | (roadstar :abbrev rg (unsafe :abbrev rgu) (dmz :abbrev rgd)) |
| 263 | (roadstar (unsafe :addr roadstar.unsafe :sshfp "roadstar") |
| 264 | (dmz :addr roadstar.dmz :sshfp "roadstar")) |
| 265 | (jem :abbrev j (unsafe :abbrev ju) (dmz :abbrev jd)) |
| 266 | (jem (unsafe :addr jem.unsafe :sshfp "jem") |
| 267 | (dmz :addr jem.dmz :sshfp "jem")) |
| 268 | (artist :abbrev a |
| 269 | (unsafe :abbrev au) (dmz :abbrev ad) (untrusted :abbrev ax)) |
| 270 | (artist (unsafe :addr artist.unsafe :sshfp "artist") |
| 271 | (dmz :addr artist.dmz :sshfp "artist") |
| 272 | (untrusted :addr artist.untrusted :sshfp "artist")) |
| 273 | (groove :abbrev gr) |
| 274 | (groove (unsafe :addr groove.unsafe :sshfp "groove")) |
| 275 | |
| 276 | ;; DHCP hosts. |
| 277 | (gibson :cname gibson.dhcp :abbrev g) |
| 278 | (lespaul :cname lespaul.dhcp) |
| 279 | (firebird :cname firebird.dhcp) |
| 280 | (marauder :cname marauder.dhcp) |
| 281 | (invader :cname invader.dhcp) |
| 282 | (gretsch :cname gretsch.dhcp) |
| 283 | |
| 284 | ;; Virtual network. |
| 285 | (vpn :net vpn) |
| 286 | (crybaby :abbrev cb) |
| 287 | (crybaby (vpn :addr crybaby.vpn :sshfp "crybaby")) |
| 288 | (terror (vpn :addr terror.vpn :sshfp "terror")) |
| 289 | (orange :abbrev o) |
| 290 | (orange (vpn :addr orange.vpn :sshfp "orange")) |
| 291 | (haze :abbrev h) |
| 292 | (haze (vpn :addr haze.vpn :sshfp "haze")) |
| 293 | (iodine :net iodine) |
| 294 | |
| 295 | ;; ITS. |
| 296 | (its :net its) |
| 297 | (gw (its :addr gw.its)) |
| 298 | (mz (its :addr mz.its)) |
| 299 | |
| 300 | ;; Strange things. |
| 301 | (blackhole (jump :addr blackhole.jump)) |
| 302 | |
| 303 | ;; Delegations. |
| 304 | (dhcp :ns ((radius.ns.dhcp :ip radius) |
| 305 | (precision.ns.dhcp :ip precision) |
| 306 | (telecaster.ns.dhcp :ip telecaster) |
| 307 | (vampire.ns.dhcp :ip vampire)) |
| 308 | :ds ((55966 :rsasha256 :sha1 |
| 309 | "95b05c1f4e84f950f29630004bac447f8a87ca33") |
| 310 | (55966 :rsasha256 :sha256 |
| 311 | #.(concatenate 'string "31696bf54b577362b2eb75793adeb9ec" |
| 312 | "2e8440ec671371b35d8d978cd9ca3007")))) |
| 313 | (dyn :ns ((radius.ns.dyn :ip radius) |
| 314 | (precision.ns.dyn :ip precision) |
| 315 | (telecaster.ns.dyn :ip telecaster) |
| 316 | (vampire.ns.dyn :ip vampire)) |
| 317 | :ds ((11335 :rsasha256 :sha1 |
| 318 | "7ed2b843b0bfb38ceca68617dfacbeafab1d1ea9") |
| 319 | (11335 :rsasha256 :sha256 |
| 320 | #.(concatenate 'string "6eb15eb587c48f5b84ca128a656a4cce" |
| 321 | "0a41cf040d3d0f15a44dffd6476b2b55")))) |
| 322 | (dnserr :ns ((radius.ns.dnserr :ip radius.dmz) |
| 323 | (precision.ns.dnserr :ip precision.jump) |
| 324 | (telecaster.ns.dnserr :ip telecaster) |
| 325 | (vampire.ns.dnserr :ip vampire.dmz)) |
| 326 | :ds ((40945 :rsasha256 :sha1 |
| 327 | "f35b5d0b877b940e63ad1b3afc21d6ba83cd1b3b") |
| 328 | (40945 :rsasha256 :sha256 |
| 329 | #.(concatenate 'string "fb171d206d4d64c5a7a6c290ce6e20df" |
| 330 | "44f1db7f41e2260f1fe8d7c55d524c11")))) |
| 331 | (io :ns ((ns.io :ip jazz.jump)))) |
| 332 | |
| 333 | ;;;-------------------------------------------------------------------------- |
| 334 | ;;; Other subsidiary zones. |
| 335 | |
| 336 | (defzone dhcp.distorted.org.uk |
| 337 | :ns ((radius.ns :ip radius.dmz) |
| 338 | (precision.ns :ip precision.jump) |
| 339 | (telecaster.ns :ip telecaster.jump) |
| 340 | (vampire.ns :ip vampire.dmz)) |
| 341 | (gibson :addr gibson.unsafe) |
| 342 | (crybaby :addr crybaby.unsafe) |
| 343 | (lespaul :addr lespaul.unsafe) |
| 344 | (gretsch :addr gretsch.unsafe) |
| 345 | (haze :addr haze.unsafe) |
| 346 | (invader :addr invader.safe) |
| 347 | (marauder :addr marauder.safe)) |
| 348 | |
| 349 | (defzone nicko.org |
| 350 | (richmond :addr richmond.jump)) |
| 351 | |
| 352 | (defrevzone trusted |
| 353 | :ns (radius.distorted.org.uk. |
| 354 | precision.distorted.org.uk. |
| 355 | telecaster.distorted.org.uk. |
| 356 | vampire.distorted.org.uk.) |
| 357 | :reverse unsafe |
| 358 | :reverse vpn |
| 359 | :reverse colo |
| 360 | :reverse its |
| 361 | :reverse any |
| 362 | (dhcp :ns (radius.distorted.org.uk. |
| 363 | precision.distorted.org.uk. |
| 364 | telecaster.distorted.org.uk. |
| 365 | vampire.distorted.org.uk.)) |
| 366 | :multi (((dhcp safe) :family :ipv4 :suffix "199.29.172.dhcp") :cname *)) |
| 367 | |
| 368 | (defrevzone (dmz :family :ipv6) |
| 369 | :ns (radius.distorted.org.uk. |
| 370 | precision.distorted.org.uk. |
| 371 | telecaster.distorted.org.uk. |
| 372 | vampire.distorted.org.uk.) |
| 373 | :reverse dmz) |
| 374 | |
| 375 | (defrevzone (dmz :family :ipv4) |
| 376 | (144-159 :ns (radius.distorted.org.uk. |
| 377 | precision.distorted.org.uk. |
| 378 | telecaster.distorted.org.uk. |
| 379 | vampire.distorted.org.uk.)) |
| 380 | :multi ((dmz :suffix "144-159") :cname *)) |
| 381 | |
| 382 | (defzone 144-159.204.49.62.in-addr.arpa |
| 383 | :ns (radius.distorted.org.uk. |
| 384 | precision.distorted.org.uk. |
| 385 | telecaster.distorted.org.uk. |
| 386 | vampire.distorted.org.uk.) |
| 387 | :reverse ((((:ipv4 dmz))))) |
| 388 | |
| 389 | (defrevzone (jump :family :ipv6) |
| 390 | :ns (radius.distorted.org.uk. |
| 391 | precision.distorted.org.uk. |
| 392 | telecaster.distorted.org.uk. |
| 393 | vampire.distorted.org.uk.) |
| 394 | :reverse jump) |
| 395 | |
| 396 | (defrevzone (jump :family :ipv4) |
| 397 | (64-79 :ns (radius.distorted.org.uk. |
| 398 | precision.distorted.org.uk. |
| 399 | telecaster.distorted.org.uk. |
| 400 | vampire.distorted.org.uk.)) |
| 401 | :multi ((jump :suffix "64-79") :cname *)) |
| 402 | |
| 403 | (defzone 64-79.198.13.212.in-addr.arpa |
| 404 | :ns (radius.distorted.org.uk. |
| 405 | precision.distorted.org.uk. |
| 406 | telecaster.distorted.org.uk. |
| 407 | vampire.distorted.org.uk.) |
| 408 | :reverse ((((:ipv4 jump))))) |
| 409 | |
| 410 | (defrevzone distorted.org.uk-he |
| 411 | :ns (radius.distorted.org.uk. |
| 412 | precision.distorted.org.uk. |
| 413 | telecaster.distorted.org.uk. |
| 414 | vampire.distorted.org.uk.) |
| 415 | :reverse distorted.org.uk-he) |
| 416 | |
| 417 | (defrevzone distorted.org.uk-jump |
| 418 | :ns (radius.distorted.org.uk. |
| 419 | precision.distorted.org.uk. |
| 420 | telecaster.distorted.org.uk. |
| 421 | vampire.distorted.org.uk.) |
| 422 | :reverse distorted.org.uk-jump) |
| 423 | |
| 424 | (defzone io.distorted.org.uk |
| 425 | :ns ((ns :ip jazz.jump)) |
| 426 | (about :txt "Fake zone used for IP-over-DNS tunnelling.")) |
| 427 | |
| 428 | ;;;----- That's all, folks -------------------------------------------------- |