![]() |
Huomaa! Tämä mallivastaus on viitteellinen. Vastaukset eivät välttämättä ole täysin kattavia, mutta suuntaa-antavia kuitenkin. Lisäksi tässä on korostettu vain niitä asioita jotka arvostelussa olivat tärkeitä. Joskus mallivastauksiin on myös hiipinyt virhe, jos huomaat sellaisen, ilmoita toki kurssin assareille.
Luokka: B
Desimaalisena: 130.217.203.31
Binäärisenä: 1000 0010 1101 1001 1100 1011 0001 1111
Verkko-osuus (ensimmäiset 26 bittiä) 128.214.205.128
Koneosuus viimeiset 6 bittiä (128.214.128-128.214.205.191)
Yllämainitussa B-luokan verkossa voi teoriassa olla 2**10 aliverkkoa (26-16=10 bittiä aliverkolle). Koneosoitteita on 2**6=64, joista varataan vielä ainakin verkolle ja broadcastille omat, joten maksimi 62.
Ensimmäiset kaksi ovat samassa aliverkossa, toiset kaksi eri.
Broadcast: koneosan bitit ykkösiä
Local broadcast: kaikki bitit ykkösiä, leviää vain omassa verkossa
Loopback: käytetään kohdeosoitteena, ei mene verkkoon (vaan oman
koneen protokollapinolle)
0.0.0.0: Käytetään vain lähdeosoitteena, yleensä silloin kun ei
tiedetä omaa osoitetta
Mikä tahansa perusteltu mielipide hyväksyttiin.
Arp näyttää tietokoneen ARP-cachen sisällön, jossa säilytetään
taulukkoa oman aliverkon koneiden IP- ja MAC-osoitteista.
Esimerkiksi:
alpha ~ 52 % /usr/sbin/arp -a chi.hut.fi (130.233.4.24) at 00-00-f8-40-b7-0e sentraali.hut.fi (130.233.224.37) at 08-00-2b-e2-95-14 gamma.hut.fi (130.233.224.52) at 08-00-2b-32-b8-15 pulteri.hut.fi (130.233.224.104) at 00-90-27-1b-79-f8 stale finger.hut.fi (130.233.224.30) at 08-00-2b-96-5d-5f rho.hut.fi (130.233.224.23) at 08-00-2b-9c-e3-9e psi.hut.fi (130.233.4.25) at 00-00-f8-40-b7-c8 ns1.hut.fi (130.233.224.1) at 08-00-2b-e2-95-14 hutnet-sw.hut.fi (130.233.227.254) at 00-e0-34-9c-6c-0a nftp.hut.fi (130.233.224.9) at 00-90-27-09-46-4d sigma.hut.fi (130.233.224.24) at 08-00-2b-96-5d-5f korppu-f.hut.fi (130.233.4.26) at 00-00-f8-40-b7-0e lerppu-f.hut.fi (130.233.4.27) at 00-00-f8-40-b7-c8 beta.hut.fi (130.233.224.51) at 08-00-2b-31-ba-9a moppe.hut.fi (130.233.224.29) at 00-50-8b-b0-0c-f6 stale alpha ~ 53 %
ARPissa toimii broadcasteilla siten, että laite jonka tarvitsee saada selville jonkin toisen koneen MAC-osoite lähettää koko aliverkolle broadcast-kyselyn joka sisältää kohdekoneen IP-osoitteen. Tämän jälkeen kohdekone lähettää oman MAC-osoitteensa vastaukseksi. Samalla kaikki muutkin aliverkon koneet poimivat kohdekoneen IP-osoitteen ja MAC-osoitteen omaan ARP-tauluunsa talteen.
Ongelma piilee siinä että ARP-kyselyyn vastaavaa konetta ei autentikoida mitenkään, jolloin vihamielinen taho voi yrittää vastata kyselyyn ennen oikeaa konetta ja näin saada aliverkon koneet lähettämään oikealle vastaanottajalle tarkoitetut paketit hyökkääjälle.
Esimerkiksi DHCP pystyy hoitamaan kaikki RARP:n tehtävät. DHCP kykenee välittämään verkkoon liittyvälle koneelle huomattavasti kattavammat alkutiedot (esimerkiksi verkon reitittimen osoitteen) kuin RARP. Lisäksi DHCP voidaan toteuttaa sovelluksena.
MTU (Maximum Transfer Unit) kertoo suurimman mahdollisen paketin koon jonka siirtotie pystyy välittämään. MTU:ta suuremmat paketit on pilkottava (fragmentoitava) useampaan osaan.
Esimerkiksi:
kosh ~ 54 % /usr/sbin/netstat -in
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
tu0 1500 08:00:2b:c4:5b:a7 449142053 0 385453320 3 0
tu0 1500 130.233.228/26 130.233.228.10 449142053 0 385453320 3 0
tu1 1500 08:00:2b:c5:8b:8d 206254573 0 162947291 4 0
tu1 1500 130.233.248/24 130.233.248.10 206254573 0 162947291 4 0
sl0* 296 0 0 0 0 0
lo0 4096 83771488 0 83771488 0 0
lo0 4096 127/8 127.0.0.1 83771488 0 83771488 0 0
ppp0* 1500 0 0 0 0 0
Koshin loopbackin MTU on 4096
IP:n MTU ATM:n päällä on 9180 (Comer 18.10), joten 1400 tavun paketti siirtyy sellaisenaan ja 10000 tavun paketti fragmentoidaan kahteen osaan.
Strict source route määrittelee jokaisen reitittimen jonka kautta paketin on vain ja ainoastaan kuljettava määränpäähänsä.
Loose source route määrittelee joukon reitittimiä joiden kautta paketin on kuljettava, eli määrittelee osan reittiä.
Source routeilla voidaan diagnosoida reititystä ja estää paketin kulku jonkun tietyn organisaation hallinnoiman aliverkon halki. Haittana on mahdollisuus että joku määritellyistä reitittimistä ei olekaan toiminnassa ja paketteja ei voida toimittaa varayhteyttä pitkin perille.
SLIP (Serial Line Interface Protocol) ja PPP (Point to Point Protocol).
PPP on SLIPiä uudempi ja monin tavoin parempi protokolla. PPP ei ensinnäkään SLIPin tavoin ole sidottu vain TCP/IP-liikenteeseen vaan muutkin siirtoprotokollat käyvät. PPP yhteydellä voidaan soittajakoneen IP-osoite neuvotella dynaamisesti ja PPP sisältää valinnaisen autentikoinnin. PPP sisältää virheentunnistuksen on virallinen standardi.
Runkoverkossa käytetään PoS- (Packet over Sonet/SDH) ja ATM-tekniikoita. Verkkoon voi liittyä myös Ethernet-tekniikalla. Suurimmat PoS-tekniikalla käytettävät nopeudet ovat STM16-tasoa (2,5Gbit/s).
ICMP denial-of-service-hyökkäyksillä on onnistuttu kaatamaan monet huonosti ohjelmoidut TCP/IP-pinot ja jotkut verkkoylläpitäjät yrittävät suojata koneitaan suodattamalla kaikki ICMP viestit verkon palomuurilla. Toinen syy suodatukseen on verkon koneiden statuksien kyselemisen estäminen ping- ja traceroute-ohjelmilla.
Jos kaikki ICMP-liikenne filtteröidään, työasemat eivät kuitenkaan kykene vastaanottamaan verkko-ongelmistakaan, kuten liian isosta MTUsta, kohdekoneen toimimattomuudesta tai vääristä osoitteista, kertovia ICMP-viestejä. Näin ollen koneen käytettävyys kärsii ja koneen käyttäjä voi olla ihmeissään verkon "takkuilusta".
Tietokoneen näkyvyyteen verkossa ICMP-viestien suodatus vähentää tavallisen tietokoneenkäyttäjän mahdollisuutta selvittää koneiden olemassaoloa. Erilaiset stealth-skannerit löytävät kyllä verkon koneet ilman ICMP:täkin.
#define TIME_EX 11 typedef IPaddr int; struct icmp_struct{ IPaddr source; int icmp_type }; typedef struct icmp_struct my_icmp; void sendpacket(IPaddr dest, int ttl); my_icmp * receivepacket();HUOM! Tarkoitus ei ole toteuttaa toimivaa ohjelmaa, vain hahmotella tracerouten toimintaa algoritminomaisesti.
Tämän tehtävän tarkoituksena oli pistää opiskelijat muistelemaan miten se ohjelmointi tapahtuikaan. Samalla tarkistettiin että opiskelijat tuntevat sellaiset ohjelmoinnin peruselementit kuten silmukka ja ehtolause.
3 pisteen vastaus sisälsi jotain ohjelmakoodin rakenteeseen viittaavaa tekstiä, vähintään yhden silmukan, lähetä/vastaanota-kutsun ja jonkin tulostusmenetelmän.
4 pisteen vastaus ei sisällä triviaaleja ohjelmavirheitä kuten ohjelman päätymistä loputtomaan silmukkaan (=huonot ehdot) jos esimerkiksi kohdekone ei vastaa ym.
5 pisteen vastaus on jo potentiaalisesti toteutettavissa ja sisältää mahdollisesti jotain ylimääräistä minimivaatimuksiin nähden.
Alla on yksi mahdollinen koodinpätkä (lukemattomista
vaihtoehdoista) jossa esiintyvät tarvittavat perusasiat:
DEFINE time_exceeded 66
DEFINE max_hops 255
for (i=0; i<maxhops; i++) {
sendpacket(destination, i);
if ((tmp = receivepacket)->icmp_type == 'time_exceeded')
break;
print("%d", tmp->source);
}