Számítógép rendszerek 1. óra Számítógépes hálózatok, internet
Kis visszatekintés a Magyar nyelv és irodalom érettségire: a kommunikáció tényezői [...] A közlésfolyamat teljessége folyamatos vagy esetenként szerepcserét is feltételez, amikor a feladóból címzett, a vevőből pedig közlő válik. Bármelyik tényező hiánya sikertelenné teszi a kommunikációt. 1. Az információ feladója (közlője), aki beszél. 2. A vevő az, akihez beszélnek. 3. A közvetítő közeg (csatorna), az információ továbbításának eszköze: levegő, telefondrót, stb. 4. A közlemény vagy üzenet, a továbbított információ tárgya. 5. A kód, azaz a közleményt kifejező nyelvi vagy jelrendszer, és ennek elemei és szabályai, melyeket a résztvevők kölcsönösen ismernek. 6. A kontextus, azaz beszédhelyzet vagy szituáció a kommunikációs közeg, amelyben a közlemény megkapja a maga teljes jelentését. 1/35
A kommunikáció és tényezői számítógépes hálózatok esetén 1. Szükséges egy fizikai eszköz, ami a jeleket továbbítja. Ennek alkotóelemei: Egy közvetítő közeg, amiben a jel terjed, pl. rézkábel, levegő. Egy egyezményes rendszer (eszközök és szabályok), ami a számítógépek által előállított bináris információt alkalmassá teszi a fenti közegben való továbbításra, és a továbbított jelet a fogadónál ismét bináris információvá alakítja. Egy szabályrendszer a közvetítő közegen folyó kommunikáció lebonyolítására, az ütközések elkerülése végett, pl. ha két eszköz egyszerre akarna beszélni. 2. A fizikai kapcsolaton felül a kommunikáló számítógépek között szükséges egy logikai kapcsolat, aminek célja például a több csomagban megérkezett információk összeállítása, a hibásan megérkezett információ-csomagok újraküldetésének kezdeményezése, stb. 3. A logikai kapcsolaton felül szükséges hogy az egymással kommunikáló számítógépes programok olyan formátumban és olyan szabályok szerint küldjék egymásnak az információkat, hogy azokat kölcsönösen megértsék. (Hasonlóan, mint ahogy a felhasználók közötti adatcsere feltétele a kölcsönösen elfogadott fájlformátumok használata, pl. Worddel nehéz megnyitni egy OpenOffice dokumentumot.) 2/35
A kommunikáció és tényezői számítógépes hálózatok esetén A számítógépek közötti kommunikáció mára már nagymértékben szabványosított (ITU-T, ISO, IEC, IEEE, IETF, és egyéb szervezetek). A kommunikáció előbb felsorolt tényezőit általában rétegnek (layer) nevezik. A kapcsolatokat megvalósító és irányító szabályokat protokolloknak (protocol) nevezik. Az előbb felsorolt három réteg a valóságot nagyon leegyszerűsíti. A valósághoz közelebb álló rétegeket rögzítenek például: OSI referenciamodell (OSI = Open Systems Interconnection) az ISO és az ITU-T közös kezdeményezése a számítógépes hálózatok szabványosítására az OSI referenciamodell 1977 óta létezik tartalmát az ISO/IEC 7498-1:1994 szabvány és az ITU-T X.200 (11/93) ajánlás rögzíti Internet protokollstruktúra az IETF RFC 1122 (1989) kvázi-szabvány rögzíti az OSI referenciamodellnél egyszerűbb rétegfelosztás elterjedt a TCP/IP megnevezés, de a valóságban a struktúra az IP-n és a TCP-n kívül még sok más protokollt is magában foglal 3/35
Az OSI referenciamodell és az internet protokollstruktrúra OSI referenciamodell 7. 6. 5. 4. 3. 2. 1. Alkalmazás Megjelenési Viszonylati Átviteli Hálózati Adatkapcsolati Fizikai (Application) (Presentation) (Session) (Transport) (Network) (Data Link) (Physical) Internet protokollstruktúra 4. Alkalmazás (Application) 3. Szállítási (Transport) 2. Hálózati (Internet) 1. Kapcsolati (Link) A továbbiakban az internet protokollstruktúrát, valamint az azt megvalósító eszközöket és protokollokat vesszük közelebbről szemügyre, néhány gyakorlati példán keresztül. 4/35
1. példa: Fájlátvitel két számítógép között A feladat: az egyik számítógépről ( A ) juttassunk át egy fájlt a másik számítógépre ( B ). A megvalósítás lépései: 1. (Fizikai) kapcsolat kiépítése a két számítógép között. 2. Hálózati kapcsolat létrehozása a két számítógép között. 3. Alkalmazáskapcsolat létrehozása a két számítógép között. Esetünkben az internet protokollstruktúra a következő konkrét protokollokból fog állni: Internet réteg 4. Alkalmazás 3. Szállítási 2. Hálózati 1. Kapcsolati Konkrét megvalósítás/protokoll FTP (File Transfer Potocol) TCP (Transmission Control Protocol) IP (Internet Protocol) Ethernet 5/35
Ethernet hálózatok Az Ethernet jelenleg a helyi hálózatok (LAN: Local Area Network) legelterjedtebb formája. Szabványosítása 1972-ben kezdődött, az IEEE 802.3 szabvány 1983-ban született meg. Magában foglalja a fizikai rétegre, és a fizikai rétegen történő kommunikációra vonatkozó szabványokat. Az internet protokollstruktúra 1. rétegét, a kapcsolati réteget valósítja meg. A legegyszerűbb Ethernet hálózat hozzávalói: 2 db számítógép, egy-egy hálózati csatolóval (NIC: Network Interface Controller) 2 db kábel (pl. 10BASE-T: csavart réz érpárok, kábelenként 2 db, RJ45 csatlakozókkal) 1 db hálózati hub (ez a hálózati elem közvetít a két gép között) A hub B 6/35
Ethernet hálózatok: kábelek A régebbi Ethernet hálózatok koaxiális kábeleket használtak (kb. mint a TV antennakábelek: 1 vezető kábel, szigetelő réteg, árnyékoló réteg, külső szigetelés). Az árnyékolatlan csavart réz érpár (UTP: Unshielded Twisted Pair) szabványosítása 1987ben kezdődött (az IEEE 802.3 szabványsorozat keretein belül) az 1BASE5 kábelekkel, ezt követték 10BASE-T, 100BASE-TX, 1000BASE-T, és egyéb kábelszabványok (ezek az 1 Mbit/s, 10 Mbit/s, 100 Mbit/s, 1 Gbit/s sebességű kommunikációt támogatják). Csatlakozók tekintetében ma az RJ45 csatlakozó elterjedt. UTP kábel RJ45 csatlakozó 7/35
Ethernet hálózatok: hálózati hubok A hálózati hub az egyik legegyszerűbb hálózati eszköz. Két vagy több Ethernet eszköz összekapcsolására szolgál. Működése: minden adatot, amit valamelyik csatlakozóján (portján) keresztül fogad, továbbít az összes többi csatlakozójára (portjára). 4 portos hálózati hub 8/35
...szintén hub (24 port)... 9/35
Ethernet hálózatok: hálózati hubok...szintén hub(ok) 10/35
Ethernet hálózatok: protokoll Az Ethernet hálózaton küldött adatcsomagokat kereteknek (frame) nevezik. A hálózat működése alapvetően egyszerű: egyszerre csak egy számítógép beszélhet, amit egyszerre mindenki hall. Minden keret tartalmazza a címzett gép egyedi azonosítóját (MAC címét), ami alapján a címzett gép kiválogatja a neki címzett kereteket (6 byte, pl. 00 E0 18 B1 B2 D9). Ha egyszerre több számítógép akar beszélni, akkor ütközés (collision) történik. Az ilyen helyzetek feloldására alkalmazzák a CSMA/CD algoritmust. Ha egy gépnek mondanivalója van, megvárja, amíg mindenki más befejezi a beszédet. Ezután elküldi a keret első bitjét. Ha emiatt ütközés történt, abbahagyja az adatközlést, kibocsát egy ütközést észleltem jelzést, és egy véletlenszerűen meghatározott hosszúságú időtartamon át nem próbálkozik újra adatközléssel. Ezután újra próbálkozik a keret első bitjének elküldésével. Ha nem történt ütközés, az adatátvitel folytatódik a keret többi bitjével. Nagyobb Ethernet hálózatokban az állandó ütközések miatti várakozások következtében az adatforgalom nagyon lelassulhat. Ennek megelőzésére olyan hálózati eszközöket kellett bevezetni, amik már rendelkeznek annyi intelligenciával, hogy az ütközéseket megpróbálják elkerülni: ezek a bridgek (más néven switchek). 11/35
Ethernet hálózatok: hálózati bridgek (switchek) A bridgek megjelenésre a hubokhoz hasonlóak. Folyamatosan gyűjtik az adatokat arról, hogy melyik portjukra mely MAC című eszközök csatlakoznak. A keretek tartalmát elemezve azokat csak arra a portjukra továbbítják, amihez a címzett eszköz csatlakozik. Ezzel jelentősen csökkentik az ütközések számát, és lehetővé teszik, hogy a hálózat különböző szegmensein a csatlakoztatott eszközök egyszerre kommunikáljanak. Címzett: B Címzett: B A B hub C Ütközés! B bridge C D Címzett: C Ethernet hálózat hubbal A D Címzett: C Ethernet hálózat bridge-vel 12/35
Ethernet hálózatok: hálózati bridgek (switchek) 13/35
Ethernet hálózatok: egy keret felépítése Keret Címzett Feladó Bevezetés kezdete EtherType Adat MAC címe MAC címe jel 7 6 6 2 46-1500 10101011 10101010 8 bit 8 bit 8 bit 8 bit CRC Szünet 4 8 bit 12 8 bit szün Az EtherType mező megadja hogy milyen típusú adatcsomagot hordoz a keret, például: 00001000 00000000: Internet Protocol, Version 4 10000110 11011101: Internet Protocol, Version 6 10000000 10011011: AppleTalk stb. A CRC jelentése: Cyclic redundancy check. Ez egy ellenőrzőösszeg, amit a küldő és a fogadó fél is kiszámít az adatmező tartalma alapján. Ha a fogadó fél által számított és a küldő fél által a keretben megadott CRC megegyezik egymással, a fogadó fél elfogadja a keretet hibátlannak. Ha nem egyeznek, a keretet újra kell küldeni. 14/35
Ethernet hálózatok: fizikai réteg Hogyan viszünk át a kábelen egy logikai 1-et vagy 0-t? Például 10BASE-T esetében IEEE 802.3 Manchester-kódolással. Feszültségek: alacsony -2,5 V, magas +2,5 V Egy logikai 1-et egy alacsony magas feszültségátmenet jelképez. Egy logikai 0-t egy magas alacsony feszültségátmenet jelképez. Egy bit átvitelének időtartama 100 nanosec (=10-7 sec) a hálózat nyers adatátviteli sebessége 10 106 bit/sec = 10 Mbit/sec. +2,5 V -2,5 V Manchester-kódolás 15/35
IP hálózatok Mint az előbb láttuk, egy Ethernet keret sokféle hálózati protokoll csomagjait szállíthatja. A mi esetünkben IP (Internet Protocoll) csomagokat fog szállítani. Az IP-nek több változata is volt/van forgalomban, jelenleg a legelterjedtebb a 4. verzió (IPv4), és folyamatban van a 6. verzió (IPv6) bevezetése. Az IETF RFC 791 (1981) kvázi-szabvány rögzíti részleteit, hadügyminisztérium MIL-STD-1777 számmal szabványosította. az amerikai Az internet protokollstruktúra 2. rétegét, a hálózati réteget valósítja meg. Bármilyen csomagalapú hordozón (például az előbb tárgyalt Etherneten) keresztül használható. Nem garantálja, hogy a küldött csomagok a címzetthez mind megérkeznek, csak egy példányban érkeznek meg, és megfelelő sorrendben érkeznek meg. Erről egy magasabb rétegben (3. réteg: szállítási réteg) működő protokollnak kell gondoskodnia. Minimális garanciát vállal az egyes csomagok fejlécének sértetlenségére. Az egyes kommunikáló felek IP címükkel azonosítják magukat. Ez egy 32 bit hosszúságú szám (Ipv4 esetén), amit 8 bitenként csoportosítva és tízes számrendszerbe átváltva is írhatunk ( pontozott számnégyes írásmód), pl. 10011000 01000010 00000101 00001000 = 152.66.5.8 16/35
IP hálózatok Azonos alhálózatba tartozó IP címek csoportja: Alhálózati osztályok (classful network): a kezdeti időkben (1981-1993) a rendelkezésre álló címtartományt a felelős hatóság (IANA = Internet Assigned Numbers Authority) fix méretű blokkokra osztva utalta ki a kérelmező szervezeteknek: Class A: 0nnnnnnn HHHHHHHH HHHHHHHH HHHHHHHH Class B: 10nnnnnn nnnnnnnn HHHHHHHH HHHHHHHH Class C: 110nnnnn nnnnnnnn nnnnnnnn HHHHHHHH (n = hálózatot azonosító bit, H = kiszolgálót azonosító bit) Class A címeket kaptak pl. 9.0.0.0 IBM, 17.0.0.0 Apple, 18.0.0.0 MIT, 19.0.0.0 Ford Alhálózati osztályok nélküli tartományok (CIDR = Classless Inter-Domain Routing): az Ipv4 címtartományok gyors fogyása ésszerűbb kiosztásra ösztönzött Minden IP címhez tartozik egy alhálózati maszk (subnet mask) A maszk a hálózat azonosítására szolgáló bitek számát adja meg, a maradék bitek szolgálnak a kiszolgálók azonosítására Megadási módok: pl. a 152.66.xxx.xxx alhálózat A hálózat bitmaszkja: 11111111 11111111 00000000 00000000 Pontozott számnégyes : 152.66.0.0/255.255.0.0 CIDR formátum : 152.66.0.0 /16 (a hálózatot azonosító bitek számának megadása) 17/35
IP: egy csomag felépítése Verzió 4 bit Töredék kezdete 13 bit Opciók n 8 bit Fejléc hossza 4 bit TOS 8 bit TTL Protokoll 8 bit 8 bit Teljes hossz 16 bit Fejléc ellenőrzőösszeg 16 bit Azonosító 16 bit Zászlók 3 bit Feladó IP címe Címzett IP címe 32 bit 32 bit Adat max. 65515 8 bit Mint látható, egy IPv4 csomag hossza akár 65535 byte is lehet, míg az előzőekben bemutatott Ethernet keret maximum 1500 byte adatot képes hordozni. Sokszor ezért egy-egy IP csomagot több Ethernet keretbe kell széttördelni (fragmentálni). Az így széttördelt IP csomagokat a címzett számítógép állítja újból össze az azonosító, a zászlók, és a töredék kezdete mezőkben található adatok segítségével. 18/35
IP: MAC címek és IP címek összehangolása Probléma: A gép szeretne kommunikálni B géppel. Tudja B IP címét, de nem tudja B MAC címét, ezért nem tudja vele felvenni a kapcsolatot. Megoldás: a címfeloldási protokoll (ARP: Address Resolution Protocol) Speciális Ethernet keretek, amiket az FF FF FF FF FF FF MAC címre küldenek (broadcast cím), így minden csatlakoztatott eszköz megkapja. A címfeloldás egy kérdés keretből, és egy arra kapott válasz keretből áll. Egy ilyen párbeszéd például: Kérdés: mi a MAC címe a 192.168.0.5 IP című gépnek? Válasz: a 192.168.0.5 IP című gép MAC címe 00 E0 18 B1 B2 D9. Egyéb használatai: Egy, a hálózathoz újonnan csatlakozni szándékozó gép ellenőrzi, hogy az általa használni kívánt IP cím nem foglalt-e már. Egy, a hálózathoz újonnan csatlakozott gép bejelenti MAC és IP címét a többieknek. Stb. 19/35
TCP adatfolyamok Tehát már van egy Ethernet hálózatunk, amin IP csomagok szaladgálnak számítógépről számítógépre. A különálló IP csomagokból a folyamatos adatfolyamok összeállítását (pl. hosszabb szöveges üzenetet) a TCP (Transmission Control Protocol) valósítja meg. Az IP önmagában nem garantálja, hogy a küldőtől a címzetthez a csomagok sorrendben érkeznek meg, sőt azt sem garantálja hogy egyáltalán megérkeznek. Az IP csomagok TCP csomagokat hordoznak, a TCP intézi az adatfolyamok folyamatossá tételét a számítógépen futó programok számára, kérelmezi az elveszett csomagok újraküldését, stb. A TCP csomag fejlécei határozzák meg, hogy a címzett számítógépen melyik futó program hoz fognak eljutni az információk. Az IETF RFC 973 (1981) kvázi-szabvány rögzíti részleteit. Az internet protokollstruktúra 3. rétegét, a szállítási réteget valósítja meg. Az alatta fekvő rétek általában IP, a két protokoll az idők folyamán szorosan összefonódott, innen jön a közkeletű TCP/IP elnevezés. 20/35
TCP: egy csomag felépítése Küldő port Címzett port 16 bit 16 bit Jelzőzászlók Ablakméret 8 bit 16 bit Szekvencia sorszám 32 bit Jóváhagyási sorszám 32 bit Ellenőrző összeg 16 bit Sürgős adatok sorszáma 16 bit Fejléc mérete Használaton kívül 4 bit 0000 Opciók Adat n 32 bit A címzett port száma adja meg, hogy a címzett IP című számítógépen melyik TCP portra fog befutni a csomag. Ha a címzett gépen éppen egy program figyeli az adott TCP portot, akkor megtörténik a kapcsolat kiépítése, és folyamatos adatátvitel valósulhat meg a küldő és a fogadó programok között. Analógia: IP cím telefonszám TCP port szám mellék száma 21/35
FTP: fájl átviteli protokoll Tehát már van egy Ethernet hálózatunk, amin IP csomagok szaladgálnak számítógépről számítógépre, amik folyamatos TCP adatfolyamokká állnak össze a fogadó gépen. Az egyik gépen futó kliens program (client) már tud utasításokat küldeni a másik gépen futó kiszolgáló programnak (host), amiket az értelmez és végrehajt. Szükséges tehát, hogy a két számítógépen futó programok beszéljenek valamilyen közös nyelvet, amivel megértetheti a kliens a kiszolgálóval, hogy pl. egy fájlt szeretne letölteni róla. Az egyik legrégebbi ilyen fájlátvitelre kifejlesztett protokoll az FTP (File Transfer Protocoll), amit az IETF RFC 959 (1985) rögzít. Az internet protokollstruktúra 4. rétegét, az alkalmazásréteget valósítja meg. 22/35
FTP: példa egy fájl letöltésére a kiszolgálóról (I.) Kiszolgáló (IP címe: 192.168.0.5) Az FTP kiszolgáló program a 21-es TCP porton figyeli hogy mikor érkezik be új kapcsolat. Kliens (IP címe: 192.168.0.103) A kliens kapcsolatot kezdeményez a 192.168.0.5 IP című gép 21-es TCP portjára. A kiszolgáló fogadja a kapcsolatot. 220 192.168.0.5 FTP server ready USER laky Ellenőrzi hogy van-e laky nevű felhasználó a rendszerben. 331 Password required for laky PASS xxxxxxxx Ellenőrzi hogy stimmel-e a jelszó. 230 User laky logged in. PASV Figyelni kezdi a 195 256+149=50069 számú TCP portot. 227 Entering Passive Mode (192,168,0,5,195,149). 23/35
FTP: példa egy fájl letöltésére a kiszolgálóról (II.) Kapcsolatot kezdeményez a 192.168.0.5 IP című gép 50069-es TCP portjára. TYPE I 200 Type set to I. RETR teszt.txt 150 Opening BINARY mode data connection for 'teszt.txt' (2315 bytes). Az 50069 számú TCP porton keresztül elküldi a teszt.txt fájl tartalmát a kliensnek. A kiszolgáló 50069-es TCP portjáról fogadja a fájl tartalmát, és lementi a felhasználó által megadott könyvtárba teszt.txt néven. Befejeződött a fájl küldése. 226 Transfer complete. QUIT 221 Goodbye. Lezárja az 50069-es TCP portot és bontja a klienssel a kapcsolatot a 21-es TCP porton. 24/35
1. példa: Fájlátvitel két számítógép között - VÉGE Összefoglalás: Internet réteg 4. Alkalmazás 3. Szállítási 2. Hálózati 1. Kapcsolati Konkrét megvalósítás/protokoll FTP (File Transfer Potocol) TCP (Transmission Control Protocol) IP (Internet Protocol) Ethernet Kérdés: nincsen ez túlbonyolítva? Miért nem ültethetjük rá például az FTP-t közvetlenül az Ethernet keretekre? Elvileg lehetséges lenne, de mi történne, ha kicserélnénk a kapcsolati réteget Ethernetről valami másra (pl. modemes kapcsolat PPP, mobiltelefonos kapcsolat GPRS, vezeték nélküli hálózati kapcsolat Wi-Fi, stb.)? Külön-külön FTP kiszolgáló és kliens programokat kellene írnunk minden változatra! Miért nem ültethetjük rá például az FTP-t közvetlenül az IP csomagokra? Elvileg lehetséges lenne, de az IP csomagok megérkezési sorrendje (és egyáltalán megérkezése) bizonytalan. Az FTP-n kívül sok más alkalmazás igényelne még folyamatos adatkapcsolatot, azaz a csomagok újbóli sorba rendezését, hiányzó csomagok pótlásának elintézését, stb., és ezeket az eljárásokat külön-külön minden fejlesztőnek le kellene programoznia. Az operációs rendszer TCP/IP megvalósítása a szállítási réteget (TCP) készen kínálja, azt a programozóknak nem kell újra feltalálniuk, csak használniuk. 25/35
Extrém kapcsolati rétegek pl. postagalamb 2001. április 28-án a Bergeni Linux-felhasználók Klubja megvalósította a postagalambokkal való IP-csomag továbbítást. A végpontok távolsága kb. 5 km volt. A kapcsolatot 9 csomagveszteség). pingeléssel PING 10.0.3.1 64 bytes from 64 bytes from 64 bytes from 64 bytes from tesztelték, amiből (10.0.3.1): 56 data bytes 10.0.3.1: icmp_seq=0 ttl=255 10.0.3.1: icmp_seq=4 ttl=255 10.0.3.1: icmp_seq=2 ttl=255 10.0.3.1: icmp_seq=1 ttl=255 4-re érkezett time=6165731.1 time=3211900.8 time=5124922.8 time=6388671.9 válasz (55%-os ms ms ms ms --- 10.0.3.1 ping statistics --9 packets transmitted, 4 packets received, 55% packet loss round-trip min/avg/max = 3211900.8/5222806.6/6388671.9 ms Az IP-csomag útja: nyomtatás postagalamb szkennelés karakterfelismerés. 26/35
2. példa: Hálózatok összekapcsolása Általánosan elterjedt jelölés: ha A és B a világ két különböző részén helyezkedik el, és kommunikálni szeretnének egymással, nincs más dolguk, minthogy keresztülküldjék IPcsomagjaikat az INTERNET feliratú óriási felhőn. A INTERNET B Ez szép, de mi van a felhőben? A felhőben szerte a világon elhelyezkedő, a legkülönbözőbb módon (Ethernet, bérelt vonal, víz alatti kábel, műholdas kapcsolat, mikrohullámú kapcsolat, stb.) összekötött, internetszolgáltatók vagy más szervezetek által üzemeltetett útválasztók (router) vannak. 27/35
Útválasztók (routerek) Az interneten a kijelölt routerek autonóm rendszereket (Autonomous System) képviselnek. Egy autonóm rendszer egy olyan rendszer, ami például saját IP cím tartománnyal rendelkezik. Például a BMENET (a Budapesti Műszaki és Gazdaságtudományi Egyetem IP hálózata) rendelkezik a 152.66.0.0/16, a 193.6.23.0/24 és a 193.224.185.0/24 címtartományok felett (azaz a 152.66.0.0 152.66.255.255 B osztályú, a 193.6.23.0 193.6.23.255 C osztályú, és a 193.224.185.0 193.224.185.255 C osztályú címtartományok felett). Minden autonóm rendszer rendelkezik egy egyedi azonosítóval (ASN: Autonomous System Number), pl. a BMENET ASN-je 2547. Az autonóm rendszerek nyilvántartják, hogy melyik más autonóm rendszereken keresztül érhetők el (AS Path), és ezt a tudást a BGP (Border Gateway Protocol, IETF RFC 4271) használatával egymásnak továbbadják. Az autonóm rendszerek az interneten egy decentralizált hálózatot alkotnak: nincsenek központi routerek, egy új router csatlakozásakor az általa újonnan behozott AS Path információ routerről routerre terjed, míg a világszere a routerek meg nem ismerik az új jövevény elérhetőségét. A routerek ezt az AS Path információt használják fel, hogy eldöntsék, az A -ból B -be tartó IP csomagokat melyik szomszédos routeren keresztül továbbítsák. 28/35
Konkrét példa az útválasztásra Otthonról, a T-xxxxxx internetszolgáltatóra csatlakozva szeretném elérni a BMENET hálózatában található gépemet. Hány útválasztón fognak keresztülmenni az IP-csomagok? A nyomozás eszköze a traceroute program, ami egy-egy IP-csomag útjának közbenső állomásait követi le. Ssz. 1. 2. 3. 4. IP cím 84.2.157.168 145.236.238.216 81.183.245.5 81.183.245.6 5. 195.111.97.102 6. 7. 8. 152.66.0.125 152.66.0.90 152.66.5.67 AS (ASN) Megjegyzés Otthoni IP címem HTC (5483) Hungarian Telecom Public Internet Access Provider HBONE/HUNGARNET (1955) BMENET (2547) Hungarian Academic and Research Network Budapest University of Technology and Economics Egyetemi gépem IP címe 29/35
Amikor a BGP csődöt mond...(i.) Egy példa: 2008. február 25: Pakisztán elérhetetlenné akarja tenni a Youtube-t az ország internetezői számára. A Pakistan Telecom (AS 17557) elkezdi azt híresztelni magáról BGP-n, hogy a Youtube hálózatának egy része (AS 36561) elérhető rajta keresztül. A BGP-n keresztül szerte a világon elterjed, hogy létezik az 17557 36531 útvonal. Ez sok esetben rövidebb, mint a valódi útvonal, amin keresztül a Youtube IP forgalma bonyolódik, ezért szerte a világon elkezdik a Pakistan Telecom hálózatára irányítani a Youtube felé irányuló adatforgalmat. A Youtube 30 percen 2 órán át elérhetetlen volt bizonyos szolgáltatóktól, amíg a Pakistan Telecom szolgáltatója el nem vágta ezt az útvonalat. 30/35
Amikor a BGP csődöt mond...(ii.) Egy másik példa: 2009. február 16: egy cseh internet-szolgáltató ki akarja egyensúlyozni a rajta keresztül menő forgalmat. A SuproNet (AS 47868) normális esetben közvetlen kapcsolatot ad meg BGP-n a CD-Telematikával (AS 25512): 47868 25512. Úgy döntöttek, hogy a CD-Telematika túl nagy forgalmat bonyolít rajtuk keresztül, ezért mesterségesen meghosszabbították az AS Patht, hogy a CD-Telematika inkább más útvonalakat válasszon helyettük: 47868 25512 25512 25512 25512. Ez bevett szokás a forgalom kiegyensúlyozására, de a SuproNet kicsit túlzásba esett: a teljes AS Path hossza meghaladta a 255 ASN-t, ami sok routert szoftverhiba miatt megbolondított, vagy egyszerűen lefagyasztott. Eredmény: előtte világszere 271175 AS-ből 1215 volt instabil, utána 12920, azaz az összes AS 4,8%-a, ami nagy mennyiségnek számít. 31/35
IPv4 címkészletek kimerülése 32 biten (IPv4) ~4,3 milliárd IP cím ábrázolható, de ebből sok nem hozzáférhető (speciális célra fenntartott blokkok) Az IP címek iránti igény növekedésének okai pl. internet-használat növekedése, internetre csatlakozó mobil eszközök térnyerése, folyamatos internet-kapcsolat fenntartása időszakos kapcsolat helyett Az IANA az utolsó rendelkezésére álló /8 címtartományokat 2011. február 3-án kiosztotta a földrajzilag illetékes regisztrátoroknak (RIR = Regional Internet Registry) Lehetséges megoldások Ideiglenes megoldások: pl. szolgáltató szintű NAPT (network address and port translation) bevezetése 38 27 2 IPv6 általánossá válása: 128 bites címek, ~3,4 10 darab (~6,67 10 /m a Földön) (2011. első felében a világ számítógépeinek 16-25%-a volt IPv6 képes, de csak 0,2% használta ténylegesen) 32/35
NAPT (Network Address and Port Translation) Kliens Belső hálózat privát címtartománnyal: 192.168.1.0/255.255.255.0 NAPT gateway Nyilvános IP: 152.66.5.23 Kiszolgáló :80 INTERNET :8080 A kiszolgálóval látszólag kommunikál: 152.66.5.23 A kimenő kapcsolat nyomonkövetésével és az IP csomagok címzési információjának megváltoztatásával a kiszolgálóval ténylegesen a 192.168.1.4 (privát IP cím) kommunikál 192.168.1.2 192.168.1.3 192.168.1.4 A kliens kapcsolatot kezdeményez a 152.66.5.23:8080 címmel (és porttal) A port továbbítási szabályok figyelembevételével a kapcsolat a 192.168.1.2:80 címre (és portra) kerül továbbításra 33/35
Some people are surprised when networks fail. I'm surprised when they don't. Néhányan meglepődnek, ha a hálózatok nem működnek. Én akkor lepődöm meg, ha működnek. Sam Halabi az Internet Routing Architectures c. könyvből 34/35
Források, további olvasnivalók: Benke Róbert: A kommunikációs folyamat tényezői, funkciói, ezek összefüggései kifejezésmóddal Wikipedia (információk, képek forrása): http://en.wikipedia.org/wiki/ethernet http://en.wikipedia.org/wiki/osi_model http://en.wikipedia.org/wiki/internet_protocol_suite http://en.wikipedia.org/wiki/border_gateway_protocol stb. Wikimedia Commons (egyes képek forrása) Pakistan hijacks YouTube http://www.renesys.com/blog/2008/02/pakistan-hijacks-youtube-1.shtml Czech router "creativity" causes 'Net traffic chaos http://arstechnica.com/security/news/2009/02/czech-router-creativity-causes-net-traffic-chaos.ars Reckless Driving on the Internet http://www.renesys.com/blog/2009/02/the-flap-heard-around-the-worl.shtml A BIX (Budapest Internet Exchange) AS kapcsolatai más AS-ekkel ( peer fül) http://www.robtex.com/as/as5507.html 35/35