آدرسهای IP چگونه کار میکنند؟
هر دستگاهی که به یک شبکه وصل باشد – کامپیوتر، تبلت، دوربین و غیره – به یک شناسهی یکتا نیاز دارد تا سایر دستگاه بدانند چطور باید به آن دسترسی پیدا کنند. این شناسه در دنیای شبکههای TCP/IP همان آدرس پروتکل اینترنت (IP) است.
گویا آی تی: اگر با کامپیوتر آشنا باشید احتمالاً آدرسهای IP را هم میشناسید؛ همان دنبالههای عددی خاصی که شبیه ۱۹۲٫۱۶۸٫۰٫۱۵ هستند. اکثر اوقات لازم نیست مستقیماً با این آدرسها کار کنیم، چون دستگاهها و شبکههایمان کارهای پشت صحنه را انجام میدهند. وقتی آنها را لازم داشته باشیم، اغلب صرفاً دستورالعملها را دنبال میکنیم تا ببینیم باید کدام عدد را کجا بگذاریم. ولی اگر دوست دارید بدانید که این اعداد واقعاً چه معنایی دارند، با ادامهی مطلب همراه باشید.
اما این موضوع چه اهمیتی دارد؟ خب اگر زمانی بخواهید ببینید که چرا شبکه کار نمیکند یا چرا یک دستگاه آن طور که شما انتظار دارید به شبکه وصل نمیشود، باید آدرسهای IP را بشناسید. و اگر میخواهید یک سیستم کمی پیشرفتهتر مثل یک گیم سرور یا مدیا سرور برپا کنید تا دوستانتان بتوانند از طریق اینترنت به آن وصل شوند، باید با این مبحث آشنا باشید.
به یاد داشته باشید که ما در این مقاله صرفاً میخواهیم اصول ابتدایی آدرسهای IP، مسائلی که اکثر کاربران از آن بیاطلاعاند اما هیچ وقت به آن فکر نکردهاند و حالا میخواهند دربارهی آن بدانند را به شما بگوییم. قصد ما این نیست که وارد مسائل تخصصی مثل کلاسبندیهای IP، مسیریابیها و زیرشبکهها و غیره شویم.
آدرس IP چیست؟
آدرس IP دستگاهها را به شکل یکتا بر روی شبکه مشخص میکند. حتماً تا به حال با آدرسهایی شبیه ۱۹۲٫۱۶۸٫۱٫۳۴ روبرو شدهاید.
یک آدرس IP همیشه مجموعهای از چهار عدد مثل نمونهی بالاست. هر عدد میتواند از ۰ تا ۲۵۵ باشد. بنابراین همهی آدرسهای IP بین ۰٫۰٫۰٫۰ و ۲۵۵٫۲۵۵٫۲۵۵٫۲۵۵ هستند.
دلیل این که هر عدد نمیتواند از ۲۵۵ بیشتر شود این است که اینها عددهای هشت رقمی دودویی هستند (گاهی اوقات به آنها هشتتایی هم میگویند). در یک عدد هشتتایی، صفر میشود ۰۰۰۰۰۰۰۰، در حالی که ۲۵۵ میشود ۱۱۱۱۱۱۱۱؛ یعنی بالاترین عددی که برای اعداد هشتتایی موجود است. آدرس IP نمونهی بالا (۱۹۲٫۱۶۸٫۱٫۳۴) در حالت دودویی میشود: ۱۱۰۰۰۰۰٫۱۰۱۰۱۰۰۰٫۰۰۰۰۰۰۰۱٫۰۰۱۰۰۰۱۰
کامپیوترها با فرمت دودویی کار میکنند، اما برای ما انسانها کار کردن با فرمت دهدهی بسیار سادهتر است. با دانستن همین مطلب میتوانیم بفهمیم چیزهای پیرامون آدرسهای IP چگونه کار میکنند.
البته جای نگرانی نیست! چون در این مقاله نمیخواهیم به مسائل ریاضیاتی قضیه بپردازیم، پس همچنان با ما همراه باشید.
دو بخش آدرسهای IP
آدرس IP یک دستگاه از دو بخش مجزا تشکیل شده است:
- ID شبکه: ID شبکه بخشی از آدرس IP است که از سمت چپ شروع میشود و نشانگر شبکهای است که دستگاه در آن قرار دارد. در شبکههای معمول خانگی، اگر آدرس IP دستگاه ۱۶۸٫۱٫۳۴ باشد، بخش ۱۹۲٫۱۶۸٫۱ مربوط به شبکه است. برای نمایش این IP معمولاً میشود به جای بخش آخر صفر گذاشت و بعد این طور گفت که ID شبکه برای این دستگاه ۱۹۲٫۱۶۸٫۱٫۰ است.
- ID میزبان: ID میزبان بخشی است که توسط ID شبکه اشغال نشده است. این بخش دستگاه مدنظر را در آن شبکه مشخص میکند (در دنیای TCP/IP به این دستگاهها هاست یا میزبان میگوییم). در همان مثال قبلی ID میزبان معادل ۳۴ است؛ یعنی ID یکتای میزبان بر روی شبکهی ۱۶۸٫۱٫۰ عدد ۳۴ میباشد.
در شبکههای خانگی ممکن است مشاهده کنید که IP دستگاههای مختلف مشابه ۱۹۲٫۱۶۸٫۱٫۱، ۱۹۲٫۱۶۸٫۱٫۲، ۱۹۲٫۱۶۸٫۱٫۳۰ و ۱۹۲٫۱۶۸٫۱٫۳۴ باشد. همهی این آدرسها (با ID میزبان ۱، ۲، ۳۰ و ۳۴) دستگاههای یکتایی هستند که بر روی یک شبکه (با ID شبکهی ۱۹۲٫۱۶۸٫۱٫۰) قرار دارند.
برای این که همهی این بحثها را بفهمیم بگذارید یک مثال بزنیم. این قضیه بسیار شبیه آدرس خیابانهای یک شهر است. آدرسی مثل خیابان پارادایز ۲۰۱۳ را فرض کنید. نام خیابان همان ID شبکه و پلاک خانه همان ID میزبان است. در یک شهر دو خیابان با اسم مشترک نداریم، در شبکهها هم نمیشود ID دو شبکه با یکدیگر برابر باشد. پلاک خانهها در هر خیابان منحصر به فرد است، درست مثل شبکهها که ID میزبان در هر ID شبکه یکتا میباشد.
ماسک زیرشبکه
خب، حالا دستگاه شما چطور تعیین میکند که کدام بخش از آدرس IP مربوط به ID شبکه و کدام بخش مربوط به ID میزبان است؟ برای این منظور از یک عدد ثانویه استفاده میشود که همیشه آن را کنار آدرسهای IP میبینیم. این عدد ماسک زیرشبکه نام دارد.
در اکثر شبکههای ساده (مثل شبکههای خانگی و تجاری کوچک)، ماسکهای زیرشبکه چیزی شبیه ۲۵۵٫۲۵۵٫۲۵۵٫۰ است که یا همهی اعداد آن ۲۵۵ یا ۰ میباشد. موقعیت تغییرات از ۲۵۵ تا ۰ بخش میان ID شبکه و میزبان را نشان میدهد. اعداد ۲۵۵ آیدی شبکه را از معادله حذف میکنند.
نکته: ماسکهای زیرشبکهی پایه که قصد معرفیشان را داریم با نام ماسکهای پیشفرض زیرشبکه شناخته میشوند. اوضاع در شبکههای بزرگتر پیچیدهتر از این است. مردم اغلب از ماسکهای سفارشی زیرشبکه استفاده میکنند تا بر روی شبکه چندین زیرشبکه به وجود بیاورند. توضیح بیشتر این موضوع در این بحث نمیگنجد، ولی اگر مشتاق به مطالعه دربارهی آن هستید، شرکت سیسکو توضیحات خوبی در این باره ارائه داده است.
آدرس پیشفرض دروازه
علاوه بر خود آدرس IP و ماسک زیرشبکهی مربوطه، آدرس پیشفرض دروازه (Gateway) را نیز در کنار اطلاعات آدرس IP میبینید. بسته به پلتفرم شما، این آدرس میتواند اسامی دیگری داشته باشد. گاهی اوقات به آن مسیریاب (روتر)، آدرس مسیریاب، مسیر پیشفرض، یا همان دروازه گفته میشود. همهی اینها یک چیز هستند و در واقع آدرس IP پیشفرضیاند که وقتی لازم باشد داده به شبکهی دیگری منتقل شود (شبکهای با یک ID شبکهی متفاوت) از آن استفاده میشود.
سادهترین مثال برای این قضیه در شبکههای معمول خانگی یافت میشود.
اگر یک شبکهی خانگی با چند دستگاه دارید، احتمالاً باید یک روتر که از طریق مودم به اینترنت وصل باشد هم داشته باشید. این روتر میتواند یک دستگاه جداگانه یا بخشی از واحد ترکیبی مودم/روتر باشد. روتر میان کامپیوترها و دستگاههای موجود در شبکه و سایر دستگاههای عمومیتر اینترنت مینشیند و ترافیک را ارسال و دریافت میکند.
فرض کنید مرورگر را باز کرده و آدرس www.google.com را وارد میکنید. با این کار کامپیوتر شما یک درخواست به آدرس IP گوگل ارسال میکند. با توجه به این که سرورهای گوگل بر روی اینترنت قرار دارند، این ترافیک از کامپیوتر شما به روترتان (دروازه) فرستاده میشود و روتر درخواست را به سرورهای گوگل ارسال میکند. سپس اطلاعات مربوطه از سرور به روتر شما بر میگردد، آنگاه اطلاعات از روتر به متقاضی فرستاده میشود و میتوانید آن را از روی مرورگر خود ببینید.
روترها معمولاً طوری تنظیم شدهاند که به صورت پیشفرض آدرس IP خصوصی خود (آدرسشان بر روی شبکهی محلی) را به عنوان اولین ID میزبان در نظر بگیرند. بنابراین برای مثال بر روی شبکهی خانگی که ID شبکهاش ۱۹۲٫۱۶۸٫۱٫۰ است، روتر معمولاً ۱۹۲٫۱۶۸٫۱٫۱ میشود. البته مثل خیلی چیزهای دیگر، خودتان به صورتی دستی میتوانید این آدرس را تغییر دهید.
سرورهای DNS
یک تکهی نهایی دیگر هم وجود دارد که در کنار آدرس IP، ماسک زیرشبکه و آدرس پیشفرض دروازه قرار میگیرد: این قسمت آدرس یک یا دو سرور سامانهای نام دامنه (DNS) است. ما انسانها اسمها را بهتر از اعداد به خاطر میسپاریم. تایپ کردن آدرس www.google.com خیلی راحتتر حفظ کردن و وارد نمودن آدرس IP این سایت است.
DNS مثل یک دفتر تلفن کار میکند و با جستجو به دنبال اسامی که برای انسان آشناست، مثل نام وبسایتها، آنها را به آدرسهای IP تبدیل میکند. DNS این کار را با ذخیرهسازی این اطلاعات در سیستمی متشکل از همهی سرورهای DNS سراسر وب انجام میدهد. دستگاههای شما باید آدرس سرورهای DNS مورد نظر خود را بدانند.
در شبکههای کوچک یا خانگی، آدرسهای IP سرور DNS معمولاً با آدرس پیشفرض دروازه یکسان است. دستگاهها کوئریهای DNS خود را به روتر شما میفرستند، سپس این درخواستها به سرورهای DNS که بر روی روتر تنظیم شده ارسال میشود. این سرورها به طور پیشفرض معمولاً همان سرورهای DNS هستند که توسط سرویسدهندهی اینترنت شما فراهم شدهاند، اما اگر بخواهید برای استفاده از سایر سرورهای DNS این تنظیمات را تغییر دهید. گاهی اوقات استفاده از سرورهای DNS شخص ثالث مثل سرورهای گوگل یا OpenDNS میتواند نتیجهی بهتری داشته باشد.
فرق بین IPv4 و IPv6 چیست؟
اگر در بخش تنظیمات سیستم جستجو کرده باشید حتماً متوجه نوع دیگری از آدرسهای IP موسوم به آدرسهای IPv6 شدهاید. آدرسهایی که تاکنون دربارهی آنها حرف میزدیم آدرسهایی بودند که توسط نسخهی چهارم IP استفاده میشدند (پروتکلی که در اواخر دههی ۷۰ میلادی طراحی شد). آنها از ۳۲ بیت دودویی استفاده میکردند تا بتوانند همهی ۴.۲۹ میلیارد آدرس یکتای ممکن را پوشش دهند. در آن زمان این عدد خیلی زیاد به حساب میآمد و اکثر آدرسها هم برای شرکتهای تجاری استفاده میشد. اما علیرغم این که خیلی از این آدرسها مورد استفاده قرار نگرفت، بسیاریشان برای استفادههای عمومی اختصاص یافته و از دسترس خارج شدند.
در اواسط دههی ۹۰ میلادی، کارگروه مهندسی اینترنت (IETF) که نگران کم آمدن آدرسهای IP بود، IPv6 را طراحی کرد. IPv6 به جای آدرسهای ۳۲ بیتی IPv4 از آدرسهای ۱۲۸ بیتی استفاده میکند. با این تغییر تعداد آدرسهای ممکن آنقدر زیاد شد که احتمالاً هیچگاه با کمبود آدرس مواجه نمیشویم.
برخلاف سیستم نقطهگذاری IPv4، در آدرسهای IPv6 هشت گروه عدد وجود دارد که با استفاده از علامت دونقطه از یکدیگر جدا میشوند. هر گروه چهار رقم شانزدهشانزدهی دارد که نشانگر ۱۶ رقم دودویی است. یک آدرس IPv6 میتواند به شکل زیر باشد:
۲۶۰۱:۷c1:100:ef69:b5ed:ed57:dbc0:2c1e
نکته این جاست که کمبود آدرسهای IPv4 که این نگرانیها را به وجود آورد، در نهایت با افزایش استفاده از آدرسهای خصوصی IP در روترها تا حد زیادی جبران شد. بنابراین افراد بیشتر و بیشتری با کمک همان آدرسهای IP خصوصی که در معرض دید عموم هم قرار نداشت، شبکههای خصوصی خود را ساختند.
پس اگرچه که IPv6 هنوز یک بازیگر بزرگ است و این گذار بالاخره رخ خواهد داد، ولی وقایع آنطور که پیشبینی میشد پیش نرفت. اگر میخواهید در این زمینه اطلاعات بیشتری کسب کنید، میتوایند این لینک که مربوط به تاریخچه و روند حرکت IPv6 است را ببینید.
دستگاهها چگونه آدرس IP میگیرند؟
حالا که مفاهیم پایهی نحوهی عملکرد آدرسهای IP را میدانید، بگذارید ببینیم اصلاً این دستگاهها چگونه IP میگیرند. تخصیص IP دو حالت دارد: پویا و ایستا.
آدرسهای IP پویا به محض اتصال دستگاه به شبکه به آن تخصیص داده میشوند. امروزه بخش عمدهای از شبکهها (از جمله شبکهی خانگی شما) برای پیادهسازی این امر از چیزی موسوم به پروتکل پیکربندی پویای میزبان (DHCP) استفاده میکنند. DHCP در داخل روتر شما قرار دارد. زمانی که دستگاه به شبکه وصل میشود، یک پیغام همگانی ارسال کرده و درخواست IP میکند. DHCP این پیغام را مطالعه کرده و از استخر آدرسهای موجود یکی را به دستگاه اطلاق مینماید.
روترها برای این کار از رنج خاصی از آدرسهای IP خصوصی استفاده میکنند که نحوهی عملکرد آن به سازندهی روتر یا راهاندازیهای ابتدایی خود کاربر بستگی دارد. این رنج از آدرسهای خصوصی عبارتاند از:
- ۰٫۰٫۰ تا ۱۰٫۲۵۵٫۲۵۵٫۲۵۵: اگر کاربر Comcast/Xfinity هستید، روتری که از طرف شرکت به شما تعلق گرفته در این رنج قرار دارد. البته برخی از سایر شرکتها هم از این رنج استفاده میکنند؛ مثلاً اپل بر روی روترهای AirPort خود از همین رنج استفاده مینماید.
- ۱۶۸٫۰٫۰ تا ۱۹۲٫۱۶۸٫۲۵۵٫۲۵۵: اکثر روترها در این رنج از آدرسها تنظیم شدهاند. برای مثال بسیاری از روترهای Linksys از شبکهی ۱۹۲٫۱۶۸٫۱٫۰ استفاده میکنند، در حالی که روترهای D-Link و Netgear از رنج ۱۹۲٫۱۶۸٫۰٫۰ استفاده مینمایند.
- ۱۶٫۰٫۰ تا ۱۷۲٫۱۶٫۲۵۵٫۲۵۵: این رنج به ندرت توسط سازندگان کالاهای مصرفی رایج استفاده میشود.
- ۲۵۴٫۰٫۰ تا ۱۶۹٫۲۵۴٫۲۵۵٫۲۵۵: این یکی رنج بهخصوصی است که توسط پروتکلی موسوم به آدرسدهی خودکار آیپیهای خصوصی مورد استفاده قرار میگیرد. اگر کامپیوتر شما طوری تنظیم شده تا به طور خودکار IP بگیرد، ولی سرور DHCP ندارید، دستگاه از این رنج برای خودش آدرس اختصاص میدهد. اگر یکی از این آدرسها را میبینید، این یعنی دستگاه شما نتوانسته برای گرفتن IP از سرور DHCP استفاده کند. پس ممکن است که در شبکه مشکلی داشته باشید.
نکتهای که در رابطه با آدرسهای پویا وجود دارد این است که احتمال تغییر آنها وجود دارد. سرورهای DHCP تا مدت مشخصی به دستگاهها IP میدهند، ولی وقتی موعد مقرر برسد، این آدرسها باید تجدید شوند. گاهی اوقات آدرسی که سرور از استخر IP خارج میکند با آدرس قبلی فرق دارد.
اکثر اوقات این موضوع چندان مهم نیست و همهچیز به درستی کار میکند. اما بعضی وقتها میتوان به دستگاه آدرسی داد که تغییر نکند. برای مثال، اگر دستگاهی دارید که میخواهید به طور دستی به آن دسترسی داشته باشید، و به عقیدهی شما به خاطر سپردن یک آدرس IP از نام آن آسانتر است، یا اپلیکیشنی دارید که فقط از طریق IP میتوانند به دستگاههای شبکه وصل شوند، میتوانید از آدرسهای ایستا استفاده کنید.
روشهای مختلفی برای انجام این کار وجود دارد. مثلاً میتوانید خودتان به صورت دستی برای آن دستگاه آدرس IP تعیین کنید. روش شیکتر و بهتری که وجود دارد این است که تنظیمات روتر را طوری تغییر دهید تا برای بعضی از دستگاهها IP ایستا اختصاص دهد. با این کار آدرس IP شما هیچگاه عوض نمیشود، و از طرفی لازم نیست جلوی عملکرد طبیعی DHCP را نیز بگیرید.