Internet ja tietoverkot 2015 Harjoitus 7: Kertaus Tämän harjoituksen tarkoituksena on hieman kerrata TCP/IP-kerrosmallin sovelluskerroksen, kuljetuskerroksen, internet-kerroksen ja siirtoyhteyskerroksen protokollien toimintaa ja ominaisuuksia. Tehtävä 1 Tehtävä 2 Tehtävä 3 Tehtävä 1 Tässä tehtävässä tarkastellaan verkkoliikennettä, jota on kaapattu kuvan 1 esittämän verkon laitteilta. Tiedostot konea.pcapng, koneb.pcapng ja konec.pcapng sisältävät kaapatun verkkoliikenteen. Kaikki kaappaukset on tehty samanaikaisesti ja ne sisältävät verkon liikennettä tiettynä ajanhetkenä, mutta kaapattuna eri puolilta verkkoa. Katso kuvasta 1, missä verkon laitteissa kukin kaappaustiedostoista on tehty. Tiedostot ovat saatavilla Optimasta. Kuva 1: Verkon rakenne ja kaappaustiedostot Viiveet linkeissä Tarkastellessasi kaapattua liikennettä, ota huomioon verkkoviiveet. Esimerkiksi koneelta B koneelle C lähetetty liikenne näkyy kaappaustiedostoissa koneb.pcapng ja konec.pcapng, mutta B:n lähettämät paketit näkyvät tiedostossa konec.pcapng vasta hetkeä myöhemmin kuin tiedostossa koneb.pcapng, sillä pakettien siirtymiseen verkossa ja niiden käsittelyyn isäntäkoneiden siirtoyhteyskerroksessa kuluu pieni hetki aikaa (vähintään välitys- ja etenemisviive).
Koneiden kellot Jos tarkastelet kaappattujen pakettien aikaleimoja UTC-muodossa (tai missä tahansa muussa kuin suhteessa pakettien saapumisajankohtiin), niin huomioi että Koneen-C käyttöjärjestelmän kello on ollut jäljessä koneiden A ja B kelloja. Wireshark määrittää kaapattujen pakettien kaappausajankohdan käyttöjärjestelmän kellon perusteella, joten kaapattujen pakettien UTC esitetystä kaappausajankohdasta ei voi luotettavasti päätellä pakettien todellista lähetysajankohtaa. Jos tarkastelet esimerkiksi koneelta C kaapattua liikennettä, niin näyttää että C:n B:lle lähettämä GET-pyyntö on lähetetty myöhemmin, kuin mitä koneelta B kaapatusta liikenteestä on pääteltävissä. Wireshark pystyy siirtämään jokaisen paketin kaappausajankohtaa (time shift; esim. www.cybersecurityschoolonline.com/2014/08/04/fixing-wireshark-timestamps/ ), jos kaappausten väliset erot UTC-ajassa ovat tiedossa, mutta tässä harjoituksessa voit kuitenkin käyttää pelkkiä pakettien suhteellisia aikoja määrittäessäsi esimerkiksi B:n C:hen yhdistävän linkin viiveitä. Verkon rakenteesta: Koneet A ja B joutuvat liikennöimään Reitittimeen D, Koneen C "läpi". Toisin sanoen, kone C välittää A:lta tai B:ltä D:lle osoitetut paketit käsittelemättä niitä, mutta huomioi että broadcastosoitteella varustetut paketit Kone-C käsittelee. Koneessa C on kolme verkkokorttia (kutsutaan tällä erää nimellä vk1, vk2, vk3), mutta verkkokortit, jotka linkittävät koneen C koneisiin A (vk1) ja B (vk2), ovat ns. sillattuna koneen C wlan-verkkokorttiin (vk3), eikä kyseisillä korteilla (vk1 ja vk2) näin ollen ole MAC tai IP-osoitteita, joten niiden olemassaoloa ei huomaa kaapatusta verkkoliikenteestä. Voit jättää siis huomioimatta verkkokorttien vk1 ja vk2 olemassaolon vastatessasi kysymyksiin verkon laitteiden osoitteista. Laitteilla ajettavia palveluita / ohjelmia: DHCP-palvelin HTTP-palvelin HTTP-asiakas Kysymykset: Laitteiden osoitteet ja laitteiden tarjoamat palvelut A. Selvitä kaapattua verkkoliikennettä tarkastelemalla verkon laitteiden MAC- ja IPosoitteiden linkitykset. Toisin sanoen kerro mikä on minkäkin koneen MAC- ja IP-osoite. (esim. Laite E, aa:bb:cc:dd:ee:ff, 192.168.20.254) B. Päättele kaapatusta verkkoliikenteestä millä koneella ajetaan mitäkin sovelluskerroksen palvelua tai ohjelmaa. (esim. Laite E, DNS-palvelin) Kaappauksessa esiintyvät tapahtumat C. Kerro kaappauksessa esiintyvistä sovelluskerroksen tapahtumista. Ota huomioon että esim. HTTP-tapahtumiin liittyy mahdollinen TCP-yhteyden avaaminen, sekä kaikki ko.tapahtuman HTTP-viestien sisältöä kuljettavat TCP-segmentit. Kysy tarvittaessa lisäohjeita.
Esimerkkejä vastausformaatista (vastaukset eivät ole oikein): Tapahtuma: DHCP DORA-keskustelu #2 Asiakas Palvelin Nähtävillä paketeissa Laite F Laite G koneg.pcapng : paketit #25-#49 konef.pcapng : paketit #16-#30 Tapahtuma: HTTP POST Asiakas Laite H Palvelin Pyyntö Vastaus Nähtävillä paketeissa Laite M HTTP POST (otsikkotiedot paketissa #31) 404 Not Found (otsikkotiedot paketissa #34) koneh.pcapng : paketit #25-#49 konem.pcapng : paketit #16-#30 koneu.pcapng : paketit #16-#30 HTTP-protokolla D. Millä asiakasohjelmistolla (User-Agent) voit HTTP-otsikkotietoja tulkitsemalla olettaa HTTP-pyyntöjä lähetetyn? (KTS. Harjoitus 3, Tehtävä 5, Kysymys C) E. Mihin URL-osoitteeseen pyyntöjä tehdään? F. Mitä resurssia pyydetään HTTP GET-pyynnössä? Minkä nimisen tiedoston voit olettaa palvelimen palauttavan? G. Käytetäänkö kaappauksissa esiintyviä HTTP-pyyntöjen tekemiseen keskeytyvää HTTPyhteyttä? Mistä voit päätellä tämän? H. Tehdäänkö kaappauksessa rinnakkaisia HTTP-pyyntöjä? I. Mitä Internet ja Tietoverkot-kurssiin liittyviä tietoja HTTP POST-pyynnössä lähetetään palvelimelle? Antaako palvelin POST-pyyntöön jotain muuta vastausta kuin HTTPvastauskoodin? J. Miksi HTTP-palvelin lähettää HTTP-viestien otsikkotiedot ja tietosisällön eri TCPsegmenteissä, vaikka TCP-segmentin koko ei ylitä MSS (maximum segment size) arvoa? (Vinkki: HTTP chunked transfer encoding)
TCP-protokolla K. Montako TCP-yhteyttä kaappauksissa muodostetaan? Huomio että sama TCP-yhteys voi esiintyä useissa kaappaustiedostoissa. L. Kaikilla TCP-yhteyksillä on sama MSS-arvo. Kuinka suuri MSS arvo on? M. Millä TCP sekvenssinumeroilla TCP-yhteyksien osapuolet seuraavan kerran liikennöisivät? (esim. Kone-T, seq=1934859857, Kone-W, seq=4034259007) N. Millaisin väliajoin (sekunnin tarkkuudella) TCP-protokollan ns. keepalive -viestejä lähetetään? Kumpi yhteyden osapuolista, yhteyden aloittaja ( asiakas ) vai yhteyden hyväksyjä ( palvelin ), viestejä lähettää? Miksi keepalive -viestejä lähetetään? O. Mihin TCP-porttiin HTTP-palvelimelle lähetetty liikenne on osoitettu? Onko kyseessä ns. standardiportti? Olettaen että noudatetaan standardeja, niin mihin porttiin liikennöitäisiin jos halutaan käyttää salattua HTTPS-yhteyttä? Internet- / verkkokerros P. Kaikilla kuvan 1 verkon linkeillä on sama MTU. Päättele MSS-arvon perusteella kuinka suuri MTU arvo on. Q. Onko kaapatussa verkkoliikenteessä sirpaloituneita IP-datagrammeja? Verkot ja kerrosmalli R. Liikennöikö jokin laitteista ulkoverkkoon? S. Erittele tiedoston konec.pcapng paketin #20, jokaisen TCP/IP-kerrosmallin mukaisen kerroksen datayksikön pituudet (otsikkotiedot ja hyötykuorma erikseen) ja datayksikön nimi. Esimerkki vastausformaatista alla: Kerros Datayksikkö (protocol data unit; PDU) Otsikkotiedot Tietosisältö (payload; hyötykuorma) Sovelluskerros viesti 50 tavua 892 tavua T. Tiedostossa konec.pcapng on nähtävillä 12 kappaletta DHCP-protokollan mukaisia viestejä. Tiedostoissa konea.pcapng ja koneb.pcapng on nähtävillä vain 8 kpl DHCPprotokollan mukaisia viestejä. Miksi koneelta C kaapatussa liikenteessä on enemmän DHCP-viestejä? U. Jos pidetään paketin lähetysajankohtana ja saapumisajankohtana sitä hetkeä kun wireshark kaappaa paketin, niin mikä on koneiden B ja C välisen TCP-yhteyden SYNACK-viestin etenemisaika C:stä B:hen? Huomioi että kyseessä ei nyt ole kiertoviive eli RTT (Round-Trip-Time), vaan paketin etenemiseen B:stä C:hen kulunut aika.
Tehtävä 2 Avaa Wiresharkissa http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip -paketista purettu tiedosto dns-ethereal-trace-1. A. Montako TCP-yhteyttä kaapatussa verkkoliikenteessä muodostetaan? Katkaistaanko kaikki TCP-yhteydet? B. HTTP-yhteyksiä muodostava asiakas pyytää jatkuvaa HTTP-yhteyttä. Käytetäänkö kaapatussa verkkoliikenteessä mielestäsi jatkuvaa HTTP-yhteyttä? Mistä syystä tässä kaappauksessa esiintyvissä HTTP-yhteyksissä käytetään jatkuvaa tai keskeytyvää HTTP-yhteyttä? C. Käytetäänkö kaappauksessa rinnakkaisia HTTP-yhteyksiä? Jos käytetään niin montako yhteyttä on yhtä aikaa aktiivisena (ts. montako pyyntöä odottaa vastausta)? D. Mitä kuvia kaappauksessa pyydetty html-sivu sisältää? E. Miksi ennen ensimmäistä HTTP-yhteyttä tehdään DNS-kysely? Miksi jälkimmäisiä HTTP-yhteyksiä ennen ei tehdä DNS-kyselyjä? Tehtävä 3 Avaa Wiresharkissa http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip -paketista purettu tiedosto http-ethereal-trace-2. A. Mihin URL-osoitteeseen pyyntö tehdään? B. Missä IP-osoitteessa URL-pyynnön identifioima resurssi sijaitsee? C. Kaappauksessa tehdään ARP-kysely. Mitä IP-osoitetta ARP-kysely koskee? Miksi ARPkysely tehdään tähän IP-osoitteeseen eikä siihen missä www-sivu sijaitsee? D. Minkä IP-osoitteen Ethernet-osoitetta (MAC-osoite) et voi kaappauksen perusteella tietää? Miksi?