In a previous role at an Internet provider, I was the network engineer in charge of the Anycast DNS cache servers. The company made it some sort of point of pride to buy the cheapest hardware possible. I guess that is the beauty of anycast, failure recovery is pretty much automatic.
Anyways, the servers were dead cheap, single power supply, single SSD. They ran BSD, but my system engineer and I wanted to convert them to Linux, so we ran a proof of concept for switching. We ran performance tests against the same server hardware with BSD and with Ubuntu, I think we saw loss on the BSD server at 325k QPS and Ubuntu made it closer to 500k QPS. Oh, we had like 16 of these caches and our peak load network wide across all of them was something like 36k QPS.
It was a pretty cool setup. If I am remembering correctly we used unbound, ExaBGP, IPTables, and a health check script that would trigger the advertisements to our core network. Although we really wanted to switch to Linux (or rather away from BSD), we were primarily driven by the fact that Cisco IOS-XR does not support DNS query IP SLA tests, which we used previously to trigger the route advertisements.
Cool. What is the file size of the DNS database being quarried with each request anyway? My knee jerk assumption is that it’s like a petabyte, but the longer I think about it, the smaller it gets.
In a previous role at an Internet provider, I was the network engineer in charge of the Anycast DNS cache servers. The company made it some sort of point of pride to buy the cheapest hardware possible. I guess that is the beauty of anycast, failure recovery is pretty much automatic.
Anyways, the servers were dead cheap, single power supply, single SSD. They ran BSD, but my system engineer and I wanted to convert them to Linux, so we ran a proof of concept for switching. We ran performance tests against the same server hardware with BSD and with Ubuntu, I think we saw loss on the BSD server at 325k QPS and Ubuntu made it closer to 500k QPS. Oh, we had like 16 of these caches and our peak load network wide across all of them was something like 36k QPS.
It was a pretty cool setup. If I am remembering correctly we used unbound, ExaBGP, IPTables, and a health check script that would trigger the advertisements to our core network. Although we really wanted to switch to Linux (or rather away from BSD), we were primarily driven by the fact that Cisco IOS-XR does not support DNS query IP SLA tests, which we used previously to trigger the route advertisements.
Cool. What is the file size of the DNS database being quarried with each request anyway? My knee jerk assumption is that it’s like a petabyte, but the longer I think about it, the smaller it gets.