Kratek vodič po TCP/IP

Dynamic urban scene showcasing interconnected light trails representing digital communication networks.

Skozi cel vodič si predstavljajte pošiljanje pisem: vi ste pošiljatelj, prijatelj v tujini je prejemnik, med vama pa je cela poštna mreža – poštar, pošta, carina, tuja pošta. Internet deluje zelo podobno.

1. Kaj sploh je TCP/IP?

TCP/IP je družina protokolov, na kateri deluje internet, pa tudi naše domače omrežje. Pravzaprav je kot “poštni sistem” interneta – pravila, po katerih podatki potujejo od ene naprave do druge. Sestavljata ga predvsem dva dela:

  • IP (Internet Protocol) poskrbi za naslavljanje in dostavo paketov – kot poštna številka in ulica na kuverti.
  • TCP (Transmission Control Protocol) poskrbi za zanesljiv prenos – preveri, da so vsi paketi prispeli, v pravem vrstnem redu, in manjkajoče zahteva ponovno.
  • UDP je hitrejši, a “brezbrižen” bratranec TCP-ja – nič ne preverja (uporablja se npr. za DNS poizvedbe in video klice).

Kako se to uporabi v praksi: ko odprete spletno stran, brskalnik “govori” jezik, ki se imenuje HTTP (ali varnejša različica HTTPS). To je dogovorjen način, kako brskalnik zahteva stran in kako strežnik odgovori (podobno kot obrazec, ki ga izpolnite na pošti – vsi vedo, kam gredo kateri podatki). Ta “obrazec” nato potuje po TCP (zanesljiv prenos), ta pa po IP (naslavljanje), ta pa naprej po fizičnem kablu ali Wi-Fi-ju. Vsak nivo doda svojo “kuverto” okoli prejšnje.

2. IP naslov in zasebna omrežja

Vsaka naprava v omrežju potrebuje IP naslov, npr. 192.168.1.42. Doma naprave skoraj vedno dobijo naslov iz zasebnih obsegov (RFC 1918):

Obseg
Tipična raba
10.0.0.0/8
večja omrežja, podjetja
172.16.0.0/12
redkeje, npr. Docker*
192.168.0.0/16
domači usmerjevalniki

*Docker je orodje, ki na enem računalniku ustvari več “navideznih” mini-računalnikov (npr. za razvijalce programske opreme); ti si med seboj razdelijo naslove iz tega obsega.

Vaš dom ima en sam uradni naslov navzven (javni IP naslov, ki vam ga da ponudnik interneta) — pošta pride do vhodnih vrat. Kaj se zgodi znotraj hiše, kdo od družinskih članov (naprav) dobi katero pošiljko, pa uredi nekdo znotraj hiše. To vlogo opravlja usmerjevalnik s tehniko, imenovano NAT (Network Address Translation): navzven vsi izgledajo kot en sam naslov, znotraj pa vsaka naprava dobi svoj “domači” naslov. Zato ima lahko vsak dom “svoj” 192.168.1.1, ne da bi si stopali na prste, to je namreč samo notranji naslov, ki navzven ni viden.

3. Subnet maska – kje se konča “moje” omrežje

Subnet maska (npr. 255.255.255.0 ali zapisano kot 0/24) pove napravi, kateri del naslova označuje omrežje in kateri napravo.

Primer: naslov 192.168.1.42 z masko 0/24 pomeni:

  • omrežni del: 192.168.1 (prvih 24 bitov)
  • gostiteljski (host) del: .42 (zadnjih 8 bitov → prostor za 254 naprav)

Zakaj je to pomembno? Ko naprava pošilja paket, z masko preveri: “Je cilj v mojem omrežju?”

  • Da → pošlje neposredno (prek stikala/Wi-Fi-ja).
  • Ne → pošlje privzetemu prehodu (default gateway), tj. usmerjevalniku, ki paket posreduje naprej.

Domača raba: 0/24 doma skoraj vedno zadošča. Če pa hočete intranet ločiti na segmente, recimo IoT (“Internet of Things”, torej naprave kot npr. kamere ali robotski sesalniki, ki se povezujejo v internet) naprave posebaj in računalniki posebaj, lahko uporabite dve podomrežji, npr. 192.168.1.0/24 in 192.168.2.0/24 – a pozor: naprava iz enega podomrežja druge ne vidi, dokler ju usmerjevalnik ne poveže. Večina osnovnih domačih usmerjevalnikov ima eno samo LAN podomrežje; segmentacijo pogosto rešiš z “guest Wi-Fi” funkcijo ali z zmogljivejšo opremo (VLAN-i).

4. Usmerjevalnik in prevzeti prehod (Default gateway) – vaš poštar

Kaj pa je sploh usmerjevalnik? Usmerjevalnik ali router je fizična naprava, ki jo imate doma (pogosto vam jo da ponudnik interneta, lahko pa kupite tudi svojega). Je vaša “poštna izpostava” – vsa pošta za vaš dom gre skozenj, in vsa pošta, ki gre iz vašega doma navzven, gre prav tako skozenj.

Znotraj omrežja ima usmerjevalnik svoj naslov, t. i. privzeti prehod (default gateway) – tipično x.x.x.1 ali x.x.x.254. Vsaka naprava v hiši ve: “karkoli ni za nekoga v moji hiši, nesem k usmerjevalniku, on že ve, kam naprej.” Točno tako, kot lokalni poštar ne pozna poti do vsake hiše na svetu, ampak zna vašo pošiljko predati naprej po poštnem sistemu, dokler ne pride do prave države, mesta in ulice.

Če je nastavitev privzetega prehoda napačna ali manjka (kar se zgodi predvsem pri ročnem, “statičnem” nastavljanju omrežja), naprava sicer še vedno vidi ostale naprave doma, ne more pa priti “ven” na internet – poštar namreč ne ve, kam nesti pošiljko naprej.

5. DNS – imenik interneta

Ko pošiljate pismo, ne pišete koordinat GPS, ampak ime in naslov osebe. Enako je na internetu: ne vtipkate številk, ampak ime, npr. www.example.si. To ime se imenuje domena. Težava je, da naprave med seboj dejansko komunicirajo s številkami (IP naslovi), zato potrebujemo nekoga, ki prevaja med imenom in številko. To je DNS (Domain Name System). Kot nekakšen telefonski imenik interneta, ki na vprašanje “kakšna je številka (IP naslov) za www.example.si?” odgovori s pravim IP naslovom.

Najpomembnejši tipi DNS zapisov:

ZapisPomen
Aime → IPv4 naslov
AAAAime → IPv6 naslov
CNAMEvzdevek → drugo ime
MXpoštni strežnik domene
PTRobratno: IP → ime
NSkateri strežnik je pristojen za domeno

6. DNS doma – ali to usmerjevalnik to sploh zna?

Tu je odgovor iskren: odvisno od modela. Številni osnovni domači usmerjevalniki delujejo predvsem kot DNS posrednik (forwarder) – poizvedbe naprav posredujejo ponudnikovemu ali javnemu DNS strežniku (npr. 1.1.1.1, 8.8.8.8). Ali naprava pozna tudi lokalna imena, je odvisno od vgrajene programske opreme; v ogromno usmerjevalnikih to vlogo opravlja odprtokodni dnsmasq, ki združuje DHCP strežnik in lokalni DNS.

Za domači intranet z lastnimi imeni obstajajo tri realne možnosti:

  1. Lokalna DNS imena na usmerjevalniku – sistemi na osnovi dnsmasq omogočajo ročne vnose “ime → IP”, tudi skupaj s statičnim DHCP zakupom za isto napravo. Pri komercialnih modelih lahko preverite v nastavitvah pod DHCP/DNS ali Local DNS.
  2. Hostnames prek DHCP – dnsmasq imena, ki jih naprave sporočijo ob DHCP zakupu, samodejno uvozi v svoj DNS in nanje odgovarja lokalno. Deluje “samo od sebe”, a nezanesljivo (naprava mora ime sploh sporočiti, imena so pogosto čudna).
  3. Lasten mini DNS strežnik – npr. Pi-hole na Raspberry Pi, ki podpira poljubne lokalne A/CNAME zapise. Najbolj zanesljivo za resen domači intranet; usmerjevalnik prek DHCP možnosti napravam le sporoči, naj uporabljajo ta strežnik.

7. Kako se vse sestavi (DHCP kot vezni člen)

Kdo sploh naprej pove novi napravi njen naslov (IP), subnet masko, kam naj pošlje pošto, ki ni za dom (privzeti prehod), in kje je imenik (DNS)? To vlogo opravi DHCP strežnik, običajno je to kar vaš usmerjevalnik, torej ista fizična naprava kot v točki 4, le da tokrat opravlja drugo nalogo. Ko se naprava priklopi, ji DHCP strežnik v enem paketu dodeli vse štiri ključne podatke: IP naslov, subnet masko, privzeti prehod in DNS strežnik. Zato doma “vse dela samo od sebe”, in zato je razumevanje teh štirih nastavitev ključ do razumevanja, kaj se zalomi, ko ne dela.

Avtorica prispevka: Lea Bogosavljević

O nas:

Zavod Rhea se posveča izboljšanju dostopa do storitev in povečanju ozaveščenosti o digitalni pismenosti, zlasti pri ranljivih skupinah. S spodbujanjem digitalne pismenosti ljudem omogočamo boljšo uporabo digitalnih orodij in izboljšamo kakovost življenja. Prav tako se trudimo povečati dostopnost odprtokodne in pregledne programske opreme za trenutne in potencialne uporabnike. Več o nas in naših programih lahko izveste na https://www.rhea.si/.

Viri

  1. Internet Protocol (RFC 791): https://www.rfc-editor.org/rfc/rfc791
  2. Transmission Control Protocol (TCP) (RFC 9293): https://www.rfc-editor.org/rfc/rfc9293
  3. Address Allocation for Private Internets (RFC 1918): https://www.rfc-editor.org/rfc/rfc1918
  4. Classless Inter-domain Routing (CIDR) (RFC 4632): https://www.rfc-editor.org/rfc/rfc4632
  5. Domain Names (RFC 1034): https://www.rfc-editor.org/rfc/rfc1034
  6. Domain Names (RFC 1035): https://www.rfc-editor.org/rfc/rfc1035
  7. Dynamic Host Configuration Protocol (RFC 2131): https://www.rfc-editor.org/rfc/rfc2131
  8. IANA IPv4 Special-Purpose Address Registry: https://www.iana.org/assignments/iana-ipv4-special-registry/
  9. Dnsmasq: https://thekelleys.org.uk/dnsmasq/doc.html
  10. Dnsmasq: https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
  11. Pi-hole documentation: https://docs.pi-hole.net/ftldns/configfile/
Skip to content