هنگامی که می خواهید ترافیک VLAN را بین دو سوئیچ انتقال دهید یک مشکل وجود دارد. ایا فیلدی وجود دارد که مشخص کند فریم اترنت ما به کدام VLAN تعلق دارد؟ چگونه یک سوییچ شبکه هنگام دریافت فریم متوجه می شود که ان به کدام VLAN تعلق دارد؟ بنابراین به پروتکلی نیاز داریم که این اطلاعات را به ما بدهد.
پروتکل 802.1Q از quality of service (QoS) و Virtual LAN (VLAN) در هنگام حرکت ترافیک در شبکه اترنت پشتیبانی می کند. پروتکل 802.1Q یکی از پروتکل های برچسب گذاری(تگ گذاری) VLAN است که توسط سوئیچ های سیسکو پشتیبانی می شود. این استاندارد توسط موسسه مهندسان برق و الکترونیک (IEEE) ایجاد شده است، بنابراین یک استاندارد عمومی است و می تواند در سوئیچ های غیر سیسکو نیز استفاده شود.
VLAN ها برای تقسیم broadcast domain در لایه 2(Data Link) استفاده می شوند. یک شبکه محلی مجازی است که برای انتقال داده ها به جای شبکه فیزیکی خود از LAN دیگری استفاده می کند. پروتکل 802.1Q به اندازه فریم اترنت اجازه می دهد تا چهار بایت به محدوده 68 تا 1522 بایت اضافه کند. این افزایش اندازه، به دلیل درج یک برچسب VLAN چهار بایتی در فریم است. برچسب ها، که شامل شناسه VLAN (VID) است، توسط آدرس MAC به هر فریم اترنت متصل می شوند. این VID 12 بیتی به هر VLAN اختصاص داده شده است و 4094 شناسه برای استفاده در دسترس است.
از trunk برای رد و بدل کردن ترافیک VLAN بین سوئیچ ها استفاده می شود. سوئیچ ها را می توان از طریق پورت trunk به یکدیگر متصل کرد. هنگامی که از ترانک استفاده می شود، دستگاه متصل فریم های اترنت دارای برچسب را دریافت می کند. استاندارد 802.1Q از پیکربندی منحصر به فرد VLAN های جداگانه پشتیبانی می کند.
فریم نرمال:
فریم 802.1:
از بین 4 بایت، یک VLAN، 12 بیتی وجود دارد که بیشترین اهمیت را دارد. این فیلد در مورد شماره VLAN که فریم به آن تعلق دارد می گوید. VLAN، می تواند از 1 تا 4094 متغیر باشد، یعنی برای 4094 VLAN پشتیبانی می شود. زیرا 0 و4095 VLAN های رزرو شده هستند. استاندارد 802.1Q از مفهوم Vlan Native پشتیبانی می کند(Vlan 1 که به صورت پیش فرض تعریف شده است)، یعنی ترافیک برای این Vlan بدون تگ باقی می ماند.
فریم tagging:
در بین دو سوئیچ، از فرایندی به نام VLAN trunking استفاده می شود. فرض می کنیم که کامپیوتر A یک فریم برودکست ارسال می کند. SW1 قبل از ارسال فریم به SW2، با قرار دادن ID VLAN در header، برچسب گذاری می کند. SW2 فریم را دریافت می کند و می داند که فریم متعلق به VLAN 3 است، بنابراین فریم را فقط برای کامپیوتر D ارسال می کند، زیرا این کامپیوتر در VLAN 3 است.
ISL مخفف Inter-Switch Link است که یکی از پروتکل های VLAN است. ISL اختصاصی Cisco است و فقط بین سوئیچ های Cisco استفاده می شود. این برنامه در یک محیط VLAN، point-to-point کار می کند و تا 1000 VLAN را پشتیبانی می کند و فقط می تواند از طریق لینک های Fast Ethernet و Gigabit Ethernet استفاده شود.
ISL در لایه Data-Link مدل OSI (لایه 2) عمل می کند. اندازه فریم های ISL محصور شده از 94 بایت شروع می شود و به دلیل زمینه های اضافی که پروتکل در حین کپسوله سازی ایجاد می کند، می تواند تا 1548 افزایش یابد. VLAN ID یک مقدار 15 بیتی است که در یک سربرگ 26 بایتی از فریم یافت می شود. ISL همچنین 4 بایت CRC را در چارچوب تصحیح و کنترل خطا اضافه می کند.
ISL با قرار دادن یک هدر 26 بایت و 4 بایت CRC بین یک فریم اترنت کار می کند. CRC یک Frame Check Sequence (FCS) روی بسته ISL است تا از خراب بودن آن اطمینان حاصل شود.اندازه فریم ISL از 94 بایت تا 1548 بایت متغیر است. فریم محصور شده در سراسر بدون تغییر باقی می ماند. آدرس مبدا و آدرس مقصد در سرصفحه ISL از فریم محصور شده به ارث نمی رسد. آدرس مبدا در هدر ISL، کلید ارسال بسته ISL است. آدرس مقصد یکی از دو آدرس MAC multicast مخصوص ISL است.
وقتی دو سوئیچ متصل سیسکو به طور خودکار با DTP یک ترانک را مورد مذاکره قرار می دهند، ISL را بیشتر از 802.1Q انتخاب می کنند مگر اینکه یک سوئیچ آن را پشتیبانی نکند یا به طور خاص پیکربندی نشده باشد که از ISL استفاده کند.
فیلد های ISL به شرح زیر است:
ابتدا باید طبق سناریوی مورد نظر خود Vlan بندی را انجام دهید.
سپس با توجه به پروتکل مورد استفاده ی خود می توانید ISL یا 802.1q را پیکربندی کنید.
نحوه ی کانفیگ ISL:
Switch(config)#interface Fa0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk encapsulation isl
نحوه ی کانفیگ استاندارد 802.1Q:
Switch(config)#interface Fa 0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk encapsulation 802.1q
از دستور زیر می توانید برای بررسی وضعیت پورت، ترانک یا اکسس بودن پورت و نوع پروتکل به کار رفته شده استفاده کنید.
show interfaces {fastethernet | gigabitethernet} module/port switchport
#show interfaces fastethernet 0/1 switchport
Name: Fa0/1
Switchport: Enabled
Administrative mode: trunk
Operational Mode: trunk
Administrative Trunking Encapsulation: isl
Operational Trunking Encapsulation: isl
Negotiation of Trunking: Disabled
Access Mode VLAN: 0 ((Inactive))
Trunking Native Mode VLAN: 1 (default)
Trunking VLANs Enabled: ALL
Trunking VLANs Active: 1,2
Pruning VLANs Enabled: 2-1001
Priority for untagged frames: 0
Override vlan tag priority: FALSE
Voice VLAN: none
Appliance trust: none
Self Loopback: No
از دستور زیر برای بررسی پورت ها استفاده می شود. به عنوان مثال اینکه پورت موردنظر اجازه ی عبور ترافیک کدام vlan ها را دارد. در زیر اینترفیس 1/0 ترافیک های vlan10و20 را دریافت می کند.
#show interfaces trunk
Port Mode Encapsulation Status Native vlan
Fa0/1 on 802.1q trunking 20
Port Vlans allowed on trunk
Fa0/1 10,20
منبع : https://mrshabake.com/802-1q-and-isl-protocol-differences/