123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- ---
- title: Grundlagen des Switching
- toc: yes
- ...
- # Grundbegriffe
- ## OSI-Modell
- Im [OSI-Modell](https://de.wikipedia.org/wiki/OSI-Modell) werden sieben aufeinander aufbauende Schichten (engl. Layer) des Datenaustauschs in Netzwerken unterschieden:
- 1. Bitübertragungsschicht (Physical Layer)
- 2. **Sicherungsschicht (Data Link Layer)**
- 3. Vermittlungsschicht (Network Layer)
- 4. Transportschicht (Transport Layer)
- 5. Sitzungsschicht (Session Layer)
- 6. Darstellungsschicht (Presentation Layer)
- 7. Anwendungsschicht (Application Layer)
- ### IEEE 802 Standards
- Üblicherweise werden in der IT (und daher auch im FF) Produkte verwendet, die für Schicht 1 und 2 Standards des [IEEE 802 LAN/MAN Standards Committee](http://www.ieee802.org/) implementieren. Bei Interesse kann man sich [Standards herunterladen](http://standards.ieee.org/about/get/#get802), unter Angabe einer (plausiblen;) email-Adresse.
- ## Layer 1
- Die Bitübertragungsschicht (engl. Physical Layer) ist die unterste Schicht. Diese Schicht stellt mechanische, elektrische und weitere funktionale Hilfsmittel zur Verfügung, um physische Verbindungen zu aktivieren bzw. zu deaktivieren, sie aufrechtzuerhalten und Bits darüber zu übertragen.
- Hardware auf dieser Schicht: Repeater, **Hubs**, Leitungen, Stecker, u. a.
- Protokolle und Normen: V.24, V.28, X.21, RS 232, RS 422, RS 423, RS 499
- ## Layer 2
- Die Datensicherungsschicht (engl. Data Link Layer oder Layer 2) ist zuständig für den unverfälschten Datentransport über einen einzelnen Übermittlungsabschnitt.
- Es gibt verschiedene Layer 2 Protokolle, z.B. PPP, Token Ring, **Ethernet**, FDDI, ATM.
- Wir beschäftigen uns nur mit den FF-relevanten [IEEE 802 Standards](https://de.wikipedia.org/wiki/IEEE_802): 802.1 (Bridging), 802.3 (Ethernet) und 802.11 (WLAN).
- Die Ethernet-Standards spezifizieren sowohl Schicht 1 als auch Schicht 2. Mehr zu Ethernet auf Schicht 2 [siehe unten](#ethernet).
- Ein Layer 2 Protokoll ermöglicht den Austausch von Daten zwischen Geräten, die an das selbe Übertragungsmedium (Layer 1) angeschlossen sind. Diese Geräte bilden ein unmittelbares Layer 2 Netzwerk, genannt **Netzwerksegment**. Eine **Bridge** verbindet mehrere Netzwerksegmente so miteinander, dass alle Geräte auch mit den Geräten der anderen Netzwerksegmente Daten austauschen können (und zwar mit dem gleichen Layer 2 Protokoll wie innerhalb ihres jeweiligen Segments). Ein vermitteltes Layer 2 Netzwerk nennen wir alle [zusammenhängenden](https://de.wikipedia.org/wiki/Zusammenhang_(Graphentheorie)) Bridges sowie alle Geräte, die über Verbindungen zu diesen Bridges Daten austauschen können.
- Mit anderen Worten: Netzwerksegmente, die über Bridges miteinander verbunden sind, bilden ein Layer 2 Netzwerk.
- Hardware auf dieser Schicht: Bridge, **Switch** (Multiport MAC-Bridge)
- Protokolle und Normen: HDLC, SDLC, DDCMP, IEEE 802.2 (LLC), RLC, PDCP, ARP, RARP, **STP**, Shortest Path Bridging
- ## Layer 2 <-> Layer 3
- Ein Layer 3 Protokoll ermöglicht den Austausch von Daten zwischen Geräten aus verschiedenen Layer 2 Netzwerken. Das für uns relevante Layer 3 Protokoll ist das Internet Protocol in den Varianten IPv4 und IPv6. Dabei entspricht typischerweise ein Layer 2 Netzwerk einem Layer 3 Subnetz, wobei die (dynamische) Zuordnung von IP-Adressen zu MAC-Adressen über Protokolle (ARP, NDP) hergestellt wird. Diese Zuordnung ist erforderlich, um ein Layer 3 Paket an das (von Layer 3 gewünschte) Ziel über ein Layer 2 Netzwerk zu tranportieren. Eine Komponente, die eine Verbindung zwischen verschiedenen Layer 3 Subnetzen herstellt, heißt **Router**.
- Der IP-Adressraum (Layer 3) ist im Gegensatz zum globalen [MAC-Adressraum](#mac-adresse) (Layer 2) hierarchisch in Subnetze (von Subnetzen etc.) strukturierbar. Nur so lässt sich die globale Erreichbarkeit von Geräten in einem (Layer 3) Netzwerk praktisch realisieren (Internet). Die Grenzen der Skalierbarkeit von Layer 2 Netzen kann man sich zB im FF-DO ansehen, der mehr als 2000 Geräte gleichzeitig zu einem (sic!) Layer 2 Netzwerk (mit WAN-Latenz (sic!)) verbindet.
- Hardware auf Layer 3: Router, BRouter, Layer-3-Switch
- Protokolle und Normen auf Layer 3: X.25, ISO 8208, ISO 8473 (CLNP), ISO 9542 (ESIS), **IP**, IPsec, ICMP
- Nachdem wir nun die Schichten des Referenzmodells betrachtet haben, wenden wir uns nun den relevanten Layer 2 Protokollen zu.
- # Ethernet
- Das **Ethernet-Protokoll** umfasst sowohl
- - Layer 1 (10/100/1000/... Mbit/s über elektrische/optische Medien) als auch
- - Layer 2.
- Wir betrachten es hier nur bezogen auf Layer 2.
- ## Frame-Format
- Einen Datenblock, der auf Layer 2 als Einheit übertragen wird, nennen wir **Frame** ("Rahmen"). Ein Ethernet-Frame hat folgendes Format:
-  (Hier die Grafik als [SVG](https://upload.wikimedia.org/wikipedia/commons/a/aa/Ethernetpaket.svg).)
- Details s. [IEEE 802.3 Tagged MAC Frame](https://de.wikipedia.org/wiki/Ethernet#IEEE_802.3_Tagged_MAC_Frame). Der in der Grafik als "Daten" gekennzeichnete Bereich enthält typischerweise den Datenblock eines Layer 3 Protokolls. Den Datenblock eines Layer 3 Protokolls nennen wir Packet ("Paket"), und nicht Frame.
- Merksatz: Ein Layer 2 Frame rahmt die Nutzdaten (von Layer 3) ein, um sie gesichert in einem Layer 2 Netzwerk zu übertragen. S. [Encapsulation](https://de.wikipedia.org/wiki/Datenkapselung_(Netzwerktechnik)).
- Die Sicherung geschieht mit Hilfe der **Prüfsumme** am Ende des Frames, mit der ein Empfänger Fehler (des Layer 1) bei der Übertragung des Frames erkennen kann.
- Übrigens: Auch auf Layer 1 nennt man einen Datenblock "Paket" - das kann verwirren:-) Richtig formuliert ist zB folgender Satz: Dieses Ethernet-Paket (Layer 1) enthält einen Ethernet-Frame (Layer 2), dieser wiederum enthält ein IP-Paket (Layer 3).
- ## MAC-Adresse
- Jedes Gerät, welches in einem Ethernet Daten austauschen will, benötigt hierfür eine eindeutige Kennung, die sog. [MAC-Adresse](https://de.wikipedia.org/wiki/MAC-Adresse). Diese besteht aus 48 Bit = 6 Byte. Wichtig genug zum Merken:
- - **Bit 0** des ersten Adressbytes gibt an, ob
- - diese Adresse die eines einzelnen Gerätes ist (Bit 0 = 0), oder ob
- - eine Gruppe von Geräten adressiert werden (Bit 0 = 1). Dies wird für Broadcast und Multicast verwendet.
- - **Bit 1** des ersten Adressbytes gibt an, ob
- - diese Adresse global eindeutig ist (Bit 1 = 0), oder ob
- - die Eindeutigkeit nur lokal (durch geeignete Administration) sichergestellt ist (Bit 1 = 1).
- - Für global eindeutige Adressen gibt es beim IEEE ein [Zentralregister](http://standards.ieee.org/regauth/oui/index.shtml), mit dem sich der Hersteller eines Netzwerkinterfaces herausfinden lässt, was bisweilen beim Problemlösen im Netzwerk hilft. (Gibt's auch als [Textdatei](https://standards.ieee.org/develop/regauth/oui/oui.txt) zwecks offline durchsuchen.)
- ### Übung
- - Finde die MAC-Adresse (der Netzwerkschnittstelle) Deines Computers heraus und untersuche sie gemäß der obigen drei Punkte.
- - Tue dies auch für die (diversen;) MAC-Adressen (D)eines FF-Routers.
- # Switching
- Mit Switch bezeichnet man eine transparente MAC-Bridge mit mehreren Ports (Schnittstellen). Oder einfacher: ein Switch verbindet mehrere Layer 2 Netzwerksegmente zu einem Layer 2 Netzwerk.
- ## Das Funktionsprinzip eines Switches
- 1. Ein empfangener Frame mit falschem Format oder falscher Prüfsumme wird verworfen.
- 2. Ein empfangener Frame wird niemals über den Port weitergeleitet, auf dem er empfangen wurde.
- 3. Die MAC-Absendeadresse eines korrekten Frames wird zusammen mit dem Port, auf dem der Frame empfangen wurde, in einer Tabelle gespeichert (source address table).
- 4. Ist die MAC-Zieladresse des empfangenen Frames in dieser Tabelle enthalten, so wird der Frame über den Port weitergeleitet, der mit der MAC-Zieladresse gespeichert ist (Ausnahme s. 2.).
- 5. Ist die MAC-Zieladresse des empfangenen Frames unbekannt, also nicht in der source address table gespeichert, wird der Frame an alle Ports weitergeleitet (Ausnahme s. 2.). Das gilt auch für Broadcast-Frames.
- ## Erste eigene Schritte mit einem konfigurierbaren Switch
- - Handbuch herunterladen
- TL-SG2008: [alle Dokumente](http://www.tp-link.de/download/TL-SG2008.html) -> [User Guide](http://static.tp-link.com/resources/document/TL-SG2008_V1_UG.pdf), [Command Line Interface Guide](http://static.tp-link.com/resources/document/TL-SG2008_V1_CLI.pdf)
- TL-SG2216: [alle Dokumente](http://www.tp-link.de/download/TL-SG2216.html) -> [User Guide](http://static.tp-link.com/resources/document/TL-SG2216_V2_UG.pdf), [Command Line Interface Guide](http://static.tp-link.com/resources/document/TL-SG2216_V2_CLI.pdf)
- - Ggf. Switch auf Fabrikeinstellungen zurücksetzen
- -> Switch mit Strom versorgen, Reset-Taste für 5 Sekunden gedrückt halten
- - Eigenen Rechner mit dem Switch verbinden.
- - Eigenen Rechner so konfigurieren, dass er im gleichen IP-Subnetz liegt wie der Switch.
- <code>sudo ifconfig eth0 192.168.0.108 netmask 255.255.255.0</code>
- - Erreichbarkeit des Switches prüfen.
- <code>ping 192.168.0.1</code>
- - Auf dem Switch einloggen (telnet, ssh, http/s).<br>
- <code>telnet 192.168.0.1<br>
- User:admin<br>
- Password:admin<br></code>
- - Alle im aktuellen Modus verfügbaren Kommandos anzeigen lassen<br>
- <code>?</code>
- - Administratorrechte auf dem Switch bekommen.<br>
- <code>enable</code>
- - Systeminfos anzeigen, u.a. Firmware-Version.<br>
- <code>show system-info</code>
- - Konfiguration des Switches anzeigen lassen.<br>
- <code>show running-config</code>
- Sollte die telnet session mal nicht mehr reagieren, kann man sie wie folgt beenden, ohne gleich die ganze Konsole schließen zu müssen:
- - Session beenden: "CTRL-]" bzw. "CTRL-AltGr-]"
- - Neue session starten: <code>open 192.168.0.1</code>
- - Alternativ kann telnet auch beendet werden: <code>quit</code> bzw. "CTRL-D"
- ### Übungen
- - MAC-Adresstabelle (source address table) anzeigen
- <code>show mac address-table all</code>
- Sie zeigt dir, welches Gerät über welchen Port des Switches erreichbar ist.
- - Hostname ändern<br>
- <code>configure<br>hostname Test5</code>
- - IP-Adresse des Switches ändern und anschliessend neu verbinden<br>
- <code>interface vlan 1<br>
- ip address 192.168.0.5 255.255.255.0<br>
- telnet 192.168.0.5</code>
- - Aktuelle config sichern<br>
- <code>enable<br>
- copy running-config startup-config</code>
- ## STP (erforderlich bei redundanten Verkabelungen)
- Warum Redundanz? Falls eine Verbindung oder ein Gerät ausfällt, können über eine redundante Verbindung dennoch Daten über den weiterhin funktionierenden Teil des Netzwerkes transportiert werden. Redundanz ist also nicht unbedingt das Ergebnis einer schlechten Netzwerktopologie, sondern kann gewollt sein.
- ### Übung (Netzwerkkollaps bei Redundanz)
- - Switches miteinander verbinden
- - mit den Laptops ping auf einen oder mehrere Switches laufen lassen (zB mit Audiofeedback: ping -a bzw. -A. CTRL-C wenn dadurch Psychoeffekte entstehen;-)
- - "Dreieck" in die Verkabelung zwischen den Switches einbauen (sodass 3 Switches einen **Kreis** bilden)
- - beobachten, was passiert (Aktivitätslämpchen an den Switches, ping, tcpdump)
- - das "Dreieck" durch Kabelziehen wieder auflösen!-)
- ### Das Schleifenproblem auf Layer 2
- Wenn die Verkabelung zwischen den Switches einen Kreis ergibt, nennen wir die Ports eines Switches, die auf dem Kreis liegen, "Kreis-Ports". Es tritt folgendes Phänomen auf: ein Broadcast-Frame, der von einem der Switches empfangen wurde, wird gemäß Switch-Regel Nr. 5 ([s.o.](#das-funktionsprinzip-eines-switches)) an alle anderen Ports weitergeleitet, also auch an (mindestens) einen "Kreis-Port". Der Nachbar-Switch auf dem Kreis, der diesen Broadcast-Frame empfängt, leitet ihn wiederum an den übernächsten Switch auf dem Kreis weiter. Schließlich erreicht dieser Frame wieder den ersten beteiligten Switch und die Runde beginnt von vorne - ad infinitum. Switch-Regel Nr. 2 wurde dabei beachtet: Empfangs- und Sende-Port für den Frame sind bei jedem der Switches auf dem Kreis verschieden.
- **Das Layer 2 Netzwerk wird durch eine Schleife praktisch unbrauchbar** - der Effekt muss also unbedingt vermieden werden!
- Bei IP (Layer 3) ist das Schleifenproblem dadurch begrenzt, dass jedes Paket einen Zähler enthält, der beim Durchgang des Pakets durch einen Router heruntergesetzt wird. Ist der Zähler bei 0 angelangt, wird das Paket verworfen. Dadurch ist eine Layer 3 Schleife bei IP immer endlich. Ethernet-Frames (Layer 2) hingegen werden beim Durchgang durch einen Switch nicht verändert, können also unendlich kreisen.
- Zur Verhinderung des Problems auf Layer 2 dient das Spanning Tree Protocol (STP). Dessen Grundidee besteht darin, nur solche Verbindungen zwischen den Switches zu nutzen, die einen [Baum](https://de.wikipedia.org/wiki/Baum_(Graphentheorie)) bilden - alle anderen (d.h. redundanten) Verbindungen werden nicht (für Nutz-Frames) verwendet. STP funktioniert grob so (Folgendes nur bei Interesse oder akutem Bedarf lesen):
- 1. Die Switches (die hier als Bridges fungieren) senden über jeden aktiven Port regelmäßig (default: alle 2 Sekunden) STP-Frames aus. Nutz-Frames werden (noch) nicht weitergeleitet.
- 2. Durch das Protokoll wird ermittelt
- - die eindeutige Root-Bridge, das ist diejenige Bridge im Layer 2 Netzerk mit dem niedrigsten (konfigurierten) Prioritätswert und der kleinsten MAC-Adresse.
- - der kürzeste Pfad von jeder Bridge zur Root-Bridge.
- 3. Eine Bridge, die nicht selbst die Root-Bridge ist, aktiviert jetzt die folgenden Ports für Empfang und Weiterleitung von Nutz-Frames:
- - den ersten Port, über den die kürzeste Verbindung zur Root-Bridge verläuft,
- - den jeweils ersten Port in Netzwerksegmente, in denen diese Bridge die kürzeste Verbindung zur Root-Brige hat (unter allen Bridges in diesem Netzwerksegment).
- D.h. Ports, durch die keine kürzesten Verbindungen zur Root-Brigde verlaufen, bleiben für Nutztraffic abgeschaltet. Es resultiert eine Baumstruktur der genutzten Verbindungen und daher Schleifenfreiheit.
- RSTP verbessert insb. bei den heute üblichen Point-to-Point Verbindungen (Voll-Duplex, nur 2 Geräte bzw. Bridges in einem Netzwerksegment) die Konvergenzzeit nach einer Topologieänderung (zB durch Verbindungsausfall, Geräteausfall, Konfigurationsänderung, neue Verbindung etc.) erheblich gegenüber STP (RSTP = Rapid STP). Daher folgender
- Merksatz: in produktiven Layer 2 Netzen, die STP benötigen, nur solche Bridges/Switches verwenden, die **mindestens RSTP** können.
- In den TL-SG2008 (und aufwärts) sind 3 STP-Verfahren im Switch implementiert, (a) **STP**, (b) **RSTP** und (c) **MSTP**, die Hierarchie ist aufsteigend (a), (b), (c), sie sind abwärtskompatibel. MSTP wird erst dann relevant, wenn wir VLANs benutzen ([s.u.](#mstp-redundanz-ohne-linkabschaltung)).
- ### Übung (kein Netzwerkkollaps dank STP)
- - Switches miteinander verbinden (ohne Schleifen)
- - Auf jedem Switch RSTP einschalten
- Beispiel:
- Test5#configure
- Test5(config)#spanning-tree mode rstp
- Test5(config)#spanning-tree
- Test5(config)#show spanning-tree active
- Spanning tree is enabled
- Spanning-tree's mode: RSTP (802.1w Rapid Spanning Tree Protocol)
- Latest topology change time: 2006-01-01 08:00:00
- Root Bridge
- Priority : 32768
- Address : f4-f2-6d-7d-c1-39
- Local bridge is the root bridge
- Designated Bridge
- Priority : 32768
- Address : f4-f2-6d-7d-c1-39
- Local Bridge
- Priority : 32768
- Address : f4-f2-6d-7d-c1-39
- Test5(config)#interface range gigabitEthernet 1/0/1-8
- (bei 16 port Switches entsprechend 1/0/1-16 verwenden)
- Test5(config-if-range)#spanning-tree
- Test5(config-if-range)#exit
- Test5(config)#exit
- Test5#show spanning-tree active
- - Weiter wie in der ersten "Kollaps-Übung", d.h. Kreis (z.B. "Dreieck") herstellen und beobachten.
- - Mit `show spanning-tree active` auf allen Switches ermitteln, wie der von (R)STP gebildete Baum aussieht.
- - Topologie verändern (Verbindungen zwischen Switches trennen, neue herstellen), jeweils den resultierenden Baum ermitteln.
- - Andere Root-Bridge (durch Konfiguration der STP-Priorität) bestimmen, Baum ermitteln.
- Durch Abzählen verlorener PING-Pakete kann die bei den obigen Änderungen jeweils benötigte RSTP-Konvergenzzeit gemessen werden.
- ## 2 oder mehrere FF-Router über eine VPN anbinden
- ## VLANs erstellen und schachteln
- # TBD (nächster (3.) Termin: Mittwoch 30.08.17, Hörde, 19 Uhr [Café Aufbruch](/Community/Projekte/Cafe_Aufbruch))
- ## VLANs (getrennte Layer 2 Netze auf einer Infrastruktur)
- ## MSTP (Redundanz ohne Linkabschaltung)
- ## Nutzungsbeispiele für Switching
- - [Flüchlingsunterkunft](/Community/Projekte/Braunschweiger_31-33) und andere [Standorte am Richtfunknetz](/Technik/Richtfunk/Standorte/). "Echte" Switchkonfigurationen aus diesem Richtfunknetz gibt's im Ordner [Gerätekonfiguration](Geraetekonfiguration/).
|