آموزش CCNA : پروتکل های DTP و VTP
DTP و VTP – در این مقاله قصد دارم براتون توضیح بدم که سوئیچ ها با استفاده از (DTP (Dynamic Trunking Protocol چگونه با هم ارتباط برقرار می کنند. این پروتکل به صورت نرمال در IOS سوئیچ های Cisco برای برقراری ارتباط با هم بکار برده شده است تا در صورت نیاز پورت ها را به حالت access و یا trunk تبدیل نماید. به صورت پیش فرض DTP در حالت dynamic auto و یا dynamic desirable بر روی تمامی پورت های سوئیچ شما فعال می باشد. این بدین معنی است که شما زمانی بسته DTP را دریافت خواهید کرد که درخواست ها مبنی بر تغییر وضعیت پورت به حالت trunk دریافت، و این تغییر وضعیت انجام شده باشد.
پروتکل های DTP و VTP
زمانی که بین دو سوییچ پورتی را به حالت ترانک تعریف میکنید ، ترانک میتواند از پروتکل استاندارد 802.1Q و یا پروتکل اختصاصی سیسکو و یا همان ISL جهت کپسوله سازی داده های VLAN ها استفاده نمایید.
در صورتی که DTP فعال باشد پورت های ترانک به صورت خودکار پروتکل فعال و وضعیت پورت سمت مقابل را به صورت پویا تشخیص داده و در صورن لزوم ترانک را فعال و سپس طبق آن پروتکل شروع به نقل و انتقال اطلاعات VLAN ها می نماید.
حالت های مختلف Switchport
- Auto در این حالت پورت در حالت غیر فعال قرار می گیرد و آماده تبدیل به ترانک شدن می باشد اما به شرطی که پورت مقابل در حالت On و یا Desirable تعریف شده باشد. به اصطلاح منتظر شورع مذاکره از طرف دیگر است
- On پورت را در حالت ترانک قرار میدهد حتی اگر سوییچ مقابل آن را نپذیرد.
- Off پورت در حالت ترانک قرار نمیگیرد حتی اگر سوییچ مقابل آن را نپذیرد.
- Desirable در صورت پذیرش سوییچ مقابل پورت آماده تبدیل به ترانک شدن می باشد و شروع کننده مذاکره است، در این حال سوییچ مقابل باستی در یکی از حالت های Auto ، On و یا Desirable تعریف شده باشد.
- Nonegotiate در این حالت ارسال هرگونه فریم DTP متوقف می شود.
در حالت پیش فرض پورت های در مد Auto هستند لذا ارتباط برقرار نمی شود چون هر دو سر منتظر شروع طرف دیگر هستند لذا باید حداقل یک طرف در حالت Desiriable قرار گیرد
نکته ۱ : در برخی از شرایط که بین دو سوییچ که یکی سیسکو و دیگری به غیر از سیسکو می باشد استفاده از حالت های پویا باعث بروز اختلال می شود لذا پورت را در حالت Nonegotiate قرار دهید تا فریم های DTP ارسال نشود و از بروز اینگونه اختلالات جلوگیری شود. مخصوصا وقتی یک طرف به PC وصل شده باشد.
نکته ۲ : زمانی که از هر یک از حالت های پویا استفاده میکنید در صورت فعال سازی Nonegotiate با خطا مواجه خواهید شد.
برای تغییر حالت پورد از Auto به Desirable از دستور زیر استفاده میکنیم
Switch(config)#interface fastEthernet 0/1
Switch(config-if)#switchport mode dynamic desirable
برای برسی این که ببینیم پورت تغییر وضعیت داده یا نه از دستور زیر استفاده میکنیم
Switch#show interfaces fastEthernet 0/1 switchport
همان طور که می بینیم قسمت Operational Mode به trunk تغییر کرده است
برای این که قابلیت تغییر خودکار و مذاکره پورت ها رو غیرفعال کنیم میتوانیم با دستور Nonegotiate بگوییم روی پورت های مورد نظر این قابلیت غیرفعال شود
نکته: اول باید باید حالت Auto پورت را به trunk یا access تغییر دهیم و سپس دستور Nonegotiate را اجرا کنیم
Switch(config-if)#switchport mode access
Switch(config-if)#switchport nonegotiate
پروتکل VTP چیست
شبکه ای را تصور کنید که دارای ۱۰ سوییچ است. این سوییچ ها بوسیله خطوط Trunk با هم در ارتباط هستند. هر یک از سوییچ ها دارای یک پورت اختصاص داده شده به VLAN با شماره VLAN3 و با نام Accounting می باشند. بدون VTP کارشناس شبکه مجبور است با استفاده از یکسری دستورات مشابه ، این VLAN را بر روی تمام سوییچ ها تنظیم کند. اما با وجود VTP کارشناس شبکه VLAN را برروی یک سوییچ ایجاد می کند و ۹ تا سوییچ دیگر این VLAN را learn یا یاد میگیرند، به این عمل VTP گویند.
پیغام های VTP سوییچ ها را قادر می سازد که اطلاعات و تنظیمات VLAN ها در لایه 2 بین سوییچ ها انجام بگیرد. زمانی که روی یک سوییچ نام یک VLAN را عوض ، یا یک VLAN جدیدی را اضافه یا حذف کنیم یا اطلاعات VLAN های موجود را تغییر بدیم ، این تغییرات با استفاده از پروتکل VTP برروی تمام سوییچ ها به روز میشود. (با همان VLAN ID و نام VLAN) این فرایند مانند پروتکل های مسیریابی می باشد. هریک ازسوییچ ها پیغام VTP خود را در یک دوره زمانی برروی پورت Trunk خود ارسال می کند. برای مثال ما یک VLAN جدید با شماره VLAN3 و با نام Accounting برروی یک سوییچ تنظیم کردیم در این هنگام سوییچ بلافاصله پیغام VTP Update را برروی پورت های Trunk خود اطلاعات VLAN جدید را به بقیه سوییچ ها پخش می کند.
VTP Domain: محدوده ای که همه ی سوئیچ ها در آن دارای Domain Name مشترک هستند.
VTP Updates: آخرین اطلاعات مربوط به Vlan ها (Vlan های جدید و یا حذف شده) تحت عنوان VTP Updates در محدوده ی سوئیچ های یک VTP Domain مبادله می شود.
VTP Mode: در یک VTP Domain یک سوئیچ می تواند چهار حالت (Mode) متفاوت داشته باشد:
- Server
- Client
- Transparent
- off
Server:
قابلیت ایجاد و حذف Vlan در آن وجود دارد.
Updates خودش را به سایر سوئیچ ها ارسال می کند.
Client:
قابلیت ایجاد و حذف Vlan در آن وجود ندارد.
Updates دریافتی از Server را پذیرفته و روی خود اعمال می کند.
Updates دریافتی از Server را به سایر سوئیچ ها ارسال می کند.
Transparent:
قابلیت ایجاد و حذف Vlan در آن وجود دارد.
Updates خودش را به سایر سوئیچ ها ارسال نمی کند.
Updates دریافتی از Server را نپذیرفته و روی خود اعمال نمی کند.
Updates دریافتی از Server را به سایر سوئیچ ها ارسال می کند.
Off:
همانند Transparent می باشد با این تفاوت که Advertisementها را ارسال نمی کند.
به بیان دیگر ، Server آپدیت خودش را به Client ها ارسال می کند و Client ها خودشان را با Server تطبیق می دهند، اما در اجتماع Server و Client، سوئیچ های Transparent اجتماعی نبوده و سرشان در لاک خودشان است، نه به دیگران آپدیت ارسال می کنند و نه آپدیت دیگران را روی خودشان اعمال می کنند، تنها کاری که میکنند این است که آپدیت ها را از یک گوش شنیده و از گوش دیگر خارج می کنند، یعنی در توزیع آپدیت بین سایر سوئیچ ها همکاری می کنند.
فرایند هماهنگ شدن کلاینت ها با سرور: در هر ارسال سرور عددی بنام Revision Number به سمت کلاینت ها می فرستد مثلا با ایجاد شماره VLAN عدد مربوط به 0+1 و با ایجاد نام برای VLAN به 0+1+1 تغییر می کند که پس از ارسال عدد از سوی سوئیچ مد سرور به سوئیچ های مد کلاینت (یعنی ارسال Summery Advertisment) که معمولا هر 5 دقیقه اتوماتیک انجام می شود، سوئیچ های مد کلاینت تقاضای دریافت نوع تغییرات (Request Advertisment) می دهد و سرور نوع تغییرات را ارسال می کند (Subset Advertisement) و کلاینت تاییدیه دریافت ارسال می کند (VTP Join Message)
حالت وجود چند سوئیچ در مد Server : اگر دو سوئیچ که در حالت Server قرار دارند را در یک VTP Domain قرار دهیم، کدام یک از آنها خود را با دیگری تطبیق داده و Updates دیگری را در خود اعمال می نماید؟
در این مبارزه سوئیچی بر دیگری غالب می شود که Revision Number بالاتری داشته باشد، سوئیچی که Revision Number کمتری دارد، تصور خواهد کرد که سوئیچ مقابل تعداد دفعات بیشتری آپدیت شده و اطلاعات به روزتری دارد، بنابراین تسلیم او شده و اطلاعات خودش را با او تطبیق می دهد!
انواع Advertisement
Summary : بسته ای که حاوی اطلاعاتی مانند نام دامین و Revision Number است.
Subset : بسته حاوی اطلاعات (update)
Request : زمانی که یک کلاینت یک بسته Summary دریافت می کند بعد از چک کردن محتویات ان با تنظیمات خود اگر مقدار Revision Number بسته از مقدار خود بیشتر بود یک Request ارسال می کند و درخواست یک Subset می کند. همچنین در صورت ریست کردن یا تغییر نام دامین این بسته ارسال می شود.
نسخه های VTP
VTP دارای سه نسخه است :
ویژگی های نسخه یک : نسخه پیش فرض سوئیچ می باشد. زمانی که در حالت Transparent است در صورت دریافت Advertisement ، نسخه و نام دامین را چک می کند در صورت مطابقت با مشخصات خود Advertisement ها را ارسال می کند.
ویژگی های نسخه دوم: از شبکه های Token Ring پشتیبانی می کند. زمانی که در حالت Transparent است بدون در نظر گرفتن نسخه و نام دامین ، Advertisement ها را ارسال می کند. Consistency check : زمانی که اطلاعات جدیدی از طریق CLI یا SNMP ایجاد شود مواردی مانند نام VLAN چک می شود. در صورت استفاده از نسخه دو تمامی سوئیچ های VTP دامین باید بتوانند از این نسخه پشتیبانی کنند. در نسخه دوم تنها یک سوئیچ نقش سرور را ایفا می کند و مابقی در نقش کلاینت عمل می کنند.
ویژگی های نسخه سوم: بهبود مکانیزم احراز هویت، از VLAN رنج Extended 1006 تا 4094 پشتیبانی می کند. پشتیبانی از Private VLAN ، ایجاد مکانیزم Primary Server و Secondary Server ،امکان غیر فعال کردن VTP روی پورت ترانک
نکته : نسخه سوم در (Cisco IOS Release 12.2(52 و بعد از ان قابل دسترس است.
VTP Pruning
قابلیتی است که می توان به وسیله ان ترافیک اضافه مثل Broadcast را کاهش داد. به این صورت که سوئیچ تمام پورت های Trunk خود را چک می کند و مشخص می کند که از هر پورت به چه VLAN هایی می رسد. به طور پیش فرض این ویژگی غیر فعال است. در صورت فعال کردن این ویژگی روی یک سوئیچ این ویژگی رو تمام سوئیچ های دامین فعال خواهد شد. در حالت معمول که در شکل زیر می بینید بسته ارسالی از PC متصل به سوئیچ یک روی کل شبکه ارسال می شود.
اما در صورت فعال کردن VTP Pruning بسته ارسالی از PC متصل به سوئیچ یک به سمت سوئیچ 5 و 6 ارسال نخواهد شد مانند شکل زیر:
شرایط عضویت در VTP دامین
- باید تمام پورت های ما بین سوئیچ ها از نوع Trunk باشند
- باید در یک دامین هم نام قرار داشته باشند
- حداقل نیاز به یک Server VTP داریم
پیاده سازی VTP
برای ساخت و عضویت یک سوئیچ در VTP دامین از دستور زیر بر روی سوئیچ ها استفاده میکنیم
Switch(config)#vtp domain my_name
برای قرار دادن مود VTP در حالت server از دستور زیر استفاده می کنیم
Switch(config)#vtp mode server
برای قرار دادن مود VTP در حالت client از دستور زیر استفاده می کنیم
Switch(config)#vtp mode client
برای قرار دادن مود VTP در حالت transparent از دستور زیر استفاده می کنیم
Switch(config)#vtp mode transparent
برای فعال کردن VTP Pruning از دستور زیر استفاده می کنیم
Switch(config)#vtp pruning
برای مشخص کردن ورژن VTP از دستور زیر استفاده می کنیم
Switch(config)#vtp version 2
با دستور زیر میتوانیم برای افزایش امنیت و جلوگیری از این که کسی با اضافه کردن یک سوئیچ به شبکه ما باعث اختلال شبکه شود می توانیم پسوردی برای وصل شدن به VTP شبکه قرار دهیم
Switch(config)#vtp password mypassword
نکته: این پسورد باید بر روی تمام سوئیچ هایی که از VTP استفاده می کنند زده شود
با دستور زیر پسورد ما به صورت یک فایل هش شده ذخیره می شود
Switch(config)#vtp password mypassword hidden
و یا با دستور زیر
Switch(config)#vtp password mypassword secret
برای نمایش وضعیت VTP از دستور زیر استفاده میکنیم
Switch#show vtp status
یک مشکل
VTP Hacking : فرض کنید مدیر شبکه یک کارخانه هستید و یکی از همکارانتان که میخواهد شما را پیش رئیس کارخانه خراب کند، یک سوئیچ با Revision Number بالاتر را به کارخانه آورده و درست در زمان اوج استفاده از شبکه آن را به یکی از سوئیچ های کارخانه متصل می کند، در اینصورت Dynamic Trunking Protocol یا DTP کار او را ساده کرده و سوئیچ بیگانه را عضوی از VTP Domain میکند، کلیه سوئیچ هایی که در حالت Server و Client قرار دارند، Updates های سوئیچ بیگانه را دریافت کرده و شبکه به سادگی از کار میافتد…
همچنین یک PC که به پورتی وصل است با قرار دادن یک سوئیچ خارجی و trunk کردن پورت اتصال خود براحتی میتواند در هر Vlan با دستکاری تگ ها وارد شده و مشکل بسازد.
روش های پیشگیری:
1- پس از ساخت Vlan ها بر روی Server، سوئیچ ها را در حالت Transparent قرار دهید تا از Update های مخرب در امان بمانند.
2-پورت های بلااستفاده ی سوئیچ را Shutdown نمایید.
Switch#conf t
Switch(config)#int fa 0/24
Switch(config-if)#shutdown
3-. Dynamic Trunking Protocol یا DTP را با فرمان switchport nonegotiate غیر فعال کنید.
4- برای هر pc متصل یه پورت خاص ، بصورت دستی vlan ارتباطی را مشخص نماییم:
Switch#Conf t
Switch(config)#Int Fa 0/1
Switch(config)#switchport access vlan 12
Switch(config)#switchport Mode access
Switch(config)#switchport nonegotiate
نحوی اضافه کردن یک سوئیچ جدید به دامین VTP :
به هیچ عنوان یک سوئیچ جدید را مستقیما به شبکه خود متصل نکنید چون ممکن است که از قبل دارای تنظیماتی باشد و باعث از بین رفتن دیتابیس VLAN شما شود حتی قرار دادن یک سوئیچ در حالت Client نیز از تبادل اطلاعات ان سوئیچ جلوگیری نخواهد کرد. سرور در صورت مشاهده اطلاعات یک کلاینت با مقدار Revision Number بالاتر ، اطلاعات خود را با اطلاعات ان کلاینت بروز خواهد کرد. برای جلوگیری از این مشکل باید مقدار Revision Number را Reset کنیم تا مقدار ان صفر شود. برای اینکار به صورت زیر عمل کنید:
- سوئیچ را به شبکه متصل نکنید.
- سوئیچ را در حالت Transparent قرار دهید یا نام دامین انرا تغییر دهیم با این کار مقدار Revision Number صفر خواهد شد.
- سوئیچ را Restart کنید.
- تنظیمات صحیح VTP را روی ان انجام دهید.
- سوئیچ را به شبکه متصل کنید.
سلام
شما در بالا گفتین:
“VTP Hacking : فرض کنید مدیر شبکه یک کارخانه هستید و یکی از همکارانتان که میخواهد شما را پیش رئیس کارخانه خراب کند، یک سوئیچ با Revision Number بالاتر را به کارخانه آورده و درست در زمان اوج استفاده از شبکه آن را به یکی از سوئیچ های کارخانه متصل می کند، در اینصورت Dynamic Trunking Protocol یا DTP کار او را ساده کرده و سوئیچ بیگانه را عضوی از VTP Domain میکند، کلیه سوئیچ هایی که در حالت Server و Client قرار دارند، Updates های سوئیچ بیگانه را دریافت کرده و شبکه به سادگی از کار میافتد…”
میشه قسمت:
“در اینصورت Dynamic Trunking Protocol یا DTP کار او را ساده کرده و سوئیچ بیگانه را عضوی از VTP Domain میکند”
رو بیشتر توضیح بدین؟
کوتــــــــــــــــــــــــــــ و مفید ــــــــــــــــــــــــــــــــــــــــــــاه