Configurații cu VLAN-uri pe un virtual switch

Oferta produselor de virtual networking disponibile pe host-urile de virtualizare VMware ESXi constituie astăzi soluții complete și mature pentru nevoile de comunicații ale mașinilor virtuale. Switch-urile virtuale VMware (standard/distribuit) ne permit să construim rețele sigure, robuste, scalabile și în același timp flexibile. Ar fi de neconceput ca în produsele de virtual networking să lipsească mecanismul rețelelor virtuale VLAN or avantajele acestora ca flexibilitate și securitate sunt greu de estimat. VMware implementează standardul 802.1q pentru crearea și transportul prin trunk-uri a rețelelor virtuale LAN. Configurația VLAN-urilor se realizează la nivelul grupurilor de porturi și pot fi transportate prin interfețe fizice către switch-uri externe sau chiar direct în interiorul VM-urilor.

Configurațiile pentru VLAN-uri pe un switch virtual VMware sunt posibile în una din următoarele trei variante disponibile (fiecare în parte sau mixt):

  • VLAN tagging/untagging pe switch-ul virtual (Virtual Switch Tagging sau VST)
  • VLAN tagging/untagging direct în Guest OS (Virtual Guest Tagging sau VGT)
  • VLAN tagging/untagging pe switch-ul fizic extern (External Switch Tagging sau EST)

Să analizam pe scurt fiecare mod de configurare în parte: 

VLAN_configurations_virtual_switch_all_modes

Primul caz presupune o conexiune de tip trunk 802.1q de la host-ul ESXi la switch-ul extern, prin care primul va primi/transmite din/în exterior frame-uri Ethernet tagguite. De cealaltă parte VM-urile conectate la un grup de porturi configurat ca VST operează cu frame-uri untagged. În așa fel switch-ul virtual devine dispozitivul care își asumă sarcina de decapsulare/re-încapsulare dot1q a frame-urilor Ethernet în drumul lor de la VM spre rețeaua externă și invers. La configurare, grupul de porturi este asociat cu un VLAN și doar cu unul singur. În ilustrația de mai sus, configurația VST (prima de la stânga) se reprezintă prin două grupuri de porturi configurate pentru două VLAN-uri: 110 și 24. VM-urile conectate în aceste grupuri de porturi vor accesa fiecare doar VLAN-ul propriului grup de porturi. De remarcat că pe un switch virtual pot exista mai multe grupuri de porturi asociate cu același VLAN. Chiar dacă sunt posibile, se recomandă totuși consolidarea comunicațiilor pentru un VLAN într-un singur grup de porturi, excepție pot fi configurațiile în care pentru grupuri distincte se doresc setări de teaming și politici de securitate specifice – politicile de securitate și teaming ca și VLAN-urile se configurează la nivelul grupului de porturi.

În cazul cu Virtual Guest Tagging, frame-urile tranzitează nemodificate switch-ul virtual și pornesc/ajung de la/la VM-uri tagguite cu 802.1q. Sarcina de untagging revine sistem-ului de operare din interiorul mașinii virtuale în care de obicei se creează sub-interfețe asociate cu fiecare VLAN in parte. VM-ul poate fi dotat cu orice virtual NIC cu excepția VLANCE (Flexible fără VMware Tools) care din start nu știe să interpreteze frame-uri tagguite 802.1q. În ilustrație (pe centru), primele 2 VM-uri (de la stânga) sunt conectate într-un grup de porturi VGT prin care obțin acces la toate VLAN-urile din trunk-ul spre switch-ul extern. Un grup de porturi pe un switch virtual standard (vSS) se configurează în regim VGT dacă se specifică 4095 pentru ID-ul VLAN-ului (+1 peste maximul posibil de prezentat prin 12 biți din standardul 802.1q). Configurația VGT pentru un grup de porturi pe un switch distribuit (vDS) se setează un pic altfel, aici în loc de 4095 (all VLANs) se permite de specificat lista de VLAN-uri (ID-urile separate prin virgulă sau linița la range) acceptate pentru tranzit in grupul de porturi VGT – într-un fel ceva similar cu allowed VLANs pe interfețe trunk la switch-urile Cisco. Specificul VGT-ului pe un switch distribuit il face util atunci când dintr-un motiv sau altul (de obicei din perspectivă de securitate), se dorește ca grupul de porturi VGT să acceseze doar un subset din VLAN-uri în loc de All VLANs.

Mai jos se prezintă configurația VGT pentru un grup de porturi pe un switch standard (vSS) și respectiv pe un switch distribuit (vDS): 

VLAN_configurations_virtual_switch_VGT_mode

Cel de-al treilea mod de configurare pentru un group de porturi pe un switch virtual: External Switch Tagging (EST) reprezintă de fapt configurația fără VLAN-uri. VLAN-urile dacă și există se opresc pe switch-ul fizic frame-urile ajungând untagged la host-ul ESXi. Portul pe switch-ul fizic spre host-ul ESXi se configurează în regim fără dot1q (pe switch-urile Cisco switchport mode access). Dat fiind beneficiile VLAN-urilor regimul cu EST (fără VLAN-uri) e rar utilizat in practică, poate doar in unele scenarii in care rețeaua fizică nu are implementat VLAN-uri or NIC-urile fizice pe host-ul ESXi nu au suport pentru dot1q (greu de imaginat). In ilustrație, VM-urile sunt conectate la un grup de porturi a cărui comunicații au loc untagged până la switch-ul fizic. Pentru a configura un grup de porturi pentru EST acesta se asociază cu VLAN ID = 0.

De menționat că regimurile pentru grupurile de porturi pot fi mixate pe un switch virtual. Un grup de porturi poate fi configurat doar în unul din moduri, pe când mai mult grupuri configurate diferit pot exista în același timp pe același un switch virtual.

Pe lingă modurile explicate mai sus switch-ul virtual distribuit (vDS) mai oferă regimul cu Private VLAN (PVLAN) dar ăsta e un subiect pentru un alt articol, până aici doar trei.