Андрей Лескин, qratorlabs/hll

38
Тестирование производительности DNS-серверов Андрей Лескин QratorLabs/HLL

Upload: ontico

Post on 08-Jul-2015

990 views

Category:

Documents


3 download

DESCRIPTION

HighLoad++ 2013

TRANSCRIPT

Page 1: Андрей Лескин, QratorLabs/HLL

Тестирование производительности

DNS-серверов

Андрей Лескин

QratorLabs/HLL

Page 2: Андрей Лескин, QratorLabs/HLL

Что такое DNS?

Page 3: Андрей Лескин, QratorLabs/HLL

Что такое DNS?

• Коротко: highloadlab.com 178.248.233.7

Page 4: Андрей Лескин, QratorLabs/HLL

Что такое DNS?

• Коротко: highloadlab.com 178.248.233.7

• Длинно: (список неполон)

Page 5: Андрей Лескин, QratorLabs/HLL

DNS-серверы

• minidns dns server https://code.google.com/p/minidns/source/browse/minidns “wc -l minidns” 107 (!!!)

Page 6: Андрей Лескин, QratorLabs/HLL

DNS-серверы

• minidns dns server https://code.google.com/p/minidns/source/browse/minidns “wc -l minidns” 107 (!!!)

Page 7: Андрей Лескин, QratorLabs/HLL

DNS-серверы

• minidns dns server https://code.google.com/p/minidns/source/browse/minidns “wc -l minidns” 107 (!!!)

• Authoritative. There can be only one!

• Caching. The cache is out there...

Page 8: Андрей Лескин, QratorLabs/HLL

А что мы хотим?

• Скорость

• Устойчивость

• Производительность

Page 9: Андрей Лескин, QratorLabs/HLL

А что мы хотим?

• Скорость

• Устойчивость

• Производительность

QUERIES

SUPER Authoritative

Server

QUERIES

SUPER Caching Server

SLOW Authoritative

Server

Page 10: Андрей Лескин, QratorLabs/HLL

А что мы хотим?

• Скорость

• Устойчивость

• Производительность

QUERIES

SUPER Authoritative

Server

QUERIES

SUPER Caching Server

SLOW Authoritative

Server

• Доменов: МАЛО

• Запросов: МНОГО

Page 11: Андрей Лескин, QratorLabs/HLL

DNS test. А что уже было сломано до нас?

Page 12: Андрей Лескин, QratorLabs/HLL

DNS test. А что уже было сломано до нас?

• dnsperf & resperf?

Page 13: Андрей Лескин, QratorLabs/HLL

DNS test. А что уже было сломано до нас?

• dnsperf & resperf? NO

• tcpreplay?

Page 14: Андрей Лескин, QratorLabs/HLL

DNS test. А что уже было сломано до нас?

• dnsperf & resperf? NO

• tcpreplay? NO

• Ideal/real world data? NOOO!!!

Page 15: Андрей Лескин, QratorLabs/HLL

DNS test. How?

Page 16: Андрей Лескин, QratorLabs/HLL

DNS test. How?

Page 17: Андрей Лескин, QratorLabs/HLL

DNS test. Measurements

• QPS, RPS = PPS

• Traffic: Mbit/s

• CPU load avg

• Поведение при повышении нагрузки

• А еще есть крутилки и включалки!

Page 18: Андрей Лескин, QratorLabs/HLL

DNS test. А на что будем смотреть?

• Knot (1.2.0 & 1.3.0-RC5)

• Yadifa (1.0.2)

• NSD3 (3.2.15)

• NSD4 (4.0.0b4)

• PowerDNS (3.3)

• TinyDNS (1.05)

• Unbound (1.4.16)

• Pdnsd (1.2.8)

• Server: Dual Xeon E5-2670 32Gb RAM DDR3 1333Mhz Intel X520-DA2 10Gbit

• Generator: Single Xeon E5-2670 32Gb RAM DDR3 1333Mhz Intel X520-DA2 10Gbit

• Gentoo Linux 3.7.9

Page 19: Андрей Лескин, QratorLabs/HLL

DNS test. Setup

• Максимально ванильно!

• Authoritative: 300 сформированных зон

• Caching: Прогреваем кэш на такой же объем данных

Page 20: Андрей Лескин, QratorLabs/HLL

Results. Выбираем победителя крутилок.

Knot-1.2.0, queries=1

Page 21: Андрей Лескин, QratorLabs/HLL

Results. Выбираем победителя крутилок.

Knot-1.2.0, queries=1

Page 22: Андрей Лескин, QratorLabs/HLL

Results. Queries in flow: 01

Knot

NSD

Unbound

Yadifa

PowerDNS

Pdnsd

TinyDNS

Page 23: Андрей Лескин, QratorLabs/HLL

Results. Queries in flow: 01

Knot

NSD

Unbound

Yadifa

PowerDNS

Pdnsd

TinyDNS

Page 24: Андрей Лескин, QratorLabs/HLL

Results. Queries in flow: 02

Knot

NSD

Unbound

PowerDNS

Pdnsd

Yadifa

TinyDNS

Page 25: Андрей Лескин, QratorLabs/HLL

Results. Queries in flow: 02

Knot

NSD

Unbound

PowerDNS

Pdnsd

Yadifa

TinyDNS

Page 26: Андрей Лескин, QratorLabs/HLL

Results. Queries in flow: 02

Knot

NSD

Unbound

PowerDNS

Pdnsd

Yadifa

TinyDNS

Page 27: Андрей Лескин, QratorLabs/HLL

Results. Queries in flow: 20

Knot

NSD

Unbound

PowerDNS

Pdnsd

Yadifa

TinyDNS

Page 28: Андрей Лескин, QratorLabs/HLL

Подводные камни.

IT HAPPENS. BE PREPARED

Page 29: Андрей Лескин, QratorLabs/HLL

Подводные камни. Local.

• Knot-1.2.0 Победитель может все... Или не все?

Page 30: Андрей Лескин, QratorLabs/HLL

Подводные камни. Local.

• Knot-1.2.0 Победитель может все... Или не все?

• Yadifa-1.0.2 Нужно больше золота!

Page 31: Андрей Лескин, QratorLabs/HLL

Подводные камни. Local.

• Knot-1.2.0 Победитель может все... Или не все?

• Yadifa-1.0.2 Нужно больше золота!

• Pdnsd Приз за оригинальность.

Page 32: Андрей Лескин, QratorLabs/HLL

Подводные камни. Global.

Камень

• UDP Мне кажется, пакет пришел оттуда... Но я не гарантирую это!

Контр-камень

• BCP38 Когда случится счастье – нам не ведомо!

Page 33: Андрей Лескин, QratorLabs/HLL

Подводные камни. Global.

Камень

• UDP Мне кажется, пакет пришел оттуда... Но я не гарантирую это!

• DNS cache poisoning (Kaminsky) Адрес поменялся! Иди сюда!

Контр-камень

• BCP38 Когда случится счастье – нам не ведомо!

• DNSSec Это счастье есть, но мало кто пользуется

Page 34: Андрей Лескин, QratorLabs/HLL

Подводные камни. Global.

Камень

• UDP Мне кажется, пакет пришел оттуда... Но я не гарантирую это!

• DNS cache poisoning (Kaminsky) Адрес поменялся! Иди сюда!

• Стать DNS Amplifier Чтобы не быть жертвой - надо не быть жертвой

- dig isoc.org ANY (26 vs 2435) - открытая рекурсия

Контр-камень

• BCP38 Когда случится счастье – нам не ведомо!

• DNSSec Это счастье есть, но мало кто пользуется

• Можно самостоятельно: - закрыть рекурсию извне - RRL (DROP, SLIP) - DROP пакетов с src_port 53

Page 35: Андрей Лескин, QratorLabs/HLL

Подводные камни. Сам не выжил.

Page 36: Андрей Лескин, QratorLabs/HLL

Подводные камни. Сам не выжил.

Page 37: Андрей Лескин, QratorLabs/HLL

Подводные камни. Сам не выжил.

Page 38: Андрей Лескин, QratorLabs/HLL

Спасибо!

Андрей Лескин [email protected]