abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 02:11 | IT novinky

    Byla oznámena beta verze nového video kodeku Pyrowave pro streamování her v Steam Remote Play. S vysokou propustností a nízkou latencí. S podporou HDR a YUV 4:4:4.

    Ladislav Hagara | Komentářů: 0
    dnes 01:11 | Nová verze

    Byl vydán Sublime Text 4 Build 4213. Sublime Text (Wikipedie) je proprietární multiplatformní editor textových souborů a zdrojových kódů. Ke stažení a k vyzkoušení je zdarma. Pro další používání je nutná licence v ceně 99 dolarů. Spolu se Sublime Merge je cena 168 dolarů.

    Ladislav Hagara | Komentářů: 0
    včera 21:55 | Zajímavý článek

    Firma Anthropic, tvůrce AI modelu Claude, začala v oblasti Sanfranciského zálivu v tichosti provozovat vlastní biotechnologickou laboratoř. Anthropic prý chce pomocí AI urychlit hledání léků na nemoci, jimž farmaceutický průmysl dle názoru firmy věnuje příliš málo pozornosti. Firma tvrdí, že laboratoř se zatím soustředí především na základní biologii, nikoli přímo na vývoj léčiv. Farmaceutický výzkum je pro generálního ředitele Daria Amodeie velice osobní téma, jeho otec zemřel na hepatitidu C několik málo let před objevením účinné léčby.

    AfD 💙 | Komentářů: 1
    včera 21:44 | Humor

    Vědci z Googlu dokončili mapu všech neuronových spojení v mozku (tzv. konektom) samečka mušky octomilky obecné (drosophila melanogaster), hlavním cílem je komparativní analýza s již zmapovaným mozkem samičky. S tímto veřejně dostupným modelem, čítajícím přibližně 160 000 neuronů, se začali bavit nadšenci. Mozek mouchy pohání experimentálního kryptoburzovního bota Stonkfly, případně si zahrál počítačové hry Beat Saber, Mario64 a samozřejmě DOOM (gameplay videa). Ani mozek samičky nezůstal stranou, vyzkoušel si Minecraft.

    AfD 💙 | Komentářů: 0
    včera 16:22 | Nová verze

    Alibaba Cloud je dalším sponzorem nadace Omacom Foundation stojící za linuxovou distribucí Omarchy. Přislíbená částka je 3 miliony dolarů, tj. 1 milion dolarů ročně po dobu tří let. Stejná částka jako u DigitalOcean.

    Ladislav Hagara | Komentářů: 4
    včera 16:11 | Nová verze

    Byla vydána nová verze 262 správce systému a služeb systemd (Wikipedie, GitHub).

    Ladislav Hagara | Komentářů: 0
    včera 02:33 | IT novinky

    Canonical oznámil vydání Zephyr 26.04 LTS. Jedná se o komerční distribuci operačního systému pro mikrokontroléry Zephyr (Wikipedie) s podporou až 15 let.

    Ladislav Hagara | Komentářů: 0
    včera 02:00 | Zajímavý projekt

    Gravity Linux je linuxová distribuce určená pro Apple Silicon s čipy M4 a novějšími. Vydána byla alfa verze pro M4 Mac mini. Gravity Linux je fork Asahi Linuxu.

    Ladislav Hagara | Komentářů: 0
    21.9. 22:22 | Zajímavý projekt

    Hister je osobní soukromý vyhledávač, který lze provozovat na vlastním stroji. Umí prohledávat lokální soubory, importovat historii a záložky z webových prohlížečů, procházet vybrané weby a pomocí rozšíření pro Firefox a Chrome indexovat obsah právě navštívených stránek. Nad vytvořeným indexem pak nabízí vyhledávání prostřednictvím webového rozhraní, příkazové řádky a díky podpoře MCP i nástrojům umělé inteligence. Tento

    … více »
    AfD 💙 | Komentářů: 9
    21.9. 13:33 | IT novinky

    Ministerstvo dopravy uznalo prozatímní schválení asistenčního systému Tesla FSD Supervised vydané nizozemským schvalovacím orgánem RDW. Připojilo se tak k Nizozemsku a dalším pěti evropským státům. Systém je díky tomuto rozhodnutí možné používat za podmínek prozatímního schválení také na území České republiky. Tesla FSD Supervised je asistenčním systémem úrovně 2 podle klasifikace SAE (částečná automatizace řízení). Řidič se

    … více »
    Ladislav Hagara | Komentářů: 22
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2717 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    PowerDNS - Autoritativní i rekurzivní dns server s klikátkem

    17.1.2022 08:00 | Přečteno: 4468× | linux | poslední úprava: 17.1.2022 08:00

    Je to už delší doba, co jsem sepsal článek PowerDNS – přívětivý a jednoduchý DNS server. Od té doby se toho hodně změnilo. Takže opět uvolním nějaký malý výcuc z interní dokumentace.

    Úvod

    PowerDNS se stále u nás používá v interní síti jako autoritativní dns server pro některé domény i jako rekurzivní dns server. Je to dáno historicky, je to dáno kvůli nezasírání si dns serverů v rámci Active Directory, ale i kvůli dalším věcem. PowerDNS se stále hodně vyvíjí a architektura se postupně přepracovala. Důvod, proč jako předsazený dns server nepoužíváme bind, je stále stejný. PowerDNS podporuje mysql, jsou k dispozici pěkná grafická klikátka a pro menší klikací nasazení je to tedy podle mě vhodnější.


    Slovníček pojmů

    Nejdříve si ujasníme základní pojmy.

    Autoritativní DNS server

    Jedná se o server, kde jsou vedeny domény. Dotazy na domény tedy nikam nepřeposílá, ale jen obhospodařovává to, co je na něm nastaveno. Typickým příkladem jsou dns servery webhostingů. Když se jich zeptáte na nějakou doménu, která není u nich vedena, tak odpoví, že jí neznají. Nepřepošlou dotaz dál a nepřeloží vám to.


    Rekurzivní DNS server

    Jedná se o dns server, který kešuje a přeposílá dotazy. Když se ho zeptáte na cokoli, tak odpoví a správně přeloží. Na rekurzivním dns serveru nejsou vedeny domény, funguje opravdu jen jako kešovací brána pro překlady. Typickým příkladem jsou dns servery poskytovatelů připojení k internetu.


    Rekurzivní i autoritativní DNS server v jednom?

    Je možné mít jednu službu, kde jsou vedeny nějaké domény, a když je nezná, přepošle dotaz dál. Od tohoto konceptu se ale ustupuje. A jeden z hráčů, který tak učinil, je i PowerDNS.

    V původním článku má PowerDNS autoritativní část i rekurzivní část v rámci jednoho serveru. Od verze 4.1.0 byla rekurzivní část separována do vlastní služby. Tj. autoritativní část i rekurzivní část běží na vlastním portu.


    Architektura PowerDNS

    Já chci mít ve firmě PowerDNS, klikací a chci ho mít jako autoritativní i jako rekurzivní. Jak toho docílit? Řekli jsme si, že jsou tyto části rozděleny a každá běží na svém portu. Obě tedy nemohou běžet na portu 53. Jak to tedy funguje? Jednoduše, ani jedna nepoběží na portu 53 :).

    Princip je jednoduchý, autoritativní část i rekurzivní část poběží na localhostu. Autoritativní část poběží třeba na portu 5300 a rekurzivní část třeba na portu 5301. Na portu 53 pak poběží load balancer, který bude podle politik rozhazovat komunikaci. Jako dns balancer se používá dnsdist. PDNS má note, jak provést migraci: Migrating from using recursion on the Authoritative Server to using a Recursor.

    V původním článku bylo zmíněno jako klikací web rozhraní PowerAdmin, který se stále vyvíjí a jedná se asi o nejlepší klikací web rozhraní pro PowerDNS, které podporuje i dnssec. Pro mé použití jsem v době minulé zkusil zaexperimentovat a nasadil jsem PDNS Manager. Důvodů bylo několik malicherných, je to jednodušší, pěknější a v tu chvíli mi to více vyhovoval. Každý, nechť se rozhodne sám, co použije a jak.

    Finální architektura nakonec vypadá takto:
    PowerDNS Architecture


    Konfigurace

    Jak vidíte z architektury, tak nejdříve jde komunikace na dnsdist, který požadavky přesměruje na recursor. Ten se pak postará o rozhození správným směrem. Dnsdist komunikuje ale i s autoritativním PowerDNS kvůli transféru domén s dalšími dns servery. Tj. kvůli axfr komunikaci. V síti máme další dns servery, které fungují jako slave a dělá se na ně transfer dns zón. Těmi dns servery jsou: 192.168.1.1, 192.168.1.2, 192.168.1.3. Konfigurace pak tedy bude vypadat takto:


    dnsdist

    /etc/dnsdist/dnsdist.conf

    addLocal('0.0.0.0:53')
    addACL('0.0.0.0/0')
    
    newServer({address='127.0.0.1:5300', pool='auth'})
    newServer({address='127.0.0.1:5301', pool='recursor'})
    
    -- AXFR ACL
    addAction(AndRule{
        OrRule{
            QTypeRule(dnsdist.AXFR),
            QTypeRule(dnsdist.IXFR)
        },
        NotRule(OrRule{
            -- localhost
            makeRule('127.0.0.1'),
            makeRule('::1'),
            -- A slave
            makeRule('192.168.1.1'),
            makeRule('192.168.2.1'),
            makeRule('192.168.3.5'),
        })
    }, RCodeAction(dnsdist.REFUSED))
    
    
    -- Notify ACL
    addAction(AndRule{
        OpcodeRule(DNSOpcode.Notify),
        NotRule(OrRule{
            -- My superslave
            makeRule('192.168.1.1'),
            makeRule('192.168.2.1'),
            makeRule('192.168.3.1'),
        })
    }, RCodeAction(dnsdist.REFUSED))
    
    
    -- AXFR and Notify Target
    addAction(OrRule{
        QTypeRule(dnsdist.SOA),
        QTypeRule(dnsdist.AXFR),
        QTypeRule(dnsdist.IXFR),
        OpcodeRule(DNSOpcode.Notify)
    }, PoolAction("auth"))
    
    
    -- IP address for redirect to recursor:
    recursive_ips = newNMG()
    recursive_ips:addMask('0.0.0.0/0')
    
    addAction(NetmaskGroupRule(recursive_ips), PoolAction('recursor'))
    addAction(AllRule(), PoolAction('auth'))
    


    PowerDNS - autoritativní

    /etc/powerdns/pdns.conf

    ...
    allow-axfr-ips=127.0.0.1
    allow-unsigned-supermaster=no
    also-notify=192.168.1.1,192.168.1.2,192.168.1.3
    daemon=yes
    disable-axfr=no
    guardian=yes
    local-port=5300
    log-dns-queries=no
    master=yes
    trusted-notification-proxy=127.0.0.1
    webserver=yes
    webserver-address=0.0.0.0
    webserver-allow-from=127.0.0.1,::1
    webserver-password=heslo
    webserver-port=8081
    version-string=powerdns
    ...
    

    /etc/powerdns/pdns.d/mysql.conf

    launch=gmysql
    
    gmysql-host=localhost
    gmysql-port=3306
    gmysql-dbname=powerdns
    gmysql-user=powerdns
    gmysql-password=heslo123
    gmysql-dnssec=no
    


    PowerDNS - rekurzivní

    /etc/powerdns/recursor.conf

    ...
    daemon=yes
    forward-zones-file=/etc/powerdns/recursor_forward_zones.conf
    forward-zones-recurse=.=8.8.8.8
    hint-file=/usr/share/dns/root.hints
    local-address=0.0.0.0
    local-port=5301
    quiet=yes
    ...
    
    /etc/powerdns/recursor_forward_zones.conf
    devaine.local=127.0.0.1:5300
    dcera.local=192.168.58.2
    corp.devaine.cz=192.168.1.151:53;192.168.1.152:53
    


    Jak vidíte, tak nastavení je jednoduché. Trochu složitější je zpočátku proniknout do nastavení politik co a jak kam směrovat u dnsdist, ale jinak je to vše úplně v klidu.


    Sekundární DNS server

    V původním článku jsem dělal sync dns zón na sekundární dns server pomocí syncu databáze. To jsem také časem změnil a sync dělám pomocí axfr transféru dns zón. Jinými slovy, uvedenou konfiguraci PowerDNS+dnsdist mám úplně stejně na dalším serveru, jen s tím rozdílem, že autoritativní část je nastavena takto:

    /etc/powerdns/pdns.conf

    ...
    allow-axfr-ips=127.0.0.1
    allow-unsigned-supermaster=no
    #also-notify=192.168.1.1,192.168.1.2,192.168.1.3
    daemon=yes
    disable-axfr=no
    guardian=yes
    local-port=5300
    log-dns-queries=no
    master=yes
    slave=yes
    slave-cycle-interval=60
    trusted-notification-proxy=127.0.0.1
    webserver=yes
    webserver-address=0.0.0.0
    webserver-allow-from=127.0.0.1,::1
    webserver-password=heslo
    webserver-port=8081
    version-string=powerdns
    ...
    

    /etc/powerdns/pdns.d/mysql.conf

    launch=gmysql
    
    gmysql-host=localhost
    gmysql-port=3306
    gmysql-dbname=powerdns
    gmysql-user=powerdns
    gmysql-password=heslo123
    gmysql-dnssec=no
    


    Diagnostika

    Pokud chceme nějak diagnostikovat problémy s dns, tak základ je samozřejmě program "dig" z balíčku dnsutils. Tento program je něco jako nslookup, ale lepší. Pár příkladů:

    # pošli dotaz na konkrétní dns server
    dig @8.8.8.8 devaine.cz
    
    # zdiagnostikuj autoritativní část z příkladu
    dig @127.0.0.1 -p 5300 corp.devaine.cz
    
    # zeptej se na mx záznam
    dig @8.8.8.8 abclinuxu.cz mx
    
    # zeptej se na txt záznam
    dig @8.8.8.8 heronovo.cz txt
    
    # zeptej se na rdns
    dig -x 23.88.41.116
    

    Dobrým nástrojem, který nám pomůže diagnostikovat problémy s rekurzorem je "rec_control":

    # zjistit stav konkrétního záznamu
    rec_control dump-cache /tmp/dns-cache.txt
    cat /tmp/systemd-private-8e23dc6a1549477f9873f6b5594c873a-pdns-recursor.service-oBkeOV/tmp/dns-cache.txt
    
    # smaž z cache
    rec_control wipe-cache corp.devaine.cz
    
    # zobraz aktuální dotazy
    rec_control current-queries
    
    # zobraz top
    rec_control top-queries
    

    Dalším nástrojem je "pdns_control", který slouží k ovládání dns serveru, pár příkladů

    # jak dlouho běží služba
    pdns_control uptime
    
    # přehled zón na serveru
    pdns_control list-zones
    
    # zjisti, zda služba žije
    pdns_control rping
    
    # zobraz všechny statistiky
    pdns_control show '*'
    
    # zobraz konkrétní statistiku
    pdns_control show udp4-queries
    


    Závěr

    Myslím si, že nemá smysl psát ucelený návod typu step2step jako v předchozím článku. Kdo chce grafické klikátko, tak si ho doinstaluje úplně stejně jako je v předchozím článku uvedeno, jinak se nic dalšího nemění.

    A jak jste na tom vy? Co používáte a jak?

    Zdar Max

           

    Hodnocení: 100 %

            špatnédobré        

    Anketa

    Jak jste na tom? Co používáte?
     (48 %)
     (16 %)
     (20 %)
     (16 %)
     (7 %)
     (18 %)
     (7 %)
     (5 %)
     (11 %)
    Celkem 44 hlasů

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Diskuse byla administrátory uzamčena

    17.1.2022 10:28 MP
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    Co se tyce grafickeho klikatka, tak jsem trochu nestastny. Puvodni PowerAdmin jiz neni vyvyjeny, takze momentalne vse konfiguruji pres cli, a jako nouzovou variantu mam Pdns Admin, cili misto klasickeho php nejaky kontejner s x technologiemi, coz se mi spatne dava do konfig managementu. A timpadem mam problem s moznosti vyuzivat Let's Encrypt.

    Dnsdist pouzivam taky, ale mam to predrazene az pred auth servery, kdyz jsem kreslil redundantni schema vcetne ruznych forwardu intranetovych/public zon, tak dnsdist pred rekurzory mi vyrobil krasne neresitelne smycky. Jen si clovek musi davat bacha pri upgradech dnsdist, velmi radi meni nazvy funkci, coz se config managementem spatne vykryva, taky jsem na tom mel uz pekny firemni vypadek.

    17.1.2022 10:54 Max | skóre: 73 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    PowerAdmin se ale pořád vyvíjí, jen to UI má myslím pořád strašný. Pokud jde o pdns admin, tak docker přece používat nemusíš, ne?
    Zdar Max
    Měl jsem sen ... :(
    17.1.2022 11:48 MP
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    Tak PowerAdmin - to je nejaka novinka, protoze pred rokem a vice to rozhodne bylo neudrzovany repo.

    Eh, nahradou jsem pouzil Powerdns-Admin, coz kdyz se clovek podiva na postup instalace mimo kontejner - https://github.com/PowerDNS-Admin/PowerDNS-Admin/wiki/Running-PowerDNS-Admin-on-Ubuntu-or-Debian, tak ...
    17.1.2022 12:19 Max | skóre: 73 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    Na ten postup jsem právě koukal a buď jsem už sešlehaný časem a jinýma řešeníma, nebo nevím, ale mě to nepřijde složitý. MySQL + Node.js + Python + bych před to dal Nginx jako reverzní proxy. Easy peasy :).
    Zdar Max
    Měl jsem sen ... :(
    17.1.2022 13:50 MP
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    a k tomu yarn, flask, pip prikazy...

    Jaky rozdil nastavit nginx + slozku + nahrat primo zdrojaky...
    17.1.2022 13:53 Max | skóre: 73 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    Pokrok nezastavíš, no :).
    Zdar Max
    Měl jsem sen ... :(
    17.1.2022 10:53 Mayhem
    Rozbalit Rozbalit vše Re: PowerDNS - Autoritativní i rekurzivní dns server s klikátkem
    Pro me ucely vzdy dostacoval bind, ale pak jsem objevil dnsmasq a zamiloval jsem si jej. :-D knot jsem zkousel, ale to je pro muj ucel kanon na orla. A take je od cznicu, ktery nemam rad.
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.