هر IP از دو قسمت تشکیل شده است که قسمت اول متعلق به آدرس شبکه (network address)و قسمت دوم متعلق به آدرس میزبان (host) است .


Network Address هر سیستم موجود بر روی شبکه مشابه , به عنوان بخشی از آدرس IP آن در نظر گرفته می شود . بطور مثال IP 10.20.20.20 با توجه به اینکه IP از کلاس A می باشد عدد 10 مشخص کننده آدرس شبکه در این IP است .

Host Address هر سیستم موجود بر روی شبکه را مشخص می کند آدرس هاست بصورت منحصر بفرد می باشد زیرا این آدرس نشان دهنده یک سیستم خاص بر روی شبکه می باشد . بطور مثال IP 10.20.20.20 اعداد 20.20.20 آدرس هاست را نشان می دهد .



کلاس های اپی شبکه

 



 

SUBNET MASK

 
این آدرس نشان می دهد چه مقدار بیت متعلق به آدرس شبکه و چه مقدار بیت متعلق به آدرس میزبان (هاست) است .
دو الگو برای subnet mask داریم الگوی استاندارد و الگوی غیر استاندارد


الگوی استاندارد : 

 
در الگوی استاندارد با توجه به کلاس هر  subnet mask , IP استانداردی برای آن ای پی داریم بطور مثال 
ُ

Class

A

B

C

IP10.10.10.1172.168.88.98192.168.100.3
Subnet Mask255.0.0.0255.255.0.0255.255.255.0


قسمتی که 255 است متعلق به network  و قسمتی که 0 است متعلق به host می باشد .

بوسیله این فرمول میتوانیم تشخیص دهیم چه مقدار host و network در یکIP address موجود می باشد .

2^n - 2


classتعداد بیتهای شبکهتعداد بیتهای میزبان
تعداد میزبان
A824 2^24-2=16777214
B1616 65534
C248 254


الگوی غیراستاندارد 


الگوهایی هستند که دقیقا با محدودیت های هشتایی مطابقت نمی کنند و در عوض برای نیازهای خاص طراحی شده اند , به این عملیات subnetting می گویند .

 

SUBNETTING


قرض دادن بیتهای هاست را به بیتهای شبکه subnetting می گویند .

برای انجام دادن عملیات subnetting میبایست کار با عملیات باینری را بدانیم .


اعداد باینری 

اعداد باینری را برای نمایش آدرسها استفاده می کنند . اعداد باینری فرم اصلی نمایش اطلاعات روی یک ابزار کامپیوتر است . اعداد باینری فقط شامل صفر و یک هستند که یک حالت ON و صفر حالت OFF در نظر گرفته می شود .


سیستم باینری فقط یک روش متفاوت نمایش اعداد است .
برای بدست آوردن عدد در مبنای باینری میبایست عدد را در مبنای دو تقسیم کرد و دوباره خارج قسمت را بر دو تقسیم کرد .

عدد 4 را میخواهیم به عدد باینری تبدیل کنیم

4/2=2 --->باقیمانده=0

2/2=1 ---> باقیمانده=0

از آخرین خارج قسمت شروع می کنیم و از آخرین باقیمانده . تمام باقیمانده ها را پشت سر هم می نویسیم مانند :   100 

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

تقسیم کردن اعداد بزرگ می تواند خسته کننده باشد بهمین جهت یک راه حل خیلی آسان و سریع ارائه می دهیم

 
این اعداد را مدنظر داشته باشید .

128 64 32 16 8 4 2 1

شما بفرض میخواهید عدد 10 را به باینری تبدیل کنید.دقت کنید مجموع کدام از اعداد بالا ده می شود و جای آن اعداد یک و جای بقیه صفر قرار می دهیم .


10=2+8                ------> 00001010 
168=128+32+8     ---------> 10101000 
192=128+64         ----------> 11000000
255=128+64+32+16+8+4+2+1  -----> 11111111



در هر range دو ip قابل قبول نیست و نمی توانیم استفاده کنیم و این همان 2- در فرمول 2n-2 است .
ip اول را (network address(subnet id و ip آخر را broad cast address می گویند و فاصله بین این دو ip ,ip های قابل قبول است .



192.168.10.0Network address
192.168.10.1Valid IP
192.168.10.2
 
192.168.10.254
192.168.10.255Broad cast address


 

در مثال زیر network address و broad cast address را محاسبه می کنیم . 

192.168.10.10
255.255.255.0

ابتدا ip و subnet mask را به اعداد باینری تبدیل می کنیم سپس عملیات  AND (ضرب باینری ) را انجام می دهیم .

ضرب باینری به قرار زیر می باشد .

1100
1010
------
1000



11000000.10101000.00001010.00001010
11111111.11111111.11111111.00000000
-----------------------------------------------------
1100000.10101000.00001010.00000000
Network part                          Host part

حال جواب را که اعداد باینری است به اعداد طبیعی تبدیل می کنیم .

 

192.168.10.0Network address
192.168.10.255Broad cast address



زمانی که میخواهیم عملیات subnetting را بر روی یک ای پی انجام دهیم باید پنج سوال زیر را مد نظر داشته باشیم :


1.چه مقدار subnets می توانیم داشته باشیم . 
2.چه مقدار هاست در هر subnet موجود می باشد .
3.چه subnet هایی قابل قبول هستند .
4.تعیین broad cast address .
5.چه هاست هایی قابل قبول است .


در IP 192.168.10.10 و subnet mask 255.255.255.0 می خواهیم 55 هاست (دستگاه) به هم شبکه کنیم , عملیات subnetting به قرار زیر می باشد :

 

به دلیل اینکه IP ما در کلاس C میاشد عملیات subnetting را در بیت آخر انجام می دهیم و آن را بسط می دهیم

192.168.10.2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0


با توجه به اینکه 55 هاست می خواهیم و 55 بین 64 و 32 است 6^2 را انتخاب می کنیم در نتیجه 6 بیت به host address تعلق میگیره و 2 بیت به network address


(2^0=1 , 2^1=2 , 2^2=4 , 2^3=8 , 2^4=16 , 2^5=32 , 2^6=64 , 2^7=128 , 2^8=256 )


1.چه مقدار subnet میتوانیم داشته باشیم 


برای بدست آوردن تعداد subnet از فرمول زیر استفاده می کنیم , n تعداد بیت های تعلق گرفته به قسمت network address است


2^n ---> 2^2=4

 

2.چه مقدار هاست در هر subnet موجود می باشد 


برای بدست آوردن هاست از فرمول زیر استفاده می کنیم


2^n-2 ----> 2^6-2=62


در هر subnet شصت و دو هاست موجود می باشد و 2- همان network address و broad cast address می باشد که not valid هستند . 


3.چه subnet هایی قابل قبول هستند 


برای بدست آوردن subnet های قابل قبول (block size) از فرمول زیر استفاده می کنیم . 


256 - subnet mask = block size


با توجه به اینکه الگوی استاندارد را به الگوی غیر استاندارد تبدیل کردیم subnet mask به غیر استاندارد تبدیل می شود و به آن ( CSN ( Customize Subnet Mask می گوییم .


طریقه بدست آوردن آن به اینصورت است که بیت هایی را که به network address در بیت آخر تعلق دارد را جمع می کنیم .

 

2^7 + 2^6 = 128+64 = 192 ---> CSN

 

256 - 192 = 64 --> Block size

 

4.تعیین broad cast address برای هر subnet 

پیامی است که به تمامی ایستگاهها توزیع می شود .

این آسانترین قسمت است , broad cast address در هر subnet می شود block size - 1 مثلا اگر block size ما 64 باشد broad cast ما می شود 63 و به طور کامل می شود 192.168.10.63



5.چه host هایی قابل قبول است 


همیشه اعدادی که بین subnet address و broad cast address می باشند هاست های قابل قبول هستند . 


با توجه به عملیات بالا subnetting به قرار زیر می باشد .

 

 

network address192.168.10.0192.168.10.64192.168.10.128192.168.10.192

Valid IP

192.168.10.1192.168.10.65192.168.10.129 -----------
192.168.10.2192.168.10.66192.168.10.130

ادامه

ادامه

ادامه

ادامه

ادامه

ادامه

192.168.10.62192.168.10.126192.168.10.190
broad cast address192.168.10.63192.168.10.127192.168.10.191 
customize subnet mask255.255.255.192255.255.255.192255.255.255.192255.255.255.192

 




(CIDR(Classless Inter-Domain Routing  


اصطلاح دیگری که شما باید با آن آشنا بشوید CIDR است این به طور اساسی یک روش است که ISPها (Internet Service Providers) برای تخصیص دادن یک مقدار از آدرس به یک کمپانی و یا مشتری استفاده می کنند . 


زمانی که شما یک دسته آدرس را از یک ISP دریافت می کنید چیزی شبیه به این 192.168.10.32/28 است . این به شما subnet mask شما را می گوید .نشان slash به معنای این است که چه مقدار bits روشن است .


بدیهی است که بیشترین 32/ است زیرا یک byte است 8 bit پس 32=8*4 


اما بخاطر داشته باشید که بیشترین subnet mask می تواند باشد 30/ زیرا شما باید حداقل دو bits برای host bits نگه دارید .


بطور مثال در کلاس A , defult subnet mask 255.0.0.0 است این بدین معنی است که اولین byte از subnet mask همگی یک است (11111111) وقتی استناد به علامت slash کنیم بطور مسلم 255.0.0.0 است 8/ زیرا این هشت bits دارد .


همچنین در کلاس (B  ,defulf subnet mask 255.255.0.0(1111111.1111111.0.0 است و همچنین میتوانیم تعریف کنیم 16/ زیرا 16 بیت یک است .


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

Subnet Mask     CIDR value
  
255.0.0.0                /8
255.128.0.0            /9
255.192.0.0           /10
255.224.0.0           /11
255.240.0.0           /12
255.248.0.0           /13
255.252.0.0           /14
255.254.0.0           /15
255.255.0.0           /16
255.255.128.0        /17
255.255.192.0        /18
255.255.224.0        /19
255.255.240.0        /20
255.255.248.0        /21
255.255.252.0        /22
255.255.254.0        /23
255.255.255.0        /24
255.255.255.128     /25
255.255.255.192     /26
255.255.255.224     /27
255.255.255.240     /28
255.255.255.248     /29
255.255.255.252     /30


با تشکر از مهندس پویا فریضی