در مبحث قبل (CCNA R&S) با پروتکل VTP یا VLAN Trunking Protocol آشنا شدیم. در این قسمت به بررسی دقیقتر VTP و توضیحات تکمیلی این پروتکل میپردازیم.
ورژنهای پروتکل VTP
تا به امروز برای این پروتکل 3 ورژن ارائه شده است.
ورژن 2 (V2) تفاوت زیادی با ورژن 1 (V1) ندارد. تفاوت اصلی این دو ورژن در پشتیبانی ورژن 2 از Token Ring VLAN هاست. این پروتکل شاید در شبکههای داخلی منسوخ شده باشد اما در WAN (مانند شبکههای SDH) هنوز هم کاربرد دارند.
تفاوت دیگر در سوئیچهای در مود transparent است. در ورژن 1 اگر سوئیچ transparent ایی بین سوئیچ سرور و client وجود داشته باشد و domain name اش با domain name سرور یکسان نباشد، ترافیک VTP را از خود عبور نمی دهد، اما در ورژن 2 ترافیک VTP در سوئیچ transparent ای که حتی با دامنهاش یکسان نباشد را عبور میدهد. در ورژن2 ویژگی checksum (برای بررسی صحت دریافت بسته های VTP) قرار داده شده است.
ساختار TLV (Type-Length-Value)
در ابتدای ایجاد بسیاری از پروتکلها، زمان هایی وجود داشت که اندازه پکت ها کوچک می شد و برای کمبود فضا کارهای مختلفی مانند ادامه دادن در انتهای پکت انجام میشد، این اقدامات نیز گاها پس از زمانی جوابگو نبوده که منجر به تغییر پروتکل می گردید. به علت بروز زیاد این موارد ساختارها را TLV کردند.
در بین تمام پروتکلهای ارتباطی داده، TLV یک طراحی رمزگذاری است که برای عناصر اطلاعات اختیاری در یک پروتکل خاص استفاده میشود. نوع (type) و طول (length) در اندازه 1 تا 4 بایت ثابت اند و مقدار (value) متغییر است.
Type: یک binary code است (معمولا ترکیبی از عدد و رقم) که مشخص کننده نوع فیلدی است که این بخش از پیغام نمایش میدهد.
Length: اندازه فیلد value را مشخص میکند.
Value:سری هایی از سایزهای متغییر که شامل data برای این بخش از پیغام هستند.
تمام پیغامهایی که منتقل میشود دارای این ساختار هستند. به عنوان مثال قرار بوده یک پیغام IP عبور داده شود، نوع 1 یعنی IP به اندازه 32 بیت و درج آدرس. پس از تغییر IPv4 به ورژن 6 کافی بود به جای عوض شدن نوع بسته فقط یک type جدید اضافه شود. برای عبور IP ورژن 6 مثلا نوع دوم میشود IPv6 و نوع بسته میشود نوع 2، 128 بیت و آدرس. پروتکل ISIS برخلاف بسیاری از پروتکلها که برای IP طراحی شده بودند، برای ISO Address طراحی شده بود. با توجه به اینکه این پروتکل ساختارش TLV Base بود پس از آمدن IPv6 اول از همه پروتکل ISIS این نوع را نسبت به تمام پروتکلهای دیگر پیشتیبانی نمود. اما در پروتکلهای دیگر از جمله پروتکل OSPF مجبور به تغییر در ساختار شدند تا پروتکل این تغییر را پشتیبانی کند. پس از تغییر ساختار پروتکل OSPF از ورژن 2 به 3 بود که آن OSPF v3 IP ورژن 6 را پشتیبانی می کرد.
در VTP ورژن 2 ساختار را TLV-based کردند تا در صورت نیاز به تغییرات بتوانند این تغییرات را بدون نیاز به تغییر ساختار انجام دهند.
در ورژن های 1 و 2 فقط استاندارد VLAN ها (VLANهای شماره 1 تا 1005) را عبور می دهد. در ورژن 3، extended range ها (1006 تا 4096) نیز عبور داده میشود.
هنگامی که VTP V3 فعال شود قابلیتهای زیر فعال میشوند
- پشتیبانی ارسال extended VLANها
- پشتیبانی private VLANها
- بهبود وضعیت احرازهویت
- قابلیت ادامه فعالیت با ورژنهای قبلی
با توجه به کاربرد زیاد VTP version 3 در مواردی مانند دیتاسنترها و server farmها توصیه میشود برای مطالعه اطلاعات بیشتر به پیوست مراجعه کنید.
برای عوض کردن ورژن از دستورvtp version استفاده میشود.
ساخت VLAN زمانی انجام میشود که از VLAN ساخته شده خارج شوید. این حالت فقط مربوط به تنظیمات VLAN است و در موارد دیگر دستگاه اینطور نیست. برای دیدن فایل VLAN در حافظه دستگاه از دستور show flash استفاده میشود. برای پاک کردن فایل از دستور delete vlan.dat استفاده می کنیم.
برای نمایش تنظیمات VLANها در دستور show running-config بایستی VTP Mode در حالت transparent باشد. در ابتدا VLAN 10 را میسازیم و سوئیچ را در server mode قرار میدهیم. سپس برای نمایش تنظیمات از دستور show running-config استفاده میکنیم. در این حالت، اثری از تنظیمات VLAN دیده نمیشود.
حال سوئیچ را به transparent mode میبریم. در این حالت، مجددا برای نمایش تنظیمات، از دستور show running-config استفاده میکنیم.
در VTP ویژگی ایی به نام ورژن وجود دارد که به ازای هر تغییر اعمال شده ورژن یک عدد بالاتر میرود. این عدد هر چقدر بالاتر باشد، اولویتش بالاتر است. در تبادل اطلاعات بین سوئیچهای سرور نیز هنگام ایجاد VLANها، VTP Serverی که sequence number بالاتری داشته باشد اولویت بالاتری دارد و باعث ایجاد تغییرات در VTP Serverهای دیگر میشود.
پیغامها در VTP
- VTP summary advertisement
- VTP subset advertisement
- VTP advertisement request
زمانی که سوئیچی در client mode قرار داشته باشد و اطلاعاتی از VLANها ندارد، پیغامی در قالب VTP advertisement request ارسال میکند.
به صورت پیش فرض هر 300 ثانیه (هر 5 دقیقه) پیغام VTP summary advertisement توسط سوئیچ سرور ارسال میشود. این پیغام شامل تغییرات تنظیمات است و همه اطلاعات در این پیغام ارسال نمیشود. این پیغامها شامل خلاصه وضعیت VLAN Database شامل ورژن VTP، تغییرات اعمال شده در VLANها و domain name کنونی میباشد.
زمانی که VLAN ایی را اضافه و یا کم می کنیم (تغییر ایجاد میکنیم)، در همان لحظه سوئیچ سرور پس از اضافه کردن reversion خود، در قالب پیغامهای subset اطلاعات VLAN ها را ارسال میکند.
بنابراین سوئیچهای سرور جدا از ارسال subset ها، به صورت دوره در حال ارسال پیغامهای summary هستند. اگر همه سوئیچها را سرور کنیم مقدار ترافیک VTP (اطلاعاتی که مربوط به تنظیمات VTP است نه ترافیک دیتای VLAN ها) در شبکه بیشتر میشود.
VTP pruning
شبکه زیر را در نظر بگیرید که کامپیوترهای کاربران در VLAN های مشخص شده 2 و 3 و 4 قرار دارند.
دیتابیس VLAN ها همه به علت اجرا شدن VTP یکسان است. اگر ترافیک broadcast ایی از VLAN 3 به سوئیچ برسد سوئیچ ترافیک را عبور می دهد تا به سوئیچی که در پایین تصویر VLAN 3 را دارد برسد و در نهایت ترافیک به آدرس مشخص تحویل داده خواهد شد.
حال اگر ترافیک broadcast از VLAN 4 به سوئیج منتقل شود، با توجه به اینکه مقصد در سوئیچ اول نیست، آنرا فقط بروی پورتهای ترانک خود عبور می دهد تا به سوئیچ بعدی برسد، سوئیچ دوم، نیز به دلیل نداشتن پورتی در VLAN 4، ترافیک را بروی پورت ترانک خود، برای سوئیچ سوم ارسال میکند. در سوئیچ سوم نیز پورتی در VLAN شماره 4 وجود ندارد و پورت ترانکی دیگری هم وجود ندارد. در این مرحله ترافیک drop میشود.
با توجه به این که ترافیک نباید تا سوئیچ پایین به دلیل عدم وجود VLAN شماره 4 برود، میتوانست به این سوئیچها ارسال نشود. زمانیکه VTP pruning فعال شود، سوئیچها VLAN های فعالی که پورت به آنها اختصاص داده شده است را به همدیگر اعلام میکنند تا فقط ترافیک مربوط به آن VLAN ها برایشان ارسال شود.
برای مشخص شدن اینکه VTP pruning فعال شده است یا خیر از دستور show interface trunk استفاده میکنیم.
در اطلاعات پورت مشخص شده که وضعیت پورت spanning tree forward است و prune نشده است.
این ویژگی به صورت پیش فرض غیر فعال است. برای فعال کردن pruning از دستور vtp pruning استفاده میشود.
با توجه به اینکه سوئیچهای در transparent mode داخل شبکه VLAN بندی و ساختار آن نیستند، و ساختار VLAN بندی خود را به دلایل ذکر شده دارند، فعال کردن pruning در آنها بی معنی است.
می توان با استفاده از دستور show vtp status مشاهده نمود که VTP فعال می باشد یا خیر. اگر دستور فعال سازی را بروی سرور ها بزنیم بروی کلاینت ها نیز فعال میشود.
اگر سوئیچی در تنظیمات VTP پسوردش با بقیه سوئیچها یکسان نباشد، ترافیک VTP را عبور می دهد اما تنظیمات VTP را بروی خودش اعمال نمیکند.
اگر دو سوئیچ دارای VTP Domain های متفاوت باشد، DTP اش کار نمی کند (دو سوئیچ ترانک نمی شوند) و پیغام خطای unable to perform trunk negotiation because of vtp domain mismatch. اگر سوئیچها را به صورت دستی ترانک کنیم ارتباط ترانک برقرار میشود.
اگر بروی سوئیچی که domain ایی برایش تنظیم نشده باشد بسته VTP دریافت کند، سوئیچ بدون domain، نام domain داخل بسته VTP را بروی خود ست می کند.