Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Тестирование
производительности
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 (!!!)

• Auth...
А что мы хотим?
• Скорость
• Устойчивость
• Производительность
А что мы хотим?
• Скорость
• Устойчивость
• Производительность

SUPER
Authoritative
Server

SLOW
Authoritative
Server

SUP...
А что мы хотим?
• Скорость
• Устойчивость
• Производительность

SUPER
Authoritative
Server

SLOW
Authoritative
Server

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

• BCP38

Мне кажется, пакет пришел оттуда... Но я не
гарантирую это!...
Подводные камни. Global.
Камень

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

• UDP

• BCP38

Мне кажется, пакет пришел оттуда... Но я не
гарантирую это!...
Подводные камни. Сам не выжил.
Подводные камни. Сам не выжил.
Подводные камни. Сам не выжил.
Спасибо!
Андрей Лескин
serenheit@highloadlab.com
Upcoming SlideShare
Loading in …5
×

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

1,961 views

Published on

HighLoad++ 2013

  • Be the first to comment

  • Be the first to like this

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

  1. 1. Тестирование производительности DNS-серверов Андрей Лескин QratorLabs/HLL
  2. 2. Что такое DNS?
  3. 3. Что такое DNS? • Коротко: highloadlab.com  178.248.233.7
  4. 4. Что такое DNS? • Коротко: highloadlab.com  178.248.233.7 • Длинно: (список неполон)
  5. 5. DNS-серверы • minidns dns server https://code.google.com/p/minidns/source/browse/minidns “wc -l minidns” 107 (!!!)
  6. 6. DNS-серверы • minidns dns server https://code.google.com/p/minidns/source/browse/minidns “wc -l minidns” 107 (!!!)
  7. 7. 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...
  8. 8. А что мы хотим? • Скорость • Устойчивость • Производительность
  9. 9. А что мы хотим? • Скорость • Устойчивость • Производительность SUPER Authoritative Server SLOW Authoritative Server SUPER Caching Server QUERIES QUERIES
  10. 10. А что мы хотим? • Скорость • Устойчивость • Производительность SUPER Authoritative Server SLOW Authoritative Server SUPER Caching Server QUERIES • Доменов: МАЛО • Запросов: МНОГО QUERIES
  11. 11. DNS test. А что уже было сломано до нас?
  12. 12. DNS test. А что уже было сломано до нас? • dnsperf & resperf?
  13. 13. DNS test. А что уже было сломано до нас? • dnsperf & resperf? NO • tcpreplay?
  14. 14. DNS test. А что уже было сломано до нас? • dnsperf & resperf? NO • tcpreplay? NO • Ideal/real world data? NOOO!!!
  15. 15. DNS test. How?
  16. 16. DNS test. How?
  17. 17. DNS test. Measurements • QPS, RPS = PPS • Traffic: Mbit/s • CPU load avg • Поведение при повышении нагрузки • А еще есть крутилки и включалки!
  18. 18. 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
  19. 19. DNS test. Setup • Максимально ванильно! • Authoritative: 300 сформированных зон • Caching: Прогреваем кэш на такой же объем данных
  20. 20. Results. Выбираем победителя крутилок. Knot-1.2.0, queries=1
  21. 21. Results. Выбираем победителя крутилок. Knot-1.2.0, queries=1
  22. 22. Results. Queries in flow: 01 Knot NSD Unbound Yadifa PowerDNS Pdnsd TinyDNS
  23. 23. Results. Queries in flow: 01 Knot NSD Unbound Yadifa PowerDNS Pdnsd TinyDNS
  24. 24. Results. Queries in flow: 02 Knot NSD Unbound PowerDNS Pdnsd Yadifa TinyDNS
  25. 25. Results. Queries in flow: 02 Knot NSD Unbound PowerDNS Pdnsd Yadifa TinyDNS
  26. 26. Results. Queries in flow: 02 Knot NSD Unbound PowerDNS Pdnsd Yadifa TinyDNS
  27. 27. Results. Queries in flow: 20 Knot NSD Unbound PowerDNS Pdnsd Yadifa TinyDNS
  28. 28. Подводные камни. IT HAPPENS. BE PREPARED
  29. 29. Подводные камни. Local. • Knot-1.2.0 Победитель может все... Или не все?
  30. 30. Подводные камни. Local. • Knot-1.2.0 Победитель может все... Или не все? • Yadifa-1.0.2 Нужно больше золота!
  31. 31. Подводные камни. Local. • Knot-1.2.0 Победитель может все... Или не все? • Yadifa-1.0.2 Нужно больше золота! • Pdnsd Приз за оригинальность.
  32. 32. Подводные камни. Global. Камень Контр-камень • UDP • BCP38 Мне кажется, пакет пришел оттуда... Но я не гарантирую это! Когда случится счастье – нам не ведомо!
  33. 33. Подводные камни. Global. Камень Контр-камень • UDP • BCP38 Мне кажется, пакет пришел оттуда... Но я не гарантирую это! • DNS cache poisoning (Kaminsky) Адрес поменялся! Иди сюда! Когда случится счастье – нам не ведомо! • DNSSec Это счастье есть, но мало кто пользуется 
  34. 34. Подводные камни. Global. Камень Контр-камень • UDP • BCP38 Мне кажется, пакет пришел оттуда... Но я не гарантирую это! • DNS cache poisoning (Kaminsky) Когда случится счастье – нам не ведомо! • DNSSec Адрес поменялся! Иди сюда! Это счастье есть, но мало кто пользуется  • Стать DNS Amplifier • Можно самостоятельно: - закрыть рекурсию извне - RRL (DROP, SLIP) - DROP пакетов с src_port 53 Чтобы не быть жертвой - надо не быть жертвой - dig isoc.org ANY (26 vs 2435) - открытая рекурсия
  35. 35. Подводные камни. Сам не выжил.
  36. 36. Подводные камни. Сам не выжил.
  37. 37. Подводные камни. Сам не выжил.
  38. 38. Спасибо! Андрей Лескин serenheit@highloadlab.com

×