Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »tinydns je démon poskytující služby jmenného serveru. Konfiguraci vytvoříme obdobně jako konfiguraci pro dnscache:
# tinydns-conf tinydns dnslog /etc/tinydns 74.86.171.244
Parametry jsou také obdobné, jedná se o uživatele, pod kterým tinydns poběží, uživatele, pod kterým poběží logování, a IP adresa, na které bude tinydns naslouchat. IP adresa uvedená zde je adresa jmenného serveru ns1.dnspark.net, který je autoritativní (mimo jiné) pro doménu abclinuxu.cz, kterou budu používat v příkladech níže.
Poznámka: DNS záznamy abclinuxu.cz se během psaní tohoto článku měnily, takže je možné, že některé ze záznamů uvedených zde již neplatí.
Opět vznikl adresář vhodný ke spuštění pomocí Daemon Tools, takže úpravy budou obdobné. Začneme souborem run:
a2x5l5:/etc/tinydns# cat run #!/bin/sh exec 2>&1 exec envuidgid tinydns envdir ./env softlimit -d300000 /usr/bin/tinydns
Stejná situace jako v předchozím případě, programy z Daemon Tools opět nahradíme programem chpst:
#!/bin/sh exec 2>&1 exec chpst -U tinydns -e ./env -d 300000 /usr/bin/tinydns
Adresář env obsahuje proměnné prostředí:
a2x5l5:/etc/tinydns# ls env/ IP ROOT
V IP je adresa, kterou jsme zadali výše, na ní bude tinydns naslouchat; ROOT je adresář, do kterého se tinydns po startu uzavře – /etc/tinydns/root
Adresář root je oproti dnscache o něco zajímavější:
a2x5l5:/etc/tinydns/root# ls add-alias add-alias6 add-host add-host6 add-childns add-mx add-ns data Makefile
Soubory add-* jsou skripty, které slouží k přidávání záznamů do souboru data (djbdns bez podpory IPv6 nebude obsahovat add-alias6 a add-host6.) V souboru data je uložena kompletní konfigurace DNS záznamů, které bude tinydns vracet. tinydns nicméně nepoužívá informace v tomto souboru uvedené přímo, ale místo toho čte databázi data.cdb, kterou podle souboru data vytváří program tinydns-data.
Abychom nemuseli složitě vypisovat tinydns-data pokaždé, když chceme záznamy aktualizovat, můžeme díky souboru Makefile použít make. Soubor Makefile vypadá takto:
a2x5l5:/etc/tinydns/root# cat Makefile data.cdb: data /usr/bin/tinydns-data
Změny se projevují automaticky, tinydns není potřeba restartovat.
Nyní se podívejme na jednotlivé záznamy, které může soubor data obsahovat:
Obecný formát je .fqdn:ip:jmeno:ttl:timestamp:lo
Význam polí ttl, timestamp a lo je pro všechny záznamy stejný a tato pole je možné uvést u každého záznamu. ttl udává dobu, po kterou je tento záznam možné držet v DNS cache. timestamp určuje, kdy záznam platí, a lo umožňuje nastavit umístění klienta. Všechny tři hodnoty lze vynechat (v případě ttl tinydns použije výchozí hodnotu 86400 vteřin.)
Výše uvedený řádek vytvoří následující DNS záznamy:
NS záznam – jmeno.ns.fqdn je jmenný server pro doménu fqdn
A záznam – jmeno.ns.fqdn má adresu ip
SOA záznam – jmeno.ns.fqdn je primární jmenný server pro fqdn a kontaktní adresa je hostmaster@fqdn
Pokud jmeno obsahuje tečku, místo jmeno.ns.fqdn se použije přímo jmeno. ip lze vynechat, pokud má jmeno v data přiřazenu IP adresu někde jinde.
Pro abclinuxu.cz bychom tedy nastavili, že jmenným serverem je ns1.dnspark.net s IP adresou 74.86.171.244 a tento záznam je možné po dobu jedné hodiny držet v DNS cache:
.abclinuxu.cz::ns1.dnspark.net:3600:
Pokud naší doméně slouží více jmenných serverů, můžeme zde uvést více záznamů, ale jako SOA se uplatní pouze první – následující nastavení tedy nevytvoří další čtyři primární jmenné servery.
.abclinuxu.cz::ns2.dnspark.net:3600: .abclinuxu.cz::ns3.dnspark.net:3600: .abclinuxu.cz::ns4.dnspark.net:3600: .abclinuxu.cz::ns5.dnspark.net:3600:
Poznámka: všimněte si, že u žádného z těchto záznamů není uvedena IP adresa. Ta není potřeba proto, že abclinuxu.cz má stejné DNS servery jako dnspark.net, tinydns tedy bude muset poskytovat DNS záznamy pro obě tyto domény. IP adresa jmenných serverů nsX.dnspark.net tedy bude v konfiguračním souboru uložena zvlášť přímo v záznamech týkajících se domény dnspark.net. Například takto:
.dnspark.net:74.86.171.245:ns1.dnspark.net:7200:
.dnspark.net:83.170.89.43:ns2.dnspark.net:7200:
.dnspark.net:66.98.161.195:ns3.dnspark.net:7200:
.dnspark.net:209.160.65.32:ns4.dnspark.net:7200:
.dnspark.net:67.228.229.243:ns5.dnspark.net:7200:
Pokud chceme vytvořit A záznam a reverzní záznam zároveň, použijeme následující syntaxi =fqdn:ip:ttl:timestamp:lo
Samostatný A záznam vytvoříme řádkem +fqdn:ip:ttl:timestamp:lo.
V obou případech je fqdn plně kvalifikované jméno stroje, kterému přiřazujeme ip, ostatní parametry mají stejný význam jako v předchozím případě. Pro servery, na kterém běží ábíčko a jabber server abclinuxu.cz, by tedy záznamy vypadaly takto:
=abicko.abclinuxu.cz:195.70.150.7:3600: +abclinuxu.cz:195.70.150.7: +jabber.abclinuxu.cz:195.70.150.51:
Tyto dva záznamy říkají, že IP adresa stroje abicko.abclinuxu.cz je 195.70.150.7, že 7.150.70.195.in-addr.arpa ukazuje na abicko.abclinuxu.cz a že abclinuxu.cz má A záznam 195.70.150.7.
Protože se nedávno IP adresa ábíčka měnila, můžeme si u tohoto záznamu ukázat význam pole timestamp. timestamp – časová značka – označuje dobu platnosti záznamu – pokud je stanoveno timestamp a ttl má nenulovou hodnotu nebo není uvedeno, udává timestamp, odkdy daný řádek platí. Pokud je ttl rovno 0, platí daný záznam pouze do doby stanovené značkou. (V takovém případě je ttl dopočítáváno tak, aby nepřekročilo dobu platnosti záznamu.) Příklad:
=abicko.abclinuxu.cz:195.70.150.5:0:400000004ab58ca0 =abicko.abclinuxu.cz:195.70.150.7:3600:400000004ab58ca0
400000004ab58ca0 je časová značka zapsaná v TAI64 v hexadecimálním formátu s malými písmeny. Tyto dva záznamy říkají, že do neděle 20.9.2009 do 2h ráno má abicko.abclinuxu.cz IP adresu 195.70.150.5, kdežto od druhé hodiny toho dne má IP adresu 195.70.150.7 a ttl 3600.
Obecný zápis je Cfqdn:jmeno:ttl:timestamp:lo – udává, že fqdn je kanonické jméno pro jmeno. Příklad:
Cwww.abclinuxu.cz:abicko.abclinuxu.cz:3600:
Řádek ve tvaru @fqdn:ip:jmeno:prio:ttl:timestamp:lo říká, že server jmeno.mx.fqdn o adrese ip je přijímací SMTP server domény fqdn o prioritě prio. prio je možné vynechat, výchozí hodnota je 0. Pokud jmeno obsahuje tečku, je s ním zacházeno stejně jako v případě SOA záznamu – místo jmeno.mx.fqdn se použije pouze jmeno. Příklad:
@abclinuxu.cz::aspmx.l.google.com:10: @abclinuxu.cz::alt1.aspmx.l.google.com:20: @abclinuxu.cz::alt2.aspmx.l.google.com:20: @abclinuxu.cz::aspmx2.googlemail.com:30: @abclinuxu.cz::aspmx3.googlemail.com:30: @abclinuxu.cz::aspmx4.googlemail.com:30: @abclinuxu.cz::aspmx5.googlemail.com:30:
I u těchto záznamů vynecháváme IP adresu – je zbytečné uvádět v konfiguraci našeho DNS serveru IP adresy strojů v doménách google.com a googlemail.com, pro které není autoritativní. Na tyto adresy se ho nikdo nebude ptát.
Pokud je na náš DNS server delegován zpětný překlad IP adres na jména, použijeme záznam, jehož obecný tvar je ^fqdn:jmeno:ttl:timestamp:lo – například:
^51.150.70.195.in-addr.arpa:jabber.abclinuxu.cz:
Tento záznam říká, že IP adresu 195.70.150.51 má stroj jménem jabber.abclinuxu.cz. Aby se tento záznam uplatnil, musí být na náš DNS server delegován překlad odpovídajícího rozsahu IP adres a náš server tuto delegaci musí přijmout záznamem, jako je tento:
.150.70.195.in-addr.arpa::ns1.dnspark.net:
Obecný tvar je 'fqdn:ret:ttl:timestamp:lo – TXT záznam pro fqdn je řetězec ret. Do řetězce je možné vložit libovolné znaky pomocí osmičkového kódu ve tvaru \xxx – například dvojtečku je možné vložit kódem \072
Doména abclinuxu.cz žádný TXT záznam nemá, takže jako příklad použijeme smyšlený SPF záznam. Řekněme například, že e-maily z domény abclinuxu.cz smí přicházet pouze z smtp.gmail.com. Odpovídající TXT záznam by v takovém případě byl:
'abclinuxu.cz:v=spf1\040ip4\072209.85.135.111\040ip4\072209.85.135.109\040-all:
V případě složitější a větší sítě, kde jsou počítače rozmístěny různě po světě, ale patří do stejné domény, bývají některé záznamy delegovány na podřízené servery. Proč tomu tak je a jak něco takového nastavit pomocí tinydns, si ukážeme na příkladu.
Řekněme, že nadnárodní společnost company.com má pobočky rozmístěné různě po světě a webové stránky (a další stroje) těchto poboček běží v příslušné zemi pod jménem www.kod.company.com, kde kod je kód země. Centrála firmy je – řekněme – v USA a tam jsou také jmenné servery pro company.com.
Bylo by rozhodně možné na těchto jmenných serverech nastavit všechny záznamy pro všechny pobočky, ale to by znamenalo, že zákazníci firmy company by se před zobrazením stránek místní pobočky firmy nejprve museli ptát na adresu zahraničního serveru. A to trvá.
Na jmenném serveru company.com proto nastavíme jenom záznamy pro pobočku v USA a ostatní záznamy lokálních poboček necháme vyřizovat lokální jmenné servery. Konfigurace tinydns pro company.com tedy bude vypadat nějak takto:
.company.com:ip.ns.v.usa:ns1.company.com: =www.company.com:ip.www.v.usa: &cz.company.com:ip.ns.v.cr:ns1.cz.company.com: &uk.copmany.com:ip.ns.v.vb:ns1.uk.company.com:
Tento (značně zjednodušený) konfigurační soubor říká, že jmenný server pro company.com je ns1.company.com s IP adresou ip.ns.v.usa a webový server www.company.com má IP adresu ip.www.v.usa. Pokud se nicméně bude někdo ptát na adresu v doméně cz.company.com – například na www.cz.company.com – dostane se mu odpovědi, že DNS pro subdoménu cz.company.com vyřizuje server ns1.cz.company.com s IP adresou ip.ns.v.cr, a toho je potřeba se zeptat.
Konfigurační soubor pro jmenný server ns1.cz.company.com bude potom vypadat nějak takto:
.cz.company.com:ip.ns.v.cr:ns1.cz.company.com: =www.cz.company.com:ip.www.v.cr:
Pro některé typy DNS záznamů tinydns neobsahuje přímou podporu, ale je nutné použít obecný záznam a typ uvést. Obecný tvar vypadá takto:
:fqdn:typ:data:ttl:timestamp:lo
Například pro SRV záznam je hodnota typ 33 a SRV záznam _jabber._tcp.abclinuxu.cz o prioritě 5 a váze 0 nasměrovaný na jabber.abclinuxu.cz na port 5269 vypadá takto:
:_jabber._tcp.abclinuxu.cz:33:\000\005\000\000\024\225\006jabber\011abclinuxu\002cz\000:600
\000\005 je priorita, \000\000 váha a \024\225 port – všechna čísla jsou zapsána osmičkově, vyšší byte je uveden první. Jméno serveru, na který tento záznam směřuje, je ukončeno nulovým bytem (\000) a před každou částí doménového jména (jabber, abclinuxu a cz) předchází jeden byte udávající délku dané části (6, 9 a 2).
Pokud se vám nechce přemýšlet, která informace v záznamu má být kde, můžete použít například tento generátor.
Všechny řádky v konfiguračním souboru, které začínají znakem #, jsou komentáře.
Pokud chceme, aby se pro nějakou doménu vyhodnocovala všechna jména stejně, můžeme použít „wildcard“ tak, že místo jména stroje zapíšeme hvězdičku. Příklad:
+*.abclinuxu.cz:195.70.150.7:
Tento záznam říká, že pokud neexistuje specifický záznam cokoliv.abclinuxu.cz, pak má být vrácena IP adresa 195.70.150.7. S tímto záznamem tedy na dotaz na jabber.abclinuxu.cz bude stále vráceno 195.70.150.51, kdežto na asdfasdf.abclinuxu.cz 195.70.150.7. Obecně platí, že u wildcard záznamů má přednost konkrétní záznam, po něm specifičtější wildcard a nejobecnější wildcard se uplatní až v případě, když se neuplatnilo nic před ním.
Pokud vaše tinydns obsahuje podporu IPv6, můžete AAAA záznam přidat takto:
6fqdn:ipv6:ttl:timestamp:lo
Ábíčko IPv6 adresu nemá, ale kdyby mělo řekněme adresu 2001:db8:1:2:3:4:5:6, pak by odpovídající záznam vypadal takto:
6abicko.abclinuxu.cz:20010db8000100020003000400050006:
Tento řádek automaticky vytvoří i reverzní záznam, pokud bychom to tak nechtěli, použijeme syntaxi:
3fqdn:ipv6:ttl:timestamp:lo
V tomto případě se záznam pro zpětný překlad nevytvoří. Můžeme ho nicméně nastavit ručně například takto:
^6.0.0.0.5.0.0.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa::abicko.abclinuxu.cz:
Opět platí, že překlad IPv6 adres na jména musí být pro daný rozsah adres delegován na náš server a tuto delegaci je nutné přijmout odpovídajícím záznamem.
Další typy záznamů a více příkladů naleznete v anglické dokumentaci tinydns. Tím kapitolu o tinydns ukončíme a můžeme se krátce podívat, jak tyto dva skloubit dohromady.
Pokud máte domácí nebo podnikovou síť a chcete mít stroje v ní přístupné pomocí doménového jména, ale zároveň nechcete tato jména zpřístupnit zvenčí – třeba protože počítače nemají veřejné IP adresy – můžete propojením dnscache a tinydns vytvořit vlastní doménu nejvyšší úrovně a tu ve své síti používat.
tinydns tentokrát nakonfigurujeme tak, aby naslouchalo na lokálním rozhraní:
tinydns-conf tinydns dnslog /etc/tinydns 127.0.0.2
Provedeme stejné úpravy jako ty, které jsme popsali v předchozí kapitole, a soubor data vyplníme nějak takto:
.doma:192.168.253.1:ns1.doma:259200 +router.doma:192.168.253.1: +jasonn.doma:192.168.253.3: +pocitac.vkuchyni.doma:192.168.253.5 +ivetin.pocitac.doma:192.168.253.6 +notas.doma:192.168.253.7
Tím jsme vytvořili doménu doma a pěti počítačům v ní přiřadili IP adresy. Teď musíme jenom zajistit, aby dnscache věděla, že na naši doménu se nemá ptát kořenových DNS serverů, ale přímo lokálního stroje. To je možné nastavit v /etc/dnscache/root/servers – jak bylo zmíněno výše, v tomto adresáři dnscache standardně hledá soubor @ obsahující seznam kořenových DNS serverů, nicméně ostatní soubory v tomto adresáři také považuje za konfigurační soubory. Pokud tedy vytvoříme soubor doma a do něj vložíme adresu, na které naslouchá naše tinydns – 127.0.0.2 – bude dnscache dotazy na doménu doma (a její subdomény) zasílat na IP adresu 127.0.0.2 a ne kořenovým DNS serverům.
Stejným způsobem je možné přesměrovat i dotazy na domény vyšších řádů a není nutné používat jenom IP adresu lokálního rozhraní – DNS cache takto umožňuje zasílat dotazy na libovolný server.
Tím krátká zmínka o djbdns končí. Případné postřehy a doplnění pište do diskuze.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: