Hálózati architektúrák és protokollok PTI BSc Javasolt irodalom: J.F. Kurose, K.W. Ross - Számítógéphálózatok működése Alkalmazásorientált megközelítés A.S. Tanenbaum Számítógéphálózatok irh.inf.unideb.hu/user/kuki/halo_pti_2016.pdf
Bevezetés
Számítógéphálózat Számítógéprendszerek valamilyen információátvitellel megvalósítható célért történő összekapcsolása Erőforrásmegosztás Emberi kommunikáció Megbízhatóság növelése Sebességnövelés
~1m multicomputer Csoportosítás méret szerint ~1km helyi hálózat, LAN
Csoportosítás méret szerint ~10km városi hálózat, MAN ~100+km nagy kiterjedésű hálózat, WAN
Csoportosítás méret szerint Internet
Internet Felépítése: végrendszerek és a köztük lévő információszállítási infrastruktúra, illetve elosztott alkalmazási platform. Végrendszer hoszt (P2P) Kliens-szerver modell esetén tovább bontható: kliens, szerver
Internet Hozzáférési hálózatok: Az a fizikai, vagy adatkapcsolat, mely a végrendszert a hálózat szélén lévő útvonalválasztóhoz csatolja Otthoni hozzáférés Betárcsázó (dial-up) modem 56kb/s, lefoglalja a telefonvonalat, lassú, már meglévő telefonvonalon működik, DSL (Digital Subscriber Line): Telefontársaságok szolgáltatják a már meglévő vezetéken. FDM (frekvenciaosztásos multiplexelés), HFC (hybrid fiber-coaxial cable): jellemzően a kábeltv hálózat kiterjesztése. Osztott adatszóró közeg, TDM (időosztásos multiplexelés), Vállalati hozzáférés Jellemzően helyi alhálózatokat alakítanak ki csillag topológiával, melyet egészében kapcsolnak az útvonalválasztóhoz. Debrecen FDDI - Fiber Distributed Data Interface Vezeték nélküli hozzáférés Jellemzően két fajtája van: WiFi, mobilinternet 3G (3. generációs mobilinternet), 4G WiMax (telefonhálózattól független nagysebességű hozzáférés)
Vezeték nélküli hálózatok A Wi-Fi és a mobilinternet kombinációi Wi-Fi Mobilnet Alkalmazás Nem Nem Irodai asztali számítógép Nem Igen Laptop számítógép infrastruktúrától távol Igen Nem Hálózat leárnyékolt betonépületben Igen Igen Okostelefon infrastruktúrához közel
Csomagkapcsolás Csomagkapcsolás: vonalkapcsolás Vonalkapcsolás: Az internet szinte teljesen csomagkapcsolt
Protokoll rétegbesorolási modellek Protokoll Protokollréteg Rétegbesorolási modell ISO/OSI modell Alkalmazási Megjelenítési Viszony Hibrid modell TCP/IP modell Alkalmazási Szállítási Hálózati Adatkapcsolati Fizikai Szállítási Hálózati Hoszt a hálóhoz
Filozófus-fordító-titkárnő architektúra
Fizikai réteg A fizikai réteg (physical layer) feladata az, hogy továbbítsa a biteket a kommunikációs csatornán. (Azaz a rétegnek biztosítania kell azt, hogy az egyik oldalon elküldött l-es bit a másik oldalon is 1-ként érkezzen meg, a 0 értékű bit pedig 0- ként.) Ez a réteg tipikusan olyan kérdésekkel foglalkozik, hogy milyen átviteli közeget és milyen csatlakozókat használjunk, milyen kódolásokat (modulációt) alkalmazzunk (például: milyen feszültségszintet használjunk a logikai 1, és mekkorát a logikai 0 reprezentálásához), mennyi ideig tartson egy bit továbbítása, az átvitel megvalósítható-e egyszerre mindkét irányban, miként jön létre és hogyan bomlik le az összeköttetés, ha már nincs szükség rá, stb. Az átvitel adategysége (PDU) a bit vagy szimbólum.
Adatkapcsolati réteg Az adatkapcsolati réteg (data link layer) legfontosabb feladata az, hogy a fizikai szint szolgáltatásainak igénybevételével a hálózati réteg számára hibáktól mentes átvitelt biztosítson szomszédos állomások között. Ehhez az átviendő információt keretekbe (frame) szervezi (ezek tipikusan néhány száz vagy néhány ezer bájtból állnak), amelyek az adatokon kívül természetesen szolgálati közleményeket" (azaz a társentitásnak szóló vezérlő információt) is tartalmaznak (például melyik állomás küldi melyik állomásnak, a címzettnek mit kell a kerettel tennie) ezeket a megfelelő sorrendben elküldi a célállomásnak, majd végül feldolgozza a vevő által visszaküldött nyugtázó kereteket (aminek során esetleg néhány keretet újra kell adnia). A kommunikáció adategysége tehát a keret.
Hálózati réteg A hálózati réteg (network layer) fő feladata az, hogy az adatkapcsolati réteg szomszédos állomások közötti átviteli képességére építve megoldja a csomagok eljuttatását a forrásgéptől a célgépig. A legfontosabb kérdés itt az, hogy milyen útvonalon kell a csomagokat a forrásállomástól a célállomásig eljuttatni. A torlódásvédelem (congestion control) megvalósítása is e réteg feladata. Ebben a rétegben az adategységet csomagnak vagy datagrammnak nevezzük.
Szállítási réteg A szállítási réteg (transport layer) legfontosabb feladata az, hogy kijavítsa a hálózati rétegben elő forduló esetleges hibákat (például csomagvesztés, sorrendcsere), és így végponttól végpontig terjedő megbízható átvitelt biztosítson. Ebben a rétegben az adategységet szegmensnek nevezzük.
Alkalmazási réteg Az alkalmazási réteg (application layer) számos hálózati szolgáltatás protokollját tartalmazhatja, például: elektronikus levelezés, távoli bejelentkezés, különféle fájlátviteli és elérési protokollok. (Ezeket látja" egy átlag felhasználó a hálózatból.) Ebben a rétegben az adategységet üzenetnek nevezzük
Protokoll rétegbesorolási modellek Protokoll Protokollréteg Rétegbesorolási modell Hibrid modell Alkalmazási Szállítási Hálózati Adatkapcsolati Fizikai Alkalmazási: szolgáltatások Megjelenítési: tömörítés, titkosítás, kódolás Viszony: szinkronizálás, felhasználói kapcsolatépítés Szolgáltatások Végpontok közötti hibamentes átvitel Útvonalválasztás Hibamentes adattovábbítás biztosítása Bitek csatornárabocsátása
Enkapszuláció Hibrid modell Alkalmazási Szállítási Hálózati Adatkapcsolati Fizikai üzenet szegmens datagram keret bitsorozat
Hálózati kapcsolóeszközök Kapcsolóelem Jelismétlő - Fizikai réteg, jelek erősítése HUB Többportos jelismétlő (http://www.inf.unideb.hu/kmitt/konvkmitt/szamitogephalozatok_oktatasi_segedlet/anim/hub.swf) Híd Adatkapcsolati réteg, szelektív Kapcsoló Többportos híd Útválasztó - Hálózati réteg (IP-cím) Átjáró Szállítási réteg és felette
Hálózati kapcsolóeszközök GW eth0 Hub s eth0 R eth1 eth2 Hub s H eth0 H eth0 r H eth0 H eth0 H eth0 eth0 H H eth0 eth0 H
A fizikai réteg
Csavart érpár UTP= Árnyékolatlan csavart érpár (Unshielded Twisted Pair) FTP= Árnyékolt csavart érpár (Folied Twisted Pair) STP= Árnyékolt csavart érpár (Shielded Twisted Pair) (Kép eredetije: http://www.argep.hu/trend/cat5/cat-5-falikabel.html)
Bekötés T568A (Kép eredetije: http://www.bsselektronika.hu/index.php?w=oaddxv7hzh)
Bekötés T568B (Kép eredetije: http://www.bsselektronika.hu/index.php?w=oaddxv7hzh)
Egyenes kábel : A-A (v. B-B) (Kép eredetije: http://www.bsselektronika.hu/index.php?w=oaddxv7hzh)
Egyenes kábel : A-A (v. B-B) Pl. PC - Kapcsoló (Kép eredetije: http://www.bsselektronika.hu/index.php?w=oaddxv7hzh)
Kereszt bekötés : A-B (Kép eredetije: http://www.bsselektronika.hu/index.php?w=oaddxv7hzh)
Kereszt bekötés : A-B Pl. PC - PC (Kép eredetije: http://www.bsselektronika.hu/index.php?w=oaddxv7hzh)
Bekötések kapcsolási vázlata (Kép eredetije: http://www.bsselektronika.hu/index.php?w=oaddxv7hzh)
Optikai kábelek (Kép eredetije: http://www.bsselektronika.hu/index.php?w=oaddxv7hzh)
Az adatkapcsolati réteg
Adatkapcsolati réteg A MAC alréteg feladata meghatározni, hogy az adott pillanatban az állomások közül melyik adhat a csatornán. Az LLC alréteg feladata a forgalomszabályozás (flow control), a hibajavító kódolás, a nyugtázás és (szükség esetén) az ismétléskérés.
Adatkapcsolati réteg Közegelérés: Réselt ALOHA Az átviteli közeg elérési idejét résekre osztjuk. Ha küldendő keret van, a következő időrésben kiküldjük Ha ütközés volt, akkor a következő résben p valószínűséggel újraküldjük, amíg végül sikeres nem lesz a küldés Egyszerű ALOHA Nincsenek rések, ha küldendő keret van rögtön továbbítjuk Ha ütközés volt, a keret küldése után p valószínűséggel újraküldünk 1-p valószínűséggel várunk még egy keretidőt
CSMA(/CD) Közegelérés : CSMA Carrier Sense Multiple Access Adás előtt belehallgatunk a csatornába, hogy szabad-e Ha igen, megkezdjük az adást Ha nem, véletlen ideig várunk CSMA/CD Carrier Sense Multiple Access / Collision Detection Ha valaki velem azonos időben kezd adni, elhallgatok és véletlen ideig várok
MAC-cím Egyedi eszközazonosító, kiosztását az IEEE felügyeli Formája: xx:xx:xx:xx:xx:xx ahol x hexadecimális számjegy Azonos gyártótól származó eszközök fizikai címének első három bájtja azonos ARP (Address Resolution Protocol) IP-cím alapján MAC-cím megadása alhálón belül (enkapszulációhoz szükséges) Hogyan kerül be egy új adat (címpár) a táblázatba? 1. ARP kérdés: Ki tudja az X hálózati cím fizikai címét? 2. A kérdés keretét üzenetszórásos küldéssel az alhálózat valamennyi csomópontja megkapja és feldolgozza. 3. Ha valamely csomópont magára ismer az X hálózati címben, akkor a saját fizikai címével megválaszolja az ARP kérdést. Más alhálóba történő kommunikáció esetén mindig a következő csomópont címét keressük ki
MAC-cím Egyedi eszközazonosító, kiosztását az IEEE felügyeli Formája: xx:xx:xx:xx:xx:xx ahol x hexadecimális számjegy Azonos gyártótól származó eszközök fizikai címének első három bájtja azonos Standards.ieee.org/develop/regauth/oui/public.html Az alábbi karaktersorozatok közül melyek lehetnek fizikai címek? A lehetséges fizikai címek közül melyek tartoznak azonos gyártóhoz? F1:19:63:DC:95:24 D9:14:FF:34:A5:BB F1:19:53:BA:5C:11 F1:19:63:34:A5:BB F1:19:63:H5:54:C4 D9:14:FF:DC:95:24 A1:19:55:CD:0F
Adatkapcsolati réteg Feladat: Hogyan kérdeznéd le Windows rendszeren géped ARP tábláját? > arp a Az ARP-tábla kiíratása Feladat: Hogyan kérdeznéd le linux rendszeren géped ARP tábláját? $arp Hogyan kérdeznéd le a tiéddel egy alhálózatban lévő gép MAC címét? $ping ip_cím (Így a gép fizikai címe bekerül az ARP táblába) $arp
Ethernet kapcsolás A kapcsolók minden portjukhoz a kapcsolási táblában tárolják le az adott porton elérhető gépek Ethernet (MAC) címét. A kapcsolók dinamikusan kezelik kapcsolási táblájukat (az érkező keretek forráscíme alapján). Animáció: http://www.inf.unideb.hu/kmitt/konvkmitt/szamitogephalozatok_oktatasi_segedlet/anim/switch.swf
Ethernet kapcsolat ellenőrzése $su vagy $sudo i $setxkbmap hu Interfész lekérdezése: $ifconfig eth0 Interfész kikapcsolása: $ifconfig eth0 down Interfész bekapcsolása: $ifconfig eth0 up Információk minden elemről: $ifconfig -a Egyéb eszközök: $mii-tool $ethtool
A hálózati réteg
Hálózati réteg IP-cím IP-cím: hierarchikus logikai azonosító. A hálózaton minden csomópontnak rendelkeznie kell legalább egy IP-címmel. Felépítése: 4 bájtos azonosító pontozott decimális formában (8 bitenként) 1 bájt átváltása decimális számmá: 1 0 0 1 1 0 1 1 128 64 32 16 8 4 2 1 128+16+8+2+1 = 155 Feladat: Alakítsd át a 11000000 10101000 00000000 11111010 IP címet pontozott decimális formájúra Megoldás: 192.168.0.250
IP cím Pontozott decimális formájú IP cím visszaalakítása bináris formára Példa: 193.6.181.75 Bájtonként kell átalakítani 193?>= 128 193-128= 65?>= 64 1 1 0 0 1 0 0 1 65-64= 1?>= 32 1?>= 16 1?>= 8 1?>= 4 1?>= 2 1?>= 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 1 Megoldás: 11000001 00000110 10110101 01001011
IP-címosztályok
A címosztály meghatározása IP-címosztályok
IP-címosztályok A címosztály meghatározása decimális jelölés esetén
IP-címosztályok Melyik osztályba tartoznak az alábbi IP-címek? 10110011 01111101 00000111 10101010 63.240.17.128 11001111 11111111 00110000 10000000 220.13.135.6 12.12.12.12
IP-címosztályok Nem egyedi címeket, hanem címtartományokat (hálózat azonosítókat) osztanak ki az intézményeknek. Az IP cím eleje a hálózat azonosítója, a vége a csomópont azonosítója (a hálózaton belül). Az IP forgalomirányítás a hálózati azonosítókra épül. Hány bit hosszú legyen a hálózat azonosítója? Ha túl kicsi, akkor a nagy tartományok kihasználatlanok. Ha túl nagy, akkor csak kis alhálózatok kezelhetők.
IP-címosztályok Bit# 1 7 24 A osztály 0 Hálózat # Hoszt # Bit# 1 1 14 16 B osztály 1 0 Hálózat # Hoszt # Bit# 1 1 1 21 8 C osztály 1 1 0 Hálózat # Hoszt #
Netmaszk A hálózati maszk (netmask): Egy olyan 32 bites maszk, mely 1-es bit értékeket tartalmaz a hálózat és alhálózat azonosításában résztvevő bithelyeken és 0- ás bit értékeket tartalmaz a csomópont azonosítására szolgáló bithelyeken. Prefix hossz: A hálózati maszk segítségével az eredetileg az osztályba sorolás által (statikusan) meghatározott hálózat-gép határ módosítható. A hálózati maszkban szereplő 1-es értékek darabszáma (a hálózat azonosító bithelyek darabszáma).
IP-címosztályok Osztály A B C Prefix 8 16 24 Netmaszk 255.0.0.0 255.255.0.0 255.255.255.0 D multicast címek E speciális célra fenntartva Első bitek 0.. 10... 110... Tartomány 0-127 128-191 192-223 Speciális IP címek: 0 0: aktuális gép (nem lehet célcím) 0 0 hoszt: aktuális hálózaton a hoszt (nem lehet célcím) hálózat 0 0: hálózatazonosító hálózat 1 1: üzenetszórás a hálózaton 1 1: üzenetszórás saját hálózaton 127.bármi: loopback
Netmaszk Olyan 32 tagú bitsorozat, melyben 1 értékkel helyettesítettük a kapcsolódó IPcím hálózati azonosító bitjeit és 0-val a csomópont azonosító biteket. Prefix hossz: a netmaszk elején elhelyezkedő 1-ek száma Példa: 17 prefix hosszú netmaszk: 11111111 11111111 10000000 0000000 Szokás az IP-cím után / jellel elválasztva megadni (193.6.181.75/17) vagy pontozott decimális alakban: 255. 255. 128. 0 Hálózat azonosító = IP & netmaszk 193.6.181.75 11000001 00000110 10110101 01001011 255.255.128.0 11111111 11111111 10000000 00000000 & 11000001 00000110 10000000 00000000 HA 193. 6. 128. 0 Feladat: Mi a hálózat azonosítója a 193.6.231.132 IP című hosztnak 16 és 26 prefix hosszúságú netmaszk esetén? Megoldás: (193.6.0.0; 193.6.231.128)
Netmaszk Csomópont azonosító = IP &!netmaszk 193.6.181.75 11000001 00000110 10110101 01001011 255.255.128.0 00000000 00000000 01111111 11111111 & 00000000 00000000 00110101 01001011 CSA 0. 0. 53. 75 Feladat: Mi a csomópontazonosítója a 193.6.231.132 IP című hosztnak 16 és 26 prefix hosszúságú netmaszk esetén? Megoldás: (0.0.231.132; 0.0.0.4) Példa feladat: Adott a 172.19.135.44/22 IP cím - add meg a hozzá tartozó netmaszkot pontozott decimális alakban - határozd meg a fentiekből a hálózati azonosítót pontozott decimális alakban - határozd meg a csomópontazonosítót pontozott decimális alakban
Kiosztható címek Egy adott hálózatban a címtartomány a hálózati azonosítótól (HA 0...0) az adott hálón értelmezett üzenetszórási címig terjed (HA 1...1) Ugyanezen hálózaton a kiosztható címek halmaza a címtartomány, kivéve a hálóazonosítót és az üzenetszórási címet Feladat: Határozzuk meg a 193.6.128.0/18 hálózatban a címtartományt, a legkisebb és a legnagyobb kiosztható címet
Kiosztható címek Netmaszk: 255.255.192.0 11111111 11111111 11000000 00000000 Hálózati azonosító: 193.6.128.0 11000001 00000110 10000000 00000000 Legkisebb cím: 11000001 00000110 10000000 00000001 193. 6. 128. 1 Legnagyobb cím: 11000001 00000110 10111111 11111110 193. 6. 191. 254 Megoldás: Címtartomány 193.6.128.0 193.6.191.255 Legkisebb cím 193.6.128.1 Legnagyobb cím 193.6.191.254
Alhálózatok 3 extra bit az alhálózatok definiálásához 2 n = 2 3 = 8 alhálózat;
Alhálózatok Példa: IP cím: 221.125.102.0 Alapértelmezett hálózati maszk: 255.255.255.0 Használjunk 3 bitet alhálózat azonosításra. Hálózati maszk: 255.255.255.224 Összesen 8 alhálózat elkülönítésére van lehetőség.
Alhálózatok Az alhálózatok címei: Alhálózat Kiosztható címek Üzenetszórási cím 1 221.125.102.0/27 221.125.102.1-30/27 221.125.102.31/27 2 221.125.102.32/27 221.125.102.33-62/27 221.125.102.63/27 3 221.125.102.64/27 221.125.102.65-94/27 221.125.102.95/27 4 221.125.102.96/27 221.125.102.97-126/27 221.125.102.127/27 5 221.125.102.128/27 221.125.102.129-158/27 221.125.102.159/27 6 221.125.102.160/27 221.125.102.161-190/27 221.125.102.191/27 7 221.125.102.192/27 221.125.102.193-222/27 221.125.102.223/27 8 221.125.102.224/27 221.125.102.225-254/27 221.125.102.255/27
CIDR Classless Inter-Domain Routing xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx hálózat alhálózat csomópont
CIDR Minta kérdések: - Hány bit szükséges 7 alhálózat azonosítására? - Hány bit szüséges 1500 csomópont megcímzéséhez? - Hány csomópontnak adhatunk címet 11 biten? A 192.168.0.0 / 24 hálózatot osszuk fel 6 alhálózatra! 11000000 10101000 00000000 00000000 11000000 10101000 00000000 00000000 192.168.0.0 11000000 10101000 00000000 00100000 192.168.0.32 11000000 10101000 00000000 01000000 192.168.0.64 11000000 10101000 00000000 01100000 192.168.0.96 11000000 10101000 00000000 10000000 192.168.0.128 11000000 10101000 00000000 10100000 192.168.0.160 11000000 10101000 00000000 11000000 192.168.0.192 11000000 10101000 00000000 11100000 192.168.0.224
CIDR Feladat: Határozzuk meg a kapott hálózatok címtartományát. 11000000 10101000 00000000 00000000 192.168.0.0/27 11000000 10101000 00000000 00100000 192.168.0.32/27 11000000 10101000 00000000 01000000 192.168.0.64/27 11000000 10101000 00000000 01100000 192.168.0.96/27 11000000 10101000 00000000 10000000 192.168.0.128/27 11000000 10101000 00000000 10100000 192.168.0.160/27 LK LN 00000000 00011111 0-31 1 30 00100000 00111111 32-63 33 62 01000000 01011111 64-95 65 94 01100000 01111111 96-127 97 126 10000000 10011111 128-159 129 158 10100000 10111111 160-191 161 190
CIDR A kiszolgálóhoz (150.60.0.0/16) 4000, 900, 8000 és 2000 csomópont címzésére alkalmas címtartomány-igény érkezik kis időkülönbséggel. Melyek lesznek az egyes tartományok? xxxxxxxx xxxxxxxx 0xxxxxxx xxxxxxxx 1xxxxxxx xxxxxxxx 00xxxxxx xxxxxxxx 01xxxxxx xxxxxxxx
CIDR A kiszolgálóhoz (150.60.0.0/16) 4000, 900, 8000 és 2000 csomópont címzésére alkalmas címtartomány-igény érkezik kis időkülönbséggel. Melyek lesznek az egyes tartományok 8000 < 2 13 4000 < 2 12 2000 < 2 11 900 < 2 10 2000, 4000, 900, 8000 8000, 4000, 2000, 900 16-13 = 3 bit hálóazonosító 000 16-12 = 4 bit hálóazonosító 0010 16-11 = 5 bit hálóazonosító 00110 16-10 = 6 bit hálóazonosító 001110 000xxxxx xxxxxxxx 001xxxxx xxxxxxxx 0010xxxx xxxxxxxx 0011xxxx xxxxxxxx 00110xxx xxxxxxxx 001110xx xxxxxxxx 00111xxx xxxxxxxx 001111xx xxxxxxxx
CIDR A kiszolgálóhoz (150.60.0.0/16) 4000, 900, 8000 és 2000 csomópont címzésére alkalmas címtartomány-igény érkezik kis időkülönbséggel. Melyek lesznek az egyes tartományok 1. 8000 000 150.60.00000000 2.0 150.60.0.0/19 2. 4000 0010 150.60.00100000 2.0 150.60.32.0/20 3. 2000 00110 150.60.00110000 2.0 150.60.48.0/21 4. 900 001110 150.60.00111000 2.0 150.60.56.0/22 Címtartományok, maszkok 1. 150.60.0.0 150.60.31.255 Maszk: 255.255.224.0 2. 150.60.32.0 150.60.47.255 Maszk: 255.255.240.0 3. 150.60.48.0 150.60.55.255 Maszk: 255.255.248.0 4. 150.60.56.0 150.60.59.255 Maszk: 255.255.252.0
CIDR Oszd fel a 150.60.56.0/22 hálót 8 további alhálózatra. 150.60.00111000 2.00000000 2 150.60.56.0/25 150.60.00111000 2.10000000 2 150.60.56.128/25 150.60.00111001 2.00000000 2 150.60.57.0/25 150.60.00111001 2.10000000 2 150.60.57.128/25 150.60.00111010 2.00000000 2 150.60.58.0/25 150.60.00111010 2.10000000 2 150.60.58.128/25 150.60.00111011 2.00000000 2 150.60.59.0/25 150.60.00111011 2.10000000 2 150.60.59.128/25
CIDR A kiszolgálóhoz (150.60.0.0/16) 4000, 900, 2000 és 8000 csomópont címzésére alkalmas címtartomány-igény érkezik nagy időkülönbséggel. Melyek lesznek az egyes tartományok? 4000 < 2 12 900 < 2 10 2000 < 2 11 8000 < 2 13 16-12 = 4 bit hálóazonosító 0000 16-10 = 6 bit hálóazonosító 000100 16-11 = 5 bit hálóazonosító 00011 16-13 = 3 bit hálóazonosító 001 000xxxxx xxxxxxxx 001xxxxx xxxxxxxx 0000xxxx xxxxxxxx 0001xxxx xxxxxxxx 00010xxx xxxxxxxx 00011xxx xxxxxxxx 000100xx xxxxxxxx 000101xx xxxxxxxx
CIDR A kiszolgálóhoz (150.60.0.0/16) 4000, 900, 2000 és 8000 csomópont címzésére alkalmas címtartomány-igény érkezik nagy időkülönbséggel. Melyek lesznek az egyes tartományok? 1. 4000 0000 150.60.00000000 2.0 150.60.0.0/20 2. 900 000100 150.60.00010000 2.0 150.60.16.0/22 3. 2000 00011 150.60.00011000 2.0 150.60.24.0/21 4. 8000 001 150.60.00100000 2.0 150.60.32.0/19 1. 150.60.00000000 2.0 150.60.0.0 150.60.15.255 2. 150.60.00010000 2.0 150.60.16.0 150.60.19.255 150.60.00010100 2.0 150.60.20.0 150.60.23.255 nincs kiosztva 3. 150.60.00011000 2.0 150.60.24.0 150.60.31.255 4. 150.60.00100000 2.0 150.60.32.0 150.60.63.255
CIDR A kiszolgálóhoz (190.24.0.0/16) 2000 (Cambridge University), 4000 (Oxford University) és 1000 (Edinborough University) csomópont címzésére alkalmas címtartomány-igény érkezik nagy időkülönbséggel. Melyek lesznek az egyes tartományok? 1. 2000 00000 190.24.00000000 2.0 190.24.0.0/21 2. 4000 0001 190.24.00010000 2.0 190.24.16.0/20 3. 1000 000010 190.24.00001000 2.0 190.24.8.0/22 1. 190.24.00000000 2.0 190.24.0.0 190.24.7.255 2. 190.24.00010000 2.0 190.24.16.0 190.24.31.255 3. 190.24.00001000 2.0 190.24.8.0 190.24.11.255 190.24.00001100 2.0 190.24.12.0 190.24.15.255 nincs kiosztva
CIDR útválasztás Edinborourgh Hálózat azon. 10111110 00011000 00001000 00000000 Maszk 11111111 11111111 11111100 00000000 Cambridge Hálózat azon. 10111110 00011000 00000000 00000000 Maszk 11111111 11111111 11111000 00000000 Oxford Hálózat azon. 10111110 00011000 00010000 00000000 Maszk 11111111 11111111 11110000 00000000
CIDR útválasztás Egy csomag érkezik a 190.24.17.4 címre. Melyik hálózatba kell továbbítani? IP-cím binárisan: 10111110 00011000 00010001 00000100 IP-cím ÉS Netmaszk, amíg találat nincs a hálózatazonosítóra: Edinborough 10111110 00011000 00010001 00000100 11111111 11111111 11111100 00000000 10111110 00011000 00010000 00000000 Nincs találat Cambridge 10111110 00011000 00010001 00000100 11111111 11111111 11111000 00000000 10111110 00011000 00010000 00000000 Nincs találat Oxford 10111110 00011000 00010001 00000100 11111111 11111111 11110000 00000000 10111110 00011000 00010000 00000000 Találat
CIDR A kiszolgálóhoz (190.24.0.0/16) 4000 (Oxford University), 1000 (Edinborough University) és 2000 (Cambridge University) csomópont címzésére alkalmas címtartomány-igény érkezik nagy időkülönbséggel. Melyek lesznek az egyes tartományok? 1. 4000 0000 190.24.00000000 2.0 190.24.0.0/20 2. 1000 000100 190.24.00010000 2.0 190.24.16.0/22 3. 2000 00011 190.24.00011000 2.0 190.24.24.0/21 IK-132 1. 190.24.00000000 2.0 190.24.0.0 190.24.15.255 2. 190.24.00010000 2.0 190.24.16.0 190.24.19.255 190.24.00010100 2.0 190.24.20.0 190.24.23.255 nincs kiosztva 3. 190.24.00011000 2.0 190.24.24.0 190.24.31.255 Házi feladat Mi történik, ha a fenti címtartomány-igények kis időkülönbséggel érkeznek? Maszkolással döntse el, merre kell továbbítani a 190.24.22.6 IP-címre érkező csomagot.
Route tábla Lekérdezése : $ route n (> route print) $ netstat rn (> netstat nr) Eredmény : célhálózat átjáró netmaszk interfész
Route tábla Útválasztás: - netmaszk prefix hossz alapján csökkenő sorrendben haladok a bejegyzéseken - az IP-t maszkolom a megfelelő netmaszkkal - ha a megfelelő célhálót kapom vissza, elküldöm a csomagot a megfelelő átjáróra, egyébként lépek a következő sorra - az alapértelmezett átjáró sora bármely címre megfelel
Route tábla Feladat: A routing tábla alapján merre kell haladniuk a 184.93.146.5, a 184.93.145.70, és a 193.6.138.45 IP-címnek szóló csomagoknak?
Hálózati konfiguráció - DHCP Dinamikus állomáskonfiguráló protokoll (Dynamic Host Configuration Protocol, rövidítve DHCP) Ez a protokoll azt oldja meg, hogy a hálózatra csatlakozó hálózati végpontok automatikusan megkapják a hálózat használatához szükséges beállításokat. Ilyen szokott lenni például az IP-cím, hálózati maszk, alapértelmezett átjáró stb. A DHCP szerver-kliens alapú protokoll, nagy vonalakban a kliensek által küldött DHCP kérésekből, és a szerver által adott DHCP válaszokból áll. A DHCP-vel dinamikusan oszthatóak ki az IP-címek, tehát a hálózatról lecsatlakozó számítógépek IP-címeit megkapják a hálózatra felcsatlakozó számítógépek, ezért hatékonyabban használhatóak ki a szűkebb címtartományok.
Hálózati konfiguráció $ ifconfig Kapcsoló nélkül kiíratja a csomópont aktuális hálózati interfész beállításait. Kapcsolókkal alkalmas azok beállítására. $ ifconfig interfésznév ip_cím broadcast broadcast_cím netmask netmaszk Feladat: Milyen módon lehetne bállítani az aktuális csomóponton, hogy az az eth0 interfészén keresztül csatlakozzon a 191.168.0.0/16 hálózatba, míg eth1 interfészén keresztül a 193.6.181.0/26 hálózatba. Mindkét esetben a legkisebb kiosztható címet adjuk meg. $ ifconfig eth0 191.168.0.1 broadcast 191.168.255.255 netmask 255.255.0.0 $ ifconfig eth1 193.6.181.1 broadcast 193.6.181.63 netmask 255.255.255.192 Vagy a kompakt formával: $ ifconfig eth0 191.168.0.1/16 $ ifconfig eth1 193.6.181.1/26
Hálózati konfiguráció $ route Kapcsoló nélkül kiíratja a route táblát. Kapcsolókkal alkalmas sorokat adhatunk a táblához. $ route add -net hálózat_cím netmask netmaszk {dev interfész gw ip_cím} $ route add default gw ip_cím Feladat: Milyen módon lehetne bállítani az aktuális csomóponton, hogy az az eth0 interfészén keresztül csatlakozzon a 191.168.0.0/16 hálózatba, míg eth1 interfészén keresztül a 193.6.181.0/26 hálózatba. Mindkét esetben a legkisebb kiosztható címet adjuk meg. Állítsuk be a fenti csomópont route tábláját úgy hogy az a csomagokat a megfelelő hálóba továbbítsa. Az alapértelmezett átjáró címe legyen 193.6.181.2 $ route add -net 191.168.0.0 netmask 255.255.0.0 dev eth0 ($route add net 191.168.0.0/16 eth0) $ route add -net 193.6.181.0 netmask 255.255.255.192 dev eth1 $ route add default gw 193.6.181.2
Hálózati konfiguráció 192.168.0.0/26 H1 eth0 eth0 R eth2 GW 193.6.181.1 255.255.255.0 192.168.0.128/26 H2 eth0 eth1 Feladat: konfiguráld a fenti ábrán szereplő R routert. A router az eth0 interfészén keresztül kapcsolódik a H1 hosztot tartalmazó és az eth1 interfészén keresztül a H2 hosztot tartalmazó hálózathoz. Az internetet a GW átjáról keresztül éri el. $ ifconfig eth0 192.168.0.1 broadcast 192.168.0.63 netmask 255.255.255.192 $ ifconfig eth1 192.168.0.129 broadcast 192.168.0.191 netmask 255.255.255.192 $ ifconfig eth2 193.6.181.2 broadcast 193.6.181.255 netmask 255.255.255.0 $ route add -net 192.168.0.0 netmask 255.255.255.192 dev eth0 $ route add -net 192.168.0.128 netmask 255.255.255.192 dev eth1 $ route add -net 193.6.181.0 netmask 255.255.255.0 dev eth2 $ route add default gw 193.6.181.1
Route tábla Az előbbi példa R routerének táblála: Célhálózat Átjáró Netmaszk Interfész 192.168.0.0 0.0.0.0 255.255.255.192 eth0 192.168.0.128 0.0.0.0 255.255.255.192 eth1 193.6.181.0 0.0.0.0 255.255.255.0 eth2 0.0.0.0 193.6.181.1 0.0.0.0 eth2
Hálózati konfiguráció Feladat: Konfiguráljuk a fenti ábrán szereplő Hx csomópontok és Ry routerek interfészeit a megfelelő hálózat címtartományából, majd állítsuk be a routing táblákat úgy, hogy minden eszköz el tudjon érni minden eszközt. Ha a csomag címzettje egyéb hálózathoz tartozik, a csomagot az ISP_R router irányába továbbítsuk.
A szállítási réteg
Szállítási réteg 5 4 3>= 4 5 TCP Transmission Control Protocol UDP User Datagram Protocol nyalábolás/nyalábbontás adatintegritás megbízható adatszállítás forgalomszabályozás
UDP/TCP UDP (User Datagram Protocol): Összeköttetés nélküli szállítás - Alkalmazási szinten szabályozható - Nincs összeköttetés felépítés - Állapotmentes összeköttetések - Kis csomagfejrész többletterhelés TCP (Transmission Control Protocol): Összeköttetés alapú szállítás - állandó kapcsolat épül fel háromutas kézfogás - nagyobb fejrész (forgalomirányításhoz) - sorszám -> nyugtaszám - vételi ablak - opciók (beállító üzeneteknél) - jelzőmező (ACK, RST, SYN, FIN, PSH, URG)
Port azonosítók Port azonosítók: 16 bit, 0-65535 Kapcsolat azonosítása: Protokoll + IP(fa) + Port(Fa) + IP(cél) + PORT(cél) Regisztrált szolgáltatások listája: /etc/services $ cat /etc/services $ cat /etc/services grep HTTP $ grep http /etc/services $ less /etc/services Nézzük meg az ismertebb szolgáltatások portszámai (FTP, Telnet, SSH, SMTP, HTTP, HTTPs, DNS)
Háromutas kézfogás SYN + sorszám ACK+SYN+nyugtaszám+sorszám ACK+nyugtaszám http://www.inf.unideb.hu/kmitt/konvkmitt/szamitogephalozatok_oktatasi_segedlet/anim/tcp.swf
Az alkalmazási réteg
Hálózati alkalmazási archtektúrák Kliens-szerver architektúra Kliens: kérések, szakaszos működés Szerver: válaszok, folyamatos működés, IP-cím Pl. web, ftp, email P2P (peer to peer) arcitektúra Egyenrangú társak közötti kommunikáció Felhasználók által kezelt eszközök Önskálázhatóság Biztonsági nehézségek Pl. fájlcserélők, IP-telefon stb.
Kommunikáló folyamatok hoszt vagy szerver hoszt vagy szerver folyamat socket TCP pufferekkel, változókkal Az alkalmazásfejlesztő kezeli Internet folyamat socket TCP pufferekkel, változókkal Szállítási szolgáltatás Az OS kezeli TCP Összeköttetés-alapú szolgáltatás UDP Összeköttetés nélküli szolgáltatás A TCP továbbfejlesztése alkalmazás rétegben implementált kiegészítésekkel: SSL (Secure Sockets Layer)
Internetes alkalmazások Alkalmazás Rétegprotokoll Szállítási protokoll E-mail SMTP TCP Távoli terminálelérés Telnet TCP Web HTTP TCP Fájlátvitel FTP TCP Multimédia HTTP TCP v. UDP Internetes telefon SIP, RTP (v. Skype) UDP
Internetes alkalmazások - példa Web Kliens-szerver alkalmazás, összetevői: Formátumszabvány HTML Webböngészők Firefox, Chrome stb. Webszerverek pl. Apache Alkalmazási protokoll HTTP Weboldal: alap HTML-fálj, hivatkozott dokumentumok, egyéb hivatkozások URL (Uniform Resource Locator): hosztnév+elérési útvonal http://irh.inf.unideb.hu/user/kuki/halo_pti_2016.pdf
A HTTP áttekintése HTTP Kliens HTTP-kérés Szerver HTTP-válasz Időleges összeköttetés: Minden kérés-válasz külön TCP-összeköttetéssel Állandó összeköttetés: Több pár ugyanazon a TCP-összeköttetéssel Port: 80 RTT Round Trip Time Párhuzamos TCP-kapcsolatok
A HTTP kérés és válasz TCP-összeköttetés kezdeményezése RTT Fájl kérése RTT Fájlátvitel ideje A fájl megérkezett idő idő
HTTP-kérés HTTP-üzenetformátumok Kéréssor: metódus, URL, verzió Fejlécsorok: név:, érték : név:, érték Üres sor Törzs GET /valahol/index.html HTTP/1.1 Host: www.egyetem.hu User-agent: Mozilla/4.0 Connection: close Accept-language:hu
HTTP-válasz HTTP-üzenetformátumok Állapotsor: verzió, állapotkód, állapotszöveg Fejléccorok: név:, érték : név:, érték Üres sor Törzs HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html Adatok...
HTTP-válasz HTTP-üzenetformátumok A leggyakrabbanhasznált metódusok: GET, HEAD (v1.0) Ezeken kívül még 6 egyéb metódus létezik (POST (v1.0), PUT, DELETE, TRACE, OPTIONS, CONNECT) Állapotkódok: 1xx: Informatív 2xx: Siker (pl. 200) 3xx: Átirányítás 4xx: Kliens hiba (pl. 404) 5xx: Szerver hiba Sütik (cookies): a felhasználói állapot megőrzése szerveroldal: Adatb. bejegyzés (válaszban: Set-cookie: szám) kliensoldal: sütifájlok (kérésben: Cookie: szám)
HTTP példák telnet irh.inf.unideb.hu 80 GET /user/kuki/index.html HTTP/1.1 Host: irh.inf.unideb.hu telnet irh.inf.unideb.hu 80 GET /user/kuki/index.htm HTTP/1.1 Host: irh.inf.unideb.hu telnet irh.inf.unideb.hu 80 HEAD /user/kuki/index.html HTTP/1.1 Host: irh.inf.unideb.hu telnet irh.inf.unideb.hu 80 head /user/kuki/index.html HTTP/1.1 Host: irh.inf.unideb.hu telnet www.laev.hu 80 HEAD /index.php HTTP/1.1 Host: www.laev.hu
Az FTP áttekintése Felhasználó v. hoszt FTP felhaszn. interfész FTP kliens Helyi fájlrendszer fájlátvitel FTP szerver Távoli fájlrendszer Két párhuzamos TCP-összeköttetés vezérlési összeköttetés (control, port 21) adatátviteli összeköttetés (data, port 20)
A fontosabb FTP-parancsok USER felhasználónév (pl. anonymous) PASS jelszó LIST (távoli fájllista) RETR fájlnév (letöltés) STOR fájlnév (feltöltés) MKD mappa (könyvtár létrehozás) RMD mappa (könyvtár törlés) CWD mappa (könyvtár váltás) QUIT (kilépés)
A fontosabb FTP-üzenetek 125 Data connection already open; transfer starting. 150 File status okay; about to open data connection. 200 Command okay. 221 Service closing control connection. 226 Closing data connection. 230 User logged in, proceed. 250 Requested file action okay, completed. 331 User name okay, need password. 421 Service not available, closing control connection. 425 Can't open data connection. 426 Connection closed; transfer aborted. 452 Requested action not taken. Insufficient storage space in system. 500 Syntax error, command unrecognized. 502 Command not implemented. 503 Bad sequence of commands. 530 Not logged in. 550 Requested action not taken.
FTP példák Az ftp.debian.org helyen névtelen belépéssel listázni a gyökérkönyvtár tartalmát és letölteni a README fájlt. Windows vagy Linux kliensprogramok segítségével.
FTP FTP két csatornájának szemléltetése telnet segítségével. 1. terminál 2.terminál telnet ftp_cím 21 (pl. ftp.externet.hu) USER felhasználó PASS jelszó PASV LIST CWD könytár RETR letöltendő_file STOR feltöltendő_file QUIT telnet ftp_cím terminal1_pasv_alapjan_számított_port PASV alapján port szímtása: (az első négy tag az IP) az utolsó előtti szám * 256 + az utolsó szám
e-mail szerver SMTP szerver POP3/IMAP SMTP kliens SMTP: Simple Mail Transfer Protocol POP: Post Office Protocol IMAP: Interim Mail Access Protocol IMAP2: Interactive Mail Access Protocol IMAP4: Internet Message Access Protocol MIME: Multipurpose Internet Mail Extension
e-mail 1 kliens Levelező szerver 2 3 4 Levelező szerver 5 6 kliens Hozzáférési protokollok (6) POP3 [RFC 1939] IMAP4 [RFC 3501] user pass list retr dele quit
POP3 portja: $ cat /etc/services grep smtp SMTP $ telnet mail_server 25 HELO xy MAIL FROM: xyz@mail_server RCPT TO: abc@gmail.com DATA A levél szövege <cr>.<cr> QUIT
POP3 Feladat: Olvassuk el levelinket telnet segítségével. POP3 portja: $ cat /etc/services grep pop3 $ telnet mail_server 110 USER felhasználó PASS jelszó LIST retr levél_sorszám QUIT A legtöbb mail szerver már ssl-t használ elérés ssl segítségével: $ openssl s_client -connect pop.gmail.com:995
IMAP Az openssl segítségével ugyanúgy csatlakozhatunk távoli levelező szerverünkhöz, mint POP3 esetén. IMAP portja: $ cat /etc/services grep imap Csatlakozás telnet segítségével: $ telnet mail_server 143 A legtöbb mail szerver már itt is ssl-t használ elérés ssl segítségével: $ openssl s_client -crlf -connect imap.gmail.com:993 a01 login loginnev jelszo a02 list / * a03 select INBOX a04 fetch 1:* FLAGS a05 FETCH 1 body[text] a06 logout
Helyi beállítások DNS
DNS Helyi beállítások Hosztnév lekérdezése/beállítása: $ hostname Helyi névhozzárendelések beállítása: /etc/hosts fileban Formája: ip név [név]... DNS szerver beállítása: /etc/resolv.conf nameserver ip_cím Névfeloldási mód beállítása: /etc/host.conf multi on order hosts,bind,nis trim unideb.hu
DNS Elosztott adatbázis, melyet hierarchikusan szervezett DNS szerverekkel valósítanak meg Protokoll, mely lehetővé teszi hosztok számára lekérdezések végrehajtását ebben az adatbázisban Az adatbázis felépítése: Gyökér DNS szerverek (összesen 13 db, A-M-ig) TLD (Top Level Domain) szerverei. Pl országok szerverei (hu, fr, com...) Hiteles DNS szerverek: minden olyan szervezet, mely nyilvánosan elérhető hosztokat üzemeltet, nyilvános DNS bejegyzéseket kell, hogy szolgáltasson. Ezt saját hiteles DNS szerverén keresztül teheti meg. Helyi DNS szerver: Nem tartozik szorosan a DNS hierarchiába, ugyanakkor fontos a szerepük pl a chachelés miatt.
DNS gyökérszerverek e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 36 other locations) a Verisign, Dulles, VA c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 21 locations) k RIPE London (also 16 other locations) i Autonomica, Stockholm (plus 28 other locations) m WIDE Tokyo (also Seoul, Paris, SF) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA 13 gyökérszerver a világban
DNS lekérdezés működése Gyökér DNS szerver 2 3 4 TLD szerver 5 Helyi DNS szerver 6 1 8 hoszt 7 Hiteles DNS szerver Keresett hoszt xavier.dtp.atomki.hu Kérdés: xavier.dtp.atomki.hu
DNS erőforrás rekordok (RR) Formája: (Name, Value, Type, TTL) Mennyi idő után kell törölni a bejegyzést A hosztnév, Value IP cím, Name név pl: (relay1.foo.bar.com, 145.37.93.126, A) NS névszerver, Value ottani DNS szerver, Name tartomány pl: (foo.com, dns.foo.com, NS) CNAME álnévhez tartozó név, Value kanonikus név, Name álnév pl: (foo.com. relay1.foo.bar.com, CNAME) MX levelezőszerver, Value kanonikus név, Name hosztnév pl: (foo.com. mail.bar.foo.com, MX)
DNS feladatok nslookup erőforrásrekordok lekérdezése Parancssoros mód: $ nslookup -type=mx unideb.hu (a név helyén ip is lehet) Interaktív mód: $ nslookup > set type=mx v. set q=mx > unideb.hu > exit dig erőforrásrekordok lekérdezése Forma: $ dig szerver_nev tipus Fordított lekérdezés: $ dig -x szerver_ip host erőforrásrekordok lekérdezése (egyszerű kimenet) Forma: $ host -t tipus szerver_nev/domain -a kapcsoló segítségével a dig-hez hasonló kimenetet kapunk
DNS feladatok Példa feladatok: 1. Írasd ki, milyen helyi névszerverek érhetők el az unideb.hu domain-en 2. Írasd ki milyen levelezőszervereket használ a gmail.com 3. Keresd meg az irh.inf.unideb.hu aliashoz tartozó kanonikus nevet 4. Írasd ki az unideb.hu-val kapcsolatos összes erőforrásrekordot 5. Milyen globális néven érhető el a 193.6.181.75 IP-című gép?
netcat Feladat (szerver): indítsunk saját szervert, ami az 5555 porton várja a kliens jelentkezését $ nc -l p port_száma Feladat (kliens): csatlakozzunk az imént indított szerverhez $ telnet ip_cim port_száma $ nc ip_cim port_száma Feladat: nc segítségével döntsük el, hogy a xavier.dtp.atomki.hu hoszton nyitva van-e a 25-ös port tcp protokoll menti kommunikációra $ nc -vz xavier.dtp.atomki.hu 25 -t Intervallum megadása is lehetséges: $ nc -vz xavier.dtp.atomki.hu 20-30 -t
Hálózati statisztika nmap Feladata: Nyitott portok felkutatása: $ nmap -v domino.inf.unideb.hu Operációs rendszer ujjlenyomatának azonosítása: $ nmap -v -O domino.inf.unideb.hu netstat helyi statisztikák Kapcsolói: -a minden socket -r routing tábla -t tcp portok -i interfészek -u udp portok -s általános statisztikák -l csak fogadó