Úvod do problému
Tohle není problém jen Cisco zařízení. Podobně se chová plno layer 3 switchů (tedy lépe a obecně řečeno routerů kombinovaných se switchem). A pro nesíťaře je dobré o tom věděť. Třeba si na to vzpomenete, až se vám někdy bude síť chovat divně. Základní symptom: většina věcí funguje, ale podivně pomalu a čas od času mi dokonce padá spojení.
Problém?
Řekněme, že vám někdo dal Cisco "router" a nějak vám to nastavil. Celé to je připojené do internetu. A řekl vám prostě jen, že na určitých portech máte nějaké IP adresy a dál jste to neřešili. Například podle následujícího obrázku.

Na tom by samozřejmě nebylo nic špatného. Jenom musíte dávat pozor, abyste si to nezapojili podle obrázku dalšího. Tzn. že byste si řekli, že když máte jenom jeden switch, že to všechno do něho připojíte. To by taky bylo pořád ještě v pořádku, protože to se samozřejmě čeká, že budete dělat. Nikdo si nekupuje zvlášť dva switche, když má dost volných portů na jednom.

V předchozím obrázku by druhá síť mohla být například i VoIP a nemusely by v ní být žádné "počítače". Problém nastane až v okamžiku, kdy si řeknete, že přece není potřeba dělat na tom vnitřním switchi VLANy. "Přece není potřeba" je obvykle ekvivalentní jednoduchému "nechce se mi", což si člověk většinou nechce připustit s omluvou "však to později předělám". Není totiž problém, aby na jednom "kabelu" chodily pakety s různými IP rozsahy. To by fungovat mohlo. Z pohledu IP protokolu samotného to vůbec nevadí.
Takže je potřeba dělat VLANy, nebo ne? Ano, je to vždycky lepší. Pro každou IP adresovou síť je ideální udělat si vlastní VLAN, i když je pravda, že IP protokol by nejspíš fungoval dobře i bez těch VLAN.
Proč bych se dřel s VLAN?
Problém nastane v okamžiku, kdy ten router není jenom úplně routerem, ale má v sobě ještě i switch. Jak je ukázáno na následujícím obrázku, kde byl použit příkaz switchport access vlan k vytvoření dvou VLAN na jednom portu routeru vedoucím do toho switche (tomu se říká router na tyčce - router on a stick)

Kde je chyba? Chyba je v tom, že Cisco ve výchozím stavu nastaví na obou těch VLAN interface stejnou MAC adresu. Tedy přesněji řečeno, nechá tam tu původní, která by tam byla i normálně. Proč to vadí? No ten váš vnitřní switch se přece nemůže naučit stejnom MAC adresu na dvou různých portech. Naučí se ji tedy jen na jednom portu.
Všimli byste si toho asi docela rychle, kdyby se ji naučil jen na jednom z těch portů. Jenže on se ji bude učit střídavě na jednom i na druhém a bude tedy pakety z obou sítí střídavě posílat do červené i zelené VLANy, bez rozdílu podle jejich IP adres. To znamená, že pakety ze sítě 10.x.x.x budou občas přicházet do zelené a jindy do červené VLANy (portu) na Cisco zařízení. Pokud přijdou na nesprávný port, Cisco je zahodí (je na něm obvykle firewall). A to je jádro pudla.
Síťové komunikace nakonec nejspíš pojedou. Většina aplikací i TCP protokol jsou docela odolné proti výpadku jednotlivých paketů a tak se stane, že většinou všechno docela pojede, ale nestabilně. Když se náhodou stane, že vypadne moc velký počet paketů, prostě spadne spojení. Jindy to vadit nebude a ani si toho nevšimnete. Je možné, že budete stahovat veliké soubory v pohodě, zatímco jindy se vám bude zdát, že i malinký soubor ne a ne projít.
Řešení je jednoduché. Prostě udělejte skutečné VLANy na tom vašem vnitřním switchi a máte vystaráno.
Už jste se přihlásili na GOPAS TechEd?