nanog mailing list archives

Re: Speaking of DNS server software...


From: Etienne-Victor Depasquale via NANOG <nanog () lists nanog org>
Date: Sun, 10 Aug 2025 20:53:43 +0200


1. Performance delta, but that’s likely anywhere near the issue with
python than it is with earlier scripting runtimes. While it’s been a while
since I’ve done a side-by-side comparison, I’d argue that once code is
compiled, cpython runtime performance is far more akin to Java than perl or
JS. Still not as performant as C or Go runtimes, though; bytecode is still
bytecode.

Interesting, from a research perspective.

I didn't realize that the data rates required by DNS resolution at some
scale level would be higher than what interpreted Python code could achieve.

On Sun, Aug 10, 2025 at 4:42 PM Chris Woodfield <chris () semihuman com> wrote:



On Aug 10, 2025, at 03:40, Etienne-Victor Depasquale via NANOG <
nanog () lists nanog org> wrote:


Python is, well, Python. It makes as much sense to me to write a DNS
server in Perl or Javascript, which is to say: not much.

I don't follow. What's the objection?


I’d consider two off the top of my head -

1. Performance delta, but that’s likely anywhere near the issue with
python than it is with earlier scripting runtimes. While it’s been a while
since I’ve done a side-by-side comparison, I’d argue that once code is
compiled, cpython runtime performance is far more akin to Java than perl or
JS. Still not as performant as C or Go runtimes, though; bytecode is still
bytecode.

2. Python-based DNS servers aren’t nearly as ubiquitous as others, and as
such lack the kind of battle testing that, say, BIND, PowerDNS, or
commercial servers have been through. This makes sense from a security
perspective, but the solution is to make bugs shallower, not to avoid
entirely. Understandably, no one wants to go first.

-Chris



-- 
Etienne-Victor Depasquale
_______________________________________________
NANOG mailing list 
https://lists.nanog.org/archives/list/nanog () lists nanog org/message/AWOLB2AUOPV7Q7FBNAHZJHRAOZBY4LZU/

Current thread: