6105 Operativsystem og nettverk Leksjon 6b Nettverkslaget: Ruting og ICMP-protokollen Rutere, ruting, videresending og hopp Rutingtabeller Fragmentering av IP-pakker ICMP-protokollen, ping og traceroute Pensum [Hallsteinsen] Kap. 5.7-5.9, 8.2.3 Relevante lenker http://en.wikipedia.org/wiki/routing http://en.wikipedia.org/wiki/internet_control_message_protocol 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 1 Rutere Datamaskin med Minst to nettverkskort (interface) - koblet til hvert sitt IP-nett IP-protokoll installert, men ikke høyere lags protokoller (Rutere med webbasert adminstrasjon vil også ha høyere lag, men de er ikke involvert i rutingen.) Ruterens oppgaver Mottar IP-pakker og tolker felt i IP-hodet estemmer hvilket nett pakken skal sendes ut på Videresender pakken til neste ruter, eller endelig mottaker Flere typer rutere Små hjemmerutere Store kjernenettrutere i Internett Kantrutere kobler lokalnett til internett Vanlige PC er kan konfigureres som rutere» Windows og Linux 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 2 Page 1
Ruting (Routing) Kjerneruter Kjerneruter Klient Kantruter Tjener Kantruter Kjerneruter Kjerneruter Figuren er hentet fra Frode Sørensen: Innføring i nettverk, IDG ooks Rutere finnes beste vei gjennom nettet fram til mottaker este = raskeste, billigste, sikreste... este vei kan endre seg over tid linjer kan endres eller gå ned Rutere må kunne takle slike endringer 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 3 Ruting skjer på lag 3 i OSI modellen Klient Ruter Ruter Tjener Høyere Lag Rutere Høyere Lag Lag 4 Lag 4 Figuren er hentet fra Frode Sørensen: Innføring i nettverk, IDG ooks 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 4 Page 2
Videresending (Forwarding) Rutingtabell Rutingtabell Inn Ut Inn Ut Ruter Vertsmaskin Inn Ut Figuren er hentet fra Frode Sørensen: Innføring i nettverk, IDG ooks Ruting og videresending er to sider av samme sak 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 5 Videresending (Forwarding) Rutere videresender pakker fra nett til nett fram til mottaker Kan være mange nett mellom avsender og mottaker Rutingtabeller styrer hvor pakkene skal videresendes Passering av en ruter kalles et hopp. ntall hopp angir avstand til mottakers nett Feltet Time-To-Live (TTL) i IP-hodet Verdien angir maksimalt antall hopp en pakke kan overleve Hver ruter reduserer TTL-verdien med 1 Hvis TTL-verdien blir 0 kastes pakken Hindrer pakker på villspor i å gå i evig ring i nettet 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 6 Page 3
IP-nett 6 Rutingtabell IP-nett 1 IP-nett 2 IP-nett 3 R4 IP-nett 4 Destinasjon Neste hopp ntall hopp IP-nett 1 1 IP-nett 2 1 IP-nett 3 lokal 0 IP-nett 4 lokal 0 IP-nett 5 lokal 0 IP-nett 6 R5 1 IP-nett 5 R5 Figuren er hentet fra Frode Sørensen: Innføring i nettverk, IDG ooks 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 7 Rutingtabell Sending fra avsender. Hvis mottakeradressen er i samme nett sendes IP-pakken direkte dit. Hvis ikke, sendes IP-pakken til standard gateway (default ruter) ehandling i ruter. Ruter leter etter mottakeradresse i rutingtabellen» Dersom mottaker finnes i tabellen sendes pakken til den tilhørende ruteradressen (next-hop router), eller direkte til mottaker hvis hopp = 0. Hvis ikke, leter ruteren etter nettdelen av mottakeradressen i tabellen» Dersom den finnes, sendes pakken til den tilhørende ruteradressen (next-hop router), eller direkte til mottaker hvis hopp = 0 C. Hvis ikke eller, sendes pakken til ruteren merket default i tabellen» lle pakker med ukjent mottaker sendes dit» ntar at dette er vegen ut til alle andre (ukjente) nett 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 8 Page 4
Rutingtabell i Linux lle maskiner med IP-protokoll har en rutingtabell ikke bare rutere! Vise fast rutingtabell (FI = Forwarding Information ase) for IPv4 (filen /proc/net/route) $ route eller route -F eller route - inet Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 1) default 10.42.42.1 0.0.0.0 UG 0 0 0 eth0 2) 10.42.42.0 * 255.255.255.0 U 0 0 0 eth0 Vise fast rutingtabell med bare adresser $ route -n eller route -n -F eller route -n - inet Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 1) 0.0.0.0 10.42.42.1 0.0.0.0 UG 0 0 0 eth0 2) 10.42.42.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 1) Default rute. Pakker med adresse som ikke matcher andre ruter sendes til default gateway/ruter 2) Eget IP-nett. Destination og Genmask definerer nettadressen og adresseområdet. Pakker med adresse som passer denne ruten, sendes direkte til mottakermaskin. (Ikke via gateway/ruter) Flags: U = Route is up, G = Use gateway, H = Target is a host, C = Cached route Metric angir avstand (i hopp) til målet. rukes i praksis ikke av Linux-kjernen 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 9 Forbindelseløs kommunikasjon IP-pakke Fra: Til: R5 R4 C D Nettverk med rutere Ingen fast forbindelse mellom avsender og mottaker Hver IP-pakke behandles (rutes og videresendes) uavhengig av andre Figuren er hentet fra Frode Sørensen: Innføring i nettverk, IDG ooks 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 10 Page 5
Fragmentering = oppdeling av IP-pakker Fragmentering Reassemblering MTU = 1500 MTU = 4500 MTU = 576 MTU = 1500 Opprinnelig IP-pakke: 1480 bytes data + 20 bytes IP-hode Length = 1500 Ident = n Fragmenter: 368 bytes Length = 388 Ident = n More = 0 Offset = 1112 / 8 = 144 556 bytes Length = 576 Ident = n More = 1 Offset = 556 / 8 = 72 556 bytes Length = 576 Ident = n More = 1 Offset = 0 Figuren er hentet fra Frode Sørensen: Innføring i nettverk, IDG ooks 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 11 Fragmentering MTU-size = Max Transfer Unit size Maksimal pakkestørrelse som lenkelaget (lag 2) kan sende, eks:» Standard Ethernet (IEEE 802.3): ca. 1500 ytes (flere varianter)» WLN (IEEE 802.11): 7 k Kan konfigureres i aksesspunktet med MTU parameteren» WN linjer i Internett kan ha større eller mindre rammestørrelse Problem: Underveis i nettet kan det finnes linje(r) med for liten MTU Eks: Hvis pakken sendes fra et Ethernet og ut på en linje med mindre MTU size Løsning 1: Fragmentering Ruteren deler pakkene opp i flere rammer som sendes separat» Hvert fragment blir en separat IP-pakke og rutes på vanlig måte» Hvert fragment nummererers i IP-hodet Rutere setter ikke sammen fragmentene igjen (reassemblering)» Dette må gjøres av den endelige mottakeren, v.hj.av info i pakkehodet Løsning 2: MTU sjekk Lag 4 protokoller kan sjekke MTU-size på forhånd og tilpasse IP-pakkestørrelsen IPv6 benytter denne teknikken på nettverkslaget 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 12 Page 6
ICMP-protokollen IP-pakke Destination unreachable ICMP Protocol = 1 (ICMP) Del av opprinnelig IP-pakke R5 R4 Figuren er hentet fra Frode Sørensen: Innføring i nettverk, IDG ooks ICMP brukes for å sende kontrollmeldinger i nettet ICMP-pakker pakkes inn med IP-hode og transporteres av IP Likevel regnes vanligvis ICMP som en lag 3 protokoll (ikke lag 4) 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 13 ICMP-protokollen ICMP = Internet Control Message Protocol Transportprotokoll for feilmeldinger og annen kontrollinformasjon i nettet rukes primært av rutere og andre nettkomponenter rukes også for å sende testmeldinger i nettet, f.eks. av ping Definerer et stort antall meldingstyper Mye brukte meldingstyper i ICMP: Type Kode Navn eskrivelse 8 0 Echo Request er om svar fra en maskin (brukes av ping) 0 0 Echo Reply Svarer på Echo Request Timestamp Request Måler tiden ICMP-pakken bruker Timestamp Reply Svarer på Timestamp Request 9 0 Router dvertisement Routere informerer om sin eksistens og adresse 0 1 Destination Host Unreachable Mottakers IP-adresse kan ikke nås 11 0 TTL Expired Time-to-live feltet i en IP-pakke har nådd 0 4 0 Source Quench Metning har oppstått i ruter eller hos mottaker 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 14 Page 7
RTT ICMP og ping Kommandoen ping bruker ICMP-meldinger Sender en Echo Request melding Mottar en Echo Reply melding Eksempel fra : ping - Echo Request TTL=128 Echo Reply Rundetiden (RTT=Round Trip Time) er den tiden det tar å få svar på en ping Dvs. sende en pakke og få svar Måles i millisekunder (ms) Skyldes hovedsakelig forsinkelser (latency) i hver av ruterne på vegen 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 15 ICMP og traceroute Traceroute bruker flere ICMP-meldinger etter hverandre øker begrensning i antall hopp (Time-To-Live) for hver melding Eksempel: traceroute RTT 1 RTT 2 RTT 3 RTT Echo TTL = 1 Time Exceeded Echo TTL = 2 Time Exceeded Echo TTL = 3 Time Exceeded Echo TTL = 4 Echo Reply 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 16 Page 8
Feilsøking i TCP/IP Vanlig problem: Klientprogram klarer ikke å snakke med tjenerprogram Mulig strategi for feilsøking: 1. Sjekk om andre klienter fungerer mot samme tjener. Nei: Trolig et problem på tjener, eller nettverk. Ja ok: Da er det et problem lokalt på din klient 2. Prøv å pinge tjenerens maskin/domenenavn fra din klient. OK svar: Sjekk korrekt konfigurasjon av klientprogramvare (servernavn, portnr o.l.) Hvis du har tilgang til tjenerprogram: Sjekk at det kjører og er korrekt konfigurert (f.eks. lytter på rett portnr). Ikke svar: Prøv å pinge tjenerens IP-adresse. OK svar: Trolig et DNS-problem (tjenernavn kan ikke oversettes til IP-adresse) Kontroller med nslookup tjenernavn Sjekk at klienten har korrekt adresse til DNS-tjener. Mulig feil i DHCP-tjener? Tøm DNS cache (ipconfig /flushdns). Ikke svar: Trolig nettverksproblem Fortsett å feilsøke fra pkt.3 3. Sjekk om klienten er fysisk koblet til lokalnett (kabel / WiFi) 4. Sjekk at klienten har fått IP-adresse (ikke 169. adresse) 5. Kjør traceroute/tracert mot tjenerens IP-adresse Dette vise hvor pakker stopper. Ikke svar fra noen ruter: Sjekk konfigurasjon av default gateway på klient. Sjekk lokal ruter. Svar fra lokal ruter, men ingen andre: Feilsøk / reset lokal ruter og WN linje hvis du kan C. Svar fra lokal ruter og minst èn til: Problemet ligger utenfor ditt lokalnett/ruter D. Svar fra alle rutere, men ikke tjener: Sjekk brannmur og programvare på tjener 6107 Operativsystem og nettverk Jon Kvisli, HSN Nettverkslaget: Ruting og ICMP-protokollen 17 Page 9