Native VLAN je nesto sto se definise na nivou individualnog trunk porta, a ne na nivou mreze. Nebitno je koliko ih je u mrezi - 5, 50 ili 500.
Da bi razumeo sta je native VLAN moras da razumes kako radi switch ispod haube, odnosno kakvi su formati paketa koji dolaze na access i trunk portove.
Na access portove dolaze standardni Ethernet paketi:
Kada primi takav paket, switch ocita VLAN ID konfigurisan na access portu i na osnovu toga formira VLAN tag koji dodaje originalnom paketu. Tag je svojevrsni zig kojim switch raspoznaje kom VLAN-u taj paket pripada. Tako nastaje tagovani paket koji se prenosi unutar switcha do drugih access portova sa istim VLAN ID. Pre isporuke paketa sa izlaznog access porta switch skida VLAN tag:
Na trunk portove po defaultu dolaze tagovani paketi. Tagovi sluze za klasifikaciju paketa po VLAN-ovima.
Medjutim, u izvesnim situacijama moze da se dogodi da na trunk dodje i stadardan Ethernet paket bez VLAN taga, kao na ovoj prvoj slici. Jedna od takvih situacija su i IP telefoni sa PC portovima, koji koriste tagovane pakete za voice i standardne (netagovane) za PC. Netagovane pakete koji pristignu na trunk port, switch moze ili da odbaci ili da ih smesti u
Native VLAN, tako sto pristiglim paketima dodaje
Native VLAN Tag i prosledjuje ih ka svojim drugim portovima. Paketi koji napustaju switch preko tog trunka imace uvek VLAN tag, osim paketa koji pripadaju VLAN-u koji je definisan kao native na tom trunku; takvim paketima switch ce skinuti VLAN tag i isporucice ih kao netagovane. Na Cisco switchevima default native VLAN ID je uvek 1, tako da netagovani paketi koji ulaze na trunkove switcha uvek zavrsavaju u VLAN 1. Takodje, na Cisco switchevima moze da se podesi da svi paketi bez razlike napustaju trunkove kao tagovani (
vlan tag dot1q native).
U tvom konkretnom primeru:
Netagovani paketi koji ulaze na port Fa0/2 dobice tag 10, sa kojim ce napustiti Fa0/1. Ti paketi nece moci da napuste switch sa porta Fa0/24.
Netagovani paketi koji ulaze na port Fa0/24 dobice tag 30, sa kojim ce napustiti Fa0/1. Ti paketi nece moci da napuste switch sa porta Fa0/2.
Tagovani paketi koji udju na port Fa0/2 i imaju tag 20 nesmetano ce proci ka Fa0/1 i Fa0/24. Drugim recima, za pakete koji imaju tag sa VLAN ID=20 ta tri porta ce biti jedan broadcast domain.
Jedini moguci problem moze da nastane ako na port Fa0/2 ili Fa0/24 (greskom) povezes drugi switch, na kome je postavljen neki drugi native VLAN. Cisco CDP ce poceti da vristi, tako da ces problem lako uociti. Ali sta ako nemas Cisco switch na drugom kraju? Recimo, ako na Fa0/2 povezes drugi switch na cijem portu postavis da ti je native VLAN ID 30. Tada ce paketi koji krenu iz VLAN 10 sa prvog switcha na trunku biti tretirani kao native, switch ce im odseci tag i poslati ih kao netagovane ka trunku drugog switcha, gde ce im biti dodat drugi native VLAN ID 30! Time ces prakticno napraviti identicnu situaciju kao da si access portove dva switcha koji pripadaju razlicitim VLAN-ovima direktno povezao. Prakticno dva VLAN-a spajas u jedan broadcast domain. To nije nikakva greska, sve dok znas sta radis i zasto to radis. I sve dok u pricu ne upletes vise trunkova, port-channel itd. Onda stvari umeju da budu komplikovane i da dovedu do L2 petlji ako ne pazis.
Recimo, nije problem ako na jednom swtichu imas samo VLAN 10, na drugom samo VLAN 30, a na trunku izmedju razlicite native VLAN-ove. Tada ce stvari lepo raditi - paketi ce napustati VLAN 10 @ sw1, na trunku ce izgubiti tag, kada udju na sw2 dobice tag 30 i zavrsice u VLAN 30. I obrnuto.
Medjutim, ako na oba switcha imas definisana oba VLAN-a - npr.:
sw1 sw2
=== ====
1/1 10 1/1 10
1/2 10 1/2 10
1/3 10 1/3 10
2/1 TR 2/1 TR
native 10 native 30
3/1 30 3/1 30
3/2 30 3/2 30
3/3 30 3/3 30
tada nastaje zanimljiva situacija. Masine povezane na portove 1/1-1/3 @ sw1 ce sasvim lepo komunicirati sa masinama na portovima 3/1-3/3 @ sw1. Medjutim, paketi koji pristizu na portove 3/1-3/3 @ sw1 ce imati zanimljiv put: oni ce bez problema napustiti sw1, na trunku ce imati tag 30, koji ce sw2 na svojoj strani prihvatiti i poslace paket u VLAN 30 @ sw2. Tako ce, recimo, saobracaj sa porta 3/1 @ sw1 sasvim lepo stizati ka 3/1 @ sw2, ali u suprotnom smeru sw2 ce skidati tag 30, a sw1 ce dodavati tag 10, pa ce paketi zavrsavati u VLAN 10 @ sw1 umesto u VLAN 30 @ sw1. Tako dobijas pravu pravcatu crnu rupu za saobracaj, kao i veoma zanimljiv efekat u kome ce, recimo, UDP paketi ili neki RTP video stream sasvim lepo ici sa 3/1 @ sw1 => 3/1 @ sw2, ali TCP servisi nece raditi, jer ce sa 3/1 @ sw1 TCP SYN paketi biti uredno isporuceni na 3/1 @ sw2, dok odgovor (TCP SYN+ACK) sa 3/1 @ sw2 nece stizati nazad.
Zato ne treba mesati native VLAN-ove na dve strane trunka!
[Ovu poruku je menjao B3R1 dana 28.08.2014. u 09:59 GMT+1]