PowerDNS dnsdist. OX Summit 2015 All presentations will be on: https://www.powerdns.com/oxsummit

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

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

PowerDNS dnsdist. NLUUG Najaarsconferentie Presentation is on:

PowerDNS Introduction

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

DNSSEC and DNS Proxying

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

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

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

THE MASTER LIST OF DNS TERMINOLOGY. First Edition

THE MASTER LIST OF DNS TERMINOLOGY. v 2.0

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

Barracuda Load Balancer Online Demo Guide

dnsperf DNS Performance Tool Manual

DNS Caching Krytyczna infrastruktura operatora i ostatni element układanki

APV9650. Application Delivery Controller

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

Load Balancing for Microsoft Office Communication Server 2007 Release 2

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

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

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

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

Firewalls. Pehr Söderman KTH-CSC

Understanding Slow Start

Application Note. Active Directory Federation Services deployment guide

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

Web Application Hosting Cloud Architecture

Appendix D: Configuring Firewalls and Network Address Translation

Chapter 10: Scalability

Annexure - " SERVICE REQUIREMENTS"

Fortigate Features & Demo

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

High-Performance DNS Services in BIG-IP Version 11

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

Monitoring and Alerting

Load Balancing using Pramati Web Load Balancer

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

CS514: Intermediate Course in Computer Systems

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

Alteon Global Server Load Balancing

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

Snapt Balancer Manual

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

Load Balancing. Final Network Exam LSNAT. Sommaire. How works a "traditional" NAT? Un article de Le wiki des TPs RSM.

Linux MDS Firewall Supplement

Lab 5 Explicit Proxy Performance, Load Balancing & Redundancy

GLOBAL SERVER LOAD BALANCING WITH SERVERIRON

Monitoring Traffic manager

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

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

Anti-spam filtering techniques

DNS ROUND ROBIN HIGH-AVAILABILITY LOAD SHARING

A D M I N I S T R A T O R V 1. 0

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

Security of IPv6 and DNSSEC for penetration testers

Citrix NetScaler Global Server Load Balancing Primer:

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

Tunnel Client FAQ. Table of Contents. Version 0v5, November 2014 Revised: Kate Lance Author: Karl Auer

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

Improving DNS performance using Stateless TCP in FreeBSD 9

Lecture 8b: Proxy Server Load Balancing

DPtech ADX Application Delivery Platform Series

CheckPoint Software Technologies LTD. How to Configure Firewall-1 With Connect Control

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

Technical Note. ISP Protection against BlackListing. FORTIMAIL Deployment for Outbound Spam Filtering. Rev 2.2

Ranch Networks for Hosted Data Centers

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

Debugging With Netalyzr

Software Defined Networking What is it, how does it work, and what is it good for?

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

HAProxy 1.5 and beyond

Cisco GSS 4492R Global Site Selector

Apache Tomcat Clustering

Application Firewalls

Load Balancing Using PCC & RouterOS

Load Balancing Microsoft Sharepoint 2010 Load Balancing Microsoft Sharepoint Deployment Guide

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

Data Sheet. VLD 500 A Series Viaedge Load Director. VLD 500 A Series: VIAEDGE Load Director

Web. Anti- Spam. Disk. Mail DNS. Server. Backup

ColdFusion 8. Performance Tuning, Multi-Instance Management and Clustering. Sven Ramuschkat MAX 2008 Milan

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

BASICS OF SCALING: LOAD BALANCERS

Use Domain Name System and IP Version 6

Oracle Collaboration Suite

Avaya P330 Load Balancing Manager User Guide

What is a Virtual Load Balancer

DNS and LDAP persistent search

Products, Features & Services

Load Balancing McAfee Web Gateway. Deployment Guide

Lesson Plans Managing a Windows 2003 Network Infrastructure

DNS. DNS Fundamentals. Goals of this lab: Prerequisites: LXB, NET

JUST FOR THOSE WHO CAN T TOLERATE DOWNTIME WE ARE NOT FOR EVERYONE

Load Balancing Exchange 2007 SP1 Hub Transport Servers using Windows Network Load Balancing Technology

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

Transcription:

PowerDNS dnsdist OX Summit 2015 All presentations will be on: https://www.powerdns.com/oxsummit

Dnsdist "dnsdist is a highly DNS-, DoS- and abuse-aware loadbalancer. Its goal in life is to route traffic to the best server, delivering top performance to legitimate users while shunting or blocking abusive traffic. Swiss army knife of DNS problem solving. Add and remove bits, filter out traffic, inspect traffic live from the console Detect infected users, force infected users to other name servers Delay and ratelimit bad queries, refuse to do work for certain hosts/domains And let s not forget: very smart load balancing

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 need a DNS Delivery Controller?

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!

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

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!

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

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

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

QPS Limit map Global QPS limits, per-server QPS limit Sometimes attacks come from single users MaxQPSLimit(): addaction(maxqpsiprule(5, 24, 64), DropAction()) 5 queries/second, grouped by /24 on IPv4 and by / 64 on IPv6

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

General rule/action engine Full Lua access to all packets Upside: 100% flexibility, downside: slowdown at very high query rates. Also, need to program In C++: Rules that match certain kinds of traffic Actions: drop traffic, change traffic, redirect etc

Examples addpoolrule({"ezdns.it.", "xxx."}, abuse") addqpspoolrule("com.", 100, abuse") adddomainblock("powerdns.org.") addluaaction("192.168.1.0/24", luarule) showrules()

Demo time!

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?

PowerDNS dnsdist OX Summit 2015 All presentations will be on: https://www.powerdns.com/oxsummit