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

Post on 08-Jul-2015

992 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

HighLoad++ 2013

TRANSCRIPT

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

DNS-серверов

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

QratorLabs/HLL

Что такое DNS?

Что такое DNS?

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

Что такое DNS?

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

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

DNS-серверы

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

DNS-серверы

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

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...

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

• Скорость

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

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

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

• Скорость

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

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

QUERIES

SUPER Authoritative

Server

QUERIES

SUPER Caching Server

SLOW Authoritative

Server

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

• Скорость

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

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

QUERIES

SUPER Authoritative

Server

QUERIES

SUPER Caching Server

SLOW Authoritative

Server

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

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

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

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

• dnsperf & resperf?

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

• dnsperf & resperf? NO

• tcpreplay?

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

• dnsperf & resperf? NO

• tcpreplay? NO

• Ideal/real world data? NOOO!!!

DNS test. How?

DNS test. How?

DNS test. Measurements

• QPS, RPS = PPS

• Traffic: Mbit/s

• CPU load avg

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

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

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

DNS test. Setup

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

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

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

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

Knot-1.2.0, queries=1

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

Knot-1.2.0, queries=1

Results. Queries in flow: 01

Knot

NSD

Unbound

Yadifa

PowerDNS

Pdnsd

TinyDNS

Results. Queries in flow: 01

Knot

NSD

Unbound

Yadifa

PowerDNS

Pdnsd

TinyDNS

Results. Queries in flow: 02

Knot

NSD

Unbound

PowerDNS

Pdnsd

Yadifa

TinyDNS

Results. Queries in flow: 02

Knot

NSD

Unbound

PowerDNS

Pdnsd

Yadifa

TinyDNS

Results. Queries in flow: 02

Knot

NSD

Unbound

PowerDNS

Pdnsd

Yadifa

TinyDNS

Results. Queries in flow: 20

Knot

NSD

Unbound

PowerDNS

Pdnsd

Yadifa

TinyDNS

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

IT HAPPENS. BE PREPARED

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

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

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

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

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

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

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

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

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

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

Камень

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

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

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

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

Камень

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

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

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

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

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

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

Камень

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

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

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

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

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

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

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

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

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

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

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

Спасибо!

Андрей Лескин serenheit@highloadlab.com

top related