در این بخش میخواهیم به دنیای VLAN سری بزنیم، همانطور که میدانید همه کلاینتها و سرورها برای دسترسی به شبکه به سوئیچ متصل میشوند و همه پورتهای سوئیچ هم در یک VLAN قرار دارد ولی بین آنها هیچ امنیتی وجود دارد و همه کلاینتها میتوانند همدیگر را ببینند، ولی در کل نیازی نیست که کلاینتها بتوانند به یک سری از سروروها دسترسی داشته باشند و باید دسترسی آنها را با استفاده از Private VLAN قطع کرد که این کار را در این قسمت با هم انجام میدهیم.
Private VLAN به دو نوع مختلف تقسیم میشود که در زیر مشاهده میکنید.
Primary VLAN یا همان VLAN اصلی که میتواند به همه سرورها و کلاینتها متصل باشد.
Secondary VLAN یا همان VLAN ثانویه خود به دو بخش Isolated و Community تقسیم میشود که سیستمهایی که در VLAN از نوع Isolated در نظر گرفته میشوند با هیچ کلاینت یا سروری در ارتباط نخواهند بود و فقط با VLAN از نوع Primary در ارتباط خواهند بود.
کلاینتهایی که در VLAN از نوع Community در نظر گرفته میشوند فقط میتوانند با کلاینتهایی که در همان VLAN Community قرار دارند ارتباط برقرار کنند، مثلاً ارتباط یک اتاق خاص با هم، البته این نوع VLAN میتواند با VLAN از نوع Primary ارتباط داشته باشد.
در این قسمت یک مثال در مورد Private Vlan را با هم بررسی میکنیم تا به صورت عملی عملکرد این VLAN را مورد تست قرار دهیم.
طبق شکل یک روتر، یک سوئیچ، دو سرور و سه کلاینت را به لیست GNS3 اضافه کنید.
در زیر لیست آدرس IP برای هر کدام از سیستمها را مشاهده میکنید، طبق جدول به هر یک از سیستمها IP مورد نظر آنها را تخصیص دهید و بعد از این کار دستور Ping را اجرا کنید تا از ارتباط بین آنها مطمئن شوید.
IP Address | System Name |
۱۹۲.۱۶۸.۱.۱ | R1 |
۱۹۲.۱۶۸.۱.۲ | PC1 |
۱۹۲.۱۶۸.۱.۳ | PC2 |
۱۹۲.۱۶۸.۱.۴ | PC3 |
۱۹۲.۱۶۸.۱.۵ | DC1 |
۱۹۲.۱۶۸.۱.۶ | DC2 |
برای اینکه بتوانیم از دستورات Privat Vlan در سوئیچ استفاده کنید باید پروتکل VTP را در حالت Transparent قرار دهید تا این دستورات در سوئیچ قابل قبول باشد.
Switch#conf t
Switch(config)#vtp mode transparen
با دستور بالا VTP در حالت Transparent قرار خواهد گرفت.
در ادامه کار سه کلاینت PC1 , PC2 , PC3 را در یک VLAN شمارهی ۱۰۰ قرار میدهیم و نوع VLAN آن را community در نظر میگیریم.
Switch(config)#vlan 100
Switch(config-vlan)#private-vlan community
در دستور بالا Vlan با شماره ۱۰۰ تعریف شده و نوع آ را community در نظر گرفتیم که در ادامه کار این Vlan را به پورتهای کلاینت ها تخصیص میدهیم.
Switch(config)#vlan 200
Switch(config-vlan)#private-vlan isolated
در دستور بالا VLAN با شمارهی ۲۰۰ ایجاد کردیم که نوع آن را isolated در نظر گرفیم که باید به سرورهای DC1 و DC2 بدهیم.
Switch(config)#vlan 300
Switch(config-vlan)#private-vlan primary
Switch(config-vlan)#private-vlan association 100,200
با دستور بالا VLAN به شمارهی ۳۰۰ از نوع Primary در نظر گرفته شده که باید به پورتی تخصیص دهیم که به سمت روتر ارسال میشود، در دستور آخر هم باید مشخص کنیم چه VLanهایی با VLAN Primary در ارتباط هستند.
تا به اینجا سه تا VLAN تعریف کردیم که نوع آنها را مشخص کردیم، حال در ادامه میخواهیم پورتهای هر سیستم را به این VLANها تخصیص دهیم.
Switch(config)#interface ethernet 1/1
Switch(config-if)#switchport mode private-vlan promiscuous
Switch(config-if)#switchport private-vlan mapping 300 100,200
در دستور بالا وارد پورت ethernet 1/1 که به روتر R1 متصل است، بعد از آن از دستور promiscuous برای معرفی این پورت به عنوان پورت اصلی استفاده میکنیم ، در ادامه برای اینکه شمارهی VLAN اصلی و فرعی را به این پورت معرفی کنیم از دستور switchport private-vlan mapping 300 100,200 استفاده میکنیم که شمارهی اول که ۳۰۰ است مربوط به VLAN Primary است که مربوط به همین پورت است و شمارههای ۱۰۰ و ۲۰۰ که مربوط به VLANهای دیگر است باید به این پورت معرفی کنیم تا دسترسی لازم را به آن داشته باشند.
Switch(config-if)#interface range ethernet 0/0-2
Switch(config-if-range)#switchport mode private-vlan host
Switch(config-if-range)#switchport private-vlan host-association 300 100
در دستور بالا وارد سه پورتی شدیم که به DC1 ,DC2 ,DC3 متصل شده است، با دستور switchport mode private-vlan host به پورت مورد نظر اعلام کردیم که این سه پورت به کلاینت متصل خواهد شد و دستور switchport private-vlan host-association 300 100 هم برای معرفی VLAN اصلی و فرعی کاربرد دارد.
نکته: دستور Host عموماً به سیستمهایی داده میشود که در شبکه داخلی قرار داشته باشند و بخواهند با دنیای بیرون ارتباط برقرار کنند.
Switch(config)#int e0/3
Switch(config-if)#switchport mode private-vlan host
Switch(config-if)#switchport private-vlan host-association 300 200
Switch(config-if)#int e1/0
Switch(config-if)#switchport mode private-vlan host
Switch(config-if)#switchport private-vlan host-association 300 200
در دستورات بالا هم وارد دو پورتی شدیم که به سرور DC1 و DC2 متصل شده است و دستور مورد نظر را برای آنها اجرا کردیم.
تا به اینجا توانستیم VLAN مورد نظر را تعریف کنیم و پورتهای مشخص شده را درون VLANقرار دهیم، حال اگر بخواهیم کارکرد این عمل را تست بگیریم میتوانیم از دستور زیر استفاده کنیم:
Switch#show vlan private-vlan
Primary Secondary Type Ports
——- ——— —————– ——————————————
۳۰۰ ۱۰۰ community Et0/0, Et0/1, Et0/2, Et1/1
۳۰۰ ۲۰۰ isolated Et0/3, Et1/0, Et1/1
با استفاده از دستور show vlan private-vlan میتوانید مشاهده کنید که چه VLANهایی به عنوان VLAN اصلی و ثانویه انتخاب شدهاند و نوع آنها را میتوانید مشاهده کنید، در قسمت Port هم مشخص شده است که Et0/0 که به عنوان پورت Primary در نظر گرفتیم در هر دو قسمت قرار دارد .