یک سازمان با چند دفتر در شهرهای مختلف از اپراتور میخواهد VLANهای داخلیاش، مثلاً صد VLAN از 1 تا 100 ، بین همه دفاتر منتقل شود؛ گویی همه دفاتر روی یک سوئیچ بزرگ نشستهاند. اگر اپراتور بخواهد همین صد VLAN را روی شبکه خودش تعریف کند، با VLANهای مشتریان دیگر تداخل پیدا میکند و مدیریتش ناممکن میشود. راهحل استاندارد این مسئله Q-in-Q یا IEEE 802.1Q Tunneling است: اپراتور کل ترافیک برچسبدار مشتری را داخل یک VLAN خودش میگذارد و یک برچسب دوم (بیرونی) رویش میزند.
در این مطلب ساختار تگ دوبل، نقش پورتها، کانفیگ روی سوئیچهای کاتالیست، نکته حیاتی MTU ، Native VLAN ، انتقال پروتکلهای لایه ۲ مشتری با L2PT ، محدودیتها و جایگزینهای امروزی را بر پایه راهنمای رسمی IEEE 802.1Q Tunneling در Catalyst 9300 مرور میکنیم.

Q-in-Q در یک نگاه
| نامهای دیگر | IEEE 802.1Q Tunneling ، Double Tagging ، Tag Stacking ؛ در استاندارد 802.1ad |
| تگ داخلی (C-Tag) | VLAN مشتری؛ دست نمیخورد |
| تگ بیرونی (S-Tag یا Metro Tag) | VLAN اپراتور برای آن مشتری |
| پورت لبه اپراتور | switchport mode dot1q-tunnel |
| MTU | هر تگ اضافه ۴ بایت؛ MTU مسیر اپراتور باید دستکم ۴ بایت بزرگتر باشد |
| پروتکلهای L2 مشتری | CDP ، STP ، VTP ، LACP با Layer 2 Protocol Tunneling (L2PT) |
فهرست مطالب
تگ دوبل چطور کار میکند
فریم استاندارد 802.1Q یک تگ ۴ بایتی دارد که VLAN ID در آن است. در Q-in-Q ، سوئیچ لبه اپراتور روی فریمی که از مشتری میآید (و خودش تگ VLAN مشتری را دارد) یک تگ دوم اضافه میکند:

- مشتری فریم را با تگ VLAN خودش (مثلاً VLAN 30) روی لینک ترانک به سوئیچ اپراتور میفرستد.
- پورت سوئیچ اپراتور در حالت Tunnel است و متعلق به VLAN اپراتور برای این مشتری (مثلاً VLAN 1010). سوئیچ بدون نگاه به تگ مشتری، تگ 1010 را روی فریم اضافه میکند.
- داخل شبکه اپراتور، سوئیچها فقط تگ بیرونی (1010) را میبینند و فریم را مثل هر فریم دیگری در VLAN 1010 جابهجا میکنند.
- سوئیچ لبه اپراتور در دفتر مقصد، تگ بیرونی را برمیدارد و فریم را با همان تگ اصلی مشتری (VLAN 30) تحویل میدهد.

نتیجه: مشتری میتواند هر VLANی را که میخواهد استفاده کند و اپراتور برای هر مشتری فقط یک VLAN مصرف میکند؛ مشتریها هم حتی با VLANهای تکراری با هم تداخل ندارند.
نقش پورتها
| پورت | کجا | حالت |
|---|---|---|
| پورت مشتری | سوئیچ مشتری به سمت اپراتور | ترانک 802.1Q معمولی |
| Tunnel Port | سوئیچ لبه اپراتور به سمت مشتری | dot1q-tunnel در VLAN اپراتور |
| پورت داخلی اپراتور | بین سوئیچهای اپراتور | ترانک معمولی با MTU بزرگتر |

سیسکو صریح توصیه میکند لینک بین مشتری و لبه اپراتور نامتقارن باشد: سمت مشتری ترانک و سمت اپراتور Tunnel.
کانفیگ
سوئیچ لبه اپراتور
PE-SW(config)# system mtu 1504 PE-SW(config)# vlan dot1q tag native PE-SW(config)# vlan 1010 PE-SW(config-vlan)# name CUST-ACME ! PE-SW(config)# interface GigabitEthernet1/0/5 PE-SW(config-if)# description Tunnel port - Customer ACME Tehran PE-SW(config-if)# switchport access vlan 1010 PE-SW(config-if)# switchport mode dot1q-tunnel PE-SW(config-if)# l2protocol-tunnel cdp PE-SW(config-if)# l2protocol-tunnel stp PE-SW(config-if)# l2protocol-tunnel vtp PE-SW(config-if)# no cdp enable ! PE-SW(config)# interface TenGigabitEthernet1/1/1 PE-SW(config-if)# description Core trunk PE-SW(config-if)# switchport mode trunk PE-SW(config-if)# switchport trunk allowed vlan 1010,1020
سوئیچ مشتری
CE-SW(config)# interface GigabitEthernet1/0/48 CE-SW(config-if)# description Uplink to Provider CE-SW(config-if)# switchport mode trunk CE-SW(config-if)# switchport trunk allowed vlan 1-100
بررسی
PE-SW# show dot1q-tunnel PE-SW# show interfaces GigabitEthernet1/0/5 switchport PE-SW# show l2protocol-tunnel summary PE-SW# show system mtu
MTU ؛ مهمترین نکته
هر تگ اضافه ۴ بایت به فریم اضافه میکند. سند سیسکو میگوید چون Q-in-Q اندازه فریم را ۴ بایت بزرگتر میکند، همه دستگاههای شبکه اپراتور باید بتوانند فریمهایی ۴ بایت بزرگتر از MTU سیستم را پردازش کنند. اگر فقط سوئیچ لبه را تنظیم کنید و یکی از سوئیچهای وسط مسیر MTU پیشفرض داشته باشد، بستههای بزرگ مشتری بیصدا گم میشوند؛ ping کوچک جواب میدهد ولی انتقال فایل قطع میشود. در عمل بیشتر اپراتورها روی هسته jumbo frame (مثلاً ۹۱۹۸ بایت) میگذارند تا هیچوقت نگران آن نباشند.
Native VLAN و امنیت
فریمهای Native VLAN روی ترانک بدون تگ ارسال میشوند. اگر Native VLAN ترانک اپراتور با VLAN یک مشتری یکی باشد، ممکن است ترافیک مشتری بهاشتباه تگ بیرونی نگیرد و در شبکه اپراتور به VLAN دیگری نشت کند. سیسکو دو توصیه دارد:
- با
vlan dot1q tag nativeروی سوئیچهای لبه، همه فریمها از جمله Native VLAN را تگدار کنید. در این حالت سوئیچ فریمهای بدون تگ را روی ترانکها دور میریزد. - Native VLAN ترانکهای اپراتور را عددی خارج از بازه VLANهای مشتریان بگذارید.
Layer 2 Protocol Tunneling
بدون L2PT ، سوئیچ اپراتور پیامهای CDP ، STP و VTP مشتری را خودش پردازش یا حذف میکند و سوئیچهای مشتری در دو شهر همدیگر را نمیبینند. با l2protocol-tunnel این پیامها با یک MAC مقصد مخصوص سیسکو کپسوله و شفاف از شبکه اپراتور عبور داده میشوند. برای EtherChannel بین دو سایت مشتری از l2protocol-tunnel point-to-point برای LACP و PAgP استفاده میشود. عیبیابی QinQ و L2PT را در سند Configure and Troubleshoot QinQ and L2PT on Catalyst 9000 ببینید.
محدودیتها و جایگزینها
- شبکه اپراتور همچنان یک دامنه لایه ۲ بزرگ با STP است؛ برای شبکههای بزرگ مقیاسپذیر نیست.
- جدول MAC سوئیچهای اپراتور همه MACهای همه مشتریان را یاد میگیرد.
- برای سرویسهای لایه ۲ بین شهرها، اپراتورها امروز بیشتر از EoMPLS و VPLS روی MPLS ، یا EVPN استفاده میکنند. در دیتاسنتر هم VXLAN جای این نیاز را گرفته است؛ ببینید آشنایی با سیسکو VXLAN.
پرسشهای متداول
Q-in-Q با 802.1ad یکی است؟
ایده یکی است. 802.1ad (Provider Bridging) استاندارد رسمی تگ دوبل است و برای تگ بیرونی EtherType جداگانه 0x88A8 تعریف میکند؛ پیادهسازی کلاسیک سیسکو برای هر دو تگ از 0x8100 استفاده میکرد و بعضی پلتفرمها امکان تغییر آن را دارند.
روی Catalyst 9000 پشتیبانی میشود؟
بله؛ راهنمای Layer 2 همه نسخههای IOS XE برای Catalyst 9300 فصل IEEE 802.1Q Tunneling دارد.
مشتری میتواند VLAN تکراری با مشتری دیگر داشته باشد؟
بله؛ چون هر مشتری در VLAN بیرونی جدای خودش است.
منابع رسمی
- Layer 2 Configuration Guide, IOS XE 17.15 (Catalyst 9300) – Configuring IEEE 802.1Q Tunneling
- Configure and Troubleshoot QinQ and L2PT on Catalyst 9000 Switches
مشاوره با AKA NET
برای طراحی سرویسهای لایه ۲ اپراتوری، QinQ ، VPLS و EVPN با آکانت (AKA NET) تماس بگیرید.
تلفن: 09121308444 | ایمیل: aka@aka.ir | aka.ir
درود
با تشكر بابت مقاله بسيار قوي و مفيدتان
منتظر مقاله شما در رابطه با layer2 tunneling هستم .
با تشكر و توفيق روز افزون
سلام
با تشکر از مقاله بسیار عالی شما.
ما دو قسمت از یک شبکه را با استفاده از یک لینک vpls مخابرات متصل کرده ایم.
تازمانیکه دو قسمت شبکه vlan بندی نشده بودند این لینک vpls به خوبی کار می کرد.
وقتی با استفاده از qinq دو vlan را از یک قسمت به قسمت دیگر انتقال دادیم با مشکل سرعت در باز شدن برنامه ها در یکی از vlan ها مواجه شدیم.
حال آنکه :
روی یکی از vlan ها کاربران قسمت اول شبکه از طریق vpn به میکروتیک در قسمت دوم شبکه متصل می شوند که سرعت بسیار عالی است و مشکلی وجود ندارد!!
نکته :
mtu تجهیزات مخابرات 1500 می باشد و ان را تغییر نمی دهد.
با سلام و تشکر از حسن نظر شما
ابتدا با یکی از روش ها مثلا extended icmp ،، دو طول مسیر mtu را اندازه گیری و چک کنید ، که روشش در همین سایت موجوده .
احتمال دیگر اینکه نرم افزار های شما روی TCP کار میکنند ( مثلا وب بیس هستند ) و ملزم به تغییر مقدار MSS هستید ، به لحاظ اینکه میکروتیک اغلب توسط mangle اقدام به تغییر mss میکند و شما با یوزر های متصل به میکروتیک مشکلی ندارید .
خیلی توضیح خوب و کاملی بود
tmx a lot