VLAN Přístupové a trunkové porty

Přiřazení do VLANy se nastavuje typicky na switchi (pouze v některých speciálních případech přichází označená komunikace přes trunk z jiného zařízení). Na switchích, které podporují VLANy, vždy existuje alespoň

jedna VLAN. Jedná se o defaultní VLAN číslo 1, kterou není možno smazat či vypnout. Pokud nenastavíme jinak, tak jsou všechny porty (tedy veškerá komunikace) zařazeny do VLAN 1.

Pro zařazení komunikace do VLANy existují čtyři základní metody, ale v praxi je nejvíce využívána možnost první - zařazení dle portu.

1. podle portu

Port switche je ručně a napevno zařazen (nakonfigurován) do určité VLANy. Veškerá komunikace, která přichází přes tento port, spadá do zadané VLANy. To znamená, že pokud do portu připojíme další switch, tak všechny zařízení připojená k němu budou v jedné VLANě. Jedná se o nejrychlejší a nejpoužívanější řešení. Není třeba nic vyhodnocovat pro zařazení do VLAN. Definice zařazení do VLAN je lokální na každém switchi. Jednoduše se spravuje a je přehledné.

2. podle MAC adresy

Rámce(port) se zařadí do VLANy podle zdrojové MAC adresy. Musíme tedy spravovat tabulku se seznamem MAC adres pro každé zařízení spolu s VLANou. Výhodou je, že se jedná o dynamické zařazení, takže pokud přepojíme zařízení do jiného portu, automaticky se zařadí do správné VLANy. Switch musí vyhledávat v tabulce MAC adres.

Jsou zde dvě možnosti, jak tato metoda může fungovat. Buď se podle MAC adresy prvního rámce nastaví zařazení portu do VLANy a toto nastavení zůstane, dokud se port nevypne. Nebo se každý rámec zařazuje samostatně do VLANy podle MAC adresy. Toto řešení je velmi náročné na výkon.

Cisco má řešení zvané VLAN Membership Policy Server (VMPS), pro které je třeba speciální server, který spravuje tabulky MAC adres. Navíc se při této metodě zařazuje port do VLANy, takže pokud je do něj připojeno více zařízení (max. 20), musí být všechny ve stejné VLAN.

3. podle protokolu = podle informace z 3. vrstvy

Tato metoda určuje zařazení podle protokolu přenášeného paketu. Například oddělíme IP provoz od AppleTalk. Nebo zařazujeme podle IP adresy či rozsahu. V praxi není příliš rozšířené. Zařízení musí mít napevno definovanou IP adresu a switch se musí dívat do třetí vrstvy (normálně funguje na druhé), znamená to zpomalení.

4. podle autentizace

Ověří se uživatel nebo zařízení pomocí protokolu IEEE 802.1x a podle informací se automaticky umístí do VLANy. Je to primárně bezpečnostní metoda, které řídí přístup do sítě (NAC), ale po rozšíření slouží i pro VLANy. Je to zajímavá metoda proto, že je velmi univerzální. Nezáleží ani na fyzickém zařízení ani na místě zapojení. RADIUS server, který ověřuje identitu uživatele, obsahuje také mapovaní uživatelů na VLANy a tuto informaci zašle po úspěšné autentizaci. U této metody je možné nastavení, že v případě, kdy není uživatel autentizován, tak je zařazen do speciální hostovské VLANy.

U Cisco switchů může být port single-host, kdy je možno připojit pouze jedno zařízení nebo multiple-host, kdy sice může být do portu připojeno více zařízení, ale ve chvíli, kdy se první autentizuje, tak je port autentizovaný (a zařazený do VLANy) a komunikovat mohou všechna zařízení.

Jak funguje komunikace v rámci VLAN

V praxi máme dvě situace, kdy se při komunikaci řeší příslušnost k VLANě. Je to při komunikaci v rámci jednoho switche nebo při komunikaci mezi několika switchi.

VLANy na jednom switchi

Při komunikaci ve VLANách v rámci jednoho switche je to jednoduché. Switch si v operační paměti udržuje informace, do které VLANy patří daná komunikace (port), a v rámci switche povoluje pouze správné směrování. V tomto případě máme jednotlivé porty zařazeny do jedné VLANy a to buď staticky, nebo dynamicky, jak bylo řečeno výše (možnosti 2,3,4). Cisco těmto portům říká access port (přístupový port).

VLANY mezi více switchi

Složitější situace nastává, když chceme, aby se informace o zařazení do VLANy neztratila při přechodu na jiný switch, tedy abychom v celé naší síti mohli využít stejné VLANy a nezáleželo, do kterého switche je zařízení připojeno. Navíc chceme, aby tato metoda fungovala i mezi switchi různých výrobců. To byl ze začátku problém a používali se různé metody. Například, když zařazujeme komunikaci podle MAC adresy, tak můžeme tabulku přiřazení mít na všech switchích. Cisco vytvořilo svoji metodu ISL, která zapouzdřuje celý rámec, ale funguje pouze na Cisco zařízeních. Také můžeme propojit dva access porty na dvou switchích, zařadit je do stejné VLANy a přeneseme potřebné informace. To je ale velmi nepraktické.

Naštěstí vznikl standard IEEE 802.1q, který využívá značkování rámců. Označuje se komunikace jen ve chvíli, kdy je to třeba. Takže dokud probíhá v rámci jednoho switche a připojených zařízení, tak se nic nepřidává. Teprve, když chceme poslat komunikaci dalšímu switchi (či podobnému zařízení), tak ji označíme. Odchozí komunikace se taguje na portu, kterému se říká trunk port. Tento port přenáší více (vybraných) VLAN a aby je mohl odlišit, tak je označuje. Spoji dvou trunk portů se říká trunk nebo trunk link.

IEEE 802.1q tagging

Protokolu IEEE 802.1q se říká také trunking protokol nebo dot1q tagging. Jedná se o standardizovanou metodu, kterou podporují všechny moderní switche s podporou VLAN. Funguje na principu tzv. tagování. Vezmeme originální rámec, jeho hlavičku rozšíříme o 4B informací, z nichž první je značka, že se jedná o protokol 802.1q (hodnota 0x8100). Dále následuje priorita dle protokolu 802.1p, příznak, zda je MAC adresa v kanonickém tvaru a poslední je číslo VLANy.

Protože se změnila data, je třeba přepočítat kontrolní součet na konci rámce.

Originální rámec

6B

6B

2B

64 až 1500B

4B

cílová adresa (DA)

zdrojová adresa (SA)

typ nebo délka

data

kontrolní součet (FCS)

Upravený rámec pomocí 802.1q

6B

6B

4B

2B

64 až 1500B

4B

cílová adresa (DA)

zdrojová adresa (SA)

802.1q tag

typ nebo délka

data

kontrolní součet (FCS)

Tvar 802.1q tagu

2B

3b

1b

12b

0x8100

priorita (802.1p)

Canonical Format Indicator (CFI)

VLAN ID

Tag Protocol ID (TPID) 2B

Tag Control Information (TCI) 2B

Native VLAN je termín spojený s protokolem 802.1q. Nastavuje se na trunk portu, u Cisco prvků musíme nativní VLANu vždy nastavit a to shodně na obou stranách trunku. Provoz, který je zařazen do native VLAN se při přenosu netaguje (zůstává nezměněn) a příchozí provoz, který není tagovaný se zařazuje do native VLAN. Často se jako native VLAN nastavuje management VLAN. Důsledkem také je, že pokud se na trunk port dostane nějaký rámec, který nemá tag, tak je zařazen do nativní VLANy. Jinak řečeno, pokud do portu, který je nakonfigurován jako trunk, připojíme normální stanici (která nepodporuje trunk), tak bude komunikovat v této VLANě. V praxi můžeme využít tuto vlastnost třeba u zapojení, kdy je připojen IP telefon a za ním PC. Native VLAN nastavíme stejně jako VLAN pro PC, potom pokud se odpojí telefon a PC se připojí přímo, tak jeho komunikace stále funguje.

Cisco ISL encapsulation

ISL znamená Inter-Switch Link, tedy spoj mezi switchi. Cisco vytvořilo svůj protokol ještě v době, kdy neexistoval standard. ISL má výhodu, že funguje nejen pro protokol IP, ale i pro jiné. Stejně jako 802.1q podporuje prioritizaci.

Bohužel se jedná o proprietární metodu, kterou používá pouze Cisco a v dnešní době ji nalezneme pouze na switchích vyšší řady (třeba Catalyst 3750). Princip funkce je takový, že se celý rámec zabalí (encapsulate) do nové hlavičky a kontrolního součtu. Z toho plyne nevýhoda, že se více zvětšuje komunikace, každý rámec je o 30B větší.

26B

 

4B

ISL header

encapsulation frame (originální rámec)

kontrolní součet (FCS)

Další využití trunků

V dnešní době nemusíme používat trunk pouze pro propojení switchů, ale velice účinně jej využít i pro připojení serverů, které potřebujeme mít připojené do více sítí. Operační systém Linux podporuje protokol 802.1q již v jádře, pro Windows potřebujeme ovladač pro síťovou kartu s podporou VLAN (například Intel). Na síťové kartě pak nakonfigurujeme VLANy, které zde přichází, a pro každou se vytvoří virtuální síťové spojení, které můžeme používat jako běžnou síťovku. Ušetříme tím fyzické síťové karty na serveru, i když se snižuje propustnost. Použít to můžeme třeba na firewallu nebo hostovském serveru pro virtuály. Na druhou stranu je třeba se vždy zamyslet, zda je toto to správné řešení a neexistuje něco jednoduššího (například, abychom DHCP server nepřipojovali do každé routované podsítě, když můžeme využít DHCP relay agenta).