Zonema...server(3pm)

πŸ“¦ version 1.0.16, in ubuntu jammy

πŸ’– Zonema...server β€” the manual, but make it cute πŸ’–

okay bestie, gather round, because we're talking about Zonemaster::Test::Nameserver β€” the Perl module that runs the vibe checks on a name server's whole personality. It implements tests of the properties of a name server, and honestly? It's giving main character energy in the DNS world. πŸ¦‹

No cap, this is one of those pages that looks scary until you realize it's just a list of tests, and every test is basically asking the nameserver "are you okay? are you sure?" πŸ’…


✨ SYNOPSIS ✨

the whole thing in one line, bestie:

my @results = Zonemaster::Test::Nameserver->all($zone);

that's it. that's the entrance. πŸŽ€


🌸 METHODS 🌸

  • all($zone) β€” runs the default set of tests and hands you back a list of log entries that those tests made. It's the "do everything, I trust you" button. 🫢
  • translation() β€” returns a reference to a hash with translation data. It's used by the builtin translation system, so it's the multilingual queen of the module. 🌈
  • metadata() β€” returns a reference to a hash. The keys are the names of all the test methods in the module, and the values are references to lists containing all the tags that each method can use in log entries. Basically the receipts for what every test is allowed to say. πŸ’€
  • version() β€” returns a version string for the module. Short, sweet, iconic. ⭐

πŸ‘‘ TESTS πŸ‘‘

every single one of these takes $zone, and every single one is doing the absolute most so you don't have to.

  • nameserver01($zone) β€” verify that the nameserver is not recursive. We do NOT want it doing extra credit it wasn't asked for. πŸ™ˆ
  • nameserver02($zone) β€” verify EDNS0 support. Does it speak the extended language? Let's find out. ✨
  • nameserver03($zone) β€” verify that zone transfer (AXFR) is not available. Bestie, if it IS available, that's a whole situation, and we're checking. 🚨
  • nameserver04($zone) β€” verify that replies from the nameserver come from the expected IP address. Like, are you who you say you are? vibe check. πŸ¦‹
  • nameserver05($zone) β€” verify behaviour against AAAA queries. IPv6 representation matters, periodt. πŸ’œ
  • nameserver06($zone) β€” verify that each nameserver can be resolved to an IP address. If you can't be resolved, what are you even doing here. 😭
  • nameserver07($zone) β€” check whether authoritative name servers return an upward referral. Suspicious behaviour, lowkey. πŸ‘€
  • nameserver08($zone) β€” check whether authoritative name servers' responses match the case of every letter in QNAME. Yes, every single letter. Case sensitivity is a lifestyle. πŸ”₯
  • nameserver09($zone) β€” check whether authoritative name servers return the same results for equivalent names with different cases in the request. Same energy, different font. πŸ’…

⚠️ real talk: these tests are about properties of a name server, so if something comes back weird, it's the server's fault, not yours. Don't shoot the messenger (me, I'm the messenger). πŸŽ€

πŸ“ the cute sign-off πŸ“

this whole thing lives in the User Contributed Perl Documentation section, and it's running on perl v5.32.0, dated 2021-01-06. Old? Yes. Over? Never. πŸ’–

stay hydrated, read your logs, and remember: a nameserver that passes all nine tests is literally the moment. bye bestie!! 🧚✨

πŸ“¦ where this page comes from