ABSTRACT: VLAN (Virtual LAN - IEEE 802.3q) netzwerktechnologien werden erklaert. AUDIENCE: network admin SYSTEM: hardware SECTION: networking AUTHOR: mond COPYRIGHT: GNU Free Documentation Licence http://www.gnu.org/licenses/fdl.txt die vorteile eines switches gegenueber einem hub kennen wir ja schon: die computer muessen sich nicht einen kanal teilen sondern es kann jeder mit jedem ungestoert "kommunizieren". oft ist es aber gar nicht notwendig dass verschiedenen geraete mit einander reden koennen. manchmal (meist aus sicherheitsgruenden) auch gar nicht wuenschenswert. will man z.b. 2 getrennte netzwerksegmente haben so kann man natuerlich die einfache loesung waehlen: 2 getrennte switche. in groesseren netzwerken ist es andererseits oft praktisch wenn weiter entfernt liegende computer im selben netzwerksegment liegen koennen. in diesem falle muesste man ein kabel zwischen den switchen legen und die swtiche kaskadieren. das fuehrt natuerlich bald zu sehr unuebersichtlichen strukturen. als loesung dieser zweit probleme gibt es die VLAN technologie. auf einem switch der VLANs faehig ist. kann man verschiedene ports in verschiedene gruppen trennen. z.b. 1-10 auf vlan 20 und 11-20 auf vlan 40 ein geraet das jetzt auf 11 angesteckt ist kann nun nicht mehr mit einem auf port 1 sprechen. man hat also defakto den switch auf 2 kleinere switche aufgeteilt. fuer den fall nun dass man diese aufgeilten netzwerke ueber mehrere switche verteilen will ohne dass man jedes einzeln mit kabeln weiterverbindet benoetigt man eine methode wie sich die beiden switche unterhalten koennen und die information welches packet auf welchem teilswitch (d.h auf welchem vlan) liegt. die information muss zwischen den bieden geraeten mitgeliefert werden: die information wird "tag" genannt und ist ein kleiner 4 byte header der an den ethernet header angefuegt wird. darin enthalten ist die VLAN nummer mit 12 bit. es gibt also 2^12= 4096 verschiedene VLANs. da sich taged packte durch die 4 zusaetzlichen header bytes stark von normalen packeten unterscheiden koennen normale computer diese "taged" packete nicht mehr versthen. die "taged" packete dienen vorerst nur zur kommunikation zwischen VLAN faehigen switchen. dort wo "normale" geraete angeschlossen werden sagt man dem switch dass es sich um ein "untaged" port handelt. der switch gibt dort das packet ohne den 4 byte langen tag aus. ein setup koennte also z.b. so aussehen. gebauede A gebauede B switch A switch B +-----------------------+ +-----------------------+ | 1 | 2 | 3 | 4 | 5 | | 1 | 2 | 3 | 4 | 5 | +-----------------------+ +-----------------------+ | | | | | "taged" | | | | | | | | | \_______________________/ | | | | PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 PC1, PC2 , PC4 aus gebaueda A und PC8 aus gebauede B sollen in einem virtuallen netz zusammen gefasst werden. ebenso PC3 aus gebauede A und PC5,PC6,PC7 aus gebaeude B wir konfigurieren auf den beiden switches die ports wie folgt switch A switch B port | vlan | taged/untaged port | vlan | taged/untaged -----+-------+-------------- -----+-------+--------------- 1 | 70 | U 1 | 70,71 | T 2 | 70 | U 2 | 71 | U 3 | 71 | U 3 | 71 | U 4 | 70 | U 4 | 71 | U 5 | 70,71 | T 5 | 70 | U am kabel von switch A port 5 und switch B port 1 lauefen also jetzt packete die zwischen den switchen ausgetauscht werden muessen. der vlan tag bestimmt ob sie zum vlan 70 oder vlan 71 gehoeren (die nummern sind willkuehrlich gewaehlt) fuer PC8 sieht es so aus als waere er ganz alleine mit PC1, PC2 und PC4 an einem einzigen switch verbunden. wuerde man an port 5 von switch A einen computer anstecken so koennte der ohne spezielle software mit keinem der anderen geraeten komunizieren da normale netzwerk software mit dem vlan tag nichts anzufangen weiss. wie konfiguriert man auf einem switch? ====================================== managebare switche haben meist einen anschluss fuer ein serielles kabel. dort kann man mittels terminalprogramm menuegefuehrt oder mittels befehlen die verschiedensten einstellungen am switch vornehmen. leider ist diese interface nicht einheitlich sondern von hersteller zu hersteller verschieden. ueblicherweise kann man dem switch auch selbst eine IP addresse zuordnen. damit kann man weitere konfigurationsaenderungen auch per telnet oder z.b. webinterface vornehmen. solche switche erlauben ueblicherweise auch mittels eines definierten protokolls namens "SNMP" (simple network management protocoll") verschiedenste einstellungen pro port via netzwerk abzufragen oder zu setzen. darueber lernen wir ein anderes mal. VLAN faehige netzwerksoftware: ============================== hat man nun einen server der in mehreren VLANs ereichbar ist so muesste man mehrere netzwerkkarten einbauen und ihn in alle VLANs an normalen "untagged" ports einstecken. oder man verwendet netzwerksoftware die VLAN faehig ist und mit den tags umzugehen weiss. *BSD kann das schon laenger. auch fuer linux kernel gibt es patche die dies ermoeglichen. in den letzten linux 2.4er kernels ist VLAN schon standardmaessig als option enthalten. zum teil machen manche treiber von netzwerkkarten schwierigkeiten, da die VLAN packete ja um 4 bytes laenger sind als die normalen ethernet packte. hat man einen VLAN faehigen kernel so kann man sich an "tagged" ports anstecken und auf dem ethernet interface "virtuelle" interface konfigurieren die dann mit jeweils einem der VLANs sprechen koennen. so kann man z.b. einen computer mit nur einer netzwerkkarte und einem VLAN faehigen 24 port switch mit 23 ethernet schnittstellen ausstatten. auf linux z.b: /sbin/vconfig add eth0 71 /sbin/ifconfig vlan0071 10.1.14.1 netmask 255.255.255.0 broadcast 10.1.14.255 wuerde z.b. am netzwerk interface eth0 eine virtuelle netzwerkschnittstelle konfigurieren die auf vlan nummer 71 hoert und die vlan0071 heisst. das nachfolgende ifconfig konfiguriert dort ganz normal ein netzwerk. oder auf FreeBSD: /sbin/ifconfig vlan2 vlan 71 vlandev fxp0 /sbin/ifconfig vlan2 inet 10.1.14.1 netmask 255.255.255.0 broadcast 10.1.14.255 das erste ifconfig konfiguriert hier ein vlan namens vlan2 mit der vlan nummer 71 auf der echten netzerkkarte fxp0. das zweite ifconfig konfiguriert das virtuelle interface ganz normal. einsatz von VLANs vor- und nachteile ==================================== VLAN faehige switche sind zwar etwas teurer als normale aber in groesseren organisationen mit komplexeren netzwerkstrukturen macht sich die flexibiltaet virtueller LANs recht schnell bezahlt. auf der anderen seite kann die zusaetzliche komplexitaet das debuging im fehlerfall schwieriger machen. in groesseren VLAN umgebungen wird die an vielen dezentralen orten konfigurierte vlan information schnell unuebersichtlich und schwer zu warten. ebenfalls heikel ist die frage der redundanz. die loesungen dafuer dass sich VLAN faehige geraete automatisch ueber die konfigurierten VLANs unterhalten (GVRP) und moeglichkeiten redundanter anbiendungen sind (falls auf den geraeten vorhanden) noch neu und zum teil stark herstellerabhaengig. es stellt sich die frage wie weit es hier sinnvoll ist auf layer 2 (in diesem falle der ethernet ebene) probleme zu loesen fuer die eigentlich die schicht 3 (in diesem falle: routing) zustaendig ist und wo es auf layer 3 schon gute und lange erprobte loesungen gibt. ein weiterer punkt ist die sicherheit: router bieten i.a. bessere feiner meoeglichkeiten packete zu "firewallen" auf der anderen seite erlaubt die trennung in virutelle LANs in vielen faellen eine leichtere trennung von sicherheitsrelevanten bereichen. aber vorsicht: zum teil erlauben fehler in der firmware macher switches von einem vlan in ein anderes zu gelangen wenn man z.b. die MAC addresse eines rechners in einem anderen VLAN verwendet... es gilt also bei der konzeption von netzwerken abzuwegen an welchen stellen in eingem grossen netzwerk man mit VLANs sinnvoll arbeiten kann und an welchen stellen man eher router einsetzen sollte. ueber die moeglichkeiten dynamischen routings lernen wir demnaechst. EXERCISES: * stelle fest ob du in deinem netzwerk vlan faehige switche zur verfuegung hast. konfiguriere (in absprache mit deinem admin ein vlan dass 2 switche ueberspannt) * konfiguriere auf deinem linux oder BSD ein vlan faehiges interface und versuche dich damit auf einem "tagged" port eines switches zu verbinden. * diskutiere die einsatztmoeglichkeiten und grenzen von VLANs. REFERENCES: * VLAN einfuehrungen: http://www.tele.sunyit.edu/virtual_lans.html http://www.netfuse.de/techarea/vlan/vlan.htm * ethernet: http://www.rware.demon.co.uk/ethernet.htm * ISO 7 schichten modell mit schwerpunkt auf tcp/ip: http://mike.passwall.com/networking/netmodels/isoosi7layermodel.html * linux/*BSD VLANs: http://scry.wanfear.com/~greear/vlan.html http://www.arved.de/bsd/vlan_en.html