Dator- och nätverksteknik · område 9 · lektion 44 och 45
Ramen, ARP och ICMP
Pingen skickade två sorters kuvert, och på lektion 43 öppnades bara det ena. Det första var en fråga maskinen behövde ställa innan pingen alls kunde skickas. Den här sidan ger den frågan sitt namn — ARP — och förklarar vad en MAC-adress är, vad ramen bär och varför det är IP-adressen som avgör om mottagaren finns i samma nät. Sedan protokollet som faktiskt är pingen, ICMP, och förklaringen till de tomma raderna från lektion 43. Sist en maskin som finns, som svarar på ARP — och som ändå inte svarar på ping.
1. MAC-adressen
På lektion 43 stod det Ethernet II Header på Layer 2. Den headern bär två adresser, och de är inte IP-adresser.
En MAC-adress — Media Access Control — är ett hårdvaru-ID som sitter i varje nätverkskort från fabriken:
0001.C7A3.5B12
Du hittar den med ipconfig /all i Command Prompt på en PC i Packet Tracer. Raden heter Physical Address.
Packet Tracer skriver den i Ciscos form, tre grupper om fyra tecken: 0001.C7A3.5B12. Windows skriver samma sak som sex grupper om två: 00-01-C7-A3-5B-12.
Två adresser på samma maskin, och de gör olika saker:
| MAC-adress | IP-adress | |
|---|---|---|
| Vem sätter den | Tillverkaren, i nätverkskortet | Du, eller en DHCP-server |
| Vad den pekar ut | Ett nätverkskort | En maskin i ett visst nät |
| Hur långt den räcker | Till nästa enhet på samma länk | Hela vägen till målet |
| OSI-lager | 2 | 3 |
| I postbilden | Namnet på dörrskylten | Gatuadressen |
2. Ramen
Ramen är Layer 2:s kuvert. Fält för fält:
| Mål-MAC | Käll-MAC | Typ | Nyttolast | FCS |
|---|---|---|---|---|
| vem den ska till | vem den kommer från | vad som ligger i | IP-paketet | kontrollsumma |
- Typ säger vad som ligger i nyttolasten — ett IP-paket, eller något annat. Det är så mottagaren vet vilket kuvert den ska öppna härnäst
- FCS — Frame Check Sequence — är en kontrollsumma. Stämmer den inte när ramen kommer fram har något förvanskats på vägen, och ramen kastas
3. ARP
Problemet: maskinen vet mottagarens IP-adress — den skrevs i pingkommandot. Men för att lägga en ram på kabeln behöver den mottagarens MAC-adress. Den har den inte.
ARP — Address Resolution Protocol — löser det i tre steg:
- Frågan, som broadcast: "Vem har
192.168.1.11? Svara till192.168.1.10." Ramen skickas till MAC-adressenFFFF.FFFF.FFFF, som betyder alla på det lokala nätet - Svaret, till en enda: den maskin som äger adressen svarar "Det är jag, min MAC är
0001.C7A3.5B12." Bara den svarar, och svaret går bara till den som frågade - Cachen: frågaren sparar svaret. Nästa paket till samma adress skickas direkt, utan fråga
En broadcast når alla i det lokala nätet. FFFF.FFFF.FFFF ser ut som en felkod, men det är broadcastadressen: alla ettor betyder alla.
Hur långt "det lokala nätet" sträcker sig är en av område 10:s viktigaste frågor.
ARP-kuvertet går ut på varje switchport. Det betyder att alla får frågan. Bara en svarar, och pingen går sedan bara till den.
4. ARP i din kopia
Två kommandon i Packet Tracers Command Prompt: arp -a visar cachen, arp -d tömmer den. Så här kan det se ut när grannen redan finns i cachen:
C:\>arp -a
Internet Address Physical Address Type
192.168.1.11 0001.c7a3.5b12 dynamic
C:\>arp -d
I parets egen kopia:
- Command Prompt på en PC:
arp -a. Skriv upp vad som står arp -d, ocharp -aigen. Tom- Simulation, filter på ARP och ICMP
pingtill en granne, och Capture/Forward steg för steg. Se ARP-kuvertet gå ut till alla maskiner på switchen, och svaret komma tillbaka till en- Öppna ARP-kuvertet. Vart är det adresserat? Skriv upp mål-MAC:en
- Öppna ICMP-kuvertet. Skriv upp käll-IP, mål-IP, käll-MAC och mål-MAC
- Tillbaka i Command Prompt:
arp -a. Grannen finns nu i cachen - Pinga samma granne igen. Kommer något ARP-kuvert?
I fönstret är det två paket med olika innehåll: först frågan om MAC-adressen, sedan pingen. Det är det du ska kunna peka på.
ARP har ingen IP-header runt sig — den ligger direkt i ramen. Titta på vilken Layer-rad Packet Tracer visar den.
Varför kom inget ARP-kuvert andra gången? Kan du svara på det har du förstått cachen.
Syns inget ARP-kuvert ens första gången var cachen redan fylld. Kör arp -d först.
Skärmbilderna av de två kuverten, och arp -a före och efter, är ett bevis till labb 9. ARP är ett av de protokoll som kan räknas till kravet på tre.
5. Samma nät eller annat nät
På lektion 43 stod det IP Header på Layer 3. Den bär käll-IP och mål-IP — adresserna som sattes för hand på lektion 40.
Frågan som avgör allt: hur vet maskinen om mottagaren finns i samma nät? Den jämför nätdelarna, med nätmasken. Samma regel som på lektion 40, nu med förklaringen till varför den spelar roll:
| Mottagaren är… | Maskinen ARP:ar efter… | Ramen går till… |
|---|---|---|
| I samma nät | Mottagarens egen MAC | Mottagaren |
| I ett annat nät | Routerns MAC | Routern, som skickar vidare |
Det är IP-adressen och masken som avgör om mottagaren finns i samma nät. MAC-adressen levererar bara till nästa steg.
I postbilden: gatuadressen avgör om brevet ska till grannen eller till postkontoret. Dörrskylten är bara vad som står på dörren man faktiskt knackar på.
Ramen når switchen. Paketet kan nå en router. Hur switchen väljer port, och hur routern väljer väg, är område 10.
Undrar du redan nu är frågan rätt — den besvaras från den 30 mars.
6. Frågan utan brus
ComputerExplorer → networking → arp — nodens titel är ARP.
Noden visar samma sak som Packet Tracer, utan simulatorns brus: ingen switch, inga andra protokoll — bara frågan och svaret.
- Välj en värd i A vill nå och tryck Skicka ▸. Logg visar broadcasten och svaret
- Titta i A:s ARP-cache. Adressen ligger där
- Skicka till samma värd igen. Nodens förklaring börjar med Cacheträff
- Tryck Töm ARP-cache, och skicka en gång till. Broadcasten kommer tillbaka
ComputerExplorer → networking → ethernet-frame — nodens titel är Ethernet-ram.
Klicka på varje fält i ramen och läs vad det gör. Tryck sedan Vänd en bit i nyttolasten och se FCS-fel — kasta. Ramen kastas utan att någon får veta det, och det är ett lager högre upp som får skicka om. Vilket lager står på transportsidan.
Läs också fältet Typ och leta upp värdet för ARP. Det är det fältet som gör att mottagaren vet att det inte är ett IP-paket.
7. ICMP
Ping — Packet Internet Groper — är kommandot. ICMP — Internet Control Message Protocol — är protokollet det använder.
En lyckad ping består av två meddelanden, och ingenting annat:
| Meddelande | Typ | Vem skickar | Betyder |
|---|---|---|---|
| Echo request | 8 | Den som pingar | Är du där? |
| Echo reply | 0 | Den som pingas | Ja. |
Typen hittar du i PDU-fönstret under Out Layers, på Layer 3, där både IP-headern och ICMP Message Type står.
8. Varför Layer 4 är tomt
På lektion 43 var Layer 4 till 7 tomma för pingkuvertet. Så här ser kuverten ut:
┌─ Layer 2: Ethernet ──────────────────┐
│ ┌─ Layer 3: IP + ICMP typ 8 ─────┐ │
│ │ (inget mer) │ │
│ └────────────────────────────────┘ │
└──────────────────────────────────────┘
ICMP ligger i internetlagret, bredvid IP. Det har inget transportlager ovanför sig och inget portnummer, eftersom det inte är ett protokoll för ett enskilt program.
Det är nätverkets eget protokoll för att rapportera status och fel: är du där, kom inte fram, för långt bort.
På lektion 46 fylls Layer 4. TCP och UDP har portnummer.
9. ICMP-paret i din kopia
arp -dpå den PC som ska pinga, så att hela sekvensen syns- Simulation, filter på ARP och ICMP
pingtill en granne- Capture/Forward tills echo request ligger vid sändaren. Öppna det: Out Layers, Layer 3. Skriv upp typen
- Klicka fram tills echo reply lämnar mottagaren. Öppna det. Skriv upp typen
- Titta i Event List: i vilken ordning kom ARP-frågan, ARP-svaret, echo request och echo reply?
Skriv upp sekvensen:
| # | Protokoll | Från | Till | Typ eller innehåll |
|---|---|---|---|---|
| 1 | ARP | FFFF.FFFF.FFFF | fråga | |
| 2 | ARP | svar | ||
| 3 | ICMP | echo request, typ 8 | ||
| 4 | ICMP | echo reply, typ 0 |
Command Prompt skickar fyra pingar, inte en. Det syns i Event List, och i kommandotolken:
C:\>ping 192.168.1.11
Pinging 192.168.1.11 with 32 bytes of data:
Reply from 192.168.1.11: bytes=32 time<1ms TTL=128
Följ den första hela vägen. De andra tre är likadana, utan ARP.
Vilken Layer-rad står typen på, och varför just där? Letar du efter den på Layer 4 har du missat avsnitt 8.
Skärmbilderna in i rapporten nu: echo request och echo reply, med typen synlig. Det är labb 9:s andra bevis.
10. Maskinen som inte svarar
Tabellen från lektion 41 hade en högerkolumn: vad ett uteblivet svar bevisar. Här prövas den.
Ett uteblivet svar bevisar att maskinen inte svarade på just den frågan — och ingenting mer.
Bygg en maskin som finns men inte svarar på ping. Packet Tracers PC har en egen brandvägg:
- Pinga en maskin i kopian. Svar
- Öppna den maskinens Desktop → Firewall, fliken IPv4 Firewall. Slå på den: Service: On
- Lägg till en regel: Action: Deny, Protocol: ICMP, Remote IP:
0.0.0.0, Remote Wildcard Mask:255.255.255.255. Tryck Add arp -dpå den PC som ska pinga, och pinga igen- Svaret blir
Request timed out.— fyra gånger arp -apå den som pingade. Brandväggsmaskinens MAC-adress står där
ARP-frågan besvarades. Maskinen är påslagen, sitter i nätet och har rätt adress — det var den som svarade "det är jag". Den svarade bara inte på ICMP, eftersom brandväggen säger nej till just det protokollet.
Två protokoll, två svar, samma maskin.
Service: Off igen när du är klar. Står den kvar fungerar inga tjänster på lektion 46.
Blockerar brandväggen i din version också ARP, så att MAC-adressen inte syns i steg 6: kontrollera i stället att länken är grön och adressen rätt. Skriv i så fall ner det — det är också ett resultat.
Ute i verkligheten svarar många servrar inte på ping, med avsikt, men levererar webbsidor och e-post utan problem. En webbserver som inte svarar på ping är inte nere. Den pratar bara inte ICMP med dig.
Pinga en adress som inte finns i kopian. ARP-frågan går ut, men ingen svarar. Vad skiljer det från brandväggsmaskinen?
Pinga din egen adress — lämnar kuvertet ens maskinen? Läs IP-headern under Out Layers och hitta TTL: vad tror du att den är till för? Den kommer tillbaka med traceroute i område 11. Och fundera på varför en administratör stänger av ping på en server — det finns ett säkerhetsskäl, och det är värt att formulera själv.
11. Meningen i rapporten
Skriv en mening i din egen rapport som börjar så här:
Ett uteblivet pingsvar bevisar inte att maskinen är oåtkomlig, eftersom …
En mening som bara upprepar regeln är E-nivå. Meningen ska ha ett eget exempel. Brandväggen i kopian är ett. Webbservern som inte svarar på ping är ett annat.
Gjorde du brandväggen själv: ta en skärmbild av arp -a. Det är ett starkt felsökningsexempel.
Fråga dig också: vad mer hade kunnat bevisa att maskinen fanns, om inte ARP? Svaret är vilket annat protokoll som helst som den svarar på. Det är samma tanke som område 11 bygger felsökning på: pröva flera vägar innan du drar en slutsats.
Brandväggsexemplet är ett samband mellan två protokoll: ARP svarade, ICMP inte. Det är den sortens samband mellan nätverkets delar som A-nivån frågar efter — och en rapport som förklarar varför ARP måste komma före ICMP har redan börjat skriva A-meningen.
12. Vanliga missuppfattningar
10 rader
| Man tror ofta | Men |
|---|---|
| MAC-adress och IP-adress är samma sak | Dörrskylt och gatuadress. MAC till nästa enhet på länken, IP hela vägen |
| MAC-adressen avgör om mottagaren är i samma nät | Det gör IP-adressen och masken. MAC-adressen levererar bara |
| Inget ARP-kuvert betyder att något är fel | Cachen var redan fylld. arp -d först — det är poängen, inte ett fel |
| Broadcasten betyder att alla får pingen | Alla får frågan. Bara en svarar, och pingen går bara till den |
FFFF.FFFF.FFFF är en felkod | Det är broadcastadressen. Alla ettor betyder alla |
| Packet Tracer och Windows visar olika MAC-adresser | Samma adress i två skrivsätt: Ciscos och Windows |
| Ping och ICMP är samma sak | Ping är kommandot. ICMP är protokollet det använder |
| ICMP-typen står på Layer 4 | Den står på Layer 3, med IP-headern. ICMP har inget lager 4 |
| Maskinen med brandväggen är trasig | arp -a visar att den svarade på ARP. Den finns |
| Ett uteblivet pingsvar betyder att maskinen är borta | Det betyder att den inte svarade på just den frågan — och ingenting mer |
13. Ordlista
Ordträning
| Ord | Betyder |
|---|---|
| MAC-adress | Media Access Control — hårdvaru-ID:t i varje nätverkskort, satt från fabriken. OSI-lager 2 |
| Ram | Layer 2:s kuvert: mål-MAC, käll-MAC, typ, nyttolast och FCS |
| Nyttolast | Det ramen bär — oftast ett IP-paket |
| FCS | Frame Check Sequence — ramens kontrollsumma. Stämmer den inte kastas ramen |
| ARP | Address Resolution Protocol — frågar efter MAC-adressen till en känd IP-adress |
| Broadcast | Ett meddelande till alla i det lokala nätet |
| Broadcastadress | FFFF.FFFF.FFFF — MAC-adressen som betyder alla |
| ARP-cache | Där maskinen sparar svaren, så att frågan inte behöver ställas för varje paket. Visas med arp -a |
| IP-header | Layer 3:s kuvert, med käll-IP och mål-IP |
| ICMP | Internet Control Message Protocol — nätverkets eget protokoll för status och fel. Det ping använder |
| Echo request | ICMP typ 8. Pingens fråga: är du där? |
| Echo reply | ICMP typ 0. Pingens svar |
| Brandvägg | Regler för vilken trafik en maskin tar emot. Kan säga nej till ett protokoll men ja till andra |