Dator- och nätverksteknik · område 10 · lektion 50 och 52
Switchen och adresstabellen
Område 9 slutade med en gräns: ramen når switchen — men hur switchen väljer vilken port ramen ska ut på lämnades till det här området. Den här sidan besvarar den halvan av frågan. Switchen lär sig var varje maskin sitter genom att läsa avsändaren i varje ram den tar emot, och skriver upp det i sin MAC-adresstabell. Vet den inte var mottagaren sitter skickar den ramen till alla — och det är inget fel. Sist två switchar i samma nät, som har var sin tabell och inte delar den med varandra, och en tabell som glömmer.
1. Frågan som väntat
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.
Den här sidan tar switchen. Routern kommer på lektion 53, och står på routersidan.
Kom ihåg från lektion 42: en switch är en lager 2-enhet. Den tittar i Ethernet-kuvertet — MAC-adresserna — och bryr sig inte om vad som står i IP-kuvertet inuti.
2. Switchen lär sig av avsändaren
Varje gång en ram kommer in läser switchen ramens käll-MAC, och skriver upp den tillsammans med porten ramen kom in på. Listan kallas MAC-adresstabellen.
Tänk dig en brevbärare som noterar vilken dörr varje avsändare bor bakom — av breven de själva lämnar i lådan. Efter en stund vet hen var alla bor, utan att någon har berättat det.
Sedan läser switchen ramens mål-MAC och slår upp den i tabellen. Vad den gör då beror på vad den hittar.
3. Tre fall
| Mål-MAC i tabellen? | Switchen gör | Kallas |
|---|---|---|
| Ja, på en annan port | Skickar ut på den porten, ingen annan | Vidarebefordran (forwarding) |
| Nej | Skickar ut på alla portar utom den ramen kom in på | Flödning (flooding) |
| Ja, på samma port som ramen kom in på | Kastar ramen — mottagaren har redan fått den | Filtrering |
Det tredje fallet är sällsynt i ett nät med en maskin per port. De två första är de som ska sitta. Tabellen kommer tillbaka resten av området, och på prov 3.
4. Flödning är normalt
Det är vad switchen gör när den inte vet — och den vet aldrig något från början. En switch som just startats flödar nästan allt, och lär sig på några sekunder.
Jämför med hubben från lektion 36. Hubben skickade allt till alla portar, alltid. Switchen gör det bara tills den lärt sig. Det är hela skillnaden, och det är därför switchen ersatte hubben.
5. Tabellen läst rad för rad
Tabellen visas med kommandot show mac address-table i switchens kommandorad. I Packet Tracer: klicka på switchen, fliken CLI, tryck Enter, skriv enable — prompten ska sluta på #, inte > — och sedan kommandot. En rad kan se ut så här:
Switch#show mac address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0001.c7a3.5b12 DYNAMIC Fa0/1
| Kolumn | Betyder |
|---|---|
| Vlan | Vilket VLAN porten tillhör — 1 från början. Kolumnen får andra värden på lektion 55, se VLAN-sidan |
| Mac Address | Avsändaren switchen lärde sig |
| Type | DYNAMIC — inlärd, inte inskriven för hand |
| Ports | Porten avsändaren sågs på |
show mac address-table är Cisco IOS-syntax — det språk Packet Tracers switchar och Ciscos riktiga switchar talar. Andra tillverkare har andra kommandon för samma tabell. Det är tabellen som är kunskapen, inte kommandot.
Två kommandon till behövs på den här sidan: clear mac address-table dynamic tömmer tabellen, och arp -d — på en PC, i Command Prompt — tömmer maskinens ARP-cache, som på lektion 44.
6. Flödningen i din kopia
I parets egen kopia från område 9. Följ ordningen — den spelar roll:
- Realtime: pinga från en maskin till en annan. Kontrollera med
arp -aatt mottagaren finns i cachen - Switchen, CLI:
enable,show mac address-table. Skriv av tabellen clear mac address-table dynamic. Körshow mac address-tableigen. Tom- Simulation, filter på ICMP, och samma ping igen
- Capture/Forward tills echo request når switchen, och ett klick till. Skriv upp vilka portar ramen gick ut på. De maskiner som inte är mottagaren tar emot den och kastar den
- Klicka fram echo reply. Skriv upp vilken enda port svaret gick ut på
- Pinga igen. Vilken port använde nästa förfrågan?
show mac address-tableigen. Skriv av — nu har tabellen rader
Är ARP-cachen tom skickar maskinen först en ARP-fråga, och den är en broadcast. Den flödas också — men av ett annat skäl än det du ska se här. Den här gången ska den första ramen vara en vanlig ram till en mottagare switchen inte känner. Broadcasten är lektion 51:s ämne, och står på broadcastsidan.
Syns ARP ändå som första ram: pinga i Realtime igen och kontrollera med arp -a.
Varför gick svaret bara till en port, när förfrågan gick till alla? Svaret är avsnitt 2: switchen lärde sig frågarens port när förfrågan passerade.
Syns ingen flödning var tabellen redan fylld — töm den med clear mac address-table dynamic före pingen. Tar CLI:n inte emot show mac address-table har du glömt enable.
Ta en skärmbild av flödningen och av tabellen före och efter. Anteckningen är områdets första underlag, och hör hemma i labb 10:s utförandedel.
7. Tabellen medan den fylls
ComputerExplorer → networking → switch-learning — nodens titel är Switch-inlärning.
Noden visar det Packet Tracer visar först i efterhand: tabellen, medan den fylls. Packet Tracer visar rörelsen, noden visar minnet.
- Tryck Återställ (töm tabell). Tabellen säger att switchen inte vet någonting
- Välj A → B under Skicka en ram och tryck Skicka ▸. Logg visar flödningen. Switchens MAC-tabell har fått en rad — vilken?
- Skicka B → A. Ramen vidarebefordras direkt. Nu har tabellen två rader
- Skicka A → B igen. Ingen flödning
Läs nodens förklaring efter varje ram. I vilket steg lärde sig switchen B:s port?
Skicka mellan alla värdar i noden tills flödningen upphört helt, och räkna hur många ramar det tog.
I kopian: flytta en maskins kabel till en annan switchport och pinga igen. Vad händer med tabellen? Porten är inte knuten till maskinen — det sades på lektion 35, och här syns varför det fungerar. Och fundera: en switch med tomt minne flödar allt. Vad liknar den då?
8. Broadcasten över två switchar
På lektion 51 kopplades en andra switch in, med två maskiner på 192.168.<grupp>.20 och .21. Hur det görs står på broadcastsidan. På lektion 52 bevisas att en broadcast når varje port på båda switcharna.
Kontrollera nätet först:
- Länken mellan switcharna är grön i båda ändar
.20och.21har rätt adress och mask,255.255.255.0- Realtime: pinga
.20från en maskin på den första switchen. Svar
Går det inte: korsad kabel, samma nätdel, samma mask. Skriv ner vad som var fel — det är felsökningsavsnittets material.
Sedan fångas broadcasten:
clear mac address-table dynamicpå båda switcharnaarp -dpå en maskin på den första switchen- Simulation, filter på ARP
- Pinga
192.168.<grupp>.20 - Capture/Forward ett steg i taget. På den första switchen går ARP-frågan ut på alla portar utom den den kom in på — också länken till den andra switchen. På den andra switchen går den ut på alla portar utom länken den kom in på
- Skärmbild när frågan har nått alla maskiner på båda switcharna
- Klicka fram svaret. Vart går det?
Fyll i:
| Switch | Frågan kom in på | Frågan gick ut på |
|---|---|---|
| Den första | ||
| Den andra |
Varför gick svaret bara en väg, när frågan gick till alla?
Svaret är lektion 50 och 51 tillsammans: frågan var en broadcast, och en broadcast flödas alltid. Svaret är en vanlig ram till frågaren — och frågaren lärde båda switcharna sin port när frågan passerade.
Tar du skärmbilden för tidigt har frågan inte nått den andra switchen än. Klicka tills alla maskiner fått den.
9. Två switchar, två tabeller
Kör show mac address-table på båda switcharna, och skriv upp tabellerna sida vid sida. Portnumren här är ett exempel — dina kan vara andra:
| Den första switchen | Den andra switchen | ||
|---|---|---|---|
| MAC | Port | MAC | Port |
| frågarens | Fa0/1 | frågarens | Gi0/1 |
.20:s | Gi0/1 | .20:s | Fa0/1 |
Två saker att se:
- Varje switch ser den andra switchens maskiner på länkporten. Den första switchen vet inte att
.20sitter på den andra switchens Fa0/1. Den vet bara att.20finns åt det hållet — ut genom Gi0/1 - Tabellerna är inte likadana. Varje switch lär sig bara av det som passerar dess egna portar. De pratar inte med varandra om vad de vet
Den delas inte. Det är skälet till att det räcker att koppla in en switch till utan att konfigurera något: den lär sig själv, från början, av trafiken.
10. Tabellen glömmer
En rad ligger inte kvar för evigt. Har ingen ram setts från en adress på en stund tas raden bort — på Ciscos switchar efter 300 sekunder, fem minuter. Det kallas åldrande, aging.
Varför? Maskiner flyttas. En bärbar dator kopplas in i en annan port, en maskin stängs av. En tabell som aldrig glömmer skulle till slut peka fel.
Följden: nästa ram till en bortglömd adress flödas igen, tills switchen lär sig porten på nytt. Samma flödning som i avsnitt 4 — nu som något som kan komma tillbaka när som helst, och fortfarande inte ett fel.
Skriv show mac address-table aging-time i switchens CLI. Fungerar kommandot inte i din version av Packet Tracer: töm tabellen med clear mac address-table dynamic. Det är vad fem minuter utan trafik gör.
11. Labb 10:s första underlag
In i labb 10-rapportens utförandedel:
- Skärmbilden av flödningen över båda switcharna
- Tabellen över vilka portar frågan kom in på och gick ut på
- De två MAC-adresstabellerna, sida vid sida
- En mening om varför tabellerna skiljer sig åt
- Anteckningen från lektion 50: flödningen, och tabellen före och efter
Och i planeringsdelen: topologin — två switchar, vilken port som är länken, och vilka maskiner som sitter var.
Planeringen ska vara godkänd av läraren innan lektion 53. På E-nivå stämmer du av under arbetets gång; på C och A planerar du färdigt först och genomför sedan självständigt.
Saknas anteckningen från lektion 50: gör om den nu — tom tabell, ping, tabell. Det tar fem minuter. Hela labben står på labbsidan.
Flytta .20:s kabel till en annan port på den andra switchen och pinga igen. Vad händer med den andra switchens tabell? Och den första?
Pinga från .21 till .20 — båda på den andra switchen — med tömda tabeller. Går frågan över länken till den första switchen? Varför?
Och om de två switcharna hade kopplats ihop med två kablar i stället för en — vad händer med en broadcast? Utan skydd blir det en slinga som aldrig tar slut. Switchar har ett eget protokoll mot det, Spanning Tree, som stänger den ena länken. Kursen går inte djupare, men frågan är värd att ha ställt.
12. Vanliga missuppfattningar
10 rader
| Man tror ofta | Men |
|---|---|
| Switchen skickar till alla, alltså är den trasig | Flödning är normalt när den inte vet. Nästa ram går till en port |
| Switchen lär sig av mottagaren | Av avsändaren. Mottagaren lärs in först när den svarar |
| Den första ramen i ett ping är alltid ICMP | Är ARP-cachen tom är den första ramen en ARP-broadcast. Pinga i Realtime först |
| Ingen flödning syns, alltså fungerar det inte | Tabellen var redan fylld. clear mac address-table dynamic före pingen |
show mac address-table fungerar på alla switchar | Det är Cisco IOS. Andra tillverkare har andra kommandon. Tabellen är kunskapen |
Den första switchen vet att .20 sitter på Fa0/1 | Den ser .20 på länkporten. Bara den andra switchen vet Fa0/1 |
| Broadcasten stannar vid den första switchen | Länken är en port som alla andra. Broadcasten flödas dit också |
| Två ihopkopplade switchar delar tabell | Var sin. De lär sig av sina egna portar |
| En rad i tabellen ligger kvar för alltid | Den glöms efter en stund utan trafik — 300 sekunder hos Cisco |
| Flödningen som kommer tillbaka är ett fel | Normalt. Tabellen glömmer för att maskiner flyttas |
13. Ordlista
Ordträning
| Ord | Betyder |
|---|---|
| MAC-adresstabell | Switchens lista över vilken MAC-adress som setts på vilken port. Byggs av avsändarna |
| Vidarebefordran | Forwarding — ramen skickas ut på den enda port där mottagaren sitter |
| Flödning | Flooding — ramen skickas ut på alla portar utom den den kom in på, eftersom mottagaren är okänd |
| Filtrering | Ramen kastas, eftersom mottagaren sitter på samma port som ramen kom in på |
| Källport | Porten ramen kom in på. Den flödas aldrig tillbaka dit |
| Länkport | Porten som går till en annan switch. Maskinerna på andra sidan syns där |
| Åldrande | Aging — en rad utan trafik tas bort efter en stund, hos Cisco 300 sekunder |
| Cisco IOS | Operativsystemet och kommandospråket i Ciscos switchar och routrar, och i Packet Tracer |
| CLI | Command Line Interface — enhetens kommandorad |
enable | Ger behörighet att läsa och ändra allt. Prompten slutar på # |