123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469 |
- ---
- format: markdown
- title: Grundlagen des Switching
- toc: yes
- categories: Hintergrundinfos HOWTO
- ...
- # 1 Einleitung
- Die Grundlagen des Switching sollte man kennen, wenn es um den Aufbau und Betrieb von Netzwerken geht, deren Komplexität so weit über das Einstöpseln von Endgeräten in einen DSL-Router hinausgeht, dass konfigurierbare Switches genutzt werden müssen. Im Freifunk tritt das zB dann auf, wenn der FF bestehende oder neu aufzubauende Hausverkabelungen und/oder Richtfunkstrecken mitnutzen will, insb. für Mesh-on-LAN.
- Die Vorteile eines konfigurierbaren geswitchten Netzwerks sind:
- - Datenströme werden nach ihren Funktionen getrennt (Übersichtlichkeit, Sicherheit).
- - Datenleitungen werden sinnvoller ausgenutzt (Vermeidung von Installationsaufwand).
- - Konfigurierbare Switches erleichtern (Fern-)Wartung und Fehlerbehebung (Vermeidung von Nervenschwund beim technischen "Personal").
- Den Vorteilen steht natürlich der Aufwand gegenüber, den man zum Erlernen der Konzepte und ihrer praktischen Anwendung braucht. Der Sinn des folgenden Textes besteht zunächst darin, den Lernaufwand durch die knappe Darstellung der wichtigsten Konzepte einerseits und die praktischen Übungen andererseits möglichst gering zu halten. Darüber hinaus kann er zum Nachschlagen von Begriffen und konkreten Konfigurationen genutzt werden.
- # 1.1 Die Workshops
- Der Text ist für und durch eine Workshop-Reihe entstanden, die ein halbes Dutzend Freifunker im Sommer 2017 an fünf Abenden im Café Aufbruch in Dortmund durchgeführt haben. Diese Art der Wissensvermittlung können wir (zB anderen FF-Communities) wärmstens empfehlen, incl. folgender Hinweise:
- - Das Andocken der Workshops an ein konkretes Projekt, für das ein Layer 2 Netzwerk entwickelt wird, kann als Motivation und Übungsumgebung hilfreich sein.
- - Eine Person sollte den Stoff für den anstehenden Workshop bereits "drauf haben", incl. Übungen.
- - Ein Satz konfigurierbarer Switches (mindestens drei, wenn möglich einer pro Person) sollte über die gesamte Workshop-Reihe zur Verfügung stehen. Dann kann man ihre Konfiguration von Workshop zu Workshop aufbauen, muss also nicht immer mit den factory settings anfangen (wie beim ersten Termin).
- - Zu Anfang sollten alle TeilnehmerInnen (und ihre Laptops:) arbeitsfähig werden, d.h.
- - die manuelle IP-Konfiguration des Ethernet-Interfaces darf nicht durch einen Klicki-Bunti-Netzwerkmanager o.dgl. wieder überschrieben werden. Solche Netzwerkmanager abschalten oder notfalls (zeitweise) deinstallieren!
- - die relevanten Utilities sollten installiert sein: ping, traceroute, arp, telnet, ssh, tcpdump, tftpd.
- - der Umgang mit IP-Konfiguration, Shell und Utilities sollte eingeübt sein bzw. werden.
- # 2 Grundbegriffe
- ## 2.1 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)
- ### 2.1.1 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.
- ## 2.2 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
- ## 2.3 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
- ## 2.4 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.
- # 3 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.
- ## 3.1 Frame-Format
- Einen Datenblock, der auf Layer 2 als Einheit übertragen wird, nennen wir **Frame** ("Rahmen"). Ein Ethernet-Frame hat folgendes Format:
- ![Ethernet Frame-Format](/img/1000px-Ethernetpaket.svg.png) (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).
- ## 3.2 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.)
- ### 3.2.1 Übung (MAC-Adressen)
- - 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.
- # 4 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.
- ## 4.1 Das Funktionsprinzip eines Switches - Regeln 1-5
- 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.
- ## 4.2 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.
- `sudo ifconfig eth0 192.168.0.108 netmask 255.255.255.0`
- - Erreichbarkeit des Switches prüfen.
- `ping 192.168.0.1`
- - Auf dem Switch einloggen (telnet, ssh, http/s).
- `telnet 192.168.0.1`
- `User:admin`
- `Password:admin`
- - Alle im aktuellen Modus verfügbaren Kommandos anzeigen lassen
- `?`
- - Administratorrechte auf dem Switch bekommen.
- `enable`
- - Systeminfos anzeigen, u.a. Firmware-Version.
- `show system-info`
- - Konfiguration des Switches anzeigen lassen.
- `show running-config`
- 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: `open 192.168.0.1`
- - Alternativ kann telnet auch beendet werden: `quit` bzw. "CTRL-D"
- ### 4.2.1 Übungen
- - MAC-Adresstabelle (source address table) anzeigen
- `show mac address-table all`
- Sie zeigt dir, welches Gerät über welchen Port des Switches erreichbar ist.
- - Den Namen des Switches ändern
- `configure`
- `hostname Test5`
- - IP-Adresse des Switches ändern und anschliessend neu verbinden
- `interface vlan 1`
- `ip address 192.168.0.5 255.255.255.0`
- `telnet 192.168.0.5`
- - Aktuelle config (rebootfest) sichern
- `enable`
- `copy running-config startup-config`
- ## 4.3 STP - erforderlich bei redundanten Verbindungen
- Warum [Redundanz](https://de.wikipedia.org/wiki/Redundanz_(Technik))? Falls eine Verbindung oder ein Switch 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 eines schlechten Netzwerkdesigns, das Überflüssiges enthält, sondern kann gewollt sein.
- ### 4.3.1 Ü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!-)
- ### 4.3.2 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)).
- ### 4.3.3 Ü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.
- ## 4.4 VLANs (getrennte Layer 2 Netze auf einer Infrastruktur)
- VLAN steht für Virtual Local Area Network. Diese Technik wird benutzt, um ein physisches Layer 2 Netz, das aus materiellen Switches und Kabeln besteht, in mehrere virtuelle Layer 2 Netze (VLANs) aufzuteilen. Der Vorteil: Es müssen nicht für verschiedene Nutzungsarten bzw. NutzerInnengruppen separate physische Infrastrukturen aufgebaut werden, sondern eine reicht.
- Dies ist zB dort ein Vorteil für den Freifunk, wo Menschen oder Organisationen, die für den Freifunk Infrastruktur zur Verfügung stellen, möchten, dass ihr eigenes (Layer 2) Netz von der des Freifunks sicher getrennt ist. Das gilt übrigens nicht nur für kabelbasierte Ethernets, sondern auch im Richtfunk, wo der große Aufwand für das Errichten von Richtfunkstrecken eine möglichst vielseitige (und doch geordnete) Nutzung derselben wünschenswert macht.
- ### 4.4.1 VLAN tag und VLAN ID
- Die wundersame Vermehrung eines LANs in mehrere VLANs geschieht durch einen einfachen Kniff: jedem Frame wird eine Markierung ("tag") hinzugefügt, in der sich die Kennung (VLAN ID) eines virtuellen Layer 2 Netzes befindet. S. das rote Feld "(VLAN-tag)" im Schema eines Ethernet-Frames [oben](#frame-format). Und weil Frames beim Switching nicht verändert werden (anders als IP Pakete beim Routing auf Layer 3, s.o. das Schleifenproblem), bleibt ein Frame immer in "seinem" VLAN.
- Die Aufteilung der physischen Infrastruktur in VLANs geschieht durch entsprechende Konfiguration der beteiligten Switches. Dabei ist für jeden Port eines Switches Folgendes festzulegen:
- 1. An welchen VLANs ist der Port beteiligt? Nur Frames mit einer dazu passenden VLAN ID werden auf diesem Port gesendet bzw. empfangen und weiterverarbeitet.
- 2. Welches VLAN wird für untagged Frames verwendet, die auf dem Port empfangen werden bzw. zu senden sind?
- Je nach Verwendung von tagged und/oder untagged Frames unterscheidet man drei Port-Typen:
- - access. Entspricht einem "klassischen" LAN Port, d.h. nur untagged Frames.
- - trunk. Nur tagged Frames. Wird insb. für Verbindungen zwischen VLAN-Switches benutzt.
- - general. Sowohl tagged wie auch untagged Frames.
- Mehr dazu weiter unten: [VLANs konfigurieren](#vlans-konfigurieren).
- Noch wichtig zu wissen:
- - Als VLAN-IDs sind die Zahlen von 1 bis 4094 zulässig. (Sehr alte VLAN-Switches können bisweilen nur IDs bis 255 oder 1000.)
- - VLAN 1 wird üblicherweise als Default-VLAN verwendet, d.h. wenn noch nichts anderweitig konfiguriert ist, dann wird ein untagged Frame so verarbeitet, als wäre er im VLAN 1.
- - Anders als Switching Hubs, die "auf Durchzug geschaltet" sein müssen, weil sie nicht konfiguriert werden können, sind konfigurierbare Switches (zumindest die in diesem Workshop verwendeten) ab Werk ohne VLAN-Konfiguration, was praktisch bedeutet, dass sie tagged Frames ignorieren! Untagged Frames hingegen werden, wie im vorigen Punkt beschrieben, dem VLAN 1 zugeordnet und daher zwischen allen Ports geswitcht, wie bei einem "einfachen" Switch.
- - Auch WLAN Frames (IEEE 802.11) können einen VLAN tag enthalten. Dies ermöglicht die Nutzung einer Richtfunkstrecke "wie ein Kabel" zwischen zwei Switches.
- ### 4.4.2 Wie werden VLANs konfiguriert?
- Diesen Abschnitt erstmal lesen und verstehen, fürs Ausprobieren folgen weiter unten Übungen.
- Damit ein konfigurierbarer Switch Teil eines VLAN wird, muss ihm zunächst dieses VLAN bekannt gemacht werden. Beispiel mit 2 VLANs:
- Test4#configure
- Test4(config)#vlan 2005
- Test4(config-vlan)#name "Management"
- Test4(config-vlan)#exit
- Test4(config)#vlan 2010
- Test4(config-vlan)#name "Mesh local"
- Test4(config-vlan)#exit
- Test4(config)#show running-config
- !TL-SG2008
- #
- vlan 2005,2010
- #
- vlan 2005
- name "Management"
- #
- vlan 2010
- name "Mesh local"
- #
- [...]
- Nun kann man die Ports des Switches konfigurieren, die Teil des VLANs werden sollen, weil die dort anzuschließenden Geräte Teil des VLANs (= virtuellen Switches) werden sollen.
- Zunächst ein "access"-Port (s.o. "Port-Typen", s.u. `switchport mode`):
- Test4(config)#interface gigabitEthernet 1/0/5
- Test4(config-if)#switchport general allowed vlan 2005 untagged
- Test4(config-if)#switchport pvid 2005
- Test4(config-if)#description "Management"
- Test4(config-if)#spanning-tree
- Test4(config-if)#spanning-tree common-config portfast enable
- Test4(config-if)#exit
- Test4(config)#show running-config
- !TL-SG2008
- [...]
- interface gigabitEthernet 1/0/5
- switchport general allowed vlan 2005 untagged
- switchport pvid 2005
- description "Management"
-
- spanning-tree
- spanning-tree common-config portfast enable
- [...]
- Damit der Switch selbst auch über das Management-VLAN gemanaged werden kann, benötigt man noch die folgende Konfiguration. Aber **Vorsicht!** Wenn man den Switch nicht über eine serielle Schnittstelle konfiguriert, sondern per telnet/ssh, dann geht die Verbindung während des Ausführens der Kommandos verloren, sodass die Konfiguration eines Management-VLAN unvollständig und der Switch damit nicht mehr managebar wird:-( Deshalb folgende Kommandos (natürlich mit der jeweils zutreffenden IP-Adresse) nur als gesamten Block (d.h. per copy/paste) in die Kommandozeile des Switches eingeben:
- ip management-vlan 2005
- interface vlan 2005
- ip address 172.24.252.2 255.255.0.0
- #
- Nun ein "trunk"-Port für alle VLANs, oder besser gleich mehrere solcher Ports wg. der Redundanz für die MSTP-Übung weiter unten:
- Test4(config)#interface range gigabitEthernet 1/0/6-8
- Test4(config-if-range)#switchport general allowed vlan 2005,2010 tagged
- Test4(config-if-range)#spanning-tree
- Test4(config-if-range)#exit
- Test4(config)#
- Test4(config)#show running-config
- !TL-SG2008
- [...]
- interface gigabitEthernet 1/0/6
- switchport general allowed vlan 2005,2010 tagged
-
- spanning-tree
- #
- interface gigabitEthernet 1/0/7
- switchport general allowed vlan 2005,2010 tagged
-
- spanning-tree
- #
- interface gigabitEthernet 1/0/8
- switchport general allowed vlan 2005,2010 tagged
-
- spanning-tree
- [...]
- Die description der Ports muss man individuell (d.h. je Port, nicht per `interface range`) konfigurieren.
- Gründlicherweise sollte man auch auf jedem "trunk"-Port ein anderes dummy-VLAN als PVID (= VLAN ID für untagged auf dem Port hereinkommende Frames) setzen (`switchport pvid`), s. dazu die ausführlichen (unten verlinkten) Switchkonfigurationen.
- ## 4.5 VLANs planen
- Übliche Verdächtige zur Abbildung auf separate VLANs sind:
- - Layer 3 Subnetze,
- - administrative Subnetze (mindestens eins, nämlich für die konfigurierbaren Switches und den Zugriff auf diese),
- - spezielle traffic-Typen, etwa wg. QoS, zwecks Multicast (zB für die IP-Glotze) oder Broadcast (zB für B.A.T.M.A.N. mesh = Ethertype 0x4305).
- Hat man schließlich geklärt, welche VLANs es zu welchem Zweck geben soll, dann folgt
- - die Zuordnung der anzuschließenden Geräte zu diesen VLANs,
- - die Zuordnung der anzuschließenden Geräte zu den Ports des jeweiligen Switches, an den sie angeschlossen werden,
- - die Konfiguration der Switches,
- - sodass jedes Gerät sich in dem/den VLAN/s befindet, in die es laut Plan gehört.
- - sodass die Verbindungen zwischen Switches in allen VLANs liegen (die diese Verbindung mglw. benötigen).
- Als Beispiel für das Ergebnis einer VLAN-Planung gibt es das Diagramm der Layer2-Infrastruktur im Café Aufbruch (als PNG):
- ![Layer2-Infrastruktur im Café Aufbruch](/img/CA-Switching.png) (und hier als [.dia-Datei](/Community/Projekte/CafeAufbruch/CA-Switching.dia), erstellt mit dem freien Programm [Dia](https://wiki.gnome.org/Apps/Dia))
- ## 4.6 VLANs konfigurieren
- Auf jedem Switchport (interface) werden genau die VLANs freigeschaltet, in denen sich das dort angeschlossene Gerät laut Plan befindet.
- 1. Kann das Gerät keine VLAN-tags verarbeiten, dann muss der Switchport, an dem das Gerät angeschlossen wird, die zum entsprechenden VLAN gehörigen Ethernet-Frames untagged an das Gerät aussenden und umgekehrt untagged empfangene Frames in dieses VLAN empfangen.
- 2. Für Verbindungen zwischen Switches und zu VLAN-fähigen Routern werden die benötigten VLANs tagged übertragen (und die Switchports entsprechend konfiguriert).
- 3. Auch die Mischform kann nützlich sein, d.h. dass es sowohl ein VLAN untagged als auch VLANs tagged auf einem Switchport gibt.
- - Dann können gleichzeitig sowohl "einfache" als auch VLAN-fähige Geräte am selben Switchport hängen (etwa mit Hilfe eines Switching-Hub).
- - Beispiel Richtfunk: die Richtfunk-Antennen sind als transparente Brigde konfiguriert, die selbst keine VLANs konfiguriert hat, aber tagged Frames durchlässt. Das Management-VLAN liegt daher untagged auf den Switchports Richtung Antenne, sodass die Antenne ihre Management-IP auf das Bridgeinterface konfigurieren kann. Bei Änderungen an den Nutz-VLANs im Richtfunknetz müssen die Antennen daher nicht mehr angefasst werden.
- Die Firmware der "besseren" TP-Link Switches (TL-SG3...) kennt entsprechend zu den obigen 3 Methoden auch 3 `switchport mode` Varianten (access, trunk, general). Die TL-SG2... kennen nur `switchport mode general`, aber weil das der allgemeine Fall ist, kommt man damit aus (nur dass die Konfig ggf. weniger hübsch ist).
- ### 4.6.1 Übung (VLAN Konfiguration verstehen)
- Seit dem 2. Teil des Workshops gibt's im Café Aufbruch zwei konfigurierbare Switches und fünf VLANs. Die Switch-Konfigurationen sind auf der [Projektseite](/Community/Projekte/Cafe_Aufbruch) verlinkt.
- Versuche, die Beschreibung auf der Projektseite zu verstehen und dann anhand der Switchkonfigurationen folgende Fragen zu beantworten:
- - Auf welchen Switchports liegt VLAN 252 auf? Tagged oder untagged? Warum?
- - Und wie sieht's mit VLAN 2010 aus? ...
- ### 4.6.2 Übung (VLAN Konfiguration erstellen)
- Konfiguriere (D)einen Switch so,
- - dass er im Management-VLAN erreichbar ist,
- - dass er an Port 7 von CA-sw2 sinnvoll angeschlossen werden kann,
- - (mindestens) ein weiterer lokaler Port genauso konfiguriert ist wie Port 7 von CA-sw2 (um weitere Switche anzuschließen),
- - jedes VLAN an mindestens einem lokalen Port anliegt, und zwar untagged (außer VLAN 3007, das sollte immer tagged anliegen).
- ## 4.7 MSTP (Redundanz ohne Linkabschaltung)
- ### 4.7.1 Übung (MSTP)
- Zuerst RSTP:
- - Stellt durch Verbindungen zwischen den Switches einen Kreis (oder Schlimmeres;) her, verbindet dazu die in der vorigen Übung konfigurierten "trunk"-Ports.
- - Du hattest auf Deinem Switch doch mindestens auf den "trunk"-Ports RSTP aktiviert, nicht wahr?-)
- - Welche RSTP-Konfiguration hat sich durch den "Kreis" ergeben?
- - Welcher Switch ist die Root-Bridge,
- - welche Verbindungen zwischen den Switches wurden durch RSTP abgeschaltet?
- - Welcher Switch sollte denn sinnvollerweise die Root-Bridge sein?
- - Konfiguriere diesen entsprechend.
- - Hat das funktioniert?
- Dann MSTP:
- - Vereinbart einen Namen für die MSTP-Region.
- - Teilt die VLANs in 3 Gruppen auf (= 3 MST-Instanzen).
- - Jeder Switch bekommt in einer der 3 MST-Instanzen eine höhere Priorität (d.h. einen niedrigeren priority-Wert;) konfiguriert als in den anderen beiden Instanzen. Welche das ist, kann zufällig bestimmt oder abgesprochen werden.
- - Welche MSTP-Konfiguration hat sich im "Kreis" ergeben?
- - Beantworte die obigen Fragen zu RSTP für jede der 3 MST-Instanzen.
- ### 4.7.2 Weiterführendes zu MSTP
- - Fortgeschrittene Übung: Verstehe die Switchkonfigurationen im Richtfunknetz, s. [Gerätekonfiguration](Geraetekonfiguration/).
- - Dokumentiere Dein Verständnis hier im Wiki:-)
- - Orbitale Übung (für lange Winterabende): Verstehe den hiesigen Beitrag zu [MSTP]() im Richtfunknetz.
- # 5 Dokumentierte 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/).
- - [Café Aufbruch](/Community/Projekte/Cafe_Aufbruch), incl. links zu den dortigen Switchkonfigurationen.
|