6107 Operativsystemer og nettverk Labøving 6c IP versjon 6 Oppgave 1 IPv6 kommandoer i Linux Ubuntu Server har en Linux kjerne som er IPv6 kompatibel. Distribusjonen har også en del ipv6 verktøy ferdig installert. 1. Hvis Linux-kjernen har støtte for IPv6 skal filen /proc/net/if_inet6 finnes på maskinen. Sjekk dette. Filen vil inneholde de IPv6 adresser som maskinen evt. har nå. Les mer om filen her. 2. Bruk ifconfig kommandoen på Linux maskinen og svar på følgende: Hva er IPv6 adressen til Linux maskinen? Hvor mange 1-er bit er det i IPv6 nettmasken til maskinen? Hvilket scope har denne IPv6-adressen? 3. Bruk også denne kommandoen for å se maskinens IPv6 adresse: sudo ip -6 addr show dev eth0 (bruk devicenavn for ditt nettkort) 4. Bruk ifconfig kommandoen og gi maskinen en ekstra IPv6 adresse: fc00::xx/64, der xx er gruppenummeret ditt. 5. Bruk ifconfig kommandoen og sjekk at den nye IPv6 adressen er registrert. Hvilket scope har denne IPv6-adressen? Hvor lang er nettverksdelen av denne IP-adressen? Hvor mange mulige IPv6 adresser er det i dette nettet? 6. Bruk ping6 kommandoen og sjekk at du får pinget følgende adresser: Den nye IPv6 adressen til din egen Linux maskin Adressen ::1 Hvilken adresse/maskin er dette? IPv6 adressen til Linux maskinen hos en av de andre gruppene. IPv6 adressen ruteren i labnettet: fc00::1 7. Kjør Linux kommandoen: ping6 I enp0s25 ff02::1 (bruk evt. devicenavn for ditt nettkort) IPv6 adressen ff02::1 er den link-lokale multicastadressen, som tilsvarer kringkastingsadressen i IPv4. Det betyr at ping-pakkene er adressert til alle maskiner i det lokale nettet. Du vil se at du får svar fra alle maskiner med IPv6 nettet. 8. Fjern IPv6 adressen med kommandoen: ifconfig <interface> inet6 del <ipv6address>/<prefixlength> 1
Oppgave 2 IPv6 konfigurasjon i filen /etc/network/interfaces 1. Rediger konfigurasjonsfilen /etc/network/interfaces slik at Linux maskinen får statisk IPv6 adresse fc00::xx/64 (der xx er gruppenummeret ditt) hver gang den starter. Bruk fc00::1 som default gateway (Ruteren i lab-nettet har denne IPv6-adressen på «LANsiden». Ikke legg inn dns-navnetjenere for IPv6 (DNS over IPv6 fungerer ikke før ruteren kan rute IPv6 ut av LANet) 2. Restarte nettverket med sudo service networking restart (eller reboot maskinen). 3. Bruk ifconfig og sjekk at maskinen har fått riktig IPv6-adresse. Hvor mange andre IPv6 adresser har den? Hvorfor? 4. Sjekk at du fremdeles kan pinge IPv6 adressen til ruteren (fc00::1). 5. DNS-tjeneren i labnettet inneholder IPv6 adresser for hostnavn i nettet. Den svarer foreløpig bare på oppslag via IPv4, men kan selvsagt gi ut IPv6 adresser likevel. Bruk disse to kommandoene for å finne IPv6 adressen til noen av maskinene i labnettet: nslookup -query=aaaa maskinnavn dig maskinnavn AAAA (dig finnes bare i Linux, ikke Windows) 6. Bruk kommandoene over for å finne IPv6 adressen til www.google.com og www.vg.no Grunnen til at dette også fungerer er at DNS-oppslagene gjøres med IPv4 protokollen selv om du spør etter IPv6 adresser. Det er mulig å tvinge dig til å gjøre oppslaget via IPv6 med opsjonen -6. Dette vil ikke fungere i lab-nettet fordi DNS-tjeneren ikke er satt opp til å svare på IPv6 (fordi den ikke kan nå andre DNS-tjenere via IPv6 så lenge ruteren ikke ruter IPv6) 7. Siden DNS-tjeneren kan svare med IPv6 adresser kan du nå bruke ping6 mot disse maskinnavnene: Hostnavnet til serveren din: linuxserverxx.nettlab.hit.no Hostnavnet til serveren til en av de andre labgruppene. Hostnavnet til Windows DNS-tjeneren i labnettet: dc1.nettlab.hit.no Hostnavnet til ruteren i labnettet: gw1.nettlab.hit.no NAT-ruteren på datanettlaben ruter ikke IPv6 ennå, så du vil ikke kunne pinge maskiner utenfor labnettet med IPv6. 8. Restart maskinen (sudo reboot now) og sjekk at den får samme IPv6 adresse etter restart. 2
Oppgave 3 IPv6 konfigurasjon i Windows 1. I Windows skal IPv6 være aktivert som default. Sjekk dette under egenskaper for nettverkskortet. 2. Marker linjen for IPv6 og klikk knappen Egenskaper (Properties) 3. La innstillingene stå på automatisk tildeling. Windows-serveren i labnettet er deler ut IPv6 adresser automatisk med DHCPv6. Du vil automatisk få en IPadresse i området fc00::100 - fc00::17f. Hvis du gjør øvingen i ditt eget nettverk uten DHCPv6, kan du i stedet gi Windows maskinen statisk IPv6 adresse f.eks. ping -med denne konfigurasjonen: IPv6 addresse: fc00:1xx, der xx er gruppenr (altså 100 + gruppenr) Subnet prefix length: 64 Default gateway: fc00::1 (eller din ruter) Preferred DNS server: 2001:700:2100:1f::39 4. Start kommandovinduet og kjør kommandoen: ipconfig /all Hvor mange IPv6 adresser har maskinen totalt? 5. Bruk -6 opsjonen på ping og sjekk at du får pinget Linux-serverens IPv6 adresse fra Windows: ping -6 ipv6-adresse Sjekk også at du får pinget ruteren på fc00::1 6. Sjekk at DNS-klienten klarer å resolve navn til IPv6 adresser ved å pinge: Servernavnet til Linux-serveren din Navnet på ruteren i labnettet: gw1.nettlab.hit.no I Linux kan du fange /vise pakker med kommandoen tcpdump 7. Bruk Linux-tjeneren og skriv kommandoen: sudo tcpdump -t -n -i enp0s25 -s 512 -vv ip6 or proto ipv6 Dette starter tcpdump som venter på å fange IPv6 pakker 8. Ping Linux-tjeneren med IPv6 fra Windows og følg med hva som skjer på tjeneren 9. Avslutt tcpdump med CTRL-C 3
Oppgave 4: SSH, SFTP og HTTP over IPv6-protokollen 1. SSH over IPv6 Kjør følgende kommando på Linux maskinen: sudo netstat -atn Sjekk at maskinen lytter på TCP-port 22 over IPv6 (tcp6) Start putty på Windows maskinen Lag en ny sesjon i putty der du bruker IPv6 adressen til Linux tjeneren din. IPv6 adresser må skrives i [ ] f.eks. [fc00::99]. Test pålogging til Linux med IPv6 adressen fra putty. Kjør sudo netstat -ant på nytt på Linux maskinen Finn TCP-forbindelsen som putty bruker 2. SFTP over IPv6 Hvilken tilstand har forbindelsen? Hvordan ser du at forbindelsen bruker IPv6? Start FileZilla og bruk Site Manager for å lage en ny SFTP-kobling mot IPv6 adressen til Linux serveren [fc00::xx]: Test at du får koblet deg til og overført filer 3. Kjør sudo netstat -ant på nytt på Linux maskinen Hvor mange etablerte TCP-forbindelser over IPv6 finnes nå? Hva er det som «skiller» forbindelsene fra hverandre? 4. HTTP over IPv6 mot webtjener Bruk en webleser på Windows-maskinen og slå opp adressen http://[fc00::5] (Dette er IPv6-adressen til MS-IIS-webtjener i labnettet) Hva skjer? IPv6 adresser skal altså skrives i [ ] også i i nettleseren. 4
5. HTTP over IPv6 mot Apache Kontroller at Apache webtjeneren din er konfigurert til å lytte på port 80 på alle IP-adresser: I /etc/apache2/ports.conf: Listen 80 I /etc/apache2/sites-available/000-default.conf: <VirtualHost *:80> Korriger konfigurasjonen hvis den ikke er riktig. Kjør sudo netstat -tan og sjekk at maskinen lytter på TCP-port 80 over IPv6 og IPv4. Forsøk å slå opp Apache webtjeneren din fra Windows med IPv6 adressen til Linux tjeneren., f.eks. http://[fc00::99] Kjør følgende kommando på Linux maskinen: sudo netstat -ant Finn TCP-forbindelsen som webleseren og Apache bruker Hvilket portnr har forbindelsen på tjenersiden? Hvilket IP-adresse har forbindelsen på tjenersiden? Hvilken tilstand har forbindelsen? Kjør følgende kommando på Windows maskinen: netstat -an -p tcpv6 Finn igjen TCP-forbindelsen som webleseren og Apache bruker her 6. IPv6 konfigurasjon i Apache Modifiser Apache webtjeneren slik at den bare svarer på maskinens IPv6 adresse (og ikke på IPv4): I /etc/apache2/ports.conf: Listen [fc00::xx]:80 Test at dette virker, dvs. at webtjeneren bare svarer på IPv6 adressen Sett konfigurasjonen tilbake slik at IPv4 også fungerer. Oppgave 5: Studere IPv6 pakker med WireShark 1. Start en nettleser på Windows maskinen. Slett nettleserens historikk/logg/nettleserdata. 2. Start Wireshark og gjør en pakkefangst mens du slår opp din egen webtjener med maskinens IPv6- adresse, f.eks. http://[fc00::99]. 3. Filtrer pakkene i WireShark slik at kun IPv6 pakker vises, men ikke ICMPv6. Tips: Bruk filter ipv6 &&!icmpv6. Hvor mange TCP-oppkoblinger (3-veis håndtrykk) finner du i pakkelisten? Hvor mange TCP-nedkoblinger finner du i pakkelisten? Forklar dette 5
Hvilken IP-adresse er avsender for den første TCP-pakken? Og hvilken IP-adresse er mottaker for denne TCP-pakken? 4. Finn pakken med (første) HTTP-GET forespørselen. Hva er avsenders IP-adresse for pakken? Hva er mottakers IP-adresse for pakken? 5. Åpne IP-hodet i denne pakken. Hva er verdien i feltet Version? Hvor mange bytes i pakken er nyttelast (payload)? Ser du noe felt som angir total lengde på hele IP-pakken? Hva er verdien i feltet Next Header? Hvordan tolker du denne verdien? Hva verdien i feltet Hop Limit? Hva betyr denne verdien? Hvilket felt i IPv4_hodet tilsvarer dette feltet? 6. Ta en kikk på pakkehodene for TCP og HTTP i denne pakken. Legg merke til at disse har samme format og innhold som om pakken hadde vært sendt med IPv4! Dette er noe av fordelen/styrken med den lagdelte nettverksmodellen! Vi kan bytte ut protokollen på ett lag uten at det skal påvirke de andre lagene. Slutt på øvingen 6