Praktikum komunikačních sítí I : návody na praktická cvičení
Full text
DNS Sys ém doméno ých jmen
Pa el Ne lud
Os a a
DNS Domain Name Sys em
DNS Domain Name Sys em je hie a chický dece alizo aný sys ém doméno ých jmen. Jeho hla ním
úkolem je zajis i překlad doméno ého jména na IP ad esu. Dnes slouží jako dis ibuo aná da abáze
síťo ých in o mací. V našem dokumen u se budeme zabý a zejména podpo ou IP 6 ad es.
P o okol s anda dně yuží á po y UDP/53, nebo TCP/53. Se e y DNS jsou o ganizo ány
hie a chicky, s ejně jsou aké ořeny náz y domén. Jména domén umožňují snadnější o ien aci lidem.
IP 4 ad esy jsou yjádřeny pomocí A záznamu, a IP 6 ad esy jsou yjádřeny pomocí AAAA záznamu.
Se e y aké zajišťují zpě ný překlad IP ad es na doméno á jména pomocí PTR záznamu.
P os o doméno ých jmen oří s om s jedním kořenem. Kořeno á doména je ořena ečkou, a pod ní
se nacházejí domény nej yššího řádu TLD Top Le el Domain. Ty o TLD mohou bý éma ické, např.
com, o g, nebo podle území, např. cz, sk. Ty o in o mace jsou uloženy na kořeno ých DNS se e ech.
DNS s om je adminis a i ně ozdělen do zón, k e é sp a ují jedno li í sp á ci domén. Např. p o
doménu .cz je sp á cem nic.cz. Ty o in o mace jsou posky o ány au o i a i ním DNS se e em.
Posky o a elé in e ne u ISP ě šinou p o ozují eku zi ní DNS se e y, kde jsou záznamy dočasné.
Ty o eku zi ní se e y pomocí eku zi ních do azů získa ají in o mace u au o i a i ních se e ů, kde
jsou ale uloženy příslušné in o mace. Klien ská zařízení se ě šinou ob acejí s do azy na eku zi ní
se e y.
Je aké možné yuží a zabezpečený přenos DNS in o mací, např. pomocí DNS o e TLS, DNS o e
DTLS, nebo DNS o e HTTPS. Nejno ější možnos í je yuži í DNS o e QUIC, k e ý umožňuje
ychlejší a bezpečnější ýměnu in o mací mezi DNS klien em a DNS se e em. Příslušné RFC9250 je
z oku 2022.
Re e ence:
[wikiDns] Domain Name Sys em. Online. Dos upné z:
h ps://en.wikipedia.o g/wiki/Domain_Name_Sys em. [ci . 2023-12-10].
[RFC1034] DOMAIN NAMES - CONCEPTS AND FACILITIES. Online. Dos upné z:
h ps://da a acke .ie .o g/doc/h ml/ c1034. [ci . 2023-12-10].
[RFC1035] DOMAIN NAMES – IMPLEMENTATION AND SPECIFICATION. Online. Dos upné z:
h ps://da a acke .ie .o g/doc/h ml/ c1035. [ci . 2023-12-10].
[RFC9250] DNS o e Dedica ed QUIC Connec ion. Online. Dos upné z:
h ps://da a acke .ie .o g/doc/h ml/ c9250. [ci . 2023-12-10].
1. Lokální DNS pomocí soubo u /e c/hos s
Nejdří e je po řeba zajis i , aby se p io i ně použí al soubo /e c/hos s p o překlad doméno ého jména
na IP ad esy. To lze zajis i pomocí soubo u /e c/nsswi ch.con .
1
sudo nano /e c/nsswi ch
hos s: iles mdns4_minimal [NOTFOUND= e u n] dns
sudo nano /e c/hos s
# The ollowing lines a e desi able o IP 6 capable hos s
::1 ip6-localhos ip6-loopback
e00::0 ip6-localne
00::0 ip6-mcas p e ix
02::1 ip6-allnodes
02::2 ip6-all ou e s
2001:db8::1 ou e A ou e A. es
2001:db8::2 dns-se e dns-se e . es
ping dns-se e
PING dns-se e (2001:db8::2) 56(84) by es o da a.
64 by es om dns-se e . es (2001:db8::1): icmp_seq=1 l=118 ime=7.2 ms
2. DNS Resol e
Resol e je zodpo ědný u klien a za zp os ředko ání komunikace mezi aplikacemi a DNS do azy.
Komunikuje s DNS se e em, odesílá mu požada ky od aplikací a příjímá odpo ědi od DNS se e u.
Ty o odpo ědi si jednak ukládá do las ni pamě i a jednak přeposílá zpě aplikacím.
Resol e aké může zná ad esy kořeno ých DNS se e ů, na k e é se nejdří e ob ací s do azem.
Kon igu ace esol e u je např. soubo u /e c/sys emd/ esol ed.con , kde lze nas a i DNS se e .
sudo nano /e c/sys emd/ esol ed.con
[Resol e]
DNS=2001:db8::53
3. Odlehčený DNS dnsmasq
Dnsmasq je malý a snadno kon igu a elný DNS se e , k e ý posky uje služby DHCP a Rou e
Ad e isemen . Dnsmasq s anda dně naslouchá na po u 5353.
Nejdří e nas a íme DNS záznamy do soubo u /e c/hos s.
sudo nano /e c/hos s
2
2001:db8::1 dns-se e dns-se e . es
2001:db8::2 pc pc. es
Následně nains alujeme a nakon igu ujeme balíček dnsmasq. Dále službu dnsmasq ese ujeme a
nacháme si ypsa s a us služby dnsmasq. Nakonec pomocí nás oje hos o es ujeme, jes li služba
zajišťuje překlad doméno ého jména na IP 6 ad esu.
sudo ap ins all dnsmasq
dpkg -L dnsmasq-base
sudo nano /e c/dnsmasq.con
po =5353
in e ace=enx00e04c680130
lis en-add ess=::
domain= es
sudo se ice dnsmasq es a
sudo se ice dnsmasq s a us
dnsmasq.se ice - dnsmasq - A ligh weigh DHCP and caching DNS se e
Loaded: loaded (/lib/sys emd/sys em/dnsmasq.se ice; enabled; endo p ese : enabled)
Ac i e: ac i e ( unning) since Thu 2023-10-26 08:55:55 CEST; 4s ago
P ocess: 3009 ExecS a P e=/e c/ini .d/dnsmasq checkcon ig (code=exi ed, s a us=0/SUCCESS)
P ocess: 3017 ExecS a =/e c/ini .d/dnsmasq sys emd-exec (code=exi ed, s a us=0/SUCCESS)
P ocess: 3026 ExecS a Pos =/e c/ini .d/dnsmasq sys emd-s a - esol con (code=exi ed,
s a us=0/SUCCESS)
Main PID: 3025 (dnsmasq)
Tasks: 1 (limi : 17748)
Memo y: 584.0K
CPU: 66ms
CG oup: /sys em.slice/dnsmasq.se ice
3025 /us /sbin/dnsmasq -x / un/dnsmasq/dnsmasq.pid -u dnsmasq -7└─
/e c/dnsmasq.d,.dpkg-dis ,.dpkg-old,.dpkg-new --local-se ice -- us -
ancho =.,20326,8,2,e06d44b80b8 1d39a95c0b0d7c65d>
říj 26 08:55:55 pc14 sys emd[1]: S a ing dnsmasq - A ligh weigh DHCP and caching DNS se e ...
říj 26 08:55:55 pc14 dnsmasq[3025]: s a ed, e sion 2.86 cachesize 150
3
říj 26 08:55:55 pc14 dnsmasq[3025]: compile ime op ions: IP 6 GNU-ge op DBus no-UBus i18n IDN2
DHCP DHCP 6 no-Lua TFTP conn ack ipse au h c yp ohash DNSSEC loop-de ec ino i y dump ile
říj 26 08:55:55 pc14 dnsmasq[3025]: eading /e c/ esol .con
říj 26 08:55:55 pc14 dnsmasq[3025]: using namese e 127.0.0.53#53
říj 26 08:55:55 pc14 dnsmasq[3025]: ead /e c/hos s - 9 add esses
říj 26 08:55:55 pc14 sys emd[1]: S a ed dnsmasq - A ligh weigh DHCP and caching DNS se e .
sudo ss - unlp |g ep dnsmasq
udp UNCONN 0 0 0.0.0.0:5353 0.0.0.0:* use s:(("dnsmasq",pid=3495, d=4))
udp UNCONN 0 0 [::]:5353 [::]:* use s:(("dnsmasq",pid=3495, d=6))
cp LISTEN 0 32 0.0.0.0:5353 0.0.0.0:* use s:(("dnsmasq",pid=3495, d=5))
cp LISTEN 0 32 [::]:5353 [::]:* use s:(("dnsmasq",pid=3495, d=7))
hos -p 5353 dns-se e . es
dns-se e . es has IP 6 add ess 2001:db8::1
Re e ence:
[wikiDnsmasq] Dnsmasq. Online. Dos upné z: h ps://en.wikipedia.o g/wiki/Dnsmasq. [ci . 2023-12-7].
[dnsmasq] Dnsmasq. Online. Dos upné z: h ps:// hekelleys.o g.uk/dnsmasq/doc.h ml. [ci . 2023-12-7].
4. Kořeno é se e y Roo DNS
Kořeno é, z . oo DNS se e y jsou základní součás í celého DNS sys ému. U nich začíná řešení
šech do azů, k e é následně pok ačuje na jedno li ých au o i a i ních se e ech.
Použí ají se ýbě o é anycas ad esy, kdy je s ejná ad esa přidělena několika DNS se e ům a
smě o ání se pos a á o do učení požada ku na nejbližší Roo se e .
Balíček dns- oo -da a, posky uje in o mace o DNS oo se e ech. Seznam oo se e u je uložen
soubo u /us /sha e/dns/ oo .hin s. Výpis je zk ácen pouze na A.ROOT se e .
ca /us /sha e/dns/ oo .hin s
; las upda e: No embe 27, 2023
. 3600000 NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30
Re e ence:
[ oo Se e ] Roo Se e s. Online. Dos upné z: h ps://www.iana.o g/domains/ oo /se e s. [ci . 2023-
11-14].
[mapSe e ] Roo Se e s Maps. Online. Dos upné z: h ps:// oo -se e s.o g/. [ci . 2023-11-14].
4
5. Au o i a i ní DNS se e BIND
Au o i a i ní se e posky uje překlad doméno ého jména na IP 6 ad esu. Nejdří e nains alujeme
příslušné balíčky bind9 a bind9-u ils. Následně y oříme no ou zónu es . V zóno ém soubo u jsou
po inné RR Resou ce Reco ds: SOA S a o Au ho i y, NS Name Se e . V da abázi přidáme příslušné
AAAA záznamy. Nakonec službu named ese ujeme.
sudo ap ins all bind9 bind9-u ils
sudo nano /e c/bind/named.con .de aul -zones
zone " es " {
ype mas e ;
ile "/e c/bind/db. es ";
};
sudo cp /e c/bind/db.local /e c/bind/db. es
sudo nano /e c/bind/db. es
;
; BIND da a ile o zone es
;
$TTL 604800
@ IN SOA es . oo . es . (
2 ; Se ial
604800 ; Re esh
86400 ; Re y
2419200 ; Expi e
604800 ) ; Nega i e Cache TTL
;
@ IN NS dns-se e . es .
dns-se e IN AAAA 2001:db8::1
pc IN AAAA 2001:db8::2
sudo se ice named es a
sudo se ice named s a us
named.se ice - BIND Domain Name Se e ●
5
Loaded: loaded (/lib/sys emd/sys em/named.se ice; enabled; endo p ese :
enabled)
Ac i e: ac i e ( unning) since Thu 2023-10-26 09:44:03 CEST; 3s ago
Docs: man:named(8)
P ocess: 3782 ExecS a =/us /sbin/named $OPTIONS (code=exi ed,
s a us=0/SUCCESS)
Main PID: 3783 (named)
Tasks: 6 (limi : 17748)
Memo y: 6.6M
CPU: 55ms
CG oup: /sys em.slice/named.se ice
3783 /us /sbin/named -u bind└─
říj 26 09:44:03 pc14 named[3783]: managed-keys-zone: loaded se ial 2
říj 26 09:44:03 pc14 named[3783]: zone 0.in-add .a pa/IN: loaded se ial 1
říj 26 09:44:03 pc14 named[3783]: zone 127.in-add .a pa/IN: loaded se ial 1
říj 26 09:44:03 pc14 named[3783]: zone 255.in-add .a pa/IN: loaded se ial 1
říj 26 09:44:03 pc14 named[3783]: zone localhos /IN: loaded se ial 2
říj 26 09:44:03 pc14 named[3783]: zone es /IN: loaded se ial 2
říj 26 09:44:03 pc14 named[3783]: all zones loaded
říj 26 09:44:03 pc14 named[3783]: unning
říj 26 09:44:03 pc14 named[3783]: zone es /IN: sending no i ies (se ial 2)
říj 26 09:44:03 pc14 sys emd[1]: S a ed BIND Domain Name Se e .
Re e ence:
[wikiBind] BIND. Online. Dos upné z: h ps://en.wikipedia.o g/wiki/BIND. [ci . 2023-11-28].
[Bind9] Bind9. Online. Dos upné z: h ps://www.isc.o g/bind/. [ci . 2023-11-28].
6. DNSSEC se e BIND9
DNSSEC Domain Name Sys em Secu i y Ex ensions je speci ikace umožňující zabezpeči in o mace
posky o ané sys émem DNS. Klien ský esol e může pomocí elek onického podpisu o ěři pů od
da , jejich in eg i u, nebo pla nos záznamu. Ten o sys ém nezajišťuje ši o aný přenos da a neza učuje
jejich dos upnos .
6
DNSSEC použí á další ypy záznamů, DNSKEY DNS Key, NSEC Nex Secu e eco d a RRSIG
Resou ce Reco d Signa u e.
RNDC Remo e Name Daemon Con ol P o ocol slouží p o o ládání DNS p o okolu. Běží na po u
TCP/953.
Při kon igu aci DNSSEC najdří e po olíme přís upo á p á a p o č ení a zápis /e c/bind pomocí
secu i y modulu appa mo . Následně po olíme au oma ické yuží ání DNSSEC zóno ém soubo u,
k e ý y oří podepsaný soubo db. es .
sudo nano /e c/appa mo .d/us .sbin.named
/e c/bind/** w,
sudo se ice appa mo es a
sudo nano /e c/bind/named.con .de aul -zones
zone " es " {
ype mas e ;
ile "/e c/bind/db. es ";
dnssec-policy de aul ;
inline-signing yes;
};
sudo se ice named es a
sudo ndc eload
sudo ndc econ ig
sudo ndc loadkeys es
ls -l /e c/bind
- w- -- -- 1 bind bind 590 Ma 16 16:35 db. es
- w- -- -- 1 bind bind 512 Ma 16 17:05 db. es .jbk
- w- -- -- 1 bind bind 317 Ma 16 17:05 db. es .signed
- w- -- -- 1 bind bind 3382 Ma 16 17:05 db. es .signed.jnl
dig @::1 es +dnssec +mul iline
; <<>> DiG 9.18.18-0ubun u0.22.04.2-Ubun u <<>> @::1 es +dnssec +mul iline
; (1 se e ound)
;; global op ions: +cmd
;; Go answe :
;; ->>HEADER<<- opcode: QUERY, s a us: NOERROR, id: 18807
;; lags: q aa d a; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
7
;; OPT PSEUDOSECTION:
; EDNS: e sion: 0, lags: do; udp: 1232
; COOKIE: 1e c8930918e43450100000065 5d210d566cd4198474c03 (good)
;; QUESTION SECTION:
; es . IN A
;; AUTHORITY SECTION:
es . 7200 IN SOA es . oo . es . (
20240316 ; se ial
43200 ; e esh (12 hou s)
10800 ; e y (3 hou s)
1814400 ; expi e (3 weeks)
7200 ; minimum (2 hou s)
)
es . 7200 IN RRSIG SOA 13 1 86400 (
20240330170521 20240316160521 39617 es .
XYK6MqSCbe4xxnAxqwl VpBo5dAwDRZgPN+pP3PHL8CN
ajspIg8qDCDXWRPRW ZJiZ 1/7QaNU +ejSkKNk8lw== )
es . 7200 IN NSEC ns. es . NS SOA RRSIG NSEC DNSKEY TYPE65534
es . 7200 IN RRSIG NSEC 13 1 7200 (
20240328035219 20240316160521 39617 es .
7Pd4zAy5EIP xF L3O89z2 u+FQnsE2ywLU k/kVOTT7
mFkUP68J3dTTqe5m24V/U4QdMsu XRAFyADLxEeAHA== )
;; Que y ime: 0 msec
;; SERVER: ::1#53(::1) (UDP)
;; WHEN: Sa Ma 16 17:08:32 UTC 2024
;; MSG SIZE c d: 366
Re e ence:
[dnssec] DNSSEC Guide. Online. Dos upné z: h ps://bind9. ead hedocs.io/en/ 9.18.14/dnssec-
guide.h ml. [ci . 2024-03-15].
[ c4033] DNS Secu i y In oduc ion and Requi emen s. Online. Dos upné z:
h ps://da a acke .ie .o g/doc/h ml/ c4033. [ci . 2024-03-15].
7. Dynamic DNS
Dynamic DNS umožňuje eálném čase ak ualizo a záznamy uložené doméně DNS se e u.
P o okol DDNS popisuje RFC2136. Cha ak e is ickým ysem je nas a ení elmi k á ké doby
cacho ání DNS záznamů, řádu minu . Záznamy na DNS se e u lze ch áni pomocí TSIG
au en izace, k e á použí á hash klíč. Typické yuži í je sí i, kdy konco á zařízení získá ají pokaždé
ůzné ad esy.
Nejdří e je po řeba zajis i podpo u dynamického upda u kon igu ačním soubo u p o danou zónu a
es a o a službu DNS se e u. Následně je možné začí apliko a záznamy pomocí nás oje
nsupda e. Nakonec o es ujeme, že daný záznam je unkční.
8