Oppgave 1: a) Hva er tjenere, klienter, switcher og routere, og hvilken rolle spiller hver av disse komponentene i nettverkskommunikasjonen? Svarforslag: Tjenere: enheter/verter som leverer tjenester over nettverket. Klienter: enheter/verter som benytter seg av tjenester levert over nettverket. Switcher: Kobler enheter sammen i et subnett. Routere: Kobler forskjellige subnett sammen. Nødvendig for å sende pakker ut av et LAN. b) TCP og UDP er de mest vanlige protokollene i transportlaget. Hvilke tjenester tilbyr UDP? Svar: UDP tilbyr multiplexing over en IP-adresse (porter) og kontroll av nyttelasten (checksum) Hvilke tjenester tilbyr TCP? Svar: samme som UDP, men i tillegg pålitelighet (garantert levering), levering i rekkefølge, flytkontroll (for ikke å sende fortere enn. mottakeren kan ta i mot), metningskontroll (for å dele nettverksressursene med andre datastrømmer. Hvorfor ønsker man noen ganger å bruke UDP til tross for at TCP tilbyr flere tjenester? Svar: Det krever mindre ekstra data for overføring (mindre overhead). Det kan hende man ønsker å bygge sin egen versjon av flytkontroll, mentningskontroll e.l. i applikasjonen. Det at sendetidspunktet ikke styres av metningskontroll, gjør at applikasjonen som sender pakken kan bestemme sendetidspunktet selv (nyttig i f.eks telekonferanse og videostreaming). c) Hva er en MAC-adresse, og på hvilket lag brukes den? En adresse som identifiserer ett nettverksinterface (NIC) som bruker overføringsteknologier som f.eks. Ethernet eller WiFi. Logisk sett opererer en MAC-adresse på linklaget, selv om den ofte er bygget inn i maskinvaren som gjør overføringen. En MAC-adresse gjør at man kan addressere andre maskiner på samme lokale nettverk (LAN). Hva er ARP, og hvorfor trenger vi denne protokollen? ARP gjør at man kan finne ut hvilken IP-adresse (Nettverkslaget) som korresonderer til MAC-adressene i et LAN. Dette gjør at maskinene kan adressere hverandre innefor et LAN ved å bruke IP-adresser. Oppgave 2: IP-adresser IP'en til en maskin er gitt i CIDR-notasjon ved: 192.168.0.165/28 Hva er IP-adressen med hver oktett notert binært? Svar: 11000000.10101000.00000000.10100101 Hva blir nettverksmasken med hver oktett notert binært? Svar: 11111111.11111111.11111111.11110000 For å finne subnettadressen til maskinen må du gjøre en bitvis AND operasjon mellom IP-adressen og nettverksmasken. Hva blir subnettet til maskinen over i CIDR-notasjon? Svar: 192.168.0.160/28 Hvor mange adresser er tilgjengelig til verter i dette subnettet? Svar: 14 For å finne kringkastingsadressen til et subnett, må du gjøre en bitvis OR-operasjon mellom maskinens IP-adresse og bit komplement (bitvis invers) av nettverksmasken. Hva er kringkastingsadressen til subnettet i oppgave 2 a) i CIDR-notasjon? Svar: 192.168.0.175 Hva er NAT, og hvordan fungerer det? Svar: NAT står for «Network Address Translation», og er en metode for å skrive om en IP-adresse til en annen når den passerer en enhet i nettverket. Den benyttes for det meste for å gjøre at man kan gjenbruke IP-adresser i forskjellige lokale nettverk ved å skrive dem om, slik at alle forbindelser med opprinnelse innenfor et NAT-et nettverk ser ut som det kommer fra den samme offentlige IP-adressen sett fra utsiden. Dette gjøres ved at hver forbindelse kobles opp mot et portnummer tilhørende den eksterne IP-adressen. NAT-enheten holder oversikt over hvilke enheter/forbindelse på innsiden av LANet som korresponderer med de forskjellige portnumrene som benyttes utad. Hva er hovedgrunnen til at man forøker å gå over til IPv6? Svar: Man er i ferd med å slippe opp for ledige IP-adresser i Internett med IPv4, selv med den utstrakte bruken av NAT. Dette vil gjøre det mer å mer vanskelig å få muligheten til å benytte offentlig synlige IP-adresser. IPv6 har veldig mange flere adresser (128 bits adresse mot 32 bit i IPv4). Hvorfor er det vanskelig å bytte IP-protokollen? Svar: Alle enhetene som trenger å behandle IP-protokollen på veien mellom avsender og mottaker må ha støtte for IPv6 om ikke leveringen skal mislykkes. Det vil si at for å sette det i global drift er det svært mange enheter som må støtte dette om det ikke skal oppstå mange soner som ikke får levert data. Dette tar lang tid og er krevende. Oppgave 3: DHCP og DNS Hva er DHCP, og hvorfor bruker man denne protokollen? Svar: DHCP står for «Dynamic Host Configuration Protocol» og benyttes for å automatisk tildele IP-adresser til enheter som kobler seg på et lokalt nettverk (LAN). Den brukes fordi det er en omstendelig prosess å skulle manuelt tildele (og formidle) IP-adresser til alle som vil koble seg opp mot nettverket. Automatisering av denne prosessen gjør at de færreste trenger å tenke over dette når de kobler seg opp. Hvorfor er det vanlig å «frigi» en IP-adresse utdelt med DHCP etter en viss tid? Svar: Nettverk med mange enheter som kobler seg av og på over tid vil da kunne gjenbruke IP-adressene til enheter som ikke har vært aktive på en stund. Dette gjør at man ikke trenger et veldig stort subnett med mange IP-adresser som holdes opptatt av enheter som ikke svarer eller som har forlatt nettverket. Hva er et DNS-navn, og hvorfor benytter man dette i tillegg til IP-adresser? Svar: Et DNS-navn er 2 eller flere ord med punktum i mellom som man bruker for å koble opp mot maskiner på internett i stedet for å huske på IP-adressen til maskinen. Vi benytter dette da IP-adresser ikke er særlig menneskevennlig (vanskelig å huske). Det er også flere tjenester som bedre lar seg løse ved å koble navn til IP-adressen, som f.eks aliasing (fler DNS-navn til én IP) og round-robin DNS (samme DNS-navn går på rundgang mellom flere IP-adresser). Hvilken tjeneste utfører en DNS rottjener? Svar: De holder oversikten over hvilke maskiner som har ansvaret for hvert TLD (Top Level Domain). TLDer er det høyeste nivået i DNS-hierarkiet, ordet etter det siste punktumet (f.eks .org, .net, .com, .no). Forklar hva DNS aliasing og round-robin DNS er, og hvorfor man benytter det? Svar: DNS aliasing er når man kobler flere forskjellige DNS-navn til samme IP-adresse. Dette benyttes når man vil at flere forskjellige tjenester skal leveres av den samme fysiske enheten, som f.eks én webserver som leverer hjemmesider til mange bedrifter med forskjellige domenenavn. Round-robin DNS er når det samme DNS-navnet på rundgang peker på forskjellige IP-adresser på en liste. Dette kan benyttes for å spre trafikken på populære tjenester over mange fysiske maskiner, så ingen av maskinene knekker sammen av belastning pga for mye trafikk. Praktiske oppgaver for å bli kjent med noen nyttige nettverksverktøy. P1) Programmene på din datamaskin kan bare sende beskjeder til andre maskiner hvis den kjenner IP adressen til maskinen den skal snakke med. Vi foretrekker å bruke navn i stedet for en IP adresse. Maskinen huldra.uio.no har for eksempel adressen 129.240.2.27 Åpne opp en terminal i Linux og bruk kommandoen “dig” for å finne adresse for navnene. Hva finner du ut hvis du for eksempel kjører "dig ifi.uio.no" og dig "login.ifi.uio.no". Hva med "dig www.microsoft.com". NB- Om du skal kontakte DNS-tjenere utendfor UIO sitt nettverk, blir UDP-oppslag blokkert av UiO på veien ut. Du kan i så fall be programmet dig om å bruke TCP. Dette gjør du ved å legge til opsjonen "+tcp", slik at kommandoen blir f.eks "dig +tcp www.microsoft.com" Verktøyet "dig" kan også gi deg svar på resultatet av oppslaget gjennom hele DNS-hierarkiet. Kjør "dig +trace +tcp www.uio.no". Hvor mange rottjenere er det? Hvor mange tjenere har NORID for TLDen ".no"? Hvor mange navnetjenere rapporterer UiO? P2) "whois" er et verktøy som kan brukes til å slå opp informasjon om hvem som administrerer en IP-adresse eller et domenenavn. Hvem administrerer IP-adressen som ble returnert da du kjørte "dig www.microsoft.com"? Hvem administrerer domenet "microsoft.com"? P3) Når du programmerer på applikasjonslaget bruker vanligvis programmet transportlaget, som igjen bruker lagene under. Kommandoen "traceroute" bruker for å vise stien som pakken bruker fra din datamaskin til destinasjonen. Hvor mange routere er brukt for å sende en pakke til www.ifi.uio.no, www.uio.no, www.ntnu.no, www.kth.se, www.cmu.edu Hvis ikke programmet "traceroute" er installert på din maskin kan du bruke et online verktøy: http://networktools.nl/traceroute/ Finn en maskin på hvert kontinent, og kjør traceroute til dem. Tips: For å finne en maskin på et bestemt sted, kan du forsøke å søke etter et universitet eller en bedrift som hører til på stedet og prøve traceroute til hjemmesidens domenenavn. Bruk verktøyet Traceroute Mapper til å analysere rutene dere har funnet https://stefansundin.github.io/traceroute-mapper/ Bonusoppgave: Kjør kommandoen "traceroute bad.horse" P4) Kjør kommandoen “netstat -t” Hvor mange aktive tcp-forbindelser har maskinen? (for å telle, kan du kjøre “netstat -t | grep ESTABLISHED | wc -l"