شبکه محلی مجازی (VLAN) به گروهبندی منطقی کلاینتها و تجهیزات در یک شبکه محلی اشاره دارد تا نظارت بر شبکه سادهتر شود و سرپرستان شبکه مدیریت دقیقتری بر پهنای باند داشته باشند. در روش فوق، گروهبندی توسط سوئیچ انجام میشود.
شبکه محلی مجازی با گروهبندی منطقی تجهیزاتی که در یک دامنه همه بخشی (Broadcast) قرار دارند، به سرپرستان کمک میکند برای هر گروه خطمشیهای مشخص و پهنای باند مخصوص آن گروه را تعریف کند. پیادهسازی VLAN محدود به شبکههای محلی و سوئیچها نیست و این امکان وجود دارد که شبکههای بزرگتر مجازی را نیز با هدف مدیریت دقیق ترافیک به گروههای منطقی مختلفی تقسیم کرد. این مکانیزم گروهبندی که VXLAN به معنای شبکه محلی گسترشپذیر مجازی نام دارد که منعطفتر از VLAN است، زیرا محدودیت 4096 زیرشبکه را ندارد و سرپرست شبکه میتواند به هر تعدادی که نیاز دارد شبکه منطقی مجازی پیادهسازی کند. در هر دو روش، به جای ارتباطات فیزیکی از ارتباطات منطقی استفاده میشود و همین مسئله باعث میشود تا مدیران شبکه بتوانند نظارت دقیقتری روی کلاینتها اعمال کنند.
دامنههای همه پخشی چند سوئیچی (Multiswitch broadcast domains)
در بحث شبکههای محلی مجازی وقتی یک فریم همه بخشی روی هر پورت سوئیچ دریافت میشود، سوئیچ آن را به پورتهای دیگر ارسال میکند. در این حالت، اگر دو سوئیچ با تنظیمات پیشفرض به یکدیگر متصل شوند، همانگونه که در شکل 1 مشاهده میکنید، فریمی که بهشکل همهپخشی توسط هر یک از گرههای شبکه ارسال و به سوییچ میرسد از طریق سوییچ برای سوییچ دیگر ارسال و توسط گرههای سوییچ دوم دریافت میشود. به بیان دقیقتر، دامنه همهپخشی محدود به یک سوئیچ نیست و به همین دلیل است که تمامی تجهیزات عضو یک شبکه محلی مجازی یک کپی از فریم همهپخشی دریافت میکنند. اگر سناریو فوق را روی یک شبکه محلی با دهها سوئیچ متصل به هم تصور کنیم، در عمل یک دامنه پخشی داریم که شامل صدها دستگاه پایانی است که باعث میشود ترافیک شبکه با معضلی بهنام BUM روبرو شود که ترافیک و پهنای باند را بهجای آنکه مصرف کند در عمل میبلعد. به بیان دیگر، هنگامی که کارمندان به سازمان وارد شده و به شبکه متصل میشوند، تنها در عرض چند دقیقه شبکه از دسترس خارج میشود. بنابراین تقسیم دامنه پخشی واحد به چند حوزه کوچکتر در توپولوژیهای بزرگ برای سوئیچهای به هم پیوسته ضروری است.
ترانک چیست؟
قبل از آنکه راهکاری برای این مشکل ارائه کنیم، ابتدا بهتر است تعریفی برای مفهوم ترانک ارائه کنیم. به فرایندی که در آن ترافیک شبکههای محلی به سوئیچ دیگر از طریق پورت ترانک انتقال داده شوند ترانکینگ (Trunking) گفته میشود. ترانک یا ترانکینگ صرفهجویی در پهنای باند از طریق مدیریت دقیق بستهها است. مشکلی که در مثال قبل به آن اشاره کردیم، درست مثل این است که یک هاب در شبکه نصب کرده باشید و گرهها از طریق هاب بستههای اطلاعاتی را برای یکدیگر ارسال کنند. ترانک راهکاری است که از طریق آن میتوان از یک شبکه محلی مجازی در سوئیچهای مختلف استفاده کرد. به این ترتیب میتوان در یک شبکه پورتهای چند سوئیچ که در حالت ترانک قرار دارند را به شکل داخلی به هم متصل کرد و در یک شبکه محلی مجازی قدرتمند ایجاد کرد. پورتی که برای این کار استفاده میشود Trunk Port نام دارد و به شکل پیشفرض ترافیک شبکههای محلی مجازی را انتقال میدهد. بر مبنای این تعریف باید بگوییم که ترانک اجازه میدهد با ایجاد یک ابر پورت ترافیک سوئیچهای مختلف را مدیریت و آنها را به هم متصل کنید.
شکل 1
پورت ترانک چیست؟
پورت ترانک (Trunk Port) درگاهی است که انتقال ترافیک شبکههای محلی که سوئیچ به آنها دسترسی دارد را مدیریت میکند. پورتهای ترانک، هر فریم را با استفاده از یک برچسب شناسایی منحصر به فرد که تگ (Tag) نام دارد علامتگذاری میکنند. به طور مثال، برچسبی روی یک فریم قرار میگیرد که مشخص کننده این موضوع است که فریم متعلق به شبکه محلی مشخص است. در این زمینه برچسبهای متنوعی وجود دارند که بر اساس پروتکلهای مورد استفاده سوئیچ برای کاربردهای مختلفی قابل استفاده هستند. رایجترین نوع برچسبهای مورد استفاده در Trunking برچسب 802.1Q و برچسب Inter-Switch Link است. این برچسبها هنگامی استفاده میشوند که ترافیک بین سوئیچها انتقال پیدا میکنند. با استفاده از این برچسبگذاریها هرگاه یک فریم از سوئیچی خارج شود با توجه به برچسب مورد نظر، مشخص میشود که قرار است چه مسیر مشخصی را دنبال کند تا به مقصد و در نهایت شبکه محلی مجازی برسد. نکته مهمی که باید به آن دقت کنید این است که یک پورت اترنت میتواند یکی از دو حالت Access Port یا Trunk Port را داشته باشد و نمیتواند به شکل همزمان هر دو حالت را داشته باشد؛ بنابراین به پورتی که به عنوان ترانک تعریف شده، کامپیوتری را نمیتوانید متصل کنید. نکته مهم دیگری که باید به آن دقت کنید این است که پورتهای ترانک برخلاف پورتهای دسترسی میتوانند همزمان عضو چند شبکه محلی مجازی باشند و به همین دلیل است که میتوانند ترافیک شبکههای محلی مختلف را همزمان هدایت کنند. برای اینکه پورت ترانک به درستی بتواند ترافیک VLANهای مختلف را هدایت کند با استفاده از پروتکل 802.1Q هر یک از فریمهایی که از پورتهای مختلف سوئیچ دریافت میشوند را برچسبگذاری میکند. به فرایند فوق 802.1Q Encapsulation گفته میشود. در روش فوق برچسب مورد نظر و مربوط به VLAN مورد نظر روی سرایند بسته یا فریم قرار میگیرد. محتویات این برچسب مشخصکننده شبکه محلی مجازی است که فریم از آن وارد سوئیچ شده است.
شبکه محلی مجازی روی چند سوئیچ
برای حل مشکل پاراگراف ابتدایی مقاله که اشاره شد، سرپرستان شبکه به سراغ تکنیک شبکه محلی مجازی رفتند. با استفاده از شبکههای محلی مجازی میتوانیم همبندی سوئیچ را به چند حوزه همه بخشی تقسیم کنیم، شکل 2 این راهکار را نشان میدهد. روشهای مختلفی برای پیادهسازی این معماری وجود دارد، اما اجازه دهید کار را با سادهترین الگو آغاز کنیم. بر مبنای الگوی نشان داده شده در شکل2، اینکار با پیکربندی پورتهای ۱ تا ۴ هر دو سوئیچ به VLAN 10 و پورتهای ۵ تا ۹ به VLAN20 انجام میشود. اگرچه این یک الگوی درست است و کار میکند، اما گسترشپذیری آن ساده نیست، زیرا به یک اتصال فیزیکی بین سوئیچها در هر شبکه محلی مجازی نیاز است. اگر همبندی فوق دارای بیش از 10 شبکه محلی مجازی باشد به بیش از ۱۰ کابل فیزیکی بین سوئیچها نیاز است و شما مجبور هستید بالغ بر 10 پورت سوئیچ (روی هر سوئیچ) را برای این لینکها استفاده میکنید. شکل 3 این موضوع را نشان میدهد. راهکار فوق تنها در همبندیهایی که متشکل از چند شبکه محلی مجازی هستند قابل استفاده است. با اینحال، در شبکههای سازمانی مدرن، دهها شبکه محلی مجازی وجود دارد، بنابراین روش مذکور گسترشپذیری شبکه محلی مجازی میان سوئیچها را با مشکل روبرو میکند و اجازه نمیدهد شبکه سازمانی همسو با بزرگتر شدن فعالیتهای تجاری گسترش پیدا کند.
شکل 2
شکل 3
ترانک (VLAN Trunking)
برای حل مشکل محدودیت در گسترشپذیری میتوانیم از فناوری اترنت که متخصصان شبکه به نام VLAN trunking آن را میشناسند استفاده کنیم. ترانک تنها یک لینک بین سوئیچهایی که از فناوری فوق پشتیبانی میکنند ایجاد میکند و قادر به گسترش شبکه محلی متناسب با نیازهای کاری است. در عین حال ترافیک شبکههای محلی را ایزوله از یکدیگر میکند، بنابراین در مثال ما، فریمهای VLAN 20 به دستگاههای VLAN 10 و بالعکس انتقال پیدا نمیکنند. شکل 4 نحوه عملکرد فناوری فوق را نشان میدهد. لینک بین سوئیچ ۱ و سوئیچ ۲ یک لینک ترانک است و همانگونه که مشاهده میکنید VLAN 10 و VLAN 20 از طریق این لینک عبور میکنند.
شکل 4
پروتکلهای ترانک
دو پروتکل ترانکینگ Inter -Switch Link و IEEE 802.1Q- در سوئیچهای سیسکو طی سالها استفاده شدهاند. پروتکل اول، ISL یک پروتکل برچسبگذاری (tagging protocol) اختصاصی سیسکو است که قبل از 802.1Q پدید آمد، اما به دلیل محدودیتهای ذاتی که داشت، به سرعت کنار گذاشته شد و امروزه دیگر استفاده نمیشود. پروتکل دوم IEEE 802.1Q به عنوان پروتکل استاندارد ساخت شبکه محلی مجازی و کپسولهسازی ترانک استفاده میشود و تمامی سوییچهای مدرن مدیریتی از آن پشتیبانی میکنند. عملکرد پروتکل فوق در شکل 5 نشان داده شده است. نکتهای که لازم است در خصوص پروتکل مذکور به آن دقت کنید این است که تگ ۴ بایت اضافی به سرایند اترنت فریمها اضافه میشود. مهمترین فیلد در برچسب VLAN ID است که ۱۲ بیت طول دارد و شبکه محلی مجازی که فریم به آن تعلق دارد را مشخص میکند. از آنجایی که مقادیر 0x000 و 0xFFF رزرو هستند، 4094 حالت ممکن برای شبکه محلی مجازی قابل تعریف است که جوابگوی نیازهای بیشتر سازمانها حتی در مقیاس بزرگ است.
شکل 5
VLAN Tagging
ترانکینگ شبکه محلی مجازی به سوئیچها اجازه میدهد تا فریمها را از شبکههای محلی مختلف روی یک لینک واحد به نام ترانک ارسال کنند. این کار با افزودن اطلاعات سربرگ اضافی به نام برچسب (tag) به فریم اترنت انجام میشود. فرایند افزودن این سرایند کوچک VLAN Tagging نام دارد. اگر به شکل 6 نگاه کنید، سیستم 1 یک فریم همه پخشی را ارسال میکند. وقتی سوئیچ ۱ فریم را دریافت میکند، میداند این یک فریم همه پخشی است و باید آن را از تمام پورتهای خود به بیرون ارسال کند. با این حال سوئیچ ۱ باید به سوئیچ ۲ اعلام دارد که این فریم متعلق به VLAN10 است.
بنابراین قبل از ارسال فریم به سوئیچ 2،SW1 یک سرایند شبکه محلی مجازی را به فریم اترنت اصلی با شماره VLAN 10 اضافه میکند. شکل 6 این موضوع را نشان میدهد. هنگامی که سوئیچ ۲ فریم را دریافت میکند، مشاهده میکند که فریم متعلق به VLAN 10 است، بنابراین سرایند را برداشته و به فریم اصلی اترنت به تمام رابطهای پیکربندی شده در VLAN10 انتقال میدهد. بنابراین در مثالهای ذکر شده، وقتی فریمهای اترنت بین سوئیچها از طریق لینک ترانک ارسال میشوند با سرایند VLAN برچسبگذاری میشوند. هنگامی که سوئیچ دریافتکننده آنها را دریافت میکند، برچسب VLAN را حذف میکند و آنها را برای کلاینتها در VLAN ارسال میکند. در این حالت فریمها حالت برچسبگذاری نشده (untagged) دارند.
شکل 6
تغییر حالتهای رابطها
هر رابط سوئیچ میتواند به عنوان پورت دسترسی (access) یا ترانک عمل کند. با توجه به اینکه در استقرار رایج شبکههای محلی، صدها یا هزاران پورت سوئیچ وجود دارد، پروتکل تراکینگ پویا DTP سرنام Dynamic Trunking Protocol طراحی شده که به مدیران شبکه کمک میکند تا حالت عملکرد رابطها را به شکل خودکار تنظیم کنند. به طور پیشفرض، تمامی پورتهای سوئیچهای سیسکو در حالت پویای خودکار قرار دارند، به این معنی که پروتکل DTP در حال گوش دادن و تلاش برای درک بستههایی است که دریافت میکند و بر اساس آن تصمیم میگیرد که بستهها باید برچسبگذاری شوند یا خیر. به طور مثال، اگر یک لینک بین SW1 و SW2 داشته باشیم، اگر رابط کاربری روی SW1 را به عنوان پورت ترانک پیکربندی کنیم،DTP این مورد را برای طرف دیگر ارسال میکند و رابط SW2 به طور خودکار در حالت ترانک تنظیم میشود و لینک ترانک بین سوئیچها تشکیل میشود. در اینجا، حالتهای عملیاتی مختلفی برای پورتهای سوئیچ مثل switchport mode dynamic desirable، switchport mode access، switchport mode trunk و switchport mode nonegotiate وجود دارد. بنابراین چند ترکیب احتمالی برای دو سر لینک بین دو سوئیچ وجود دارد. بسته به پیکربندی، سوئیچها میتوانند یک لینک ترانک را ایجاد کنند. این ترکیبات در شکل 7 نشان داده شدهاند.
شکل 7
پیکربندی پورتهای ترانک
همانگونه که اشاره کردیم، حالت پیشفرض برای پورتهای سوئیچ سیسکو حالت پویای خودکار است. بنابراین، برای تشکیل یک ترانک، باید هر دو طرف لینک پیکربندی شود. برای روشن شدن بحث اجازه دهید Gi0/1 را در SW1 پیکربندی کنیم تا نحوه ساخت ترانک را به شکل دقیقتری مشاهده کنیم.
SW1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
SW1(config)#interface GigabitEthernet 0/1
SW1(config-if)#switchport mode ?
access Set trunking mode to ACCESS unconditionally dynamic Set trunking mode to dynamically negotiate access or trunk mode trunk Set trunking mode to TRUNK unconditionally
SW1(config-if)#switchport mode dynamic ?
auto Set trunking mode dynamic negotiation parameter to AUTO desirable Set trunking mode dynamic negotiation parameter to DESIRABLE
SW1(config-if)#switchport mode dynamic desirable
SW1(config-if)#end
%SYS-5-CONFIG_I: Configured from console by console
SW1#show interface trunk
Port Mode Encapsulation Status Native vlan
Gig0/1 desirable n-802.1q trunking 1
Port Vlans allowed on trunk
Gig0/1 1-1005
Port Vlans allowed and active in management domain
Gig0/1 1,10,20
Port Vlans in spanning tree forwarding state and not pruned
Gig0/1 1,10,20
از خروجی دستور trunk interface trunk متوجه میشویم که یک لینک trunk ساخته شده است، در حالی که هیچ کاری روی طرف دیگر لینک که سوئیچ 2 است انجام ندادهایم. این عملکرد پروتکل ترانکینگ پویا است. اکنون اجازه دهید تا وضعیت لینک در سوئیچ 2 را بررسی کنیم.
SW2#sh interfaces trunk
Port Mode Encapsulation Status Native vlan
Gig0/1 auto n-802.1q trunking 1
Port Vlans allowed on trunk
Gig0/1 1-1005
Port Vlans allowed and active in management domain
Gig0/1 1,10,20
Port Vlans in spanning tree forwarding state and not pruned
Gig0/1 1,10,20
توجه داشته باشید که رابطها روی SW2 در وضعیت خودکار قرار دارند. به این معنا که سوئیچ دوم در انتظار است تا SW1 فرایند ساخت ترانک را کامل کند.
کلام آخر
شبکههای محلی مجازی جایگاه ویژهای در شبکههای LAN سازمانی دارند و در پایگاه داده محلی VLAN switch ذخیره میشوند.
ترانک به فریمهای برچسب با شناسه VLAN اضافه میشود.
IEEE 802.1Q مکانیزم استاندارد ترانکینگ در سوئیچهای سیسکو است. روش قدیمی ISL منسوخ شده و دیگر استفاده نمیشود.
پروتکل تراکینگ پویای DTP میتواند در مورد لینکهای ترانک تصمیمگیری کند.
برای ساخت یک لینک ترانک بین دو سوئیچ، هر دو سمت باید پیکربندی شوند تا بتوانند ترانکینگ را در انتهای لینک ایجاد کنند.
منبع: مجله شبکه
دوره آموزشی CCNA