lab IP protokoll Hálózati réteg Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem TCP hivatkozási modell, összes protokoll 2 Internet protokoll jellemzői Csomagokat továbbít, darabol és összerak Megbízhatatlan kapcsolatmentes datagramm szolgáltatást nyújt: Megbízhatatlan Nincs garancia a sikeres célbaérésra Legjobb szándékú szolgáltatás (best effort) Ha bármilyen hiba lép fel: Eldobja a datagrammot ICMP üzenet a forráshoz a hibáról kapcsolatmentes Nincs semmilyen állapotinformáció a datagrammokról A datagrammok sorrendje megváltozhat 3 1
IP fejléc formátuma 32 bits (4 Bytes) Version IHL Type of Service Identification Time to Live Protocol Source Address Total Length Flags Fragment Offset Header Checksum IP fejléc hossza általában 20 bájt Destination address Options (variable) Padding DATA (variable) 4 Version (4 bit): verzió IPv4, IPv6 IP fejléc mezők Version IHL 32 bits (4 Bytes) Type of Service Total Length IHL - Internet Header Length (4 bit): fejléc hossza, 4byte/1bit (maximum 60 bájt) TOS Type of Service (8 bit) 3 bit precedencia mező (ignorált) 3 bit szolgáltatási típus azonosító min késleltetés, max átviteli sebesség, max megbízhatóság 2 bit nemhasznált (érték: 00) Total length: IP datagramm teljes hossza, bájtban 5 Type Of Service 3 1 1 1 2 PRECEDENCE D T R UNUSED D = Delay, késleltetés T = Throughput, átviteli sebesség R = Reliability, megbízhatóság 6 2
IP fejléc mezők 2 32 bits (4 Bytes) Identification (16 bit): Identification Flags datagramm azonosítás Egyedi egy forrás-célcím pár esetén Flags (3 bit) More flag ha a datagramm fregmentált, és ez a csomag nem az utolsó fregmentum (még jön több darab is) DF do not fragment, fregmentálás letiltása reserved, foglalt Fragment offset (16 bit) Fregmentálás esetén megadja, hogy az adott fregmentum, az eredeti csomag hányadik bájtjától tartalmaz adatokat Fragment Offset 7 Darabolás, fragmentation Host A TCP IP Hálózati interfész Router IP Routing Host B TCP IP Hálózati interfész Csomag Fregmentált csomag MTU1 > MTU2 8 IP datagramm darabolás IPorig Non-fragmented data IP1 IPn Ha a datagramm mérete nagyobb, mint az MTU Maximum Transmission Unit Minden linknek az útvonalon saját MTU-ja van - különbözhetnek MTU path discovery Egy útvonal MTU értékeinek minimuma ICMP csomagokkal deríthető ki szabványosított Path MTU Discovery RFC-1191 9 3
IP datagramm darabolás IPorig Non-fragmented data IP1 IPn DF flaggel kérhető, hogy ne legyen fregmentálás DE! Ha mégis szükséges lenne a datagramm elsdobásra kerül ICMP üzenet megy a feladónak a hibáról (Path MTU keresés ezen alapszik) Ha darabolás szükséges, a datagramm csak a célállomásnál kerül összerakásra 10 IP datagramm darabolás - példa IP Header Original IP Packet data area IP Hdr 1 Data 1 IP Hdr 2 Data 2 IP Hdr 3 Data 3 FDDI Router 1 ETHERNET MTU =1500 bytes FDDI Router 2 MTU = 4500 bytes MTU = 4500 bytes 11 IP datagramm darabolás példa 2 IP datagram IP DATA UDP 1501 bájtos datagramm MTU=1500 byte IP header UDP header UDP adat (1473 byte) 20 byte 8 byte 1472 byte 1 byte IP header UDP header 1472 byte adat IP header 1 byte adat Fragment Offset = 0 Fragment Offset = 1480 12 4
IP fejléc mezők 3 32 bits (4 Bytes) Time to Live Protocol Header Checksum TTL time to live (8 bit) Eltévedt csomag ne maradhasson a hálózatban Egy kezdeti magas értéket (16, 64, 128), minden csomópont eggyel csökkent Ha eléri a 0-át, a csomag eldobásra kerül ICMP csomag a hibáról a feladónak 13 IP fejléc mezők 4 Time to Live Protocol 32 bits (4 Bytes) Header Checksum A szállítási réteg protokolljának azonosítója A bejövő csomag demultiplexálásához szükséges Value 0 1 2 4 5 8 9 17 Protocol name Internet Control Message Protocol Internet Group Management Prot. Stream Protocol Transport Control Protocol Exterior Gateway Protocol Interior Gateway Protocol User Datagram Protocol Acronym reserved ICMP IGMP ST TCP EGP IGP UDP 14 Demultiplexálás... TCP vagy UDP fejléc Port szám ICMP IGMP TCP UDP IP fejléc Protokoll azonosító ARP IP RARP Ethernet fejléc Keret típus Ethernet illesztő 15 5
IP fejléc mezők 5 32 bits (4 Bytes) Time to Live Protocol Header Checksum Header Checksum (16bit) 16 bites 1-es komplemensű ellenőrzőösszeg a fejlécre 16 IP fejléc mezők 6 Source Address Destination address Options (variable) Padding Source Destination Address Forrás és Cél IP cím 32 bit 17 IP fejléc mezők 7 Options (variable) Padding Options (változó hossz) Biztonsági és kezelési lehetőségek Útvonal feljegyzés (record route) Időbélyeg (timestamp) Útvonal megkötés (loose source routing) IP címek, melyeken átmenjen a csomag Szigorú útvonal megkötés (strict source routing) IP címek, csak ezeken mehet a csomag Padding Üres bitek kitöltése (ha az Options mező nem tölti ki) 18 6
lab Hálózatkonfigurációs parancsok ifconfig Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem ifconfig Unix alapú rendszerek Hálózati interfészek Beállításainak lekérdezése Módosítása ifconfig bootoláskor lefut beállításokat elvégzi minden elérhető interfészre Lekérdezéshez: ifconfig a (All) Minden interfész információi 20 Példa 21 7
Példa hálózati adatok Hoszt IP cím Subnet maszk Net ID/ Subnet ID Hoszt ID Megjegyzés sun 140.252.1.29 140.252.13.33 255.255.255.0 255.255.255.224 140.252.1 140.252.13.32 29 1 on subnet 1 on author's Ethernet svr4 140.252.13.34 255.255.255.224 140.252.13.32 2 bsdi 140.252.13.35 140.252.13.66 255.255.255.224 255.255.255.224 140.252.13.32 140.252.13.64 3 2 on Ethernet point-to-point slip 140.252.13.65 255.255.255.224 140.252.13.64 1 point-to-point 140.252.13.63 255.255.255.224 140.252.13.32 31 broadcast addr on Ethernet 22 ifconfig lekérdezés sun % /usr/etc/ifconfig -a leo : flags=63<up, BROADCAST, NOTRAILERS, RUNNING> inet 140.252.13.33 netmask ffffffe0 broadcast 140.252.13.63 slo : flags=105kup, POINTOPOINT, RUNNING, LINKO> inet 140.252.1.29 -> 140.252.1.183 netmask ffffff00 loo: flags=49<up,loopback,running> inet 127.0.0.1 netmask ff000000 23 C:\>ipconfig Windows IP Configuration Windows -ipconfig Ethernet adapter Local Area Connection: Connection-specific DNS Suffix. : IP Address............ : 192.168.0.94 Subnet Mask........... : 255.255.255.0 Default Gateway......... : 192.168.0.1 Ethernet adapter Wireless Local Area Connection: Media State........... : Media disconnected 24 8
lab netstat Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem netstat Információk a hálózati interfészekről MTU Beérkező csomagok száma Kimenő csomagok száma Hibák Sorok hossza stb. Útvonalválasztási beállítások... 26 Példa 27 9
Példa -netstat -in sun % netstat -in Name Mtu Net/Dest Address lpkts lerrs Opkts Oerrs Collis Queue leo 1500 140.252.13.32 140.252.13.33 67719 0 92133 0 1 0 slo 552 140.252.1.183 140.252.1.29 48035 0 54963 0 0 0 loo 1536 127.0.0.0 127.0.0.1 15548 0 15548 0 0 0 28 Windows -netstat Protokoll statisztikák Pillanatnyi TCP/IP kapcsolatok C:\>netstat Active Connections Proto Local Address Foreign Address State TCP evoqn:1099 192.168.0.2:netbios-ssn ESTABLISHED TCP evoqn:1100 192.168.0.2:epmap ESTABLISHED TCP evoqn:1101 192.168.0.2:epmap TIME_WAIT 29 lab Address Resolution Protocol ARP Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 10
Az Address Resolution Protocol 31 Jellemzők Az IP datagrammok közvetlen továbbításához a küldőnek ismernie kell a célállomás hardveres címét is (az IP címen felül) Pl. helyi hálózaton belül Az ARP protokollal lehetséges az IP címek alapján megkapni a hardver címet Helyi broadcast üzenetszórást használ az ARP A megszerzett IP-hardver cím párosokat az ARP gyorstárazza (cache) Legközelebbi küldés esetén nem kell újabb hardver címlekérdezés 32 ARP működése Ha az IP címed 160.30.100.10, kérlek küldj egy választ nekem a hardver címeddel! Küldő 160.30.100.20 00-AA-00-12-34-56 Broadcast Unicast Célállomás 160.30.100.10 00-A0-C9-78-9A-BC 160.30.100.10 cím az enyém, a hardver címem pedig: 00-A0-C9-78-9A-BC 33 11
ARP csomag felépítése 32 bit (4 bájt) Hardware Type Protocol Type HLEN PLEN Operation code Sender s Hardware Address (Octets 0-3) Változó hosszúságú Sender HA (Octets 4-5) Sender IP (Octets 0-1) Sender IP (Octets 2-3) Target HA (Octets 0-1) Target HA (octets 2-5) Target IP (octets 0-3) 34 ARP csomag felépítése 2 1 Hardware Type Protocol Type Hardware Type (16 bit) hardver típusa Meghatározza a hardver interfész típusát Pl. Ethernet esetén az értéke 1 Protocol type (16 bit) protokoll típusa Meghatározza a felsőbb rétegbeli protokollt (IP), mely által használt címet kell hardver címre fordítani IP esetén ez 0800 35 ARP csomag felépítése 3 2 HLEN PLEN Operation code HLEN, Hardware address length (8 bit) a hardver cím hossza Meghatározza bájtokban az adott csomagban szállított hardver cím hosszát Pl. Ethernet esetén 6 PLEN, Protocol address length (8 bit) felsőbb protokoll címhossza Meghatározza a felsőbb protokoll által használt cím hosszát bájtokban Pl. IP esetén 4 Operation code (16 bit) feladat kód Meghatározza, hogy az adott csomag egy ARP kérés (request) vagy ARP válasz (reply) 36 12
ARP csomag felépítése 4 3 4 Sender s Hardware Address (Octets 0-3) Sender HA (Octets 4-5) Sender IP (Octets 0-1) 5 Sender IP (Octets 2-3) Target HA (Octets 0-1) Sender s hardware address (48 bit) küldő hardver címe Tartalmazza a küldő (ARP requester) hardver címét Sender s IP address (32 bit) küldő IP címe Tartalmazza a küldő (ARP requester) felsőbb protokoll címét 37 ARP csomag felépítése 5 5 Sender IP (Octets 2-3) Target HA (Octets 0-1) 6 7 Target HA (octets 2-5) Target IP (octets 0-3) Target s hardware address (48 bit) Célállomás hardver címe Tartalmazza a célállomás (ARP responder) hardver címét Target s IP address (32 bit) Célállomás IP címe Tartalmazza a célállomás (ARP responder) felsőbb protokoll címét 38 lab Reverse Address Resolution Protocol RARP Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 13
Reverse Address Resolution Protocol A Reverse ARP protokoll hardver címeket fordít IP címekre A RARP protokollal egy újonnan bekapcsolt számítógép broadcast üzenetben meghirdetheti az Ethernet címét A RARP szerver fogadja ezt a kérést és visszaküldi a hardver címhez tartozó IP címet 40 lab Ping program Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Ping Távoli hoszt elérhetőségének vizsgálata ICMP Echo Request üzenet küldése célállomáshoz Echo Reply választ vár rá a küldő a célállomástól Távoli hoszt távolságának becslésére A program körülfordulási időt is mér Roundtrip time A kérés elküldése és a válasz megérkezése közötti idő Ping hoszt Ahonnan az echo request csomag indul Ping szerver Ahonnan az echo reply indul 42 14
Ping üzenetformátum 8 bit 8 bit 8 bit 8 bit Type=0, 8 Code=0 Checksum Identifier Sequence Number Optional Data Ping szerver válasza Identifier, Seq.Num egyező a kérés csomagjában lévőkkel Unix implementációk Identifier = process ID Több ping esetén, mely processzhez, mely csomagok tartoznak Seq.num 0-tól indul 43 Példa - ping host> ping server4 PING server4 (140.252.13.34): 56 data bytes 64 bytes from 140.252.13.34: icmp_seq=0 ttl=255 time=0 ms 64 bytes from 140.252.13.34: icmp_seq=l ttl=255 time=0 ms 64 bytes from 140.252.13.34: icmp_seq=2 ttl=255 time=0 ms 64 bytes from 140.252.13.34: icmp_seq=3 ttl=255 time=0 ms 64 bytes from 140.252.13.34: icmp_seq=4 ttl=255 time=0 ms 64 bytes from 140.252.13.34: icmp_seq=5 ttl=255 time=0 ms 64 bytes from 140.252.13.34: icmp_seq=6 ttl=255 time=0 ms 64 bytes from 140.252.13.34: icmp_seq=7 ttl=255 time=0 ms ^? type interrupt key to stop --- server4 ping statistics --- 8 packets transmitted, 8 packets received, 0% packet loss round-trip min/avg/max = 0/0/0 ms 44 IP opciók használata a Pinggel Ping programmal több opcionális IP szolgáltatás használható: Record Route Timestamp (Strict source routing) (Loose source routing) 45 15
Record Route Az IP csomag útvonalát rögzíti Bebillenti az elküldött IP csomagban az RR opciót Minden útválasztó hozzáadja IP címét az Option mezőhöz A célállomás (ping szerver) a válaszába belemásolja az eredeti címeket Visszaúton ismét hozzáadódnak az útválasztók címei A Ping hoszt a csomag visszaérkezésekor megjeleníti az útvonalat képező címeket 46 RR példa C:\>ping -r 9 qosip.tmit.bme.hu Pinging qosip.tmit.bme.hu [152.66.244.189] with 32 bytes of data: Reply from 152.66.244.189: bytes=32 time=20ms TTL=254 Route: 152.66.244.254 -> 152.66.244.189 -> 152.66.244.189 -> 152.66.246.254 Reply from 152.66.244.189: bytes=32 time<10ms TTL=254 Route: 152.66.244.254 -> 152.66.244.189 -> 152.66.244.189 -> 152.66.246.254 Reply from 152.66.244.189: bytes=32 time<10ms TTL=254 Route: 152.66.244.254 -> 152.66.244.189 -> 152.66.244.189 -> 152.66.246.254 47 RR probléma IP option mező hossza limitált Maximum 9 IP cím fér el az IP csomag option mezőjében Oda-vissza útra kéne elegendőnek lenni ARPANET-en ez még elegendő volt Mai Interneten ez gyakran kevés Helyette Trace-Route! 48 16
Példa - RR probléma C:\>ping -r 9 telin.rug.ac.be Pinging telin.rug.ac.be [157.193.140.25] with 32 bytes of data: Reply from 157.193.140.25: bytes=32 time=60ms TTL=242 Route: 152.66.0.122 -> 152.66.0.125 -> 62.40.103.74 -> 62.40.96.10 -> 62.40.96.1 -> 62.40.96.29 -> 62.40.96.18 -> 62.40.103.13 -> 193.190.197.182 9 cím után betelt az Option mező További információk elvesznek 49 Timestamp (Hasonló a Record Route opcióhoz) Az option mezőbe az érintett útválasztók belehelyezik, hogy a csomagot, mikor kezelték 4 bájtos időbélyeg Éjféltől eltelt idő milliszekundumban Lehetőségek: Csak időbélyeg (max 9) Időbélyeg és IP cím (max 4) Előre megadott (4) IP cím írjon csak időbélyeget 50 Source Routing Ping programhoz megadhatók IP címek csak azokon haladhat keresztül Strict source routing Pontos útvonal megadás Hiba esetén: source route failed üzenet a feladónak melyeken keresztül kell haladnia (többek között) Loose source routing Bármely megadott kettő cím között bármennyi más cím is szerepelhet 51 17
lab Traceroute Távközlési és Médiainformatikai Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Traceroute Az IP Record Route opciójának kiegészítésére 9-nél több hop megjelenítése Traceroute IP TTL mező értékének megfelelő változtatása minden hop-tól érkezzen válasz UDP csomagok küldése a távoli hoszthoz egy biztosan nem élő portjára A címzett végül port unreachable üzenetet küld vissza Ez jelenti az útvonalkeresés végét ICMP csomagok a közbenső hopoktól érkeznek TTL=0 esetén 53 Működés A küldő a csomag TTL értékét 1-re állítja Az első útválasztó time exceeded ICMP üzenetet küld vissza, és eldobja a csomagot A küldő újabb csomagot küld 1-gyel nagyobb a TTL értékkel A 2. útválasztó küldi vissza a time exceeded üzenetet, és dobja a csomagot Folyamat addig tart míg a csomag célba nem ér és a célhoszt port unreachable üzenetet nem küld. (pl. UDP port#33435) A küldő a visszaérkező ICMP üzenetek alapján (folyamatosan) jeleníti meg az útvonalat 54 18
C:\>tracert telin.rug.ac.be Példa - Traceroute Tracing route to telin.rug.ac.be [157.193.140.25] over a maximum of 30 hops: 1 <10 ms <10 ms <10 ms cisco.tmit.bme.hu [152.66.246.254] 2 <10 ms <10 ms <10 ms ge2-4.taz.bme.hu [152.66.0.121] 3 <10 ms <10 ms <10 ms ge2-0.gsr16.vh.hbone.hu [152.66.0.126] 4 <10 ms <10 ms <10 ms hungarnet.hu1.hu.geant.net [62.40.103.73] 5 <10 ms 10 ms 10 ms hu.at1.at.geant.net [62.40.96.9] 6 20 ms 30 ms 20 ms at.ch1.ch.geant.net [62.40.96.2] 7 30 ms 30 ms 30 ms ch.fr1.fr.geant.net [62.40.96.30] 8 40 ms 40 ms 40 ms fr.be1.be.geant.net [62.40.96.17] 9 40 ms 40 ms 41 ms belnet-gw.be1.be.geant.net [62.40.103.14] 10 40 ms 50 ms 40 ms g6-0.c12008.brussels.belnet.net [193.190.197.181] 11 40 ms 50 ms 50 ms pvc1-101.c7206vxr.gent.belnet.net [193.190.61.230] 12 40 ms 51 ms 50 ms rug.customer.gent.belnet.net [193.190.196.213] 13 40 ms 50 ms 50 ms rtr-tech.rug.ac.be [157.193.138.10] 14 40 ms 50 ms 50 ms telin.rug.ac.be [157.193.140.25] 55 Source Routing A Ping programál ismertetett Source Routing opciók Traceroute esetén is használhatók 56 Példa - Strict Source Routing Traceroute, megadott útvonalon westgate-ig sun> traceroute -G netb -G gateway -G gabby westgate traceroute to westgate (192.80.43.2), 30 hops max. 40 byte packets 1 netb (140.252.1.183) 272 ms 257 ms 261 ms 2 gateway (140.252.1.4) 263 ms 259 ms 234 ms 3 gateway (140.252.1.4) 263 ms!s * 235 ms!s Gabby hop-nál a szigorú útvonalmegadás nem teljesült 57 19