The story of dnsdist - or - Do we need a DNS Delivery Controller? http://dnsdist.org/



Similar documents
The story of dnsdist - or - Do we need a DNS Delivery Controller?

PowerDNS dnsdist. OX Summit 2015 All presentations will be on:

PowerDNS dnsdist. NLUUG Najaarsconferentie Presentation is on:

PowerDNS Introduction

CS 188/219. Scalable Internet Services Andrew Mutz October 8, 2015

DNSSEC and DNS Proxying

BASICS OF SCALING: LOAD BALANCERS

Global Service Loadbalancing & DNSSEC. Ralf Brünig Field Systems Engineer r.bruenig@f5.com DNSSEC

1. Comments on reviews a. Need to avoid just summarizing web page asks you for:

All about the PowerDNS nameserver and how you can use it.

Lecture 3: Scaling by Load Balancing 1. Comments on reviews i. 2. Topic 1: Scalability a. QUESTION: What are problems? i. These papers look at

Alteon Global Server Load Balancing

ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy

Scalability of web applications. CSCI 470: Web Science Keith Vertanen

Web Application Hosting Cloud Architecture

Products, Features & Services

Decoding DNS data. Using DNS traffic analysis to identify cyber security threats, server misconfigurations and software bugs

CS514: Intermediate Course in Computer Systems

DNS Caching Krytyczna infrastruktura operatora i ostatni element układanki

Global Server Load Balancing

Chapter 10: Scalability

APV9650. Application Delivery Controller

ZEN LOAD BALANCER EE v3.02 DATASHEET The Load Balancing made easy

DNS ROUND ROBIN HIGH-AVAILABILITY LOAD SHARING

Load Balancing using Pramati Web Load Balancer

High-Performance DNS Services in BIG-IP Version 11

HUAWEI OceanStor Load Balancing Technical White Paper. Issue 01. Date HUAWEI TECHNOLOGIES CO., LTD.

THE MASTER LIST OF DNS TERMINOLOGY. First Edition

Load Balancing for Microsoft Office Communication Server 2007 Release 2

THE MASTER LIST OF DNS TERMINOLOGY. v 2.0

Defending your DNS in a post-kaminsky world. Paul Wouters <paul@xelerance.com>

DNS (Domain Name System) is the system & protocol that translates domain names to IP addresses.

DNS Cache Poisoning Vulnerability Explanation and Remedies Viareggio, Italy October 2008

How To - Configure Virtual Host using FQDN How To Configure Virtual Host using FQDN

The Future of DNS. Johan Ihrén Netnod. October 15,

Blocking DNS Messages is Dangerous

How To Understand The Power Of A Content Delivery Network (Cdn)

dnsperf DNS Performance Tool Manual

N-CAP Users Guide Everything You Need to Know About Using the Internet! How Firewalls Work

Barracuda Load Balancer Online Demo Guide

Appendix D: Configuring Firewalls and Network Address Translation

FortiBalancer: Global Server Load Balancing WHITE PAPER

Understanding Slow Start

PES. High Availability Load Balancing in the Agile Infrastructure. Platform & Engineering Services. HEPiX Bologna, April 2013

The Survey Report on DNS Cache & Recursive Service in China Mainland

Annexure - " SERVICE REQUIREMENTS"

Implementing Reverse Proxy Using Squid. Prepared By Visolve Squid Team

Load Balancing Web Proxies Load Balancing Web Filters Load Balancing Web Gateways. Deployment Guide

Citrix NetScaler Global Server Load Balancing Primer:

Ranch Networks for Hosted Data Centers

GLOBAL SERVER LOAD BALANCING WITH SERVERIRON

Linux Server Support by Applied Technology Research Center. Proxy Server Configuration

Topics. 1. What is load balancing? 2. Load balancing techniques 3. Load balancing strategies 4. Sessions 5. Elastic load balancing

The best reverse proxy around. Kristian Lyngstøl PRODUCTS CONSULTING APPLICATION MANAGEMENT IT OPERATIONS SUPPORT TRAINING

Large-Scale Web Applications

The Application Front End Understanding Next-Generation Load Balancing Appliances

WAN Traffic Management with PowerLink Pro100

DEPLOYMENT GUIDE Version 1.1. DNS Traffic Management using the BIG-IP Local Traffic Manager

How Comcast Built An Open Source Content Delivery Network National Engineering & Technical Operations

Intel Ethernet Switch Load Balancing System Design Using Advanced Features in Intel Ethernet Switch Family

HAProxy 1.5 and beyond

Load Balancing Microsoft Sharepoint 2010 Load Balancing Microsoft Sharepoint Deployment Guide

The secret life of a DNS query. Igor Sviridov <sia@nest.org>

Why an Intelligent WAN Solution is Essential for Mission Critical Networks

Internet Content Distribution

KEMP LoadMaster. Enabling Hybrid Cloud Solutions in Microsoft Azure

DEPLOYMENT GUIDE Version 1.1. Deploying the BIG-IP LTM v10 with Citrix Presentation Server 4.5

Application Note. Active Directory Federation Services deployment guide

THE UNIVERSITY OF AUCKLAND

Load Balancing Web Applications

TRUFFLE Broadband Bonding Network Appliance. A Frequently Asked Question on. Link Bonding vs. Load Balancing

Architecting ColdFusion For Scalability And High Availability. Ryan Stewart Platform Evangelist

Monitoring and Alerting

Global Server Load Balancing

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server

Protecting DNS Critical Infrastructure Solution Overview. Radware Attack Mitigation System (AMS) - Whitepaper

OpenFlow Based Load Balancing

Global Load Balancing Solutions

Evading Infrastructure Security Mohamed Bedewi Penetration Testing Consultant

IERG 4080 Building Scalable Internet-based Services

Network Security. Chapter 3. Cornelius Diekmann. Version: October 21, Lehrstuhl für Netzarchitekturen und Netzdienste Institut für Informatik

Proxy Server, Network Address Translator, Firewall. Proxy Server

Firewalls. Pehr Söderman KTH-CSC

DPtech ADX Application Delivery Platform Series

Computer Networks CCNA Module 1

page 1 DNS Rate Limiting W. Matthijs Mekking matthijs@nlnetlabs.nl 28 Feb 2013 Stichting NLnet Labs

Defending your DNS in a post-kaminsky world. Paul Wouters <paul@xelerance.com>

Presented by Greg Lindsay Technical Writer Windows Server Information Experience. Presented at: Seattle Windows Networking User Group April 7, 2010

A host-based firewall can be used in addition to a network-based firewall to provide multiple layers of protection.

FAQs for Oracle iplanet Proxy Server 4.0

Managing SIP-based Applications With WAN Optimization

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.

APV x600 Series. Application Delivery Controller APV1600, APV2600, APV4600, APV5600, APV6600, APV8600, APV9600

How to scan/exploit a ssl based webserver. by xxradar. mailto:xxradar@radarhack.com. Version 1.

CA Virtual Assurance/ Systems Performance for IM r12 DACHSUG 2011

Lab 5 Explicit Proxy Performance, Load Balancing & Redundancy

SIDN Server Measurements

Flexible Routing and Load Control on Back-End Servers. Controlling the Request Load and Quality of Service

Apache Tomcat Clustering

Transcription:

The story of dnsdist - or - Do we need a DNS Delivery Controller? http://dnsdist.org/

PowerDNS Very briefly so you know where we come from Open source nameserver, around since 2000, open source since 2002, high-end commercial support since 2006, part of Open- Xchange (together with Dovecot IMAP) since 2015 Authoritative serving from text files, databases, JSON/RESTful interfaces, pipe-scripts, Lua scripts, geographical load balancing etc. Biggest host & signer of DNSSEC domains Recursor: strives to be a no-worry, high-performance, robust resolver Lots of interesting tooling (dnsreplay, dnsdist, dnsscope, calidns ) We strive to combine the best of open source with the very best commercial support, which we sell to people who really care.

The story of dnsdist Started out as a need to do dnsdist listen-ip destip-1 destip-2 Simple query spreading w/o hassle, also just forwarding Been around for a year or two When debugging with a large customer, we found they were willing & able to switch out PowerDNS versions at the drop of a hat since they were comfortable with their loadbalancer Asked around, no one else was happy with their DNS load balancer solution Open question: does the world new a DNS Delivery Controller? dnsdist was used to facilitate migration by briefly forwarding all traffic from IP address 1 to IP address 2.

dnsdist: a smart DNS Delivery Controller Runtime configurable from console (accessible remotely, tab-completing interface) Console & configuration file actually Lua Host of built-in load balancing/blocking/shunting/shaping policies (C++), custom policies can be written in Lua (plenty fast) Provides features ranging from simple round robin load balancing to quarantining of infected customers Vendor-neutral open source - please join in! Far more information can be found on http://dnsdist.org/

Existing load balancers Most (HW) load balancers know about http, https, imap etc. DNS is sufficiently different that it is hard to treat it as a weird kind of web, so many vendors mess it up Plus the quaint observation that a busy nameserver is a happy name server Caches HOT! Leads to need for a concentrating load balancer : as much traffic on as little servers as possible Exactly the reverse of http etc Most HW vendors have enough issues, like testing server availability with RD=0 queries for example.

Some tests With various companies we tested shutting down all their nameservers but a few, leading to lots of traffic going to one server In all cases, we observed lower query/response latencies and far lower cache miss rates (±50% lower) Happier customers We also observed only minor increases in CPU load, very much sub-linear to the many-fold traffic increase One name server doing millions of cable modems One name server doing 700k domains with online signing We have a winner! This ends somewhere of course. You can t continue increasing traffic and get better results.

dnsdist implementation Various load balancing policies Roundrobin, hashed, weighted random, least outstanding, first available Implementation: newserver {address="2001:4860:4860::8888", qps=1} newserver {address="2001:4860:4860::8844", qps=1} newserver {address="2620:0:ccc::2", qps=10} newserver {address="2620:0:ccd::2", qps=10} newserver("192.168.1.2") setserverpolicy(firstavailable) -- first server within its QPS limit Example is from https://github.com/powerdns/pdns/blob/master/pdns/readme-dnsdist.md

Main resolver pool DNSSEC resolver pool Abuse pool Server1 Server2 Server3 Server4 Server5 Server4 Server5 30 kqps 30 kqps 20 kqps DNSDIST Policy = firstavailable If trouble domain or trouble source -> abuse pool If any hint of DNSSEC query -> DNSSEC pool Otherwise main pool, first server that has not hit qps limit If all servers hit limit, round robin Note that servers can also be declared up & down, automatically or manually.

Second use case DoS attacks of the algorithmic kind - don t kill you with bandwidth, do cause outgoing traffic that does, do cause degraded performance Frequently blocked with complicated iptables rules, or deployed custom zones within name servers Option in dnsdist: move senders of harmful DNS traffic to dedicated servers Where they only soil their own nest

Other things we added Moving traffic to different server pools, dropping it, shaping it, based on: Header bits, DNSSEC flags Domain names Regular expressions Source address Generating TC=1 responses based on all of the above Generating custom answers from Lua to silence specific clients

Other things we added Live statistics built-in webserver with moving graphs ( up to the second ) Live traffic inspection: Top-N queries, top-n clients, top-n servfail generating queries, top-n servfail generating domains & clients Latency distribution histogram A substantial Lua runtime which should facilitate everything for those that need flexibility

First use-cases TC=1 redirection for a huge nameserver installation that does not support that Symptom: frontend can be more flexible than backend, because far away from business logic DNSSEC only for people that want it Symptom: fear DNSSEC will somehow infect rest of service Latency graphs for backends that don t support it Symptom: hard to measure from name server itself Solve the undisconnectable nuisance customer problem Symptom: subscribers are hacked, little we can do about it

Discussion: do we need this? A pure load balancer knows nothing of DNS and can be very fast ( lob packets ) A nameserver is fully featured and can also do load balancing itself ( forwarders ) Is there room or need for something in between? People tell us yes, but are they right? Or will we end up making another nameserver in front of your nameserver? Histories of Varnish and Squid may be relevant here. Nginx also.

The story of dnsdist or Do we need a DNS Delivery Controller? http://dnsdist.org/