dns
play

DNS Requirements Large domain registrar A few hundred thousand - PowerPoint PPT Presentation

Scaling DNS Requirements Large domain registrar A few hundred thousand domains using our DNS. Nearly a million domains Still growing Need fast updates on the authoritative servers Especially when a new domain is added


  1. Scaling DNS

  2. Requirements ● Large domain registrar ● A few hundred thousand domains using our DNS. – Nearly a million domains ● Still growing ● Need fast updates on the authoritative servers – Especially when a new domain is added – Or removed

  3. ● Why use a database? ● Choosing an option – Stability – Performance – Support ● Options considered – BIND – BIND-DLZ – PowerDNS – MyDNS

  4. Flat files don't always rock ● Flat files rock for system administrators – DNS administrators may not have root access – Editing flat files from the web is ... insane ● Delegating single zone management is difficult ● Edits and reloads have to be batched ● Startup times for nameserver processes

  5. Flat files don't always rock ● Flat files cause a startup time delay on the server process – For BIND, this penalty is huge ● A single host, with 113K small zones took slightly over an hour to start with flat files ● It then served data at about 30K qps – PowerDNS is “optimised” for this task ● It took over 6 minutes to parse 113K small zones and start serving data ● This served data at about 26K qps

  6. BIND ● Native BIND has “some” support. – One connection to the backend for each domain – Low performance

  7. BIND-DLZ ● Patch to BIND – See http://bind-dlz.sourceforge.net/ ● One/Two connections to the backend for all domains ● User defined queries, including stored procedures ● Supports MySQL, PostgreSQL, OpenLDAP, BDB

  8. BIND-DLZ architecture BIND DLZ DBMS

  9. DLZ schema ● BENEFITS – Single connection to database – Single table needed to store all records ● Keeps it simple ● DISADVANTAGES – No caching – Bad performance – Third party patch to BIND

  10. PowerDNS ● DNS server written in C++ ● Separate authoritative and recursive servers ● Strong focus on security

  11. PowerDNS architecture Cache PowerDNS Database frontend Database abstraction layer

  12. PowerDNS ● BENEFITS – One or more connections to the database – Two tables needed – Internal in-memory cache makes responses fast – Low memory footprint ● DISADVANTAGES – Cache management – DNSSEC (partial support, WIP) and views (no support) – http://www.powerdnssec.org/

  13. MyDNS ● Not maintained – last update was 2006 ● Hardcoded schema – We have our own.

  14. Lies, damn lies and statistics ● Actually, performance benchmarks ● Native BIND wasn't going to be very useful to us. We didn't test it at all, except as a baseline statistic.

  15. Testing ● Test infrastructure was a single host with two dual core Xeon CPUs at 2.something GHz and 16 GB of RAM with one disk, running the nameserver and the database ● The clients were three pentium boxes with 1 GB of RAM connected over a 100 Mbps network. ● We used the commandline queryperf tool to run queries. – queryperf -q 20 -s <IP> -d <FILE>

  16. Results BIND-DLZ with BDBHPT, 2 queryperf clients, transaction mode 4000 BIND-DLZ with BDBHPT, 2 queryperf clients, transaction mode, RAMDisk 5600 BIND-DLZ with PostgreSQL, raw queries 1800 BIND-DLZ with PostgreSQL, Stored procedures 2000 BIND-DLZ with PostgreSQL, SP, 8 DLZ threads 4800 Nominum ANS, default cache size 25200 Nominum ANS, cache size 512 MB 30000 Raw BIND 21700 PowerDNS, hash as cache, 115K domains 20000 PowerDNS, hash as cache, 3M domains 7000 PowerDNS, RBT with single threaded cache, 3M domains 21000 PowerDNS, RBT w/ single threaded cache, 10M domains 23000 PowerDNS, RBT w/ multi-threaded cache, 10M domains, 2.9.22 46000

  17. Same numbers, as a graph 50000 45000 40000 35000 30000 25000 qps 20000 15000 10000 5000 0

  18. Operational architecture PowerDNS Slony Slave Master DC1 DC1 PowerDNS Slave DC2 PowerDNS Web UI Slave DC3 Management PowerDNS Script

  19. Software ● Master database is PostgreSQL 8.2.x ● Read-only slaves have some tables replicated from the master database via Slony. ● Cache maintainance is a homegrown script.

  20. In Practice ● Maximum database replication lag is 10 seconds. ● PowerDNS has peaked at ~ 10000 qps during a DdoS – This would have brought down the previous BIND- DLZ installations – We didn't notice the blip ● Yes, monitoring needs improvement ;)

  21. Questions?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend