qinq سیسکو

Q-in-Q Tunnel چیست ؟

یک سازمان با چند دفتر در شهرهای مختلف از اپراتور می‌خواهد 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 در سوئیچ سیسکو
Q-in-Q : انتقال VLANهای مشتری از شبکه اپراتور با تگ دوبل

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 مشتری را دارد) یک تگ دوم اضافه می‌کند:

تگ 802.1Q در فریم اترنت
ساختار تگ 802.1Q در فریم اترنت
  1. مشتری فریم را با تگ VLAN خودش (مثلاً VLAN 30) روی لینک ترانک به سوئیچ اپراتور می‌فرستد.
  2. پورت سوئیچ اپراتور در حالت Tunnel است و متعلق به VLAN اپراتور برای این مشتری (مثلاً VLAN 1010). سوئیچ بدون نگاه به تگ مشتری، تگ 1010 را روی فریم اضافه می‌کند.
  3. داخل شبکه اپراتور، سوئیچ‌ها فقط تگ بیرونی (1010) را می‌بینند و فریم را مثل هر فریم دیگری در VLAN 1010 جابه‌جا می‌کنند.
  4. سوئیچ لبه اپراتور در دفتر مقصد، تگ بیرونی را برمی‌دارد و فریم را با همان تگ اصلی مشتری (VLAN 30) تحویل می‌دهد.
Q-in-Q Tunnel چیست
مسیر فریم در Q-in-Q : افزودن تگ اپراتور در ورودی و برداشتن آن در خروجی

نتیجه: مشتری می‌تواند هر VLANی را که می‌خواهد استفاده کند و اپراتور برای هر مشتری فقط یک VLAN مصرف می‌کند؛ مشتری‌ها هم حتی با VLANهای تکراری با هم تداخل ندارند.

نقش پورت‌ها

پورت کجا حالت
پورت مشتری سوئیچ مشتری به سمت اپراتور ترانک 802.1Q معمولی
Tunnel Port سوئیچ لبه اپراتور به سمت مشتری dot1q-tunnel در VLAN اپراتور
پورت داخلی اپراتور بین سوئیچ‌های اپراتور ترانک معمولی با MTU بزرگ‌تر
پورت Tunnel در Q-in-Q سیسکو
پورت مشتری ترانک، پورت اپراتور dot1q-tunnel

سیسکو صریح توصیه می‌کند لینک بین مشتری و لبه اپراتور نامتقارن باشد: سمت مشتری ترانک و سمت اپراتور 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 بیرونی جدای خودش است.

منابع رسمی

مشاوره با AKA NET

برای طراحی سرویس‌های لایه ۲ اپراتوری، QinQ ، VPLS و EVPN با آکانت (AKA NET) تماس بگیرید.

تلفن: 09121308444  |  ایمیل: aka@aka.ir  |  aka.ir

5 فکر می‌کنند “Q-in-Q Tunnel چیست ؟”

  1. بهاره

    درود
    با تشكر بابت مقاله بسيار قوي و مفيدتان
    منتظر مقاله شما در رابطه با layer2 tunneling هستم .
    با تشكر و توفيق روز افزون

  2. عیسی

    سلام
    با تشکر از مقاله بسیار عالی شما.

    ما دو قسمت از یک شبکه را با استفاده از یک لینک vpls مخابرات متصل کرده ایم.
    تازمانیکه دو قسمت شبکه vlan بندی نشده بودند این لینک vpls به خوبی کار می کرد.
    وقتی با استفاده از qinq دو vlan را از یک قسمت به قسمت دیگر انتقال دادیم با مشکل سرعت در باز شدن برنامه ها در یکی از vlan ها مواجه شدیم.
    حال آنکه :
    روی یکی از vlan ها کاربران قسمت اول شبکه از طریق vpn به میکروتیک در قسمت دوم شبکه متصل می شوند که سرعت بسیار عالی است و مشکلی وجود ندارد!!

    نکته :
    mtu تجهیزات مخابرات 1500 می باشد و ان را تغییر نمی دهد.

    1. امیرخسرو احمدی نویسنده

      با سلام و تشکر از حسن نظر شما
      ابتدا با یکی از روش ها مثلا extended icmp ،، دو طول مسیر mtu را اندازه گیری و چک کنید ، که روشش در همین سایت موجوده .
      احتمال دیگر اینکه نرم افزار های شما روی TCP کار میکنند ( مثلا وب بیس هستند ) و ملزم به تغییر مقدار MSS هستید ، به لحاظ اینکه میکروتیک اغلب توسط mangle اقدام به تغییر mss میکند و شما با یوزر های متصل به میکروتیک مشکلی ندارید .

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *