A legelterjedtebb protokollok áttekintése
A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
(v0,04) |
(SMTP hozzáadva) |
||
(egy szerkesztő egy közbeeső változata nincs mutatva) | |||
1. sor: | 1. sor: | ||
Nézzük meg röviden, mit muszáj mindenképpen tudnunk az Internet alapvető protokolljairól. |
Nézzük meg röviden, mit muszáj mindenképpen tudnunk az Internet alapvető protokolljairól. |
||
− | == DNS == |
+ | * [[A DNS működése]] |
− | + | * [[A HTTP működése]] |
|
− | A DNS, mint azt tudjuk, az a protokoll, ami az IP-címekhez neveket rendel, és fordítva. |
+ | * [[Az SMTP működése]] |
− | Ennél persze többről van szó. |
||
− | |||
− | Fontos fogalom: ''autoritatív szerver''. Két megközelítés: |
||
− | * Saját magát autoritatívnak gondolja, ha rendelkezik egy olyan adatbázissal, amelyben egy zóna (~domain) tartalma megtalálható. |
||
− | * Mások autoritatívnak gondolják, ha a hierarchiában felette álló szerverek hozzá delegálnak egy domainre vonatkozó kérdéseket. |
||
− | |||
− | === [http://cr.yp.to/djbdns/intro-dns.html A DNS-feloldás menete] === |
||
− | |||
− | Legyen mondjuk az a kérdés, mi a <tt>www.bme.hu</tt> IP-címe. Hogy kezdjünk neki? |
||
− | |||
− | Mit jelent egyáltalán az, hogy a <tt>www.bme.hu</tt> IP-címe ez és ez? |
||
− | |||
− | Azt, hogy van valahol egy autoritatív szerver, amelyben a <tt>www.bme.hu</tt> névnek van egy <tt>A</tt> rekordja; a rekord tartalma az IP-cím. |
||
− | |||
− | A feloldás a következőképpen történik: |
||
− | |||
− | # Küldünk egy query-t (kérdést) az egyik root szervernek (amelynek a címét mindenki "tudja"), amelyben megkérdezzük, hogy <tt>A? www.bme.hu</tt>. |
||
− | #* Erre ő, ha tudná a választ, mondhatná, hogy "hohó, ídös fiam, a www.bme.hu A rekordja nem más, mint 152.66.115.35". |
||
− | #* De nem tudja, mert az ő feladata nem az, hogy minden gép címét tudja, hanem az, hogy tudja, kit kell megkérdezni. |
||
− | #* Ezzel együtt fontos tudnunk, hogy akár meg is mondhatná a választ; ez a DNS egyik gyenge pontja. Bővebben később. |
||
− | # A root szerver azt mondja, hogy ő nem tudja, de kérdezzük meg valamelyik .hu szervert, amelyeknek a nevét meg is mondja. |
||
− | #* Emellett megmondja a nevekhez tartozó IP-ket is, ez a ''glue''. |
||
− | #* Ha nem mondaná meg, esetleg bajban lennénk, mert a .hu szerverek neveit ugyan tudjuk, de a nekik küldendő DNS queryt az IP-címükre kell küldeni, amit valahonnan meg kell tudni... |
||
− | # Megkérdezzük valamelyik .hu szervertől, mondjuk az ns.nic.hu-tól (193.239.148.62), hogy <tt>A? www.bme.hu</tt>. |
||
− | #* Erre ő, ha tudná a választ, mondhatná, hogy "hohó, ídös fiam, a www.bme.hu A rekordja nem más, mint 152.66.115.35". |
||
− | #* De nem tudja, mert az ő feladata nem az, hogy minden .hu alatti gép címét tudja, hanem az, hogy tudja, kit kell megkérdezni. |
||
− | #* Ezzel együtt fontos tudnunk, hogy akár meg is mondhatná a választ; ez a DNS egyik gyenge pontja. Bővebben később. |
||
− | # Az ns.nic.hu azt mondja, hogy ő nem tudja, de kérdezzük meg valamelyik bme.hu szervert, amelyeknek a nevét meg is mondja. |
||
− | #* glue mint fent. |
||
− | # Megkérdezzük valamelyik bme.hu szervertől, mondjuk a nic.bme.hu-tól (152.66.115.1), hogy <tt>A? www.bme.hu</tt>. |
||
− | # A nic.bme.hu benyúl az adatbázisába, és azt mondja, hogy "hohó, ídös fiam, a www.bme.hu A rekordja nem más, mint 152.66.115.35, de ezt legfeljebb 4 óráig jegyezd meg!". |
||
− | #* Merthogy minden DNS-rekordnak van egy TTL értéke, ennyi ideig szabad cache-elni. |
||
− | |||
− | Lássuk ugyanezt a parancssorból. |
||
− | |||
− | Előszőr használjuk a hagyományos mosóport, a host(1) programot: |
||
− | |||
− | <pre> |
||
− | chardonnay:~% host -vvv -t a www.bme.hu 198.41.0.4 |
||
− | Trying "www.bme.hu" |
||
− | Using domain server: |
||
− | Name: 198.41.0.4 |
||
− | Address: 198.41.0.4#53 |
||
− | Aliases: |
||
− | |||
− | ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59973 |
||
− | ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 6 |
||
− | |||
− | ;; QUESTION SECTION: |
||
− | ;www.bme.hu. IN A |
||
− | |||
− | ;; AUTHORITY SECTION: |
||
− | hu. 172800 IN NS NS.NIC.hu. |
||
− | hu. 172800 IN NS NS2.NIC.FR. |
||
− | hu. 172800 IN NS SUNIC.SUNET.SE. |
||
− | hu. 172800 IN NS NS1.NIC.hu. |
||
− | hu. 172800 IN NS NS2.NIC.hu. |
||
− | hu. 172800 IN NS NS3.NIC.hu. |
||
− | |||
− | ;; ADDITIONAL SECTION: |
||
− | NS.NIC.hu. 172800 IN A 193.239.148.62 |
||
− | NS2.NIC.FR. 172800 IN A 192.93.0.4 |
||
− | SUNIC.SUNET.SE. 172800 IN A 192.36.125.2 |
||
− | NS1.NIC.hu. 172800 IN A 193.239.149.3 |
||
− | NS2.NIC.hu. 172800 IN A 193.6.16.1 |
||
− | NS3.NIC.hu. 172800 IN A 195.70.35.250 |
||
− | |||
− | Received 251 bytes from 198.41.0.4#53 in 114 ms |
||
− | </pre> |
||
− | |||
− | Látható, hogy megtudtuk, merre kell tovább érdeklődnünk, de magát a választ nem. |
||
− | Nézzük tovább: |
||
− | |||
− | <pre> |
||
− | chardonnay:~% host -vvv -t a www.bme.hu 193.239.148.62 |
||
− | Trying "www.bme.hu" |
||
− | Using domain server: |
||
− | Name: 193.239.148.62 |
||
− | Address: 193.239.148.62#53 |
||
− | Aliases: |
||
− | |||
− | ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50701 |
||
− | ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 3 |
||
− | |||
− | ;; QUESTION SECTION: |
||
− | ;www.bme.hu. IN A |
||
− | |||
− | ;; AUTHORITY SECTION: |
||
− | bme.hu. 86400 IN NS ns.bme.hu. |
||
− | bme.hu. 86400 IN NS nic.bme.hu. |
||
− | bme.hu. 86400 IN NS ns2.pantel.net. |
||
− | |||
− | ;; ADDITIONAL SECTION: |
||
− | ns.bme.hu. 86400 IN AAAA 2001:738:2001:8001::2 |
||
− | nic.bme.hu. 86400 IN A 152.66.115.1 |
||
− | nic.bme.hu. 86400 IN AAAA 2001:738:2001:2001::2 |
||
− | |||
− | Received 163 bytes from 193.239.148.62#53 in 2 ms |
||
− | </pre> |
||
− | |||
− | Közeledünk, közeledünk. Végül: |
||
− | |||
− | <pre> |
||
− | chardonnay:~# host -vvv -t a www.bme.hu 152.66.115.1 |
||
− | Trying "www.bme.hu" |
||
− | Using domain server: |
||
− | Name: 152.66.115.1 |
||
− | Address: 152.66.115.1#53 |
||
− | Aliases: |
||
− | |||
− | ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13192 |
||
− | ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 5 |
||
− | |||
− | ;; QUESTION SECTION: |
||
− | ;www.bme.hu. IN A |
||
− | |||
− | ;; ANSWER SECTION: |
||
− | www.bme.hu. 14400 IN A 152.66.115.35 |
||
− | |||
− | ;; AUTHORITY SECTION: |
||
− | bme.hu. 14400 IN NS ns2.pantel.net. |
||
− | bme.hu. 14400 IN NS ns.bme.hu. |
||
− | bme.hu. 14400 IN NS nic.bme.hu. |
||
− | |||
− | ;; ADDITIONAL SECTION: |
||
− | ns.bme.hu. 14400 IN A 152.66.116.1 |
||
− | ns.bme.hu. 14400 IN AAAA 2001:738:2001:8001::2 |
||
− | nic.bme.hu. 14400 IN A 152.66.115.1 |
||
− | nic.bme.hu. 14400 IN AAAA 2001:738:2001:2001::2 |
||
− | ns2.pantel.net. 35857 IN A 212.24.160.1 |
||
− | |||
− | Received 211 bytes from 152.66.115.1#53 in 1 ms |
||
− | </pre> |
||
− | |||
− | Most próbáljuk meg ugyanezt egy kevésbé ismert eszközzel, a dnsq nevűvel (a djbdns csomagban van): |
||
− | |||
− | <pre> |
||
− | chardonnay:~% dnsq a www.bme.hu 198.41.0.4 |
||
− | 1 www.bme.hu: |
||
− | 251 bytes, 1+0+6+6 records, response, noerror |
||
− | query: 1 www.bme.hu |
||
− | authority: hu 172800 NS ns.nic.hu |
||
− | authority: hu 172800 NS ns2.nic.fr |
||
− | authority: hu 172800 NS sunic.sunet.se |
||
− | authority: hu 172800 NS ns1.nic.hu |
||
− | authority: hu 172800 NS ns2.nic.hu |
||
− | authority: hu 172800 NS ns3.nic.hu |
||
− | additional: ns.nic.hu 172800 A 193.239.148.62 |
||
− | additional: ns2.nic.fr 172800 A 192.93.0.4 |
||
− | additional: sunic.sunet.se 172800 A 192.36.125.2 |
||
− | additional: ns1.nic.hu 172800 A 193.239.149.3 |
||
− | additional: ns2.nic.hu 172800 A 193.6.16.1 |
||
− | additional: ns3.nic.hu 172800 A 195.70.35.250 |
||
− | |||
− | chardonnay:~% dnsq a www.bme.hu 193.239.148.62 |
||
− | 1 www.bme.hu: |
||
− | 163 bytes, 1+0+3+3 records, response, noerror |
||
− | query: 1 www.bme.hu |
||
− | authority: bme.hu 86400 NS ns.bme.hu |
||
− | authority: bme.hu 86400 NS nic.bme.hu |
||
− | authority: bme.hu 86400 NS ns2.pantel.net |
||
− | additional: ns.bme.hu 86400 28 \040\001\0078\040\001\200\001\000\000\000\000\000\000\000\002 |
||
− | additional: nic.bme.hu 86400 A 152.66.115.1 |
||
− | additional: nic.bme.hu 86400 28 \040\001\0078\040\001\040\001\000\000\000\000\000\000\000\002 |
||
− | |||
− | chardonnay:~% dnsq a www.bme.hu 152.66.115.1 |
||
− | 1 www.bme.hu: |
||
− | 211 bytes, 1+1+3+5 records, response, authoritative, weird ra, noerror |
||
− | query: 1 www.bme.hu |
||
− | answer: www.bme.hu 14400 A 152.66.115.35 |
||
− | authority: bme.hu 14400 NS ns2.pantel.net |
||
− | authority: bme.hu 14400 NS ns.bme.hu |
||
− | authority: bme.hu 14400 NS nic.bme.hu |
||
− | additional: ns.bme.hu 14400 A 152.66.116.1 |
||
− | additional: ns.bme.hu 14400 28 \040\001\0078\040\001\200\001\000\000\000\000\000\000\000\002 |
||
− | additional: nic.bme.hu 14400 A 152.66.115.1 |
||
− | additional: nic.bme.hu 14400 28 \040\001\0078\040\001\040\001\000\000\000\000\000\000\000\002 |
||
− | additional: ns2.pantel.net 35704 A 212.24.160.1 |
||
− | </pre> |
||
− | |||
− | Talán látszik, hogy ennek az outputja scriptből könnyebben feldolgozható. |
||
− | |||
− | === A DNS rekordtípusai === |
||
− | |||
− | * A: név->IP |
||
− | ** <tt>www.bme.hu. IN A 152.66.115.35</tt> |
||
− | * PTR: IP->név |
||
− | ** <tt>35.115.66.152.in-addr.arpa. IN PTR torpapa.eik.bme.hu.</tt> |
||
− | ** Azért így, hogy hierarchikusan lehessen delegálni, |
||
− | * MX: melyik szerver fogadja a domainbe címzett leveleket |
||
− | ** <tt>bme.hu. IN MX 10 nic.bme.hu.</tt> |
||
− | * NS: ki nameservere egy domainnek |
||
− | ** <tt>bme.hu. IN NS ns.bme.hu.</tt> |
||
− | * SOA: a domain "tulajdonságai" |
||
− | ** <tt>bme.hu. IN SOA nic.bme.hu. hostmaster.bme.hu. 2006091400 43200 14400 2592000 86400</tt> |
||
− | ** elsődleges nameserver, hostmaster emailcíme, sorozatszám, refresh time, retry time, expire time, minimum time. |
||
− | *** refresh time: ilyen gyakran frissítik magukat a secondaryk (vagy NOTIFY hatására, vagy ...) |
||
− | *** retry time: ennyi időnként próbálkozik egy secondary, ha elsőre nem sikerült a frissítés |
||
− | *** expire time: ha ennyi ideig nem volt kapcsolat a primaryval, a secondary tekintse elavultnak az adatokat és tagadja meg a választ |
||
− | *** minimum time: korábban az alapértelmezett TTL, ma az NXDOMAIN (nincs ilyen cím) TTL-je |
||
− | * TXT: megjegyzés |
||
− | ** Főleg RBL-ek használják: <tt>3.0.0.127.dnsbl.njabl.org. IN TXT "dial-up or dynamic -- 1035916206"</tt>, <tt>164.22.147.63.sbl.spamhaus.org. IN TXT "http://www.spamhaus.org/SBL/sbl.lasso?query=SBL44889"</tt> |
||
− | * CNAME: átirányítás; minden, erre a névre vonatkozó queryvel kapcsolatban l. a másik megadott nevet. |
||
− | ** <tt>www.math.bme.hu. IN CNAME proof.math.bme.hu.</tt> |
||
− | * HINFO: hardware info |
||
− | ** Ma már nem használják. |
||
− | * stb. |
||
− | |||
− | === A DNS-szolgáltatások típusai === |
||
− | |||
− | A DNS igazából több, jól elkülöníthető szolgáltatás összessége. Ezek: |
||
− | |||
− | * Autoritatív DNS. |
||
− | : Az autoritatív DNS-szervernek van egy adatbázisa, és az abban található adatokra vonatkozó kérdésekre válaszol. Más (pl. rekurzív) kérdésekre nem. |
||
− | * Rekurzív, cache-elő DNS. |
||
− | : Az ilyen szerver a DNS-fa rekurzív bejárását végzi el a kliensek számára, és az eredményeket cache-eli a gyorsabb kiszolgálás érdekében. |
||
− | * Zónatranszfer (AXFR). |
||
− | : Ez a szerver az autoritatív szerver adatbázisának replikálását végzi. |
||
− | * Resolver stub library. |
||
− | : Olyan függvénykönyvtár, amelyben a DNS-sel kapcsolatos funkciók vannak megvalósítva, hogy ne kelljen minden programban egyenként implementálni. Elsősorban rekurziv szerverrel kell tudnia szót érteni. |
||
− | |||
− | Ezekből az első hármat a BIND és a rá hasonlítani akaró szoftverek a közelmúltig összemosták. |
||
− | |||
− | === Gyakori gondok a DNS-sel === |
||
− | |||
− | * Poisoning |
||
− | ** Mára már nem igazán gond |
||
− | * Glue hiánya |
||
− | ** foo.net IN NS ns.bar.com; bar.com IN NS ns.foo.net -> egyik se elérhető -> használjunk olyan nameservert, ami benne van abban a domainben, amire autoritatív, így glue-val átadható a címe is, nemcsak a neve |
||
− | ** Akkor is gond, ha nem ér körbe: sok query kell a feloldáshoz |
||
− | * CNAME-láncok |
||
− | * Lustaságból elhelyezett joker-bejegyzések (pl. *.com) |
||
− | |||
− | === Ajánlott irodalom === |
||
− | |||
− | * [http://cr.yp.to/djbdns/sample-office.html Esettanulmány], tűzfallal, kis belső hálózattal |
||
− | * [http://cr.yp.to/djbdns/notes.html Megjegyzések a DNS működésével kapcsolatban] |
A lap jelenlegi, 2006. szeptember 15., 00:53-kori változata
Nézzük meg röviden, mit muszáj mindenképpen tudnunk az Internet alapvető protokolljairól.