hl++2013 leskin

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

Upload: andrey-leskin

Post on 27-May-2015

607 views

Category:

Technology


0 download

DESCRIPTION

DNS tests on Highload2013. What's this all about? DNS server stress-tests and all the things you may encounter!

TRANSCRIPT

Page 1: HL++2013 Leskin

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

DNS-серверовАндрей ЛескинQratorLabs/HLL

Page 2: HL++2013 Leskin

Что такое DNS?

Page 3: HL++2013 Leskin

Что такое DNS?

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

Page 4: HL++2013 Leskin

Что такое DNS?

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

• Длинно:

(списокнеполон)

Page 5: HL++2013 Leskin

DNS-серверы

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

Page 6: HL++2013 Leskin

DNS-серверы

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

Page 7: HL++2013 Leskin

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: HL++2013 Leskin

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

• Скорость• Устойчивость• Производительность

Page 9: HL++2013 Leskin

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

• Скорость• Устойчивость• Производительность

QUERIES

SUPERAuthoritative

Server

QUERIES

SUPERCachingServer

SLOWAuthoritative

Server

Page 10: HL++2013 Leskin

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

• Скорость• Устойчивость• Производительность

QUERIES

SUPERAuthoritative

Server

QUERIES

SUPERCachingServer

SLOWAuthoritative

Server

• Доменов: МАЛО• Запросов: МНОГО

Page 11: HL++2013 Leskin

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

Page 12: HL++2013 Leskin

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

• dnsperf & resperf?

Page 13: HL++2013 Leskin

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

• dnsperf & resperf? NO• tcpreplay?

Page 14: HL++2013 Leskin

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

• dnsperf & resperf? NO• tcpreplay? NO

• Ideal/real world data? NOOO!!!

Page 15: HL++2013 Leskin

DNS test. How?

Page 16: HL++2013 Leskin

DNS test. How?

Page 17: HL++2013 Leskin

DNS test. Measurements

• QPS, RPS = PPS• Traffic: Mbit/s• CPU load avg• Поведение при повышении нагрузки• А еще есть крутилки и включалки!

Page 18: HL++2013 Leskin

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-267032Gb RAM DDR3 1333MhzIntel X520-DA2 10Gbit• Generator:

Single Xeon E5-267032Gb RAM DDR3 1333MhzIntel X520-DA2 10Gbit• Gentoo Linux 3.7.9

Page 19: HL++2013 Leskin

DNS test. Setup

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

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

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

Page 20: HL++2013 Leskin

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

Knot-1.2.0, queries=1

Page 21: HL++2013 Leskin

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

Knot-1.2.0, queries=1

Вот он!

Page 22: HL++2013 Leskin

Results. Queries in flow: 01

KnotNSD

UnboundYadifa

PowerDNSPdnsd

TinyDNS

Page 23: HL++2013 Leskin

Results. Queries in flow: 01

KnotNSD

UnboundYadifa

PowerDNSPdnsd

TinyDNS

Page 24: HL++2013 Leskin

Results. Queries in flow: 02

KnotNSD

UnboundPowerDNS

PdnsdYadifa

TinyDNS

Page 25: HL++2013 Leskin

Results. Queries in flow: 02

KnotNSD

UnboundPowerDNS

PdnsdYadifa

TinyDNS

Page 26: HL++2013 Leskin

Results. Queries in flow: 02

KnotNSD

UnboundPowerDNS

PdnsdYadifa

TinyDNS

Page 27: HL++2013 Leskin

Results. Queries in flow: 20

KnotNSD

UnboundPowerDNS

PdnsdYadifa

TinyDNS

Page 28: HL++2013 Leskin

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

IT HAPPENS.BE PREPARED

Page 29: HL++2013 Leskin

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

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

Page 30: HL++2013 Leskin

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

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

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

Page 31: HL++2013 Leskin

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

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

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

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

Page 32: HL++2013 Leskin

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

Камень• UDP

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

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

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

Page 33: HL++2013 Leskin

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

Камень• UDP

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

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

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

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

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

Page 34: HL++2013 Leskin

Подводные камни. 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: HL++2013 Leskin

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

Page 36: HL++2013 Leskin

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

Page 37: HL++2013 Leskin

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

Page 38: HL++2013 Leskin

Спасибо!Андрей Лескин

[email protected]