hl++2013 leskin
DESCRIPTION
DNS tests on Highload2013. What's this all about? DNS server stress-tests and all the things you may encounter!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
SUPERAuthoritative
Server
QUERIES
SUPERCachingServer
SLOWAuthoritative
Server
А что мы хотим?
• Скорость• Устойчивость• Производительность
QUERIES
SUPERAuthoritative
Server
QUERIES
SUPERCachingServer
SLOWAuthoritative
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-267032Gb RAM DDR3 1333MhzIntel X520-DA2 10Gbit• Generator:
Single Xeon E5-267032Gb RAM DDR3 1333MhzIntel 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
KnotNSD
UnboundYadifa
PowerDNSPdnsd
TinyDNS
Results. Queries in flow: 01
KnotNSD
UnboundYadifa
PowerDNSPdnsd
TinyDNS
Results. Queries in flow: 02
KnotNSD
UnboundPowerDNS
PdnsdYadifa
TinyDNS
Results. Queries in flow: 02
KnotNSD
UnboundPowerDNS
PdnsdYadifa
TinyDNS
Results. Queries in flow: 02
KnotNSD
UnboundPowerDNS
PdnsdYadifa
TinyDNS
Results. Queries in flow: 20
KnotNSD
UnboundPowerDNS
PdnsdYadifa
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
Подводные камни. Сам не выжил.
Подводные камни. Сам не выжил.
Подводные камни. Сам не выжил.
Спасибо!Андрей Лескин