1. Temeljni pojmi omrežnih storitev¶
Bistvo poglavja
V tem poglavju razumeš, da omrežna storitev ni samo nameščen program, ampak kombinacija procesa, konfiguracije, podatkov, dosegljivosti in varnosti.
Pogosta napaka
Najpogostejša začetniška napaka je misel, da je storitev po namestitvi že pripravljena za uporabo. V praksi mora biti tudi dosegljiva, pravilno nastavljena in varna.
1.1 Kaj pravzaprav pomeni, da storitev "teče v omrežju"¶
Ko rečemo, da nek strežnik poganja storitev, v resnici mislimo več stvari hkrati: 1. na sistemu teče proces ali skupina procesov, 2. ti procesi poslušajo na določenem naslovu in vratih, 3. procesi razumejo določen omrežni protokol, 4. procesi znajo sprejeti zahtevo, jo obdelati in vrniti odgovor, 5. storitev je vezana na podatke, konfiguracijo, pravice in varnostna pravila.
Storitev torej ni samo program. Je kombinacija: - programske opreme, - konfiguracije, - podatkov, - omrežne dostopnosti, - varnostnih nastavitev, - administrativnih postopkov.
To je pomembno pri pouku, ker dijaki pogosto mislijo, da je dovolj namestiti paket in servis že obstaja. V praksi servis zares obstaja šele, ko: - je dosegljiv, - vrača pričakovan odgovor, - je dovolj varen, - ima urejeno beleženje in varnostne kopije, - ga je mogoče vzdrževati.
1.2 Odjemalec, strežnik, vrata in vtiči¶
Omrežne storitve večinoma delujejo v modelu odjemalec-strežnik. Odjemalec sproži komunikacijo, strežnik pa odgovarja.
IP naslov določa napravo, vrata pa določajo proces na tej napravi. Zato lahko ista naprava hkrati ponuja več storitev, na primer: - DNS na 53, - SSH na 22, - HTTP na 80, - HTTPS na 443, - LDAP na 389 ali 636.
Ključna učiteljska misel: IP pove, kam gremo. Vrata povedo, komu na tisti napravi govorimo.
1.3 TCP in UDP¶
Večina omrežnih servisov uporablja enega od dveh transportnih pristopov:
- TCP je povezaven, zanesljivejši in primeren tam, kjer mora biti vrstni red podatkov ohranjen.
- UDP je enostavnejši, hitrejši in primeren tam, kjer je pomembna odzivnost ali kjer aplikacija sama ureja izgube.
Za razlago je zelo uporabno: - DNS pogosto uporablja UDP, po potrebi tudi TCP, - HTTP/HTTPS praviloma uporablja TCP, - NTP tipično uporablja UDP, - DHCP uporablja UDP, ker klient na začetku še nima popolne omrežne konfiguracije.
1.4 Storitve brez stanja in storitve s stanjem¶
- Storitev brez stanja ne hrani bistvenega konteksta med posameznimi zahtevki. Primer je osnovni HTTP.
- Storitev s stanjem mora hraniti podatke o seji, povezavi ali prejšnjih operacijah. Primeri so LDAP bind, VPN seja, prijavni sistem, podatkovne transakcije ali datotečni zaklepi.
Ta del je zelo uporaben, ko kasneje razlagaš: - reverse proxy, - load balancing, - spletne seje, - imenik, - podatkovne storitve.
1.5 AAA - Authentication, Authorization, Accounting¶
Skoraj vsako resno omrežno storitev lahko razložiš skozi tri vprašanja: - Authentication - kdo si? - Authorization - kaj smeš? - Accounting / Auditing - kaj si naredil?
Ta okvir je didaktično izjemno koristen, ker ga lahko uporabiš pri SSH, LDAP, spletnih portalih, skupnih mapah, VPN in upravljavskih sistemih.
1.6 Življenjski cikel storitve¶
Za resno razumevanje ni dovolj beseda "namestitev". Življenjski cikel storitve vključuje: 1. načrtovanje, 2. izbiro tehnologije, 3. namestitev, 4. konfiguracijo, 5. testiranje, 6. zaščito, 7. nadzor delovanja, 8. posodabljanje, 9. varnostne kopije, 10. obnovo po napaki ali incidentu, 11. dokumentiranje.
Če dijaki tega ne razumejo, bodo storitev dojemali kot enkratno dejanje. Največ dela v praksi pa pride po namestitvi.