A legelterjedtebb protokollok áttekintése

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
(v0.01)
 
(SMTP hozzáadva)
 
(egy szerkesztő 4 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.
 
 
=== 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 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.

Személyes eszközök