Cyber Security & Network infrastructure

زکات علم نشر آن است . علی ( ع )

Cyber Security & Network infrastructure

زکات علم نشر آن است . علی ( ع )

Q-in-Q Tunneling



تصور کنین که یک ISP قصد داره تا ارتباط دو شعبه از دو تا از مشتری هایش رو که دارای ساختار Vlan هستند را در لایه 2 به هم ارتباط بده . 

فرض کنید این دو شعبه ساختار Vlan بندی کاملا مشابه و یکسان داشته باشند . 





همانطور که در شکل میبینید Customer 1 , Customer 2 هر دو دارای دو شعبه هستند که شامل VLan های مشابه نیز می باشند . 

حال Service Provider ( سرویس دهنده اینترنتی ) قصد داره که شعبات Customer1 و Customer 2 را با یکدیگر ارتباط دهد ، بصورتیکه Vlan های هم نام با یکدیگر Overlapping نداشته باشند . 

اگر قرارمون بر این باشه که به هر مشتری رنج یکتایی از Vlan ID ها رو بدهیم ، با توجه به محدودیت تعداد VLan ها که در 802.1q برابر با 4096 تا هستند ، ممکن است با کمبود Vlan ها مواجه شویم ; که برای حل این شکل و جلوگیری از بوجود آمدن Overlapping بین رنج Vlan ها بایستی از دو بار عمل تگ زدن در 802.1Q استفاده کنیم که به این روش Q-In-Q Tunnelling گفته می شود . 

Q-in-Q Tunnel در واقع نوعی Double Tagging است ، بدین مفهوم که Vlan , ISP های مشترک را در یک Vlan دیگر (که با آن اختصاص میدهد ) ، Encapsulate میکند ، یا تگ میزند ، در واقع یک بار Tag برای Vlan که Service Provider به مشترک اختصاص میدهد و Tag دیگر مربوط به VLAN های خود مشتری است ، Tag داخلی مشخص کننده Vlan های مشتری و Tag بیرونی مربوط به Vlan هایی است که Service Provider به آن مشتری اختصاص میدهد ، به این روش double Tagging و یا Tag Stacking نیز میگویند . 


در واقع بسته هایی که توسط سوییچ مشتری Tag میخورند وقتی به شبکه Service Provider میرسند ( اولین سوییچ که اصطلاحا Ingress Switch نامیده می شود ) دوباره Tag میخورند و اصطلاحا Double Tag می شوند سپس بسته های Double Tag شده در شبکه Service Provider توسط سوییچ دیگری ( سوییچ انتهایی Service Provider که اصطلاحا Egress Switch نامیده می شود) قبل از خارج شدن از شبکه ، ابتدا Tag آن برداشته می شود ( Untagged میشود ) و سپس Egress Switch ، Tag بسته رو بررسی میکنه و از پورت مربوطه خارج می کند و به سوییچ دیگر مشتری در شعبه دیگر ارسال می شود . 

در این روش سوییچ های مشتریان و همچنین سوییچ های میانی در شبکه Service Provider ها به هیچ وجه متوجه double Tagging صورت گرفته توسط سوییچ های Service Provider نخواهند شد . 

در واقع تکنیک Q-in-Q Tunneling اجازه میدهد تا شبکه لایه 2 مشتریان توسط شبکه Service Provider توسعه داده شده و زیر ساخت Vlan آن ها روی چنیدن سایت گسترش پیدا کند . 

نکته : Hierarchical tagging یا Multi-level dot1q tagging در Q-in-Q پشتیبانی نمی شود . 


هماهنطور که در شکل بالا مشاهده می کنید در متد Double Tagged فضای VlanIDمربوط به Tag بیرونی از فضای مربوط به VlanID مربوط به Tag درونی کاملا مستقل می باشد . 

در واقع Trunk Port از مشتری به Trunk Port در Service provider متصل شده و علاوه بر 4 بایت افزوده شده در ترانک مشتری برای 802.1q یک Tag دیگر در Provider به میزان 4 بایت روی آن اضافه می شود و VlanID درونی در دل یک VlanID دیگر که به سمت مشتری اشاره میکند قرار دارد . به این Double Tagging یا Nested 802.1q Trunk یا Q-in-Q tunneling گفته می شود . 




در این حالت که 2 بار Tagging روی بسته صورت میگیرد ، اطلاعات لایه 3 ای در Q-in-Q مخفی می شودو این نکته زمان بررسی پارامتر های لایه 3 در بین راه مانند ACL و QOS و ... باید حتما مد نظر قرار بگیرد . 


نکته : MTU نیز باید حتما مد نظر قرار بگیرد . 

Default Ethernet MTU = 1500 Bytes
Fast-Ethernet Max MTU = 1546 Bytes
Gigabytes-Ethernet Max MTU = 2000 Bytes




یکی از مشکلات Q-in-Q ، Untagged فرستادن فریم هاو بسته های Native Vlan از سمت مشتری می باشد . 

PDU ها ، STP ، CDP ، VTP روی Vlan1 یا بهتر بگم Native Vlan به صورت Untagged روی ترانک رد و بدل می شوند که در صورت استفاده از این سرویس ، از سوی Provider ها قابل قبول نیست و Drop خواهد شد . 

هرگاه بخواهیم PDU ها رو توسط Service Provider برای مشتری عبور بدهیم باید از Layer 2 Protocol Tunnel استفاده کنیم که کار GBPT1( Generic Bridge Tunneling BPDU ) را انجام دهد ، که این کار روی پورت متصل به مشتری در Service Provider صورت میگیرد تا اطلاعات Native Vlan مشتری به درستی Encapsulate ششده و ارسال شود . 

جهت کانفیگ و پیکر بندی Q-in-Q Tunneling تنها کافی است بر روی سوییچ های Ingress و Egress در Service Privider دستورات زیر را وارد کنیم : 

Moein_vafaei_ISP(config)#interface gigabitEthernet 0/0

Moein_vafaei_ISP(config-if)#switchport mode dot1q-tunnel

Moein_vafaei_ISP(config-if)#switchport access vlan 10


همچنین بر روی هر یک از پورت های سوییچ های مشترکین که به سوییچ های Ingress و Egress متصل هستند نیز دستور زیر را وارد نماییم : 

Moein_vafaei_custome(config-if)#switchport mode trunk


همچنین دستورات زیر روی Edge Interface در Service Provider ، 8021.q را برای مشترک برقرار میکند . 

Moein_vafaei_ISP(config)#vlan dot1q tag native

Moein_vafaei_ISP(config)#interface gigabitEthernet 0/3

Moein_vafaei_ISP(config-if)#switchport access vlan 10

Moein_vafaei_ISP(config-if)#switchport mode dot1q-tunnel

Moein_vafaei_ISP(config-if)#l2protocol-tunnel cdp

Moein_vafaei_ISP(config-if)#l2protocol-tunnel stp

Moein_vafaei_ISP(config-if)#l2protocol-tunnel vtp

Moein_vafaei_ISP(config-if)#l2protocol-tunnel drop-threshold pps cdp

Moein_vafaei_ISP(config-if)#l2protocol-tunnel drop-threshold pps stp

Moein_vafaei_ISP(config-if)#l2protocol-tunnel drop-threshold pps vtp

Moein_vafaei_ISP(config-if)#l2protocol-tunnel shutdown-threshold pps cdp

Moein_vafaei_ISP(config-if)#l2protocol-tunnel shutdown-threshold pps stp

Moein_vafaei_ISP(config-if)#l2protocol-tunnel shutdown-threshold pps vtp



دستورات مانیتورینگ و Vertificationدر Tunneling


از دستور زیر به منظور پاک کردن تمام Counter های روی پورت های Tunneling پورتکل لایه 2 استفاده می شود . 

 Switch#clear l2protocol-tunnel counters


از دستور زیر به منظور نمایش پورت های تانل 802.1q روی سوییچ استفاده می شود . 

Switch#show dot1q-tunnel


از دستور زیر به منظور نمایش اینترقیس ئر یک Tunnel Port استفاده می شود . 

Switch#show dot1q-tunnel interface interface-id


از دستور زیر به منظور نمایش اطلاعات مربوطه به پورت های Tunnel پروتکل لایه2 استفاده می شود . 

Switch#show l2protocol-tunnel


از دستور زیر به منظور 

Verify if the recovery timer from a layer 2 protocol-tunnel error disable state is enable 

 Switch#show errdisable recovery


از دستور زیر به منظور نمایش اطلاعات یک مشخصه از پورت Tunnleing پروتکل لایه 2 استفاده می شود . 

Switch#show l2protocol-tunnel interface interface-id


از دستور زیر تنها به منظور نمایش اطلاعات خلاصه شده ای از پروتکل لایه 2 استفاده می شود . 

Switch#show l2protocol-tunnel summary


از دستور زیر به منظور نمایش وضعیت Native Vlan Tagging روی سوییچ استفاده می شود . 

 Switch#show vlan dot1q native




نویسنده : معین وفایی 

معین وفایی

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

نظر دادن تنها برای اعضای بیان ممکن است.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.