6107 Operativsystemer og nettverk Labøving 6ab TCP/IP-verktøy og IPv4-protokollen Introduksjon Øvingen er skrevet for Linux, men vil også fungere fra Mac OSX eller Windows. Kommandoene som brukes finnes i alle OSene, men opsjoner og outputformat kan variere noe. Resultatene vil bli noe annerledes hvis du kjører dem hjemme eller i HiTs WiFi nett i stedet for i labnettet på 2-115. Noen av oppgavene forutsetter at WireShark er installert. Se: http://www.wireshark.org/download.html Oppgave 1: Bruk av nslookup (repetisjon) Kommandoen nslookup bruker DNS for å finne IP-adresser fra maskinnavn etter omvendt. Bruk nslookup for å svare på følgende: 1. Hvilken IP-adresse har www.datakom.no? Hvilken DNS-server ga deg svaret? 2. Hvilket maskinnavn hører til IP-adressen 128.39.198.39? Oppgave 2: Bruk av traceroute Programmet traceroute viser hvilken vei IP-pakker tar gjennom nettverket fram til en mottaker. Programmet ligger i pakken traceroute som må installeres: sudo apt-get install traceroute Programmet brukes slik: traceroute maskinnavn eller: traceroute IP-adresse traceroute uten opsjoner gir informasjon om alle opsjoner 1. Bruk ping for å finne IP-adressen til maskinnavnet www.hit.no Hvilket annet maskinnavn har denne maskinen? 2. Bruk traceroute for å finne hvilke rutere en IP-pakke må passere fra din maskin til maskinen www.hit.no? DNS-navn IP-adresse 1
3. Bruk traceroute og finn ut hvor mange ruterhopp er det mellom din maskin og webtjeneren www.berkeley.edu? Hvor mange millisekunder (ms) bruker en IP-pakke tur/retur til denne maskinen? (Dette kalles RTT Round-Trip-Time eller «ping-tiden») Hvilket annet maskinnavn har denne maskinen? Hvorfor starter denne listene med den samme IP-adressen som i pkt. 2.? Hvilket maskin / nettverkskomponent tilhører denne adressen? I listen finner du ruteren bo-gw3.uninett.no (hvis du sitter i HiTs nett). Denne ruteren er plassert i HiTs nett, men administreres av Uninett og tilhører derfor deres domene. Hvilken oppgave/rolle tror du denne ruteren har i HiTs nett? Hvilken av ruterne i listen ser ut til å være den "siste" som ligger i Norge? Maskinnavn IP-adresse Oppgave 3: Bruk av route Linux kommandoen route viser alle nettverksgrensenitt (interfaces) og innholdet i den lokale rutingtabellen på maskinen. Alle maskiner med IP-protokollen installert vil inneholde en rutingtabell som viser rute til de nettene den kjenner, samt en default rute. Det er altså ikke bare rutere som har rutingtabeller! 1. Kjør kommandoen route for å vise alt innhold i den faste rutingtabellen. Hvor mange ruter finnes i rutingtabellen? 2. Se under Kernel IP routing table. Kollonnene i tabellen har følgende betydning: Destination Gateway Genmask Nettverksadressen til et kjent IP-nett, dvs. et IP-nett som kan nås. IP-adressen til den maskinen/ruteren som IP-nettet kan nås via. Nettverksmasken til IP-nettet (destination). 2
Flags Metric Iface U=route is Up, G=use Gateway Et tall som sier noe om avstanden til destination-nettet, vanligvis målt i antall hop. Det lokale nettverkskortet (interfacet) som pakker vil bli sendt via. 3. Se på første linje i tabellen Hvilken verdi har kollonnen Destination her? Hvilken verdi har kollonnen Gateway i denne linjen? Hvilken verdi har kollonnen Interface i denne linjen? Hva tror du denne linjen betyr? 4. Finn linjen med nettverksadressen for lab-nettet (10.42.42.0) som Destination. Hvilken verdi har kollonnen Gateway i denne linjen? Hva tror du denne verdien betyr? Hvorfor har dette nettverket ikke samme gateway-verdi som i pkt.3 Hvorfor har kollonnen Iface den samme verdien i begge linjene? 5. Lag en ny statisk rute manuelt i rutingtabellen med denne kommandoen: sudo route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.42.42.1 dev enp0s25 (eller bruk det devicenavnet du har på nettkortet ditt.) (Ruten er "dummy" og har ingen effekt siden ruteren med adresse 10.42.42.1 ikke vil rute private IP-adresser.) 6. Kjør kommandoen route på nytt og se effekten av kommandoen i rutingtabellen. 7. Fjern ruten du la inn manuelt med kommandoen sudo route del -net 10.0.0.0 netmask 255.255.255.0 gw 10.42.42.1 dev eth0 8. Sjekk at ruten er borte fra rutingtabellen. På klient- og tjenermaskiner blir routingtabellen vanligvis bygget opp ved oppstart basert på nettverkskonfigurasjonen. I rutere må nettverksadministrator i mange tilfeller bygge opp rutingtabellen manuelt som en del av ruterkonfigurasjonen. 3
Oppgave 4: Flere IPv4-adresser på samme nettkort i Linux 1. Bruk kommandoen ifconfig for å gi Linux serveren en IP-adresse som er 30 "lavere" enn den originale adressen. 2. Bruk ping fra Windows for å sjekke at maskinen svarer på den nye adressen. Hva skjer hvis du pinger den originale adressen? Endring av IP-adresse med ifconfig er ikke permanent. Da må du endre konfigurasjonsfilen /etc/network/interfaces. Denne filen leses ved oppstart/omstart av interfacet. 3. Rediger /etc/network/interfaces og legg til en ny (ekstra) statisk IP-adresse for maskinens nettkort (eth0, enp0s25 e.l.). Den nye IP-adressen skal være 30 "lavere" enn den opprinnelige adressen. (maskinen skal får begge adressene). 4. Restart nettverket med sudo service networking restart (eller reboot maskinen). 5. Test at både ny og gammel IP-adresse svarer på ping fra Windows-maskinen. 6. Vises begge adressene med ifconfig kommandoen? 7. Sjekk om Apache webserver fungerer med begge IP-adressene. (Slå opp begge adressene i nettleser fra Windows.) Oppgave 5: Analyse av IP-pakkehode med Wireshark 1. Start Wireshark, kommandovindu og en webleser (men ikke Chrome) på Windows maskinen 2. Kjør Command prompt (Admin) og tøm det lokale DNS-klient cachebufferet med ipconfig /flushdns i Windows. 3. Bruk Wireshark og gjør en pakkefangst mens du slår opp websiden www.hit.no. 4. Filtrer pakkene i WireShark slik at den bare viser IP pakker til/fra IP-adressen til www.hit.no (filter: ip == IP-adresse). Hvilke høyere lags protokoller har sendt IP-pakker (Se kollonnen Protocol i pakkelisten? 5. Marker én av HTTP pakkene og åpne pakkens IP-hode i midtre del av vinduet. Hvilken IP-versjon hører pakken til? Hvor mange bytes er IP-hodet på? Hva er total lengde på hele IP-pakken? 4
Hva TTL verdien for IP-pakken? Hva betyr denne verdien? Hva er verdien i feltet Protocol? Hvordan skal denne verdien tolkes? Hva er avsenders IP-adresse? og mottaker IP-adresse? 6. Filtrer pakkelisten slik at den viser dns-pakker (til/fra alle IP-adresser) og marker en av dem. Hvor mange bytes er IP-hodet på i denne pakken? Hvor lang er hele IP-pakken? Hvorfor er denne IP-pakken så mye kortere enn pakken i pkt. 5? Hva er verdien i feltet Protocol? Hvordan tolker du denne verdien? Hva er avsenders IP-adresse? og mottaker IP-adresse? Oppgave 6: Analyse av ICMP-trafikk fra ping 1. Bruk WireShark for å fange pakker mens du kjører en ping fra Windows-maskinen mot adressen www.uninett.no. Hvor mange svar (reply) gir ping i kommandvinduet? Hva er IP-adressen til www.uninett.no? Bruk nslookup for å finne maskinnavnet (hostnavnet) til denne maskinen i DNS. 2. Filtrer pakkene i WireShark slik at kun ICMP-pakker vises (filter icmp). Hvor mange utgående ICMP-pakker (ECHO ping request) ble sendt? Hvor mange ICMP-pakker (ECHO ping reply) ble mottatt? 3. Finn første utgående ICMP-pakke (ECHO ping request) fra klienten. Hva er avsenders IP-adresse i IP-hodet? Hva er mottakers IP-adresse i IP-hodet? Hvilken IP-versjon er IP-pakken? 5
Hvilken verdi har feltet protokoll i IP-hodet? Er noen av bitflaggene (Flags) i IP-pakken satt? Hvilken verdi har feltene Type og Code i ICMP-hodet? 4. Finn første innkommende ICMP-pakke tilbake til klienten. Hva er avsenders IP-adresse i denne IP-pakken? Hva er mottakers IP-adresse i denne IP-pakken? Hvilken verdi har feltet time-to-live (TTL) i IP-hodet? Hvorfor er denne forskjellig fra TTL i pkt. 3? Hvilken verdi har Type og Code feltene i ICMP-hodet nå? Hva slags type ICMP-melding dreier det seg om? 5. Bruk ping (ping /? i Windows) og finn ut hvordan du kan endre antall ICMP echo requests som skal sendes av ping kommandoen. Skriv en slik ping kommando som bare sender 2 ICMP echo requests: Oppgave 7: Analyse av ICMP-trafikk fra tracert 1. Gjør en ny pakkefangst i WireShark mens du kjører kommandoen tracert www.uninett.no i Windows. Pass på at kommandoen blir helt ferdig før du stanser pakkefangsten! 2. Filtrér de innsamlede pakkene slik at kun pakker fra ICMP protokollen vises. 3. Finn første utgående ICMP-pakke fra klienten. Hva er mottakers IP-adresse i IP-hodet? Hvilken verdi har type feltet i ICMP-hodet? Hva slags type ICMP-pakke er dette? Hvilken verdi har feltet time-to-live (TTL) i IP-hodet? Hva betyr denne verdien? Hvorfor står det (no response found!) bakerst i kollonnen Info? 4. Finn første innkommende ICMP-pakken til klienten. Hva er avsenders IP-adresse i IP-hodet? Hvorfor er denne forskjellig fra mottakeradressen i den forrige IP-pakken? 6
Hvilken maskin / nettverkskomponent er det som har svart? Hvilken verdi har type feltet i ICMP-hodet? Hva slags type ICMP-pakke er dette? Forsøk å forklare innholdet i resten av ICMP-pakken? 5. Studér resten av de utgående ICMP-pakkene fra klienten Hvordan endres feltet time-to-live (TTL) i pakkene? Endrer mottakers IP-adresse seg i pakkene? Hva er den høyeste TTL-verdien du finner i de utgående ICMP pakkene? Forklar det du ser? 6. Studér resten av de innkommende ICMP-pakkene til klienten Endrer avsenders IP-adresse seg i pakkene? Forklar dette? 7. Finn den siste innkommende ICMP-pakken til klienten Hva er avsenders IP-adresse i denne pakken? Hvilken maskin er dette? Oppgave 8: Feilsøking i IP-nettverk Før du gjør denne øvingen bør du ha lest Kyle & Hill kapittel 11.3 Network Troubleshooting. 1. Start en nettleser i Windows og slå opp adressen http://www.jonkvisli.com 2. Du vil få en feilmelding i nettleseren 3. Bruk Linux-maskinen og følg feilsøkings strategien for nettverk i Kyle & Hill kapittel 11.3 Network Troubleshooting. 4. Forsøk å identifiser hvor feilen ligger og hva den skyldes. Noter hva du gjør og resultatene i hvert trinn nedenfor: 7
5. Slå opp adressen http://home.hit.no/~kvisli/6107/ 6. Du vil få en feilmelding i nettleseren denne gangen også 7. Gjenta feilsøkings strategien og forsøk å identifiser hvor feilen ligger denne gangen, og hva den skyldes. Noter hva du gjør og resultatene i hvert trinn nedenfor: 8