Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný karel.slany@nic.cz 13. 11. 2015



Podobné dokumenty
DNSSEC Validátor - doplněk prohlížečů proti podvržení domény

Knot DNS Knot Resolver

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Přístup k transportní vrstvě z vrstvy aplikační rozhraní služeb služby pro systémové aplikace, služby pro uživatelské aplikace DNS

Semestrální projekt do předmětu SPS

Instalace a konfigurace web serveru. WA1 Martin Klíma

Základní principy obrany sítě II. Michal Kostěnec CESNET, z. s. p. o.

DNS, DHCP DNS, Richard Biječek

Matematika v programovacích

DNS. Počítačové sítě. 11. cvičení

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Novinky v projektech Knot DNS a Knot Resolver. Daniel Salzman

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Falšování DNS s RPZ i bez

Směrovací démon BIRD. CZ.NIC z. s. p. o. Ondřej Filip / IT10

Práce s knihovnami. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Správa linuxového serveru: DNS a DHCP server dnsmasq

Technologie počítačových sítí AFT NAT64/DNS64. Bc. Lumír Balhar (BAL344), Bc. Petr Kadlec (KAD0019)

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

O Apache Derby detailněji. Hynek Mlnařík

Možnosti IPv6 NAT. Lukáš Krupčík, Martin Hruška KRU0052, HRU0079. Konfigurace... 3 Statické NAT-PT Ověření zapojení... 7

BIRD Internet Routing Daemon

UAI/612 - Cloudová Řešení. Technologie

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Server Security, Serverové produkty

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Novinky v DNS. I dinosauři měli mladé. Ondřej Surý

Nové jazykové brány do Caché. Daniel Kutáč

1 Webový server, instalace PHP a MySQL 13

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Novell Identity Management. Jaromír Látal Datron, a.s.

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

Inovace výuky prostřednictvím šablon pro SŠ

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Projekt JetConf REST API pro vzdálenou správu

Cobbler, Puppet, Func

Popis nastavení DNS serveru Subjektu

Integrace OpenOffice.org a Javy. CZJUG, , Robert Vojta

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Radek Krej í. NETCONF a YANG NETCONF. 29. listopadu 2014 Praha, IT 14.2

LINUX - INSTALACE & KONFIGURACE

Internet Information Services (IIS) 6.0

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

1. Webový server, instalace PHP a MySQL 13

Poslední aktualizace: 1. srpna 2011

Radim Dolák Gymnázium a Obchodní akademie Orlová

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Domain Name System (DNS)

DF FA Novinky v Simotion Scout

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

Prezentace platebního systému PAIMA

MPLAB Harmony. Idea Instalace. Více podrobností naleznete na nejen k MPLAB Harmony

Obsah. Předmluva 13. O autorovi 15. Poděkování 16. O odborných korektorech 17. Úvod 19

Základy IOS, Přepínače: Spanning Tree

Případová studie: Adresářové řešení pro webhosting pomocí ApacheDS. Lukáš Jelínek

IPv6 na OpenWRT. 6. června Ondřej Caletka (CESNET, z.s.p.o.) IPv6 na OpenWRT 6. června / 17

Co nového v IPv6? Pavel Satrapa

Analýza protokolů rodiny TCP/IP, NAT

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Domain Name System (DNS)

Systémová administrace portálu Liferay

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Příručka pro rychlou instalaci

Automatická správa KeySetu

Automatická správa keysetu. Jaromír Talíř

Ondřej Caletka. 23. května 2014

Y36SPS Jmenné služby DHCP a DNS

Václav Bartoš. Meeting projektu SABU , Vranovská ves

Aplikační vrstva. Přístup k transportní vrstvě z vrstvy aplikační rozhraní služeb služby pro systémové aplikace, služby pro uživatelské aplikace HTTP

Monitoring kritických systémů - Case study. Tomáš Hrubý, AutoCont CZ tomas.hruby@autocont.cz

Využití systému Dynamips a jeho nástaveb pro experimenty se síťovými technologiemi Petr Grygárek

Základní typy struktur výpočetních systémů

9. Systém DNS. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme si problematiku struktury a tvorby doménových jmen.

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

D R U P A L V O J T Ě C H K U S W O J T H A

Útoky na DNS. CZ.NIC Labs. Emanuel Petr IT10, Praha

BIRD Internet Routing Daemon

NAT-PT/DNS64/AFT. Bc. Lumír Balhar (BAL344), Bc. Petr Kadlec (KAD0019)

Implementace numerických metod v jazyce C a Python

Vývoj multiplatformní aplikace v Qt

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Překlad jmen, instalace AD. Šimon Suchomel

Laboratorní práce: SNMP - Linux snmputils

FIREBIRD relační databázový systém. Tomáš Svoboda

Počítačové sítě Aplikační vrstva Domain Name System (DNS)

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Komunikace se Základními registry v prostředí MČ Praha 7

Počítačové sítě Systém pro přenos souborů protokol FTP

Instalační a uživatelská příručka aplikace PSImulator2 Obsah

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

PSK3-11. Instalace software a nastavení sítě. Instalace software

MODULÁRNÍ REDAKČNÍ SYSTÉM (CMS), SE ZAMĚŘENÍM PRO FIREMNÍ

Stručný obsah. K2118.indd :15:27

Implementace dávkových operací

Další nástroje pro testování

1 Správce licencí Správce licencí Správce licencí Start > Všechny programy > IDEA StatiCa > Správce licencí Soubor > Správce licencí Licence

Knot DNS workshop. CZ.NIC Labs Daniel Salzman / daniel.salzman@nic.cz Jan Kadlec / jan.kadlec@nic.cz

Transkript:

Knot DNS Resolver Modulární rekurzivní resolver Karel Slaný karel.slany@nic.cz 13. 11. 2015

Obsah Co je KNOT Resolver Části resolveru Funkce a konfigurace Integrační testování

Co je Knot DNS Resolver Minimalistický open-source resolver Vychází z Knot DNS libknot, libdnssec Modulární architektura Kompaktní jádro Vrstvy pro zpracování dotazů Knihovna a daemon

Knihovna libkresolve Základní služby pro resolvování Využívá procesní API knihovny libknot Řízení stavovým automatem Data předávána pro zpracování vrstvám Poskytuje Rozhraní pro jednotlivé vrstvy Sdílená cache Plán resolvování Reputační databáze jmenných serverů // Create request and its memory pool struct kr_request req = {.pool = {.ctx = mp_new (4096),.alloc = (mm_alloc_t) mp_alloc } }; // Setup and provide input query int state = kr_resolve_begin(&req, ctx, final_answer); state = kr_resolve_consume(&req, query); // Generate answer while (state == KNOT_STATE_PRODUCE) { } // Additional query generate, I/O and pass back answer state = kr_resolve_produce(&req, &addr, &type, query); while (state == KNOT_STATE_CONSUME) { int ret = sendrecv(addr, proto, query, resp); // If I/O fails, make "resp" empty state = kr_resolve_consume(&request, addr, resp); knot_pkt_clear(resp); } knot_pkt_clear(query); kr_resolve_finish(&request, state);

Vrstvy Funkce vrstev: Sledování procesu zjišťování odpovědi Logování, statistiky Modifikace procesu zjišťování odpovědi Produkce dalších dotazů Konzumace a zpracování odpovědi Komunikují mezi sebou a jádrem pomocí příznaků. Mohou být za běhu nahrávány jako moduly.

Daemon kresd Implementace resolveru využívající libkresolve Perzistentní cache DNSSEC Automatická aktualizace kořenů důvěry (RFC 5011) Negativní kořeny důvěry (RFC 7646) Interaktivní rozhraní v příkazové řádce Interpret jazyka Lua Implementována základní nápověda Vrstvy lze implementovat v C/C++, Go, Lua

Škálovatelnost Lze spustit více procesů současně (Linux SO_REUSEPORT). V závislosti na vytížení lze spouštět/ukončovat procesy. Jednotlivé instance mohou obsluhovat odlišná rozhraní. Mohou nadále sdílet pracovní adresář a cache. Ke konzoli běžícího procesu se lze připojit za běhu. Zatím není řešení pro víceuzlové clustery. Připravovaný modul hive

Konfigurace Daemon použitelný přímo bez konfigurace Konfiguraci lze provádět za běhu. Konfigurační soubor používá syntaxi Lua. Dynamická konfigurace. Skriptovatelné události. modules = { 'hints > iterate', -- Hints AFTER iterate 'policy > hints', -- Policy AFTER hints 'view < rrcache' -- View BEFORE rrcache } modules.list() -- Check module call order -- every 5 minutes event.recurrent(5 * minute, function() cachectl.prune() end) if hostname() == 'hidden' then net.listen(net.eth0, 5353) else net = { '127.0.0.1', net.eth1.addr[1] } end for name, addr_list in pairs(net.interfaces()) do net.listen(addr_list) end

Moduly Static hints statické hinty Graphite vizualizace metrik Statistics collector čítače a metriky Query policies blokování nebo úpravy dotazů Views and ACLs filtry, řízení přístupu, pohledy Prefetching obnovování expirujících záznamů Memcached, Redis úložiště cache Etcd hlídání změn konfigurace Cache control manipulace cache Web interface informace o výkonu a stavu DNS64 překlad IPv4 na IPv6 (RFC 6147)

Integrační testování Deckard testovací prostředí v Pythonu pro řízené testování Testy jsou popisovány ve scénářích Konfigurace Komunikační scénář Kontrolují se odchylky od scénáře Univerzální použitelnost Knot DNS Resolver Power DNS Recursor

Podporované platformy Část Podporované platformy Kompatibilita daemon UNIX-like, MS Windows C99, libuv pro abstrakci I/O knihovna UNIX-like, MS Windows MinGW (ne MSVC) moduly integrační testy závisí na modulu UNIX-like

Překlad a instalace Závislosti libknot 2.0+ LuaJIT 2.0+ Libuv 1.7+ Pkg-config Překlad make PREFIX= /usr/local install make lib lib-install docker run cznic/knot-resolver

Dokumentace https://gitlab.labs.nic.cz/knot/resolver http://knot-resolver.readthedocs.org/ https://gitlab.labs.nic.cz/knot/deckard

Děkuji za pozornost Karel Slaný karel.slany@nic.cz