معرفی پروتکل RIP یا Routing information protocol و نحوی پیاده سازی آن !

یکی از مباحث مهم در شبکه و زیرساخت نحوی ایجاد ارتباط بین شبکه ها و هدایت بسته ها از یک شبکه به شبکه دیگر و تحویل آن به مقصد می باشد که به آن مسیریابی گفته می شود مسیریابی به روش هایی مانند Static و Dynamic صورت می گیرد. در این مقاله می خواهیم با یکی از پروتکل های Dynamic مسیریابی آشنا شویم.پروتکل Routing Information Protocol یا به اختصار RIP قدیمی ترین پروتکل مسیریابی است که در سال 1988 ارائه شد و به عنوان یک پروتکل IGP ، هنوز برای شبکه های کوچک مورد استفاده قرار می گیرد. پروتکل RIP جزء دسته Distance-Vector است.

Image

 


قبل از اینکه به پروتکل RIP بپردازیم ابتدا با چند اصطلاح آشنا شویم:

  • همسایگی : دو روتر برای اینکه بتواند اطلاعات جدول مسیریابی خود را بین هم رد و بدل کنند باید یکسری شرایط را داشته باشند در صورت داشتن این شرایط به اصلاح گفته می شود که دو روتر با یکدیگر همسایه شده اند.
  • Update : بسته حاوی اطلاعات مروبط به جدول مسیریابی
  • Advertisement : عمل ارسال بسته update توسط روتر روی اینترفیس های خود
  • Metric : عددی که براساس فرمول مخصوص پروتکل مسیریابی بدست می اید و جهت انتخاب بهترین مسیر کاربرد دارد

 


روترهایی که از پروتکل RIP استفاده می کنند برای اینکه از کل مسیرها و شبکه موجود اطلاع پیدا کنند کل اطلاعات جدول مسیریابی خود را روی اینترفیس هایشان ارسال می کند تا به سایر روترها اعلام کند که چه شبکه هایی را دارند. این ارسال هر 30 ثانیه یکبار انجام می شود. برای ارسال از پروتکل UDP با شماره پورت 520 استفاده می کند. روتر با دریافت بسته update جدول مسیریابی خود را با آن بروز می کند اما در صورتی که از همسایه خود طی 180 ثانیه update دریافت نکند تمام روت های دریافتی را غیرقابل استفاده در نظر می گیرد و و بعد از 240 ثانیه این روت ها را از جدول مسیر یابی خود پاک می کند.RIP برای انتخاب بهترین مسیر از مفهومی به نام hop count استفاده می کند. Hop count براساس تعداد روتر ها موجود در مسیر محاسبه می شود و حداکثر مقدار 15 می تواند باشد در صورتی که تعداد از 15 بیشتر باشد RIP آن شبکه را غیر قابل دسترسی در نظر می گیرد. RIP به وسیله این روش از ایجاد Loop در شبکه جلوگیری می کند اما این محدودیت باعث می شود که این پروتکل برای شبکه بزرگ مناسب نباشد.

انواع نسخه های RIP :


  • Version 1 :
  • Version 2
  • RIPng (RIP next generation) :

ویژگی های RIP version 1 :

  • یک پروتکل Classful است و از VLSM پشتیبانی نمی کند
  • دارای امکان Authentication ( احراز هویت) نیست
  • Advertisement ها را به صورت Broadcast ارسال می کند

ویژگی های RIP version 2 :

  • در سال 1993 ارائه شد.
  • یک پروتکل Classless است و از VLSM پشتیبانی می کند
  • امکان Authentication ( احراز هویت) را دارد
  • Advertisement ها را به جای Broadcast به صورت multicast به آدرس 224.0.0.9 ارسال می کند

ویژگی های RIPng :

  • پشتیبانی از IPv6
  • از پروتکل UDP با شماره پورت 521 استفاده می کند.

 

تایمرها مورد استفاده RIP :


  • Route update timer : زمان ارسال اطلاعات جدول مسیریابی که پیش فرض هر 30 ثانیه یکبار انجام می شود.
  • Route invalid timer : حداکثر مدت زمانی که روتر منتظر دریافت advertisement از طرف مقابل می شود و در صورت عدم دریافت route های دریافتی را غیرقابل استفاده در نظر می گیرد که پیش فرض مقدار ان 180 ثانیه است.
  • Route hold-down timer : در صورت دریافت یک update با متریک بالاتر آن را به مدت 180 ثانیه در حالت hold-down قرار می دهد. برای جلوگیری از بروز loop اینکار انجام می شود.
  • Route flush timer : اگر 180 ثانیه از دریافت advertisement گذشت 60 ثانیه دیگر منتظر می ماند در غیر اینصورت route ها را از جدول مسیریابی خود پاک می کند.

نکته : Administrative Distance پروتکل RIP برابر با 120 می باشد.
نکته : امکان Load Balance را روی 16 خط دارد که مقدار 4 پیش فرض آن می باشد.
نکته : routeهای پروتکل RIP با حرف اختصار R در جدول مسیریابی نمایش داده می شود.

نحوی تنظیم و فعال کردن پروتکل RIP :


کافیست دستور زیر را در global mode وارد کنیم:

R(config)#router rip

با دستور زیر می توانیم نسخه RIP را مشخص کنیم :

R(config-router)#version 2
    • نکته : در صورتی که بخواهیم از RIPng استفاده کنیم از دستور زیر استفاده می کنیم:
R(config)#ipv6 router rip

در صورتی که بخواهیم روی برخی از اینترفیس ها advertisement ارسال نشود مانند اینترفیس متصل به LAN از دستور زیر استفاده می کنیم:

R(config-router)#passive-interface fastethernet 0/0

جهت مشخص کردن شبکه هایی که می خواهیم آنها را advertise کنیم:

R(config-router)#network 192.168.1.0
  • نکته : شبکه مشترک بین دو روتر باید advertise شود در غیر اینصورت بین آنها اطلاعات رد وبدل نمی شود.

برای تعیین کردن authentication برای advertisement ها به صورت زیر عمل می کنیم:

    • در ابتدا باید یک دسته کلید تعریف کنیم به دستورات زیر:
R(config)#key chain itpro
R(config-keychain)#key 1
R(config-keychain-key)#key-string IT

    • سپس باید روی اینترفیس مورد نظر Authentication را فعال کنیم
R(config)#interface fastethernet 0/0
R(config-if)#ip rip authentication key-chain itpro

    • حالا باید نوع authentication را مشخص کنیم برای RIP به دو صورت MD5 (رمزنگاری شده) و text (بودن رمزنگاری) می توان تعریف کرد.
R(config-if)#ip rip authentication mode md5

جهت مشاهده اطلاعات جدول مسیریابی از دستور زیر استفاده می کنیم:

R#show ip route

برای عیب یابی از دستور زیر استفاده می کنیم:

R#debug ip rip

 

یک مثال برای پیاده سازی پروتکل RIP :


با توجه به شکل زیر می خواهیم بین روترهای R1 ، R2 و R3 پروتکل RIP را راه اندازی کنیم تا این روتر ها از شبکه موجود مطلع شوند و به آنها دسترسی پیدا کنند.

Image

بعد از اختصاص دادن IP به اینترفیس های روترها روی روتر R1 دستورات زیر را وارد می کنیم:

R1(config)#router rip
 R1(config-router)#network 192.168.1.0
R1(config-router)#network 192.168.12.0
R1(config-router)#network 192.168.13.0

روی روتر R2 :

R2(config)#router rip
 R2(config-router)#network 192.168.2.0
R2(config-router)#network 192.168.12.0
R2(config-router)#network 192.168.23.0

سپس روی روتر R3 :

R2(config)#router rip
 R2(config-router)#network 192.168.3.0
R2(config-router)#network 192.168.13.0
R2(config-router)#network 192.168.23.0

همینطور که در تصویر می بینید پورت Fastethernet 0/0 به شبکه داخلی متصل است در نتیجه دلیلی ندارد که روی پورت Advertise ارسال شود. به همین منظور روی دستورات زیر را وارد می کنیم:
روتر R1 :

R1(config)#router rip
R1(config-router)#passive-interface fastEthernet 0/0

روتر R2 :

R2(config)#router rip
R2(config-router)#passive-interface fastEthernet 0/0

روتر R3 :

R3(config)#router rip
R3(config-router)#passive-interface fastEthernet 0/0

برای اینکه Authentication را فعال کنیم از دستورات زیر استفاده می کنیم:
روتر R1 :

R1(config)#key chain itpro
R1(config-keychain)# key 1
R1(config-keychain-key)#  key-string IT
R1(config)#interface fastethernet 1/1
R1(config-if)# ip rip authentication mode md5
R1(config-if)# ip rip authentication key-chain itpro
R1(config-if)#interface fastethernet 1/0
R1(config-if)# ip rip authentication mode md5
R1(config-if)# ip rip authentication key-chain itpro

روتر R2 :

R2(config)#key chain itpro
R2(config-keychain)# key 1
R2(config-keychain-key)#  key-string IT
R2(config)#interface fastethernet 0/1
R2(config-if)# ip rip authentication mode md5
R2(config-if)# ip rip authentication key-chain itpro
R2(config-if)#interface fastethernet 1/0
R2(config-if)# ip rip authentication mode md5
R2(config-if)# ip rip authentication key-chain itpro

روتر R3 :

R3(config)#key chain itpro
R3(config-keychain)# key 1
R3(config-keychain-key)#  key-string IT
R3(config)#interface fastethernet 0/1
R3(config-if)# ip rip authentication mode md5
R3(config-if)# ip rip authentication key-chain itpro
R3(config-if)#interface fastethernet 1/1
R3(config-if)# ip rip authentication mode md5
R3(config-if)# ip rip authentication key-chain itpro

برای اینکه از جدول مسیریابی روترها را ببینم از دستور show ip route استفاده می کنیم. در تصویر زیر خروجی این دستور روی روتر یک نمایش داده می شود:

Image

همانطور که در تصویر می بیینید مسیرهایی که با حروف اختصار R نمایش داده می شود توسط پروتکل RIP شناسایی شده اند.

Time based ACL چیست و چگونه توسط آن شبکه را فیلتر کنیم

در آموزش های قبلی با Access control list یا ACL آشنا شدیم و همچنین با نحوی استفاده از Standard ACL و Extended ACL را فرا گرفتیم. اما در برخی از شرایط ما نیاز داریم که یک سرویس خاص در برخی از ساعت ها یا زمان های خاص مورد استفاده قرار گیرد اینکار به وسیله ACL معمول امکان پذیر نیست برای اینکار از Time Based ACL استفاده می کنیم.Time based ACL نوع دیگری از Access list است که در نسخه IOS 12.0.1.T سیسکو ارائه شد و به ما این امکان را می دهد که علاوه بر پارامترهای کنترلی ذکر شده برای ACL ، بتوانیم آنرا زمانبندی کنیم به طور مثال کاربران در روز فقط از ساعت 11 تا 12 امکان دسترسی به اینترنت را داشته باشند.

  • نکته : هنگام استفاده از این نوع ACL از درست و دقیق بودن زمان و تاریخ دستگاه مطمئن شوید.

 

برخی از موارد استفاده Time Based ACL :


    • مدیر شبکه کنترل بیشتری روی دسترسی کاربران به منابع شبکه دارد.
    • امکان log گیری از ترافیک در زمان های خاص
    • امکان تغییر مسیر ترافیک شبکه در زمان مشخص
    • در بحث QoS مفید است مثلا در یک ساعت خاص Bandwith برای QoS در نظر کرفته شود.
    • Policy-Based Routing و Queuing Function را برای ما بهبود می بخشد.

نحوی فعال سازی Time Based ACL :


در ابتدا باید یک Time Range مشخص کنیم:

Router(config)#time-range TR

زمانبندی به دو صورت امکان پذیر است:

    • یک بازه مشخص که تکرار می شود مثل ساعت کاری در ادارات :
Router(config-time-range)#periodic daily 07:00 to 14:00
    • یک بازه زمانی خاص یعنی در یک زمان خاص شروع و در یک زمان مشخص خاتمه می یابد:
Router(config-time-range)# absolute start 10:00 20 may 2015 end 12:00 30 may 2015

بعد از تعریف Time Range باید آنرا به ACL مورد نظر اختصاص دهیم:

Router(config)#ip access-list extended itpro
Router(config-ext-nacl)#permit ip any any time-range TR

در نهایت ACL ایجاد شده را به یک اینترفیس اختصاص می دهیم:

Router(config)#interface fastethernet 0/0
Router(config)#ip access-group itpro in

یک مثال عملی برای درک بهتر:


با توجه به شکل زیر ، می خواهیم PC1 فقط در روزهای دوشنبه از ساعت 10 صبح تا 12 ظهر بتواند با PC2 ارتباط داشته باشد.

Image

در ابتدا باید بازه زمانی را مشخص کنیم:

R1(config)#time-range TR
R1(config-time-range)#periodic monday 10:00 to monday 12:00

سپس ACL مورد نظرمان را تعریف می کنیم:

R1(config)#ip access-list extended itpro
R1(config-ext-nacl)#permit ip host 192.168.1.2 host 192.168.2.2 time-range TR

حالا ACL تعریف شده را به اینترفیس مورد نظر اختصاص می دهیم:

Router(config)#interface fastethernet 0/1
Router(config)#ip access-group itpro out

Extended ACL چیست و نحوی تنظیم آن در تجهیزات سیسکو

در آموزش قبلی با مفاهیم و عملکرد Access Control List یا ACL آشنا شدیم و همچنین نحوی تنظیم و استفاده از Standard ACL را فرا گرفتیم در این آموزش با یک نوع دیگر Access list آشنا می شویم.
Extended ACL نوعی دیگری از ACL است که برخلاف Standard ACL می تواند ترافیک را براساس فیلدها و پارامترهای مختلف برای ما کنترل کند. وجود پارامترهای فراوان به ما این امکان را می دهد که بتوانیم ترافیک ها را به صورت دقیق تر و بهتر کنترل کنیم. در Standard ACL ما تنها می توانیم براساس آدرس مبدا ، بسته ها را کنترل کنیم ولی Extended ACL می تواند کنترل را براساس آدرس مبدا و مقصد ، شماره پورت مبدا و مقصد ، نوع پروتکل و … انجام دهد در نتیجه Extended ACL به عنوان یک ابزار قدرتمند برای مدیران برای کنترل ترافیک محسوب می شود.
در همه نسخه ها ، برای Extended ACL می توان یک عدد از 100 تا 199 در نظر گرفت. از نسخه IOS 11.2 سیسکو امکان تعریف Extended ACL به وسیله نام فراهم شد و همچنین از نسخه IOS 12.0.1 سیسکو محدود عددی بین 2000 تا 2699 برای Extended ACL اضافه شد.


پارامترهای که می توان توسط Extended ACL کنترل کرد:

  • آدرس IP مبدا
  • آدرس IP مقصد
  • شماره پورت مبدا
  • شماره پورت مقصد
  • نوع پروتکل

 


نحوی تعریف Extended ACL در حالت عددی:

access-list access-list-number {permit|deny} protocol source [Source port]destination [destination port]

access-list-number : عدد بین 100 تا 199 یا 2000 تا 2699
permit|deny : عملی که در هنگام تطبیق بسته با َACL نسبت با آن گرفته می شود(اجازه عبور یا عدم اجازه)
Protocol : مشخص کردن نوع پروتکل مثل TCP ، UDP ، IP و …
Source : مشخص کردن IP مبدا به یکی از سه روش زیر:

  • Host : یک ادرس IP مشخص می کنیم مانند Host 192.168.1.1
  • Any : هر IP آدرسی
  • source source-wildcard : تعیین یک IP به همراه Wildcard Mask

Source port : شماره پورت مبدا بسته
destination: مشخص کردن IP مقصد به یکی از سه روش زیر:

  • Host : یک ادرس IP مشخص می کنیم مانند Host 192.168.1.1
  • Any : هر IP آدرسی
  • source source-wildcard : تعیین یک IP به همراه Wildcard Mask

destination port : شماره پورت مبدا بسته

نحوی تعریف Extended ACL با استفاده از نام :

IP Access-list {standard|extended} name
{permit|deny} protocol source [Source port] destination [destination port]	
	

نحوی تخصیص Extended ACL به اینترقیس:

Ip access-group {number|name} {in|out}

 


با توجه به تصویر زیر ، می خواهیم به وسیله Extended ACL امکان دسترسی PC1 را به سرور از طریق وب قطع کنیم اما PC1 از طریق پروتکل های دیگر مانند ICMP بتواند با سرور ارتباط داشته باشد.

Image

برای اینکار با استفاده از IP آدرس PC1 و همچنین پورت وب که 80 می باشد یک ACL در Global Mode به صورت زیر تعریف می کنیم:
تعریف به صورت عددی:

Router(config)#access-list 101 deny tcp host 192.168.1.1 host 5.5.5.5 eq 80 
Router(config)#access-list 101 permit ip any any

تعریف با استفاده از نام:

Router(config)#ip access-list Extended itpro
Router(config-ext-nacl)# deny tcp host 192.168.1.1 host 5.5.5.5 eq 80
Router(config-ext-nacl)# permit ip any any

سپس آنرا به اینترفیس مورد نظر با استفاده از دستور زیر اختصاص می دهیم:

Router(config)#interface fastEthernet 0/0
Router(config-if)#ip access-group 101 in

  • نکته : برای هر یک از جهت های ترافیک تنها یک ACL می توان در نظر گرفت در نتیجه حداکثر به یک اینترفیس می توان دو ACL اختصاص داد.

 

Standard ACLs چیست و نحوی تنظیم آن در تجهیزات سیسکو

در آموزش قبلی با مفاهیم و عملکرد Access Control List یا ACL آشنا شدیم در این آموزش یکی از انواع ACL را معرفی و نحوی تنظیم و استفاده از آن را بیان می کنیم ، سیسکو دو نوع Access list با نام های Standard ACL و Extended ACL معرفی کرده است. Standard ACL قدیمی ترین و ساده ترین نوع Access List است که در نسخه IOS 8.3 سیسکو ارائه شده است. Standard ACL ترافیک را به وسیله مقایسه آدرس مبدا بسته ها با آدرس تعریف شده در ACL کنترل می کند. در همه نسخه ها ، برای Standard ACL می توان یک عدد از 1 تا 99 در نظر گرفت. از نسخه IOS 11.2 سیسکو امکان تعریف Standard ACL به وسیله نام فراهم شد و همچنین از نسخه IOS 12.0.1 سیسکو محدود عددی بین 1300 تا 1999 برای Standard ACL اضافه شد.

نحوی تعریف Standard ACL در حالت عددی:

access-list access-list-number {permit|deny} {host|source-wildcard|any}
  • access-list-number : عدد بین 1 تا 99 یا 1300 تا 1999
  • permit|deny : عملی که در هنگام تطبیق بسته با َACL نسبت با آن گرفته می شود(اجازه عبور یا عدم اجازه)
  • host-source-wildcard-any : مشخص کردن IP به یکی از سه روش زیر:
  • Host : یک ادرس IP مشخص می کنیم مانند Host 192.168.1.1
  • Any : هر IP آدرسی
  • source source-wildcard : تعیین یک IP به همراه Wildcard Mask

 


نحوی تعریف Standard ACL با استفاده از نام :

IP Access-list {standard|extended} name
         {permit|deny} {host|source source-wildcard|any}	
	

 


نحوی تخصیص به Standard ACL اینترقیس:

Ip access-group {number|name} {in|out}

 


یک مثال عملی برای درک بهتر Standard ACL :
با توجه به تصویر زیر ، می خواهیم به وسیله Standard ACL امکان دسترسی PC1 را به سرور قطع کنیم:

Image

برای اینکار با استفاده از IP آدرس PC1 یک ACL در Global Mode به صورت زیر تعریف می کنیم:
تعریف به صورت عددی:

Router(config)#access-list 10 deny host 192.168.1.1
Router(config)#access-list 10 permit any

تعریف با استفاده از نام:

Router(config)#ip access-list standard itpro
Router(config-std-nacl)#deny host 192.168.1.1
Router(config-std-nacl)#permit any

سپس آنرا به اینترفیس مورد نظر با استفاده از دستور زیر اختصاص می دهیم:

Router(config)#interface fastEthernet 0/1
Router(config-if)#ip access-group 10 out

  • نکته : برای هر یک از جهت های ترافیک تنها یک ACL می توان در نظر گرفت در نتیجه حداکثر به یک اینترفیس می توان دو ACL اختصاص داد.

 

ACL یا Access list چیست و چگونه با کمک آن شبکه را کنترل و فیلتر کنیم

احتمالا تا حالا برای شما پیش آمده باشد که بخواهید دسترسی یک کلاینت را به یک سرور خاص محدود کنید یا بخواهید استفاده از یک برنامه خاص مثل telnet را مسدود کنید و یا به طور کلی بخواهید بروی عملکرد شبکه کنترل و نظارت داشته باشید. با استفاده از Access Control List که با آن Access list نیز گفته می شود می توانید تمام موارد ذکر و بسیاری قابلیت دیگر را داشته باشید. در این مقاله سعی سعی بر آن شده که ACLs را مورد بررسی قرار گیرد و نحوی عملکرد آن شره داده شود.

Image

Access Control List یا ACL یک فیلتر است که به وسیله آن می توانیم جریان ترافیک را کنترل کنیم که چه بسته هایی اجازه ورود یا خروج با شبکه را دارند یا خیر. این فیلتر معمولا توسط مدیر شبکه تعیین و مورد استفاده قرار می گیرند تا به این وسیله بتواند کنترل و امنیت بیشتر را برای شبکه خود فراهم کند. این فیلترها را می توان روی بسیاری از دستگاه های شبکه مانند روتر و سوئیچ مورد استفاده قرار داد.
ACLs ها یک روش قدرتمند برای کنترل ترافیک ورودی یا خروجی به شبکه می باشد این کنترل می تواند به صورت ساده براساس آدرس IP انجام شود یا براساس بررسی آیتم ها متفاوت و پیچیده انجام گیرد. ACLs را میتوان برای پروتکل متفاوت مانند IP ، AppleTalk و … استفاده کرد.
مهمترین دلیل استفاده از ACLs ها فراهم کردن امنیت برای شبکه می باشد هرچند که برای مقاصد دیگری مانند کنترل ترافیک نیز استفاده می شود.

نحوی عملکرد ACLs :


برای اینکه نحوی عملکرد ACLs ها را بهتر درک کنیم یک نگهبان که جلوی یک در بسته مستقر است را تصور کنید. نگهبان براساس دستورالعملی که به او داده شده اجازه عبور به افراد را می دهد به طور مثال به او یک لیست داده شده که فقط این افراد اجازه ورود دارند. افراد که می خواهند از این در عبور کنند نام آنها توسط نگهبان با لیست خود مطابقت داده می شود و در صورتی که نام آنها در لیست بود به آنها اجازه عبور از در را می دهد در غیر اینصورت فرد اجازه عبور از در را نخواهد داشت.
ACLsها با استفاده از آیتم های مختلف مانند آدرس مبدا و مقصد ، پورت مبدا و مقصد ، نوع پروتکل و … می تواند عمل فیلترینگ را روی بسته های ورودی یا خروجی یک پورت برای ما انجام دهد. زمانی که یک بسته به دستگاه می رسد در صورت وجود ACLs ، اطلاعات موجود در Header بسته را بررسی می کند و با آیتم های تعریف شده در ACLs مقایسه می کنند و نسبت به آن اجازه یا عدم اجازه عبور به بسته را می دهد.

Image

 

چه زمانی از ACLs استفاده می کنیم:


  • جهت مقاصد امنیتی
  • محدود کردن ترافیک برای افزایش کارایی شبکه
  • جهت کنترل بسته های مربوط به پروتکل های مسیریابی
  • چه نوع ترافیکی اجازه عبور یا عدم عبور دارند
  • جداسازی برخی ترافیک های خاص به منظور عملیات خاص مانند QoS
  • اعمال محدودیت های زمانی
  • و …

 

انواع Access Control List :


  • Standard ACLs
  • Extended ACLs
  • Reflexive ACLs
  • Time-Base ACLs
  • Established ACLs

 

نحوی نام گذاری ACLs :


ACLs را می توان به دو صورت تعریف کرد یکی براساس نام و دیگری براساس عدد. که هر کدام می تواند یکی از دو نوع Extended یا Standard باشد.
زمانی که یک ACLs با استفاده از نام ایجاد می کنیم قبل از مشخص کردن نام نوع آنرا مشخص می کنیم مانند مثال زیر:

Router(config)#ip access-list standard itpro
Router(config)#ip access-list extended itpro
  • نکته : استفاده از این نوع نام گذاری از نسخه Cisco IOS Software Release 11.3 به بعد امکان پذیر است.

زمانی که یک ACLs با استفاده از عدد ایجاد می کنیم شماره عددی که انتخاب می کنیم نشان دهنده نوع آن می باشد. یک نمونه از ACL با نام گذاری عددی:

Router(config)#access-list 50 permit host 192.168.1.1
Router(config)#access-list 101 deny tcp host 192.168.1.1 eq www host 10.1.1.1

جدول زیر نشان دهنده محدوده این اعداد و نوع آنها می باشد.

Image

 

نحوی تخصیص ACLs :


زمانی که یک ACLs تعریف می شود برای عمل کردن باید به یک پورت اختصاص داد شود که می تواند در دو جهت زیر ترافیک را کنترل کند:

  • Inbound : منظور ترافیکی است که وارد یک پورت می شود.
  • Outbound : ترافیک است که از یک پورت خارج می شود.

با انتخاب هر کدام از این دو جهت ترافیک توسط ACLs ترافیک شروع به کنترل می شود.

Image

 

ACLs Action :


زمانی که یک ACLs تعریف می شود دو نوع اقدام زیر را می توان نسبت به ترافیک که بررسی می کند می توان در نظر گرفت :

  • Deny : اجازه عبور به بسته را نمی دهد.
  • Permit : اجازه عبور به بسته را می دهد.

 

یک مثال ساده جهت آشنایی بیشتر:


به عکس زیر توجه کنید که یک شبکه بسیار ساده را به ما نشان می دهد که دارای دو کامپیوتر ، یک سوئیچ و یک روتر که به اینترنت متصل است. در اینجا بنا به دلایلی می خواهیم کامپیوتر شماره 2 نتواند به اینترنت دسترسی داشته باشد.

Image

برای اینکار باید یک Standard ACL نوشته شد و اجازه دسترسی به بیرون شبکه از آن گرفته شود(Deny) و این ACL را باید روی Outbound پورت روتر که به اینترنت متصل است اعمال شود. به این صورت اتصال کامپیوتر 2 به اینترنت قطع می شود.

امیدوارم که این مقاله مفید واقع شده باشد و در قسمت های بعدی نحوی استفاده از انواع ACLها را به صورت کامل و دقیق توضیح خواهم داد.

افزایش امنیت شبکه با قابلیت Port Security در سوئیچ های سیسکو

در طراحی یک شبکه ، در نظر گرفتن مباحث امنیتی آن دارای اهمیت ویژه است چون در زمان حمله ، شبکه دچار مشکلاتی مختلفی مانند از کار افتادن بخشی یا کل شبکه ، افشاء اطلاعات محرمانه سازمان ، دستکاری در اطلاعات و … می شود. برای جلوگیری از بروز این حملات ما باید طرح و برنامه درستی برای شبکه خود در نظر بگیریم.

Image

بر اساس طراحی سه لایه ای سیسکو دسترسی ها از طریق لایه Access ایجاد می شود که عمده مشکلات امنیتی به دلیل عدم کنترل این دسترسی ها صورت می پذیرد. در این آموزش ما سعی می کنیم مبحث Port Security را بازگو کنیم که به وسیله این قابلیت تا سطح بسیار زیادی ما می توانیم امنیت شبکه خود را برقرار کنیم. Port Security امنیت شبکه ما را در لایه دوم بهبود می بخشد. Port Security شبکه ما را در برابر حملات زیر محافظت می کند :

  • MAC Flooding Attack
  • MAC Address Spoofing
  • DHCP Starvation

همچنین از دسترسی دستگاه های غیر مجاز به شبکه و ایجاد مشکلات ناشی مانند سرقت اطلاعات و آلوده کردن شبکه و … جلوگیری می کند.

مکانیزم Port Security


به وسیله Port Security تعداد MAC آدرس هایی که اجازه دسترسی به شبکه دارند به ازای هر پورت را محدود می کنیم. به این صورت مشخص می کنیم از هر پورت چه دستگاه هایی اجازه دسترسی به شبکه دارند و به این صورت دستگاه های ناشناش اجازه دسترسی به شبکه را نخواهند داشت. زمانی که این قابلیت روی سوئیچ فعال شود در صورت اتصال یک دستگاه غیرمجاز به شبکه ، می توان وضعیت های زیر را نسبت به این دسترسی غیر مجاز تعیین کرد:

  • Protect
  • Restrict
  • Shutdown

 

  • نکته : حالت Shutdown پیش فرض می باشد.

 

  1. Protect : در این حالت ترافیک مربوط به دستگاه غیر مجاز Drop می شود.
  2. Restrict : همانند حالت قبل ترافیک مربوط به دستگاه غیر مجاز Drop می شود و علاوه بر این Log نیز تولید می کند.
  3. ShutDown : سخت گیرانه ترین حالت می باشد که با دریافت ترافیک غیرمجاز پورت مربوطه در حالت Err-Disable قرار می گیرد و پورت خاموش می شود و برای خارج کردن آن از این حالت باید وارد تنظیمات سوئیچ شد و پورت مورد نظر را خاموش و روشن کرد.

 

  • نکته : Port Security را روی پورتی که Access است می توان فعال کرد.

 

نحوی فعال کردن Port Security


اولین کار قرار دادن پورت در حالت Access است:

Switch(config)#interface fastethernet 0/1
Switch(config-if)#switchport mode access

بعد باید این قابلیت را فعال کنیم:

Switch(config-if)#switchport port-security

سپس MAC آدرس های مجاز را تعیین می کنیم که به دو صورت امکان پذیر است :

    • به صورت دستی
Switch(config-if)#switchport port-security mac-address AD49.FB36.3596
    • استفاده از ویژگی Sticky
Switch(config-if)#switchport port-security mac-address sticky
  • نکته : در حالت sticky نیاز به وارد کردن MAC ادرس نیست و سوئیچ MAC ادرس را از روی اولین بسته دریافتی برمیدارد.

تعیین یکی از سه حالت موجود :

Switch(config-if)#switchport port-security violation portect

تعیین تعداد دستگاه های مجاز جهت استفاده از پورت:

Switch(config-if)#switchport port-security maximum 2
  • نکته : پیش فرض مقدار یک است و تا 132 می توان انرا مقداردهی کرد.

جهت مشاهده و بررسی تنظیمات از دستورات زیر استفاده می کنیم:

Switch#show port-security 
Switch#show port-security address

    • نکته : در صورتی که بخواهیم MAC آدرس هایی که از طریق Sticky آنها را پیدا کرده ایم را حذف کنیم از دستورات زیر استفاده می کنیم:
Switch#clear port-security all
Switch#clear port-security sticky interface fastEthernet 0/1

 

مدل سه لایه ای سیسکو برای طراحی شبکه – hierarchical network design

قبل از اجرای شبکه ، داشتن یک طرح و برنامه برای ان دارای اهیمت ویژه است که در صورت نبود برنامه و طرح در هنگام اجرا و عملکرد ، شبکه دچار مشکلات مختلفی خواهد شد. همچنین این نوع شبکه را نمی توان به راحتی گسترش داد. در اینجا می خواهیم یک مدل که توسط شرکت سیسکو برای پیاده سازی شبکه در مقیاس های گوناگون ارائه شده است را بررسی کنیم :


مدل سه لایه ای سیسکو یا hierarchical network design یک طراحی قابل اعتماد ، قابل گسترش و مقرون به صرفه می باشد که مشکلات پیچیده طراحی شبکه را برای ما آسان تر و مدیریت پذیرتر می کند. مشکلات مختلف در لایه ها تقسیم می شوند با اینکار به طراح شبکه کمک می کند با بهینه سازی سخت افزار و نرم افزار شبکه ، وظایف خاص را انجام دهد. به طور مثال دستگاه ها در لایه پایین بهینه سازی می شوند تا ورودی به شبکه را دریافت و به سمت لایه بالاتر منتقل کنند.

Image

زمانی که طراحی شبکه مورد بحث قرار می گیرد دسته بندی شبکه براساس تعداد دستگاه های سرویس گیرنده به ما در طراحی کمک زیادی می کند.
طراحی شبکه به اندازه و نیاز سازمان وابستگی زیادی دارد. به طور مثال بستر مورد نیاز برای یک شبکه کوچک با تعداد محدودی دستگاه نسبت به یک شبکه بزرگ با تعداد قابل توجهی دستگاه بسیار متفاوتر می باشد.
متغییرهای زیادی در زمان طراحی شبکه باید در نظر گرفته شود.

شبکه را براساس تعداد دستگاه های سرویس گیرنده به سه دسته تقسیم می کنند:

  • Small Network : شبکه هایی با حداکثر 200 سرویس گیرنده
  • Medium-Size Network : شبکه هایی با 200 تا 1000 سرویس گیرنده در این دسته قرار می گیرند.
  • Large Netwok : شبکه هایی با بیش از 1000 سرویس گیرنده

اصول مهندسی در زیرساخت:
بدون در نظر گرفتن مسائل مرتبط با اندازه و نیاز شبکه ، اجرای موفق طراحی شبکه نیاز به پیروی از اصول مهندسی در زیرساخت دارد. مدل سه لایه سیسکو اصول زیر را شامل می شود.

  • Hierarchy : این طراحی سلسله مراتبی به طراح کمک می کند که یک شبکه مطمئن را طراحی کند و مشکلات پیچیده طراحی را راحت تر و قابل مدیریت تر کند.
  • Modularity : طراحی ماژولار که باعث می شود عملکرد بخش های مختلف موجود در شبکه به صورت یک ماژول عمل کند و به این صورت طراحی ساده تر می شود. سیسکو جندین ماژول را معرفی کرده که شامل دیتاسنتر ، لبه اینترنت ، بلوک سرویس دهی و بخش Campus می باشد.
  • Resiliency : شبکه باید بتواند در شرایط عادی و غیرعادی به کار خود ادامه دهد. در شرایط عادی ترافیک براساس انتظار ما جریان دارد ولی شرایط غیر عادی زمانی است که یک سخت افزار یا نرم افزار ما دچار مشکل شود یا ترافیک زیادی وارد شبکه شود یا حمله هایی مانند DoS ایجاد شود.
  • Flexibility : شبکه طراحی شده باید توانایی تغییرات را داشته باشد به طور مثال یک سرویس به این شبکه اضافه شود یا توان شبکه را افزایش دهیم این تغییرات باید بودن ایجاد وقفه در عملکرد و اختلال در سرویس دهی صورت پذیرد.

 


در طراحی مدل سه لایه ای سیسکو ، تجهیزات در سه لایه زیر گروه بندی می شوند:

  1. Access
  2. Distribution
  3. Core

مدل سه لایه ای سیسکو به لحاظ مفهومی مشابه مدل هفت لایه OSI است. به طور کلی طراحی لایه ای بسیار مفید است چون هر دستگاه در هر لایه وظیفه و عملکرد مشخصی دارد که این ویژگی باعث میشود که حذف ، اضافه ، جایگزینی بخشی از شبکه به راحتی قابل انجام باشد. این انعطاف پذیری و سازگاری باعث می شود این مدل بسیار مقایس پذیر و قابل گسترش شود.

لایه Access :

در محیط LAN ، از طریق لایه Access اجازه دسترسی End Deviceها به شبکه ، داده می شود و در محیط WAN ، دسترسی به شبکه از راه دور داده می شود.
معمولا در لایه Access از سوئیچ های لایه دوم و Access Pointها برای ایجاد دسترسی بین کلاینت ها و سرور استفاده می شود.

Image

برخی از وظیفه Access :

  • سوئیچنگ لایه دوم
  • دسترسی بالا و بدون وقفه
  • Port Security
  • QoS
  • بررسی بسته های ARP
  • Access Control Lists
  • Spanning Tree
  • Vlan
  • Power over Ethernet(PoE)

 

لایه Distribution :

این لایه بین لایه Access و Core قرار دارد و دیتا ارسالی توسط کاربر را از لایه Access به سمت لایه Core هدایت می کند. نوع ارتباطات در این لایه از نوع کابلی می باشد. برای جلوگیری از سرایت مشکلات احتمالی در شبکه LAN با استفاده از روتر یا سوئیچ Multilayer ، بین لایه Access و Core یک مرز ایجاد می کند.

Image

برخی از وظایف لایه Distribution :

  • تجمیع لینک ها ارتباطی مربوط به LAN و WAN
  • فیلترینگ و ACL
  • مسیریابی
  • جایگزینی و تقسیم بار (Redundancy and load balancing)
  • خلاصه سازی روت ها (Route Summarization)
  • کنترل Broadcast Domain با استفاده از روتر یا سوئیچ Multilayer

 

لایه Core :

به این لایه ستون فقرات شبکه نیز گفته می شود. در این لایه دستگاه ها با سرعت بسیار بالا مانند سوئیچ های Catalyst 6500 قرار می گیرند. لایه Core طراحی شده تا جایی که ممکن است عمل سوئیچینگ بسته را با سرعت انجام دهد و بتواند ارتباط بین بخش های مختلف مانند دیتا سنتر ، شبکه های LAN و WAN و … را برقرار کند.

در این لایه باید مسائل دسترسی پذیری (available) و جایگزینی (redundant) مورد توجه ویژه قرار گیرد. در لایه Core ترافیک بسیار زیادی از لایه Distribution به این لایه ارسال می شود و این لایه باید توان پردازش سریع این اطلاعات را داشته باشد.

Image

برخی از وظایف لایه Core :

  • سوئیچنگ با سرعت بالا
  • قابلیت اطمینان و تحمل خطا
  • پرهیز از هرگونه پردازش اضافه روی بسته ها که باعث درگیر کردن CPU شود مانند مسائل امنیتی مثل inspection یا مواردی مثل QoS

موفق ، پیروز و ITPro باشید.

InterVLAN Routing – برقراری ارتباط بین VLANها با استفاده از سوئیچ

در آموزش قبلی نحوی برقراری ارتباط بین VLAN ها را توسط روتر ، توضیح دادیم در این آموزش نحوی برقراری ارتباط بین VLAN ها توسط یک سوئیچ Multilayer (سوئیچ لایه سه) را توضیح می دهیم.


یک سوئیچ Multilayer (لایه سه) می تواند عمل سوئیچنگ لایه دوم و روتینگ لایه سوم را انجام دهد . در این بخش نحوی برقراری ارتباط بین VLANها را توسط یک سوئیچ Multilayer بررسی می کنیم:

Image

در ابتدا پورت متصل به هر کلاینت را در VLAN مربوطه قرار می دهیم:

Switch(config)#interface fastethernet  0/1
Switch(config-if)#switchport mode access 
Switch(config-if)#switchport access vlan 10
% Access VLAN does not exist. Creating vlan 10

    • نکته : در صورتی که vlan از قبل ایجاد شده نباشد وارد کردن دستور switchport access vlan 10 باعث ایجاد VLAN 10 می شود.
Switch(config-if)#interface fast Ethernet 0/2
Switch(config-if)#switchport mode access 
Switch(config-if)#switchport access vlan 20
% Access VLAN does not exist. Creating vlan 20
Switch(config-if)#exit

ویژگی Routing را روی سوئیچ فعال می کنیم:

Switch(config)#ip routing 

سپس باید برای اینترفیس Vlan یک IP در نظر بگیرم و این اینترفیس را فعال کنیم:

Switch(config)#interface vlan 10
Switch(config-if)#ip address 192.168.10.1 255.255.255.0
Switch(config-if)#no shut
Switch(config-if)#inter vlan 20
Switch(config-if)#ip address 192.168.20.1 255.255.255.0
Switch(config-if)#no shut

    • نکته : در صورتی که یک پورت سوئیچ را بخواهیم در حالت Routed قرار دهیم از دستورات زیر استفاده می کنیم:
Switch(config)#interface fastethernet 0/3
Switch(config-if)#no switchport

با استفاده از دستور بالا پورت Fastethernet 3 همانند یک پورت یک روتر عمل می کند.

Switch(config-if)#ip address 192.168.30.1 255.255.255.0

پیروز ، موفق و ITPro باشید

InterVLAN Routing – برقراری ارتباط بین VLANها با استفاده از روتر – Router on Stick

در خدمت دوستان هستیم در ادامه مباحث سیسکو امروز می خوایم در رابطه InterVLAN Routing صبحت کنیم امیدارم که براتون مفید واقع بشود پس همراه ما باشید.
همانطور که قبلا گفته شد VLAN ها شبکه را به Broadcast Domainهای کوچکتر تقسیم می کنند و همچنین باعث می شوند که بین این شبکه ها ارتباطی وجود نداشته باشد. برای برقراری ارتباط بین این گروه از شبکه ها بودن عبور ترافیک Broadcast از InterVLAN Routing استفاده می شود.

InterVLAN Routing با استفاده از یک روتر خارجی:


یک سوئیچ لایه دو می تواند با اتصال به یک روتر ارتباط بین VLANها را برقرار کند و این برقراری ارتباط می تواند توسط لینک های جداگانه برای هر VLAN انجام شود و یا با استفاده از یک لینک Trunk از سوئیچ به روتر انجام پذیرد.

با توجه به تعداد محدود پورت رو روتر معمولا از یک لینک ترانک برای برقراری ارتباط بین VLANهای استفاده می شود و به ان Router on Stick گفته می شود.

  • نکته : با تمام سوئیچ هایی که از VLAN پشتیبانی می کنند می توان این ویژگی را پیاده سازی کرد.
  • نکته : کل ترافیک بین VLAN ها روی یک لینک منتقل می شود و در صورت قطع شدن یا وجود ترافیک زیاد (بیشتر از ظرفیت لینک) ، باعث ایجاد مشکل در ارتباط بین VLAN ها خواهد شد.
  • نکته : این ویژگی در دنیای واقعی کاربرد بسیار زیادی دارد چون روی روترها تعداد پورت ها کم هستند و در صورت نیاز به پورت بیشتر نیاز به خرید ماژول می باشد که این کار مقرون به صرفه نیست در نتیجه با استفاده از این ویژگی این کمبود پورت جبران می شود.

 

یک مثال :


یک شبکه را فرض کنید که دارای دو VLAN 10 و VLAN 20 است که پورت Fastethernet 0/1 به VLAN 10 و Fastethernet 0/2 به VLAN 20 و Fastethernet0/3 به پورت Fastethernet 0/0 روتر متصل است حالا می خواهیم ارتباط بین VLAN 10 و VLAN 20 را با استفاده از روتر برقرار کنیم:

Image

در ابتدا باید روی سوئیچ ، پورت Fastethernet 0/1 را عضو VLAN 10 کنیم با استفاده از دستور زیر اینکار را انجام می دهیم:

Switch(config)#interface fastethernet 0/1
Switch(config-if)#switchport mode access 
Switch(config-if)#switchport access vlan 10
% Access VLAN does not exist. Creating vlan 10
Switch(config-if)#

  • نکته : در صورتی که vlan از قبل ایجاد شده نباشد وارد کردن دستور switchport access vlan 10 باعث ایجاد VLAN 10 می شود.

برای Fastethernet 0/2 نیز این دستورات را انجام می دهیم:

Switch(config)#interface fastethernet 0/2
Switch(config-if)#switchport mode access 
Switch(config-if)#switchport access vlan 20
% Access VLAN does not exist. Creating vlan 20
Switch(config-if)#

حالا باید پورت Fastethernet0/3 را در وضعیت Trunk قرار دهیم تا توانایی حمل ترافیک مربوط به VLAN ها را داشته باشد که برای اینکار به صورت زیر عمل می کنیم:

Switch(config)#interface fastethernet 0/3
Switch(config-if)#switchport trunk encapsulation dot1q 
Switch(config-if)#switchport mode trunk 
Switch(config-if)#

تنظیمات سمت سوئیچ ما کامل شده حالا باید روتر را تنظیم کنیم:
در ابتدا Fastethernet 0/0 را به صورت زیر تنظیم می کنیم:

Router(config)#interface fastethernet 0/0
Router(config-if)#no shut

حالا باید Subinterfaceها را بسازیم به صورت زیر:

Router(config)#interface fastEthernet 0/0.10
Router(config-subif)#encapsulation dot1Q 10
Router(config-subif)#ip address 192.168.10.2 255.255.255.0
Router(config-subif)#exit
Router(config)#interface fastEthernet 0/0.20
Router(config-subif)#encapsulation dot1Q 20
Router(config-subif)#ip address 192.168.20.2 255.255.255.0
Router(config-subif)#exit

تمام تنظیمات ما انجام شده و حالا دو VLAN با یکدیگر ارتباط دارند.

امیدوارم که این آموزش مفید واقع شده باشد.
پیروز ، موفق و ITPro باشید

نحوی راه اندازی SSH در روتر ها و سوئیچ ها سیسکو

احتمالا تا حالا از دستور telnet که برای ارتباط با تجهیزات از راه دور به صورت خط فرمان است استفاده کردید این ارتباط یک مشکل امنیتی بزرگ دارد و ان ارسال اطلاعات بین کاربر و دستگاه به صورت رمز نشده یا همان Clear Text است در صورتیکه یک نفر بسته های ارسالی بین کاربر و دستگاه را Sniff کند به راحتی می تواند محتوای بسته را ببیند و به اطلاعات ان دسترسی پیدا کند برای جلوگیری از این مشکل باید از پروتکل SSH استفاده شود.

Image

Secure Shell – SSH یک پروتکل برای ایجاد دسترسی به تجهیزات از راه دور به صورت امن می باشد در تمام نسخه های SSH اطلاعات به صورت رمز شده ارسال می شوند.SSH دارای دو نسخه 1 و 2 می باشد که نسخه دوم از الگوریتم رمزنگاری بهینه تری استفاده می کند.

  • نکته: برای استفاده از SSH روی روتر ها و سوئیچ ها باید نسخه سیستم عامل دستگاه از این قابلیت پشتیبانی کند که در صورت وجود عبارت K9 در نام سیستم عامل (IOS) دستگاه این قابلیت را می توان استفاده کرد به طور مثال c3750e-universalk9-tar.122-35.SE5.tar یک نسخه با قابلیت استفاده از SSH می باشد.

 

نحوی فعال سازی:


در ابتدا یک نام غیر از نام پیش فرض باید برای روتر یا سوئیچ در نظر بگیریم با استفاده از دستور زیر :

Router(config)#host-name R1

سپس باید یک نام دامین برای دستگاه در نظر بگیریم به صورت زیر:

R1(config)#ip domain-name itpro.ir

حالا باید یک کلید برای SSH ایجاد کنیم به صورت زیر:

R1(config)#crypto key generate rsa 

حالا باید در line vty انرا فعال کنیم:

R1(config)#line vty 0 4
R1(config-line)#transport input ssh

تغییر نسخه مورد استفاده SSH

    • نکته : برای تغییر به نسخه 2 باید کلید تولید شده حداقل 768 بیت باشد.
R1(config)#ip ssh version 2

برای مشاهده اتصالات و تظیمات مربوط به SSH از دستورات زیر استفاده می کنیم:

R1#show ssh
R1#show ip ssh