Hálózati Architektúrák és Protokollok GI BSc. 10. laborgyakorlat Erdős András (demonstrátor) Debreceni Egyetem - Informatikai Kar Informatikai Rendszerek és Hálózatok Tanszék 2016 9/20/2016 9:41 PM 1
Transzport és alkalmazási réteg 9/20/2016 9:41 PM 2
TCP protokoll TCP: megbízható, összeköttetés alapú protokoll, azaz a kommunikáció kezdetekor ki kell építeni egy kapcsolatot, a végén pedig le kell bontani. A TCP a beérkező adatfolyamot feldarabolja és továbbítja a hálózati rétegnek. A célállomás TCP folyamata összegyűjti a beérkezett üzeneteket, sorbarendezi, és egyetlen kimeneti adatfolyamként továbbítja. Szükség lehet forgalomszabályozásra is, ami azt jelenti, hogy a gyors forrásállomás csak annyi üzenetet küldjön a lassabb célállomásnak, amennyit az fogadni képes. Hogy egy csomópont egyszerre több TCP kapcsolatot is fenn tudjon tartani, szükség van egy az alkalmazási réteg számára nyújtott azonosítóra, amit portnak nevezünk. A port egy 16 bites szám. UDP (User Datagram Protocol): nem megbízható, Összeköttetés mentes protokoll, lényegében az IP szolgáltatásait nyújtja az alkalmazási réteg felé. Akkor célszerű alkalmazni, ha kevés csomagot akarunk küldeni, és nem szükséges sem az üzenetek sorba rendezése, sem a forgalomszabályozás, hanem sokkal fontosabb a sebesség. Az UDP is rendelkezik portokkal, amik teljesen függetlenek a TCP portjaitól. 9/20/2016 9:41 PM 3
TCP header 9/20/2016 9:41 PM 4
UDP header 9/20/2016 9:41 PM 5
Ismertebb TCP port számok Protokoll Portszám Echo 7 FTP Data port 20 FTP Controll Port 21 SSH 22 Telnet 23 SMTP 25 Host Name Server 42 Protokoll Portszám DNS 53 MTP 57 HTTP 80 POP V2 109 POP3 110 SFTP 115 IMAP 220 0-1023: Ide tartoznak a gyakrabban használt portok (Well Known Ports). 1024 49151: Az úgynevezett regisztrált portok tartoznak ebbe a tartományba 49152 65535: Dinamikus, illetve privát portszámok. Az egyes alkalmazások által véletlenszerűen választott portszámok listaja. Ezek a portok nem tartoznak állandóan egy adott alkalmazáshoz. 9/20/2016 9:41 PM 6
TCP 3 utas kézfogás 9/20/2016 9:41 PM 7
Netstat Csomópont hálózati kapcsolatainak lekérdezése Parancs: netstat Szintaxis: netstat [-anp] Kapcsolók -n a csomópontok és TCP/UDP portok numerikus (IP cím, port azonosító) formában kerülnek listázása -a kapcsolatállapottól függetlenül minden kapcsolat listázása (listening socket-ek is) -p program, a kapcsolatokhoz tartozó process-ek listázása új oszlopban Példa: netstat -anp more 9/20/2016 9:41 PM 8
Feladat Kérdezzük le saját számítógépünk hálózati kapcsolatait 9/20/2016 9:41 PM 9
DNS és Domain név A Domain Name System (DNS), azaz a tartománynévrendszer egy hierarchikus, nagymértékben elosztott elnevezési rendszer számítógépek, szolgáltatások, illetve az internetre vagy egy magánhálózatra kötött bármilyen erőforrás számára. A részt vevő entitások számára kiosztott tartománynevekhez (doménekhez) különböző információkat társít. Legfontosabb funkciójaként az emberek számára értelmes tartományneveket a hálózati eszközök számára érthető numerikus azonosítókká fordítja le, oldja fel, melyek segítségével ezeket az eszközöket meg lehet találni, meg lehet címezni a hálózaton. A tartománynév (domain name) az Internet egy meghatározott részét, tartományát egyedileg leíró megnevezés. A tartománynevek kiosztása és értelmezése a Domain Name System (DNS) szabályai szerint, hierarchikusan történik. 9/20/2016 9:41 PM 10
Domain név feloldása Domain név feloldása: nslookup Az nslookup paranccsal DNS domain lekérdezéseket hajthatunk végre, segítésével megtudhatjuk egy adott gép domain nevét vagy IP címét. Használhatjuk: - Csomópont domain nevéből az IP címének a meghatározására - Csomópont IP címéből a domain nevének a meghatározására 9/20/2016 9:41 PM 11
Feladat 1) Kérdezzük le a www.inf.unideb.hu domain névhez tartozó szerver IP címét 2) Kérdezzük le a 193.6.135.21 IP címhez tartozó szerver domain nevét 9/20/2016 9:41 PM 12
Konfigurációs feladatok: /etc/services TCP és UDP portokhoz rendelt szolgáltatások listája Unix rendszerekben a /etc/services állományban található meg. Az állomány listázása less /etc/services (Részlet) 9/20/2016 9:41 PM 13
Konfigurációs feladatok: /etc/protocols Hálózati protokollokhoz rendelt azonosítok listája a /etc/protocols állományban található. Az állomány listázása less /etc/protocols 9/20/2016 9:41 PM 14
Konfigurációs feladatok: DNS szolgáltatás DNS szolgáltatás beállítása Linux-os csomóponton: /etc/resolv.conf Állomány szerkesztése: vi /etc/resolv.conf Opcionálisan használható vi editor helyett vim, gedit, joe, nano, stb nameserver {DNS szerver IP címe} Olyan helyi DNS szerver IP címét kell megadni, melyet a csomópontunk resolver-e közvetlenül le tud kérdezni. Pl. nameserver 193.6.128.5 resolv.conf példa: nameserver 193.6.128.5 search inf.unideb.hu unideb.hu domain inf.unideb.hu search {domain} A helyi domain névből származtatott keresési lista: Pl. search inf.unideb.hu domain {domain} A helyi domain név Pl. domain inf.unideb.hu 9/20/2016 9:41 PM 15
A /etc/host.conf és a /etc/hosts állományok A /etc/host.conf konfigurációs fájlban elsősorban azon források sorrendjét adjuk meg, amelyekből a számítógép kikeresi a domain név információkat. Alapértelmezésben az alábbi bejegyzés található meg benne: order hosts,bind Ez azt jelenti, hogy először a /etc/hosts állományban fogja keresni az adott információt, majd a bind program felhasználásával a DNS szervertől próbálja lekérdezni. 9/20/2016 9:41 PM 16
Telnet (távoli terminál elérés) A telnet segítségével távoli gépen terminál elérést kapunk. Ezen túlmenően a távoli gép tetszőleges TCP portjára csatlakozhatunk vele. Szintaxis: telnet {host} [{port}] A host paramétert megadhatjuk IP címmel vagy domain névvel. 9/20/2016 9:41 PM 17
Feladat 1) Bejelentkezés a shrek.unideb.hu nevű csomópont alapértelmezett TCP/23-as telnet portjára: (telnet shrek.unideb.hu) 2) Bejelentkezés a shrek.unideb.hu nevű csomópont TCP/80-as HTTP portjára: (telnet shrek.unideb.hu 80) 9/20/2016 9:41 PM 18
SSH A Secure Shell (röviden: SSH) egy szabványcsalád, és egyben egy protokoll is, amit egy helyi és egy távoli számítógép közötti biztonságos csatorna kiépítésére fejlesztettek ki. Nyilvános kulcsú titkosítást használ a távoli számítógép hitelesítésére, és opcionálisan a távoli számítógép is hitelesítheti a felhasználót. Az SSH-t leggyakrabban arra használják, hogy egy távoli gépre belépjenek vele és parancsokat adjanak ki, de támogatja a tunnelinget, azaz tetszőleges TCP portok és X11 kapcsolatok továbbítását; fájlok biztonságos átvitelére is használható a kapcsolódó SFTP (Secure FTP) és SCP (Secure Copy) protokollok segítségével. Az SSH szerverek alapértelmezésben a 22-es TCP portot figyelik. 9/20/2016 9:41 PM 19
Feladat SSH segítségével hozzunk létre kapcsolatot a shrek.unideb.hu szerverrel a saját felhasználónevünk kel 9/20/2016 9:41 PM 20
HTTP protokoll HTTP -> HyperText Transfer Protocol HTTP kommunikáció során kérés-válasz párok váltják egymást Kérés formája: metódus erőforrás verzió fejléc törzs Használt metódus a GET és a HEAD. Ezen kívül még 6 egyéb metódus létezik (POST, PUT, DELETE, TRACE, OPTIONS, CONNECT) Válasz formája: verzió státuszkód indoklás fejléc törzs Státuszkódok: 1xx: Informatív 2xx: Siker (pl. 200) 3xx: Átirányítás 4xx: Kliens hiba (pl. 404) 5xx: Szerver hiba 9/20/2016 9:41 PM 21
Netcat A netcat program alapértelmezetten készít egy socket-et hallgató üzemmódban (server socket) vagy egy socket-et, mellyel a szerver socket-hez lehet csatlakozni (client mode) Egy nagyon primitív mód arra, hogy egymással tudjunk kommunikálni server-client alkalmazáson keresztül Szerver indítás példa: nc l [port] -> ( nc l 3333) Szerverhez csatlakozás példa: nc [IP] [Port] -> nc 192.168.0.101 3333 File küldés: cat test.txt nc l 3333 File fogadás: nc 192.168.0.101 3333 > test.txt 9/20/2016 9:41 PM 22
Feladat Páronként mindenki nyisson egy netcat szervert, és a másik próbáljon meg csatlakozni hozzá. Csevegés után próbáljanak meg file-t küldeni egymásnak. 9/20/2016 9:41 PM 23
FTP A File Transfer Protocol, vagy rövid nevén FTP TCP/IP hálózatokon mint amilyen az internet is történő állományátvitelre szolgáló szabvány. Gyakran van szükség arra, hogy valamilyen állományt hálózaton keresztül töltsünk le saját gépünkre, vagy egy állományt mások számára hozzáférhetővé tegyünk. Erre alkalmas az FTP, ami lehetővé teszi a különböző operációs rendszerű gépek között is az információcserét. A világon nagy mennyiségű információforrás áll rendelkezésre, melyek letöltése ilyen módon megvalósítható. A hozzáférési jog alapján kétféle kapcsolattípus létezik: -> letöltés, vagy feltöltés nyilvánosan hozzáférhető állományokból vagy állományokba, -> letöltés, vagy feltöltés olyan gépről, ahol azonosítóval rendelkezünk. 9/20/2016 9:41 PM 24
Feladat Csatlakozzunk az ftp.by.debian.org szerverhez FTP kapcsolaton keresztül 9/20/2016 9:41 PM 25
Néhány hasznos alkalmazás, kitekintés 1. Putty SSH és beállítása 2. WinSCP és konfigurálása 3. Netbeans remote compile beállítás. C++ kód távoli fordítás és futtatás 4. Total commander FTP beállítás 9/20/2016 9:41 PM 26
Referenciák, további linkek, segédlet 1. Az előadáshoz tartozó fóliasorozat és a syllabus megtalálható a tárgy honlapján: http://irh.inf.unideb.hu/~kocsisg/ 2. Gyakorlati segédanyagok: http://shrek.unideb.hu/~erdosa/gi_halo/index.html 3. Roszik János: SZÁMÍTÓGÉP-HÁLÓZATOK GYAKORLATI SEGÉDANYAG http://irh.inf.unideb.hu/user/szilagyi/sites/default/files/halorj.pdf 4. RFC Dokumentumok: http://www.rfc-editor.org 5. James F. Kurose and Keith W. Ross. Számítógép hálózatok működése: Alkalmazásorientált megközelites. 4. ed. Pearson Education, 2008, Panem Könyvkiadó 2009. 6. Dr. Almási Béla, Számítógép Hálózatok oktatási segédlet, Debreceni Egyetem Informatikai Kar, 2011 http://www.inf.unideb.hu/kmitt/konvkmitt/szamitogep-halozatok_oktatasi_segedlet/book.xml.html 7. Dr. Végh Janos, Hálózati architektúrák es protokollok előadási segédlet, Debreceni Egyetem Informatikai Kar, 2014 9/20/2016 9:41 PM 27
Köszönöm a figyelmet 9/20/2016 9:41 PM 28