Számítógépes Hálózatok 6. gyakorlat
Forgalomirányítás DEFINÍCIÓ • A hálózati réteg szoftverének azon része, amely azért a döntésért felelős, hogy a bejövő csomag melyik kimeneti vonalon kerüljön továbbításra. • A folyamat két jól-elkülöníthető lépésre bontható fel: 1.Forgalomirányító táblázatok feltöltése és karbantartása. 2.Továbbítás.
Gombos Gergő
Számítógépes hálózatok
2
Elárasztásos algoritmus • Statikus algoritmus • Minden bejövő csomagot minden kimenő vonalon továbbítunk kivéve azon, amin érkezett. • Sok duplikátum keletkezik! 1.Ugrásszámlálót kell bevezetni (fejléc mező). Minden állomás csökkenti eggyel, amint 0-ára csökken eldobják. (út hossz) 2.Második kiküldés megakadályozása, azaz nyilvántartjuk a már kiküldött csomagokat. Sorszám elhelyezése a csomagokba, és a küldési sorszámok nyilvántartása.
Gombos Gergő
Számítógépes hálózatok
3
Távolságvektor alapú • Minden router-nek egy táblázatot kell karbantartania, amelyben minden célhoz szerepel a legrövidebb ismert távolság, és annak a vonalnak az azonosítója, amelyiken a célhoz lehet eljutni. A táblázatokat a szomszédoktól származó információk alapján frissítik. – Elosztott Bellman-Ford forgalomirányítási algoritmusként is nevezik.
Gombos Gergő
Számítógépes hálózatok
4
Forgalomirányítás Elosztott Belmann-Ford •
Minden csomópont csak a közvetlen szomszédjaival kommunikálhat.
•
Aszinkron működés.
•
Minden állomásnak van saját távolság vektora. Ezt periodikusan elküldi a direkt szomszédoknak.
•
Minden router ismeri a közvetlen szomszédjaihoz a költséget.
•
A kapott távolság vektorok alapján minden csomópont aktualizálja a saját vektorát.
Gombos Gergő
Számítógépes hálózatok
5
Elosztott Belmann-Ford
Gombos Gergő
Számítógépes hálózatok
6
Elosztott Belmann-Ford PROBLÉMA • A „jó hír” gyorsan terjed. • A „rossz hír” lassan terjed. • A és B nem tudja, hogy C nem elérhető, amíg a távolság el nem ér egy limitet, amit végtelennek tekintenek. • Azaz ciklusok keletkezhetnek. • Lehetséges megoldások: – „split horizon”: olyan utakat nem küld vissza a csomópont a szomszédjának, amit tőle „tanult”. (C-ről nem küld infót A B-nek) – „split horizon with poison reverse”: negatív információt küld vissza arról a szomszédjának, amit tőle „tanult”. (C,∞)
Gombos Gergő
Számítógépes hálózatok
7
Feladat 1 Tegyük fel, hogy egy távolság alapú forgalomirányítási protokollban a A és B routerek távolság vektora az alábbi ábrán található. A protokoll osztott Bellman-Ford algoritmust használ az útvonalak meghatározására. A költségek szimmetrikusak, azaz minden élen mindkét irányban azonosak.
A
cost
next hop
B
cost
next hop
B
4
B
A
4
A
C
6
C
C
10
A
D
11
B
D
7
D
E
10
C
E
14
A
a)
Tegyük fel, hogy a csomópontok a "split horizon" szabályt használják a távolságvektorok átadására. Adja meg azt a távolságvektort, amit B elküld A-nak, miután E és B közötti közvetlen kapcsolat költsége 5-re változik. b) Adja meg azt a távolságvektort, amit B az a. pontban küldene A-nak, ha "split horizon with poison reverse" szabályt használna.
Gombos Gergő
Számítógépes hálózatok
8
Dijkstra • Mindig a legrövidebb utat választjuk!
Gombos Gergő
Számítógépes hálózatok
9
Dijkstra • Mindig a legrövidebb utat választjuk!
Gombos Gergő
Számítógépes hálózatok
10
Feladat 2 Tekintsük a 𝐺 = (𝑉; 𝐸) gráfot az 1. ábrán egy hálózat reprezentánsának. Először számítsa ki Dijkstra algoritmusával egy legrövidebb utak fáját D csomópontból minden más csomóponthoz az előadás fóliákon szereplő pszeudó kód segítségével. Minden iteráció után jelölje a "kész" csomópontokat és adja meg minden 𝑢𝜖𝑉 csomóponthoz 𝑑[𝑢] és 𝑝𝑟𝑒𝑑[𝑢] értéket egy táblázatban. Ezt követően rajzolja fel a kiszámított legrövidebb utak fáját.
Gombos Gergő
Számítógépes hálózatok
11
Netmask • Alhálózat címeinek leírása.
Gombos Gergő
Számítógépes hálózatok
12
Feladat 3 • Hány cím elérhető a következő netmaskokkal és adjuk meg a minimális és maximális címet: – 188.100.22.12/32 – 188.100.22.12/20 – 188.100.22.12/10
Gombos Gergő
Számítógépes hálózatok
13
Hálózati forgalom elemzés • Célok: – – – –
Szoftverek nyomon követése Hálózati teljesítmény analizálása Hálózatműködés szemléltetése lehallgatás
Gombos Gergő
Számítógépes hálózatok
14
Elemző eszközök, parancsok • Parancsok – – – – – – –
Ping Traceroute / tracert Ifconfig Nslookup / dig Tcpdump Tunnel Iptables (port forwarding)
• Eszközök – Wireshark (https://www.wireshark.org/download.html) Gombos Gergő
Számítógépes hálózatok
15
Traceroute / tracert
• Megmutatja a cél eléréséhez szükséges útvonalon szereplő domain-eket.
Gombos Gergő
Számítógépes hálózatok
16
Feladat 1 •
A ping program segítségével egy tesztelő csomagot küldhetünk egy adott helyre, hogy megmérjük, mennyi időt utazik oda és vissza. Használja most a pingel arra, hogy kiderítse, mennyi ideig tart, amíg a csomag a tartózkodási helyétől különféle más ismert helyekre eljut!
• Egyetemek: – – – – –
a berkeley.edu a kaliforniai Berkeleyben, a mit.edu a Massachusetts-i Cambridge-ben, a vu.nl a hollandiai Amszterdámban, a sydney.edu.au/az ausztráliai Sydneyben, a www.uct.ac.za pedig a dél-afrikai Fokvárosban van
Gombos Gergő
Számítógépes hálózatok
17
Ifconfig • Hálózati interface-k listája
Gombos Gergő
Számítógépes hálózatok
18
DNS lekérdezések • Általában automatikus, de kezdeményezhetjük a domain-nevek feloldását. • Legfontosabb erőforrás rekordok: A, AAAA, MX, SOA, NS.
Gombos Gergő
Számítógépes hálózatok
19
NSlookup • Domain név feloldása IP címre
Gombos Gergő
Számítógépes hálózatok
20
DNS lekérdezési feladatok • Határozza meg a 13 root szerver domain névre a hozzájuk tartozó az IP címeket. • A cs.washington.edu doménről szedjen össze minél több információt, azaz névszerverek, levelező szerverek, IP címek. A megszerzett információk alapján alkosson képet a delegációkról és a topológiáról. • Próbálja meg a fenti műveleteket az inf.elte.hu doménre-is.
Gombos Gergő
Számítógépes hálózatok
21
Tcpdump • Forgalom figyelő eszköz
Gombos Gergő
Számítógépes hálózatok
22
Tcpdump
Gombos Gergő
Számítógépes hálózatok
23
Wireshark
Gombos Gergő
Számítógépes hálózatok
24
Wireshark Szűrők definiálására alkalmas input eszközök Csomag összefoglaló nézete
Kiválasztott csomag hierarchikus nézet
Kiválasztott csomag bájt-alapú nézet
Szűrés statisztikái
Gombos Gergő
Számítógépes hálózatok
25
Wireshark • Korábban rögzített adatok elemzésére szolgál. • Szűrés felépítése: protokoll azonosító
.
fejléc mező
.
fejléc almező
Összehasonlító operátor
elvárt érték
kifejezés (expression)
• Operátorok: or, and, xor, not • Példa: tcp.flags.ack==1 and tcp.dstport==80 Gombos Gergő
Számítógépes hálózatok
26
Szűrési feladatok 1 - HTTP http_out.pcapng felhasználásával állomány felhasználásával válaszolja meg az alábbi kérdéseket: A
1. Milyen oldalakat kértek le a szűrés alapján? Milyen böngészőt használtak hozzá? 2. Hány darab képet érintett a böngészés? (Segítség: webp.) 3. Az első képhez tartozó socket-en hány kép kérése történt? Volt-e olyan, amelyet nem töltött le újra, mert megvolt már? 4. Hány olyan erőforrás volt, amelyet nem kellett újra töltenie a böngészőnek? Mely oldalakat érintette ez? 5. Volt-e olyan kérés, amely titkosított kommunikációt takar? (Segítség: SSL/TLS.) Kövesse végig az első TCP folyamát. Mit tud kideríteni a kommunikációról? Gombos Gergő
Számítógépes hálózatok
27
Szűrési feladatok 2 - DNS dns_out.pcapng felhasználásával állomány felhasználásával válaszolja meg az alábbi kérdéseket:
• A
1. Hány domén név feloldást kezdeményeztek a szűrés alapján? Mely domén nevek voltak ezek? 2. Válaszon ki 3 darab különböző domén nevet, és keresse meg a válasz csomagokat hozzájuk? Hány darab válasz van az egyes kérésekre? (Segítség: ID.) 3. Hány olyan névfeloldás volt, amelyre több válasz is érkezett? 4. Volt-e iteratív lekérdezés a szűrésben? Ha igen, akkor mennyi? Ha nem, akkor mi lehet a magyarázat? Gombos Gergő
Számítógépes hálózatok
28
Szűrési feladatok 3 - NEPTUN neptun_out.pcapng felhasználásával állomány felhasználásával válaszolja meg az alábbi kérdéseket:
• A
1. Milyen oldalakat kértek le a szűrés alapján? Milyen böngészőt használtak hozzá? 2. Hány darab SSL/TLS protokollt használó csomag van? Az elsőn kövesse végig a kommunikációt. Minden működési elvnek megfelelően lezajlott? 3. Kezdeményezett-e megszakítást a szerver a kommunikáció során? 4. Kideríthető-e, hogy milyen kommunikáció folyt a szerver és a kliens között? Esetleg megtippelhető-e a használt böngésző típusa? Gombos Gergő
Számítógépes hálózatok
29
Vége