آموزش
Subnetting



سلام به همه شما همراهان همیشگی هیوا


آموزش Subnetting را با یک سناریو آغاز می کنیم. اما پیش از آن باید با IPv4 و ساختار آن و کلاس های IP آشنایی داشته باشید. پس مرور کوتاهی بر IPv4 ، ساختار و دسته بندی های آن می کنیم.


ویژگی های IPv4:
149.202.138.80
IPv4 یک شناسه 32 بیتی است.

از 4 بخش تشکیل شده.
به هر بخش octet می گویند ( 32/4=8 bit )
هر octet با نقطه از هم جدا می شوند.
نحوه نمایش آن به صورت Decimal یا ده دهی است.
به ازای هر IP یک همزاد وجود دارد که به آن Subnet mask می گویند.
کار Subnet mask مشخص کردن Net ID و Host ID است.


دسته بندی کلاس های IPv4 :

IPv4 در 5 کلاس دسته بندی می شود که هر کلاس ویژگی های خود را دارد.


تعداد هاست در هر شبکه تعداد شبکه CIDR Subnet mask بازه کلاس
224 - 2 126 /8 255.0.0.0 0-127 A
216 - 2 64 * 28 /16 255.255.0.0 128-191 B
28 - 2 32 * 216 /24 255.255.255.0 192-223 C
- - تعریف نشده 255.255.255.255 224-239 D
- - تعریف نشده 255.255.255.255 240-255 E

IP
های Private :

برای هر یک از کلاس های A ، B و C یک بازه Private تعریف شده است. این IP ها برای شبکه های خصوصی مناسب هستند و شما می توانید با توجه به وسعت شبکه خود یکی از این ها را انتخاب کنید:



انتهای بازه ابتدای بازه کلاس
10.255.255.255 10.0.0.0 A
172.31.255.255 172.16.0.0 B
192.168.255.255 192.168.0.0 C

IP
های خاص:
برخی از IP ها از قبل Reserve شده اند و یا بنا به دلایلی نمی توانیم از آن ها استفاده کنیم. در زیر لیست برخی از آن ها را می بینید:



کاربرد IP
- 0.0.0.0
رزرو شده برای loopback 127.x.y.z
APIPA 169.254.x.y

سناریو :

شما مدیر IT سازمانی هستید که 6 واحد و حدود 190 کامپیوتر دارد .در هر واحد حدود 40 کامپیوتر وجود دارد. شما از رنج 192.168.10.x برای شبکه سازمان استفاده کرده اید. در این حالت تمام کامپیوتر ها با هم Ping و ارتباط دارند. از بالا دستور آمده که هیچ واحدی نباید با واحد دیگر ارتباط داشته باشد. یعنی هر 6 واحد فقط بتوانند با کامپیوتر های واحد خود ارتباط داشته باشند. حالا چه باید کرد؟

راه حل:

به روش های گوناگونی می توان این کار را اجرایی کرد. مانند استفاده از Switch های لایه 3، جداسازی اتصالات شبکه هر واحد، استفاده از رنج های IP گوناگون. اما یکی از روش های ساده و کم هزینه، استفاده از Subnetting است.

ایده اصلی:


ایده اصلی کار، در تغییر Subnet mask است، نه تغییر رنج IP .

چرا به جای
Subnetting از رنج IP های مختلف استفاده نکنیم؟

این دو حالت را در نظر بگیرید:

1 - DHCP داشته باشیم.
اگر DHCP داشته باشیم و شما بخواهید برای هر واحد رنج IP جدا در نظر بگیرید در این صورت :
  • به ازای هر واحد باید یک Scope جدید در DHCP تعریف کنید.
  • به ازای هر Scope در DHCP باید یک کارت شبکه داشته باشید (در این سناریو 6 کارت شبکه)
  • به ازای هر کامپیوتر باید Reservation در DHCP انجام دهید و یا هر کارت شبکه DHCP مستقیما به واحد مربوطه وصل شود و آن واحد هم باید از لحاظ فیزیکی ایزوله باشد وگرنه در شبکه هرج و مرج بوجود می آید

2 – DHCP نداشته باشیم.
باید برای هر واحد به صورت دستی IP ها را Set کنید. هر چند همین کار را در حالت Subnetting هم باید انجام دهیم اما مقدار تغییرات کمتر است!
همچنین اگر فردا از بالا دستور بیاید که همه با هم شبکه شوند دوباره کلی IP هست که باید Set کنید در حالی که در صورت استفاده از Subnetting فقط کافیست که Subnet mask را تغییر دهید.
مشکل اینترنت، Gateway و Active Directory :
اگر کلاینت های شما به اینترنت متصل می شدند و الان هم باید به اینترنت متصل باشند باید به ازای هر رنج، یک Gateway در همان رنج داشته باشید. در غیر این صورت اگر از Gateway استفاده نمی کنید و در شبکه Active Directory دارید باید به ازای هر واحد، یک IP در Active Directory تعریف کنید.
مشکل ایجاد شدن IP ها آزاد در شبکه:
فرض کنیم شما مهمانی گرفتید. می دانید که حداکثر مهمان های شما 200 نفر هستند. پس شما 200 کارت دعوت چاپ می کنید. هر کس که یکی از این کارت های دعوت را داشته باشد می تواند در مهمانی شما شرکت کند و پذیرایی شود. حالا در نظر بگیرید که مهمان های شما همان 200 نفر هستند اما شما 800 کارت دعوت چاپ کنید؟ چه اتفاقی می افتد؟ در خوشبینانه ترین حالت هیچ اتفاقی. اما در حالت غیر خوشبینانه اگر فرد یا افراد غریبه ای به این کارت های دعوت دسترسی بیابند می توانند در مهمانی شما شرکت کنند و همه شیرینی ها را بخورند!

خلاصه اینکه:



از Subnetting استفاده کنید.
Subnetting چطور انجام می شود؟


به بیان تقریبا ساده:
با گرفتن سقف لوگاریتم در مبنای 2 از x
اما x چیست؟
دو حالت دارد:
1- تعداد زیر شبکه
2- تعداد هاست
اما چرا باید در مبنای 2 لوگاریتم بگیریم؟
چون باید این کار را به زبان کامپیوتر انجام دهیم.


Subnetting بر اساس تعداد زیر شبکه


مثال:
سناریو بالا را در نظر بگیرید. ما می خواهیم رنج 192.168.10.x را برای 6 زیر شبکه، Subnetting کنیم. بنابراین:


192.168.10.0 IP Range
11000000 . 10101000 . 00001010 . 00000000 IP Range in Binary
255.255.255.0 Subnet mask
11111111 . 11111111 . 11111111 . 00000000 Subnet mask in Binary
nnnnnnnn . nnnnnnnn . nnnnnnnn . hhhhhhhh Net bists - Host Bits
6 تعداد زیر شبکه مورد نیاز
یا همان x
110 تعداد زیر شبکه به باینری
تعداد بیت های لازم برای x زیر شبکه

پس از محاسبه تعداد بیت ها لازم برای 6 زیر شبکه، باید آن ها را از Host bit گرفته و به Net bit تبدیل کنیم. پس:



nnnnnnnn . nnnnnnnn . nnnnnnnn . ssshhhhh Net bit – Host bit
11111111 . 11111111 . 11111111. 1110000 New Subnet mask in Binary
255.255.255.224 New Subnet mask (decimal)

خب تا اینجای کار Subnet Mask جدید را پیدا کردیم.

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

ما 6 زیر شبکه لازم داشتیم ( و داریم! ) که به باینری شد 3 بیت.
3 بیت در باینری 8 حالت بوجود می آورد: 8 = 23

حالت ها
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7


هر یک از این حالت ها باید در 3 بیت گرفته شده از Host قرار بگیرد یعنی:



قبل از عمل
Broadcast IP ( انتهای شبکه ) Net ID ( ابتدای شبکه ) حالت
192.168.10.255 192.168.10.0
11000000 . 10101000 . 00001010 . 11111111 11000000 . 10101000 . 00001010 . 00000000
محاسبه زیرشبکه ها یا Subnet ها (بعد از عمل )
11000000 . 10101000 . 00001010 . 00011111 11000000 . 10101000 . 00001010 . 00000000 000
192.168.10.31 192.168.10.0 0
11000000 . 10101000 . 00001010 . 00111111 11000000 . 10101000 . 00001010 . 00100000 001
192.168.10.63 192.168.10.32 1
11000000 . 10101000 . 00001010 . 01011111 11000000 . 10101000 . 00001010 . 01000000 010
192.168.10.95 192.168.10.64 2
11000000 . 10101000 . 00001010 . 01111111 11000000 . 10101000 . 00001010 . 01100000 011
192.168.10.127 192.168.10.96 3
11000000 . 10101000 . 00001010 . 10011111 11000000 . 10101000 . 00001010 . 10000000 100
192.168.10.159 192.168.10.128 4
11000000 . 10101000 . 00001010 . 10111111 11000000 . 10101000 . 00001010 . 10100000 101
192.168.10.191 192.168.10.160 5
11000000 . 10101000 . 00001010 . 11011111 11000000 . 10101000 . 00001010 . 11000000 110
192.168.10.223 192.168.10.192 6
11000000 . 10101000 . 00001010 . 11111111 11000000 . 10101000 . 00001010. 11100000 111
192.168.10.255 192.168.10.224 7


خب بنابراین ما توانستیم Subnetting انجام دهیم. با 3 بیت 8 حالت ایجاد شد که هر یک از حالت ها، یک Subnet ایجاد کرد. اما ما فقط 6 زیر شبکه از موارد بالا را لازم داریم. بنابراین از 8 زیر شبکه بالا فقط از 6 تای آن استفاده می کنیم. کافیست برای هر واحد از IP های یک Subnet استفاده کنیم.

منبع : سایت هیوا شبکه




موضوعات مشابه: