TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Migrating Mess with DNS to Use PowerDNS

147 pointsby hasheddan9 months ago

14 comments

benreesman9 months ago
I’ve said similar before but I’m just so impressed with Julia Evans as a technologist and technology writer&#x2F;blogger: from very humble beginnings the scope and sophistication and arc of growing expertise is a masterclass in how to become a legend via putting in the work: and in an age of so many bytes on how to take shortcuts this is exactly the kind of role model we need.<p>In this particular instance I recall the post about DNS some years ago and the callback is amply enriched.<p>Keep it up @jvns. You hold us all to a high standard.
joeig9 months ago
&gt; Sometimes users will still get errors from PowerDNS directly, but I added some logging of all the errors that users see, so hopefully I can review them and add extra translations if there are other common errors that come up.<p>I noticed that you are using our Go module to access the API. It is wonderful to see our work helping others build great software, especially for education. Thank you for that.<p>Please note that the upstream API sometimes changes slightly between minor releases. For example, prior to v4.9, the error response for a non-existent server was &quot;Not Found&quot;. Starting with v4.9, it changed to &quot;Method Not Allowed&quot;.<p>Unfortunately, error responses aren&#x27;t always part of the API specification. I&#x27;m thinking about adding the most common cases to the module anyway.
评论 #41295579 未加载
评论 #41296712 未加载
chriscjcj9 months ago
Thank you very much for this wonderful experimental and educational tool.<p>You mentioned about your previous version:<p>&gt; If there was a CNAME record for a domain name, it allowed you to create other records for that domain name, even if it shouldn’t<p>&gt; you could create 2 different CNAME records for the same domain name, which shouldn’t be allowed<p>One suggestion... If someone makes a mistake and generates an error, it would be terrific if there were a more verbose explanation so the user may better understand why what they&#x27;re trying to do won&#x27;t work. I&#x27;m very much a conceptual learner. If I can understand why an error is an error, it puts me on a better path toward a more comprehensive understanding.<p>Thanks again for all your work.
评论 #41293642 未加载
e12e9 months ago
&gt; Previously Mess With DNS was using a Postgres database. This was problematic because I only gave the Postgres machine 256MB of RAM, which meant that the database got OOM killed almost every single day. I never really worked out exactly why it got OOM killed every day, but that’s how it was.<p>Found this a little surprising - postgres is internet old - I&#x27;m pretty sure it was around at a time when physical servers might not have 256mb of ram?<p>Seems this should be possible to tune down still? (I mean, maybe not. Postgres 16 isn&#x27;t postgres 6, and maybe I&#x27;m just getting old..)
评论 #41296732 未加载
评论 #41295593 未加载
amanzi9 months ago
The section labelled &quot;what I learned: it’s okay for an API to duplicate information&quot; is something I come across often in Django projects. Django views send a Python dictionary of data to the template processor to display the information. Often it&#x27;s easier to massage the data into a more friendly format before sending it to the template, even if it means duplicating the info sent.
评论 #41295697 未加载
chrisweekly9 months ago
Julia Evans is an absolute treasure. Highly recommend exploring her blog, subscribing, etc. Signal:noise ratio is phenomenal.
ChocolateGod9 months ago
Been using a PowerDNS cluster in production for about 5 years using a SQL backend for replication, absolutely zero issues, not a single crash, memory leak etc in that time. The only downside is the API has a single key and you can not generate more, but there are open source projects that can put the API behind a proxy with additional keys&#x2F;ACL.<p>Given it can read BIND files, surprised BIND is still the default in many places.
评论 #41295418 未加载
评论 #41294245 未加载
评论 #41294971 未加载
8organicbits9 months ago
Great write up. I&#x27;m using PowerDNS for <a href="https:&#x2F;&#x2F;www.getlocalcert.net&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.getlocalcert.net&#x2F;</a>, which also makes heavy use of PowerDNS&#x27;s HTTP API. I&#x27;ve been really happy with it. I need to check my code, but I remember planning to use the comment field of the records to map between application IDs and records in PowerDNS zones.<p>You may be able to implement the logging by using a customization of the Sqlite backend, although I think PowerDNS caching may get in your way.<p>I&#x27;ll recommend the pipe backend to anyone looking to hack on DNS stuff. It&#x27;s almost like a DNS lookup via a function in any programming language you choose. It takes a while to figure out how incoming queries are translated though.<p><a href="https:&#x2F;&#x2F;doc.powerdns.com&#x2F;authoritative&#x2F;backends&#x2F;pipe.html" rel="nofollow">https:&#x2F;&#x2F;doc.powerdns.com&#x2F;authoritative&#x2F;backends&#x2F;pipe.html</a>
评论 #41296385 未加载
tlofreso9 months ago
I came across Bert Hubert during covid because of his incredible work on this article: <a href="https:&#x2F;&#x2F;berthub.eu&#x2F;articles&#x2F;posts&#x2F;reverse-engineering-source-code-of-the-biontech-pfizer-vaccine&#x2F;" rel="nofollow">https:&#x2F;&#x2F;berthub.eu&#x2F;articles&#x2F;posts&#x2F;reverse-engineering-source...</a><p>Long before Bert was writing articles on the source code of mRNA vaccines, he helped build PowerDNS. He talks about that in a three part series starting here: <a href="https:&#x2F;&#x2F;berthub.eu&#x2F;articles&#x2F;posts&#x2F;history-of-powerdns-1999-2003&#x2F;" rel="nofollow">https:&#x2F;&#x2F;berthub.eu&#x2F;articles&#x2F;posts&#x2F;history-of-powerdns-1999-2...</a><p>A fascinating individual...<p><a href="https:&#x2F;&#x2F;fosstodon.org&#x2F;@bert_hubert" rel="nofollow">https:&#x2F;&#x2F;fosstodon.org&#x2F;@bert_hubert</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;berthubert">https:&#x2F;&#x2F;github.com&#x2F;berthubert</a><p><a href="https:&#x2F;&#x2F;berthub.eu&#x2F;" rel="nofollow">https:&#x2F;&#x2F;berthub.eu&#x2F;</a>
评论 #41298027 未加载
websap9 months ago
I&#x27;ve always enjoyed Julia&#x27;s articles. I know she quit her job to do tech writing full time, but is that still true?
评论 #41296349 未加载
remram9 months ago
Does anyone use CoreDNS? Outside of a Kubernetes cluster I mean.
评论 #41296079 未加载
评论 #41295698 未加载
maltris9 months ago
As an administrator running and having run this at scale, make sure to check out:<p>- dnsdist DNS application aware loadbalancer<p>- Opera Software dns-ui
zelcon9 months ago
I cringe every time I see someone trying to replace good, purpose-built protocols with some bespoke HTTP crap
LoganDark9 months ago
&gt; I never really worked out exactly why it got OOM killed every day<p>Probably you ran out of memory (and configured the database incorrectly).