[ katinski @ 27.08.2014. 17:07 ] @
Pozdrav Svima,


Prvi put se susrecem sa potrebom da u mrezi postavim vise od jednog Native Vlan-a.

Trenutno je ovakva situacija:

Vlan 10 - data (Native Vlan-Staticke se dodaju ip adrese na klijentima)

Vlan 20 - Voip(pusten dhcp na koji se radi rezervaciju po mac-u)

I sve ovo radi super kroz jedan interfejs na SW.

Eh sada ja bih to malo da sredim, da napravim vise vlanova, izdvojim sektore i pustim dhcp za svaki vlan(preko MT RB 1000). I sve to radi, ako podesim razlicite native vlanove za razlicite na interfejse na SW-ima.


Konfiguracija SW-a:

interface FastEthernet0/1
description Trunk ka Drugom SW
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface FastEthernet0/2
switchport trunk encapsulation dot1q
switchport trunk native vlan 10
switchport trunk allowed vlan 10,20
switchport mode trunk
!
interface FastEthernet0/24
switchport trunk encapsulation dot1q
switchport trunk native vlan 30
switchport trunk allowed vlan 30,20
switchport mode trunk

Cisto me zanima kakva su vasa iskustva ako bilo 5+ native vlanova u mrezi. Da li je dolazilo do nepoduranja native vlanova na trunk-ovima SW-eva. Meni iskreno sve ovo izgleda konfuzno, ali kada nesto nasledis tesko mozes da napravis da radi kako ti zelis. :)

Hvala. Pozdrav
[ B3R1 @ 28.08.2014. 00:21 ] @
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]
[ PaStvarno @ 28.08.2014. 18:17 ] @
Citat:
B3R1

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.


Zato ne treba mesati native VLAN-ove na dve strane trunka!


Morao sam da proverim, jer sam nedavno spremao switching, pa sam drugačije upamtio. :)

http://www.cisco.com/c/en/us/s...itching/8021q/17056-741-4.html

802.1Q does not tag frames on the native VLAN. It tags all other frames that are transmitted and received on the trunk. When you configure an 802.1Q trunk, you must make sure that you configure the same native VLAN on both sides of the trunk.

Native VLAN kada ide kroz trunk ne dobija tag, u tome i jeste problem. Nema skidanja tag-a sa native VLAN-a. Frame-ovi ne dobijaju tag kada ulaze u access port tako da kroz switch putuju netagovani, tek prilikom ulaska u trunk dobijaju tag - svi osim native VLAN-a.

Problem nastaje kada na switch1-u - native VLAN 10 - VLAN 10 nema nikakav tag prilikom izlaska iz switcha prilikom ulaska u trunk .
Frame koji nema tag na switch2-u - native VLAN 30 kada taj switch vidi da frame nema tag automaski ga ubacuje u VLAN 30.

Uvek me je nerviralo to što se tag-ovi dobijaju tek prilikom ulaska u trunk, a ne odmah po ulasku u access port (nekako mi zvuči logičnije - mada se ovako štedi procesorsko vreme, jer neki paketi ne napuštaju switch pa ne moraju ni da budu tagovani), ali sam, zbog tog što me taj detalj nervira - izgleda upamtio tačno kada se i kako radi tagovanje frame-ova. :)