TTL در پینگ چیست؛ نحوه کاهش و افزایش TTL در DNS
در این مقاله در مورد مفهوم تی تی ال در شبکه و گینگ صحبت می کنیم و در مورد کاهش و افزایش آن توضیحات لازم را ارائه می دهیم.
فهرست محتوا
TTL چیست؟
TTL مخفف Time to Live است و در شبکههای کامپیوتری استفاده میشود. تعریف time to live به زبان ساده؛ به معنای زمان باقیمانده برای فعال بودن یک بسته داده در شبکه است. در واقع، TTL نشان میدهد که چقدر زمان باقیمانده است تا یک بسته داده از شبکه عبور کند یا در صورت عدم رسیدن به مقصد، حذف شود. هر بسته داده که در شبکه ارسال میشود، دارای یک فیلد TTL است که مقداری را مشخص میکند که نشان میدهد بسته دادهای از چند هاپ (Hop) میتواند در شبکه عبور کند. هر بار که بسته از یک دستگاه مسیریابی (Router) عبور میکند، مقدار TTL یک واحد کاهش مییابد. اگر مقدار TTL به صفر برسد، بسته حذف میشود و از شبکه خارج میشود.
استفاده از TTL در شبکهها مزایایی دارد. از جمله مزایای مهم باید به برطرف کردن مشکل حلقه در شبکه، جلوگیری از اشباع در شبکه و جلوگیری از انتشار بستههای دائمی در شبکه اشاره کرد. همچنین، TTL به مسیریابها اجازه میدهد بستهها را با محدودیت زمانی در شبکه منتقل کنند و به پروتکلهای مسیریابی کمک کنند تا بهترین مسیر را برای ارسال بستهها تعیین کنند.
کاربردهای TTL
TTL در شبکههای کامپیوتری در بسیاری از زمینهها استفاده میشود. برخی از کاربردهای TTL به شرح زیر هستند:
جلوگیری از بروز حلقههای بینهایت: مقدار TTL به مسیریابها اجازه میدهد بستههای داده را با محدودیت زمانی در شبکه منتقل کنند. این تکنیک مانع از بروز مشکل حلقههای بینهایت در شبکه میشود که ممکن است منجر به اشباع شبکه و بروز مشکلات عملکردی شود.
مسیریابی و انتخاب مسیر بهتر: مقدار TTL به مسیریابها کمک میکند تا بهترین مسیر برای انتقال بستهها را تعیین کنند. با کاهش مقدار TTL در هر بسته، مسیریابها میتوانند مسیریابی بهتری را انجام دهند تا بسته در کوتاهترین زمان به مقصد برسد.
کنترل ترافیک شبکه: با استفاده از TTL، میتوان ترافیک شبکه را کنترل کرد. با تنظیم مقدار TTL به شکل صحیح میتوان پهنای باند شبکه را بهینه کرده و مانع بروز مشکل اشباع در شبکه شد.
تامین امنیت: TTL در حفاظت از امنیت شبکه نیز نقش دارد. با تنظیم مقدار کوچکی برای TTL، میتوان جلوی اسکنها و حملات مخرب را گرفت و امنیت شبکه را بهبود بخشید.
انتقال بستهها در شبکههای موبایل: در شبکههای موبایل مانند شبکههای GSM و GPRS، مقدار TTL برای محدود کردن مسیریابی بستهها و جلوگیری از ارسال بسته برای گرههای غیر کاربردی در شبکه استفاده میشود.
مقدار پیش فرض تی تی ال
مقدار پیشفرض TTL در بستههای IP معمولا ۶۴ است. که نشان میدهد هر بسته داده با مقدار TTL اولیه ۶۴ شروع میشود و هر بار که از یک مسیریاب (router) عبور میکند، مقدار TTL یک واحد کاهش مییابد. در نهایت، اگر مقدار TTL به صفر برسد، بسته حذف میشود.
با این حال، مقدار پیشفرض TTL میتواند در بستههای IP بسته به سیستم عامل، سختافزار یا پیکربندی شبکه متفاوت باشد. برخی سیستمعاملها و تجهیزات شبکه ممکن است مقدار پیشفرض TTL را به اعداد مختلفی تغییر دهند. همچنین، در برخی موارد، مقدار TTL ممکن است توسط کاربران تنظیم شود تا نرخ از دست رفتن بستهها کاهش پیدا کند. بنابراین، مهم است که برای اطمینان از دقت مقدار TTL در شبکه خود، به مستندات و دستورالعملهای مورد استفاده و همچنین تجهیزات شبکه مراجعه کنید.
پیشنهاد مطالعه : آی پی چیست و چگونه آی پی خود را بدانیم؟
تغییر تی تی ال در سیستم عامل های مختلف
تغییر مقدار TTL در سیستم عاملهای مختلف ممکن است برای تنظیمات شبکه و پیکربندی مختلف متفاوت باشد. در زیر، توضیح مختصری از روش تغییر مقدار TTL در چند سیستم عامل معروف را مورد بررسی قرار میدهیم.
سیستم عامل ویندوز:
در سیستم عامل ویندوز، میتوانید با استفاده از دستور regedit به رجیستری دسترسی پیدا کنید و در مسیر زیر مقدار TTL را تغییر دهید:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
در این مسیر، میتوانید یک مقدار DWORD با نام DefaultTTL ایجاد کنید و مقدار مورد نظر خود را به صورت دسیمال (مانند ۱۲۸) برای TTL تنظیم کنید.
سیستم عامل macOS
در سیستم عامل macOS، میتوانید از دستور sysctl استفاده کنید تا مقدار TTL را تغییر دهید. برای این کار، ترمینال را باز کنید و دستور زیر را اجرا کنید:
sudo sysctl -w net.inet.ip.TTL=[مقدار TTL]
در اینجا، [مقدار TTL] را با مقدار مورد نظر خود (مانند ۱۲۸) جایگزین کنید. دقت کنید برای اعمال تغییرات، نیاز به وارد کردن رمز عبور مدیر سیستم خواهید داشت.
سیستم عامل Linux
در سیستم عامل Linux، میتوانید از دستور sysctl استفاده کنید تا مقدار TTL را تغییر دهید. برای این کار، ترمینال را باز کنید و دستور زیر را اجرا کنید:
sudo sysctl -w net.ipv4.ip_default_TTL=[مقدار TTL]
در اینجا، [مقدار TTL] را با مقدار مورد نظر خود (مانند ۱۲۸) جایگزین کنید. در این سیستم عامل نیز برای اعمال تغییرات، نیاز به وارد کردن رمز عبور مدیر سیستم خواهید داشت.
توجه داشته باشید که موارد یاد شده تنها مثالهایی از روشهای تغییر مقدار TTL در سیستم عاملها هستند و بسته به نسخه سیستم عامل، نرمافزارهای شخص ثالث و تنظیمات شبکه مورد استفاده، روشهای دیگری ممکن است مورد استفاده قرار گیرند.
تعریف Hop چیست؟
واژه Hop در شبکههای کامپیوتری به معنای گام یا پلهای از مسیریابی است که یک بسته داده در طی مسیریابی از مبدا تا مقصد عبور میکند. هر بار که بستهای از یک مسیریاب عبور میکند، به عنوان یک “Hop” شمارهگذاری میشود. به عبارت دیگر، هر مسیریابی که بسته از طریق آن عبور کند، به عنوان یک Hop شمارهگذاری میشود.
مفهوم Hop در مسیریابی به استفاده از پروتکلهای مسیریابی مانند OSPF سرنام (Open Shortest Path First) یا RIP سرنام (Routing Information Protocol) اشاره دارد. در این پروتکلها، بستههای داده با استفاده از اطلاعات مسیریابی موجود در جداول مسیریابی، از یک مسیریاب به مسیریاب دیگر هدایت میشوند. هر مسیریابی که بسته از طریق آن عبور کند، به عنوان یک Hop شمارهگذاری میشود و مقدار مقدار TTL در بسته کاهش مییابد. مفهوم Hop مهم است، زیرا با استفاده از تعداد Hopها، میتوانیم فاصله واقعی بین مبدا و مقصد را تخمین بزنیم. همچنین، تعداد Hopها میتواند در تحلیل عملکرد و عیبیابی شبکه مفید باشد؛ زیرا اگر تعداد Hopها بیش از حد زیاد شود یا مقدار TTL به صفر برسد، ممکن است بسته دچار مشکل شده و در شبکه از بین برود.
بیایید فرض کنیم که شما در حال ارسال یک بسته داده از دستگاهتان به یک سرور راه دور هستید. در این حالت، بسته داده برای رسیدن به سرور باید از طریق چندین مسیریاب عبور کند. هر مسیریاب که بسته از طریق آن عبور میکند، به عنوان یک Hop شمارهگذاری میشود. به عنوان مثال، فرض کنید بسته داده شما برای رسیدن به سرور به ترتیب از سه مسیریاب عبور کند. در این صورت، هر مسیریاب به عنوان یک Hop محسوب میشود. بنابراین، اگر بسته از دستگاه شما سفر خود را آغاز کند و اولین Hop آن، مسیریاب A باشد، سپس به مسیریاب B و سپس به سرور برسد، تعداد Hopها برابر با ۳ خواهد بود. در این حالت، بسته داده شما از طریق سه Hop یا مسیریاب مختلف عبور کرده است و هر کدام از آنها میتوانند به عنوان یک Hop شمارهگذاری شوند. این اطلاعات Hop میتواند در تحلیل و نظارت بر عملکرد شبکه و همچنین عیبیابی مشکلات شبکه مفید باشد.
Ping چیست؟
ping سرنام Packet Internet Groper راهکاری است که نشان میدهد یک کانال ارتباطی به درستی کار میکند. این ابزار با ارسال پیامهای اکو سعی میکند پاسخی از مقصد دریافت کند. پینگ با ارسال یک سیگنال درخواست اکو (echo request) برای مقصد، منتظر دریافت پاسخ میماند. مقصد پس از دریافت سیگنال از طریق پاسخ اکو (echo reply) به آن پاسخ میدهد. پروتکلی که برای درخواست و پاسخ دادن به اکو استفاده میشود، ICMP است. هنگامی که قصد بررسی وضعیت ارتباط یک شبکه را دارید، اولین ابزاری که باید از آن استفاده کنید پینگ است. این فرمان پارامترها و گزینههای مختلفی دارد.
مفهوم TTL در پینگ
پینگ اطلاعات مختلفی در ارتباط با شبکه ارایه میکند که یکی از آنها TTL است. هنگامی که دستور فوق را اجرا میکنید، TTL محدودیت هاپ بسته آیپی ورودی که برای پیامهای پاسخ ICMP دریافت میشود را نشان میدهد و به عنوان معیاری برای سنجش عملکرد شبکه در نظر گرفته میشود. بهطور مثال، هنگامی که دستور پینگ را همراه با یک آدرس آیپی متعلق به سایت یا کلاینتی تحت شبکه وارد میکنیم، مدت زمانی که بستهها ارسال شده و پاسخ دریافت شده را مشاهده میکنیم.
هرچه این مقدار کم باشد به معنای سرعت بالا است. بهطور مثال، اگر هیچ پاسخی از مقصد دریافت نشود دستور پینگ پیغام time out را نشان میدهد. دومین اطلاعات مهمی که پینگ نشان میدهد مقداری است که روبروی TTL درج میشود. بهطور پیشفرض، این مقدار در سیستمعاملهای مبتنی بر لینوکس برابر با 64 و در سیستمعاملهای مبتنی بر ویندوز برابر با 128 است. مقدار TTL پس از عبور از هر روتری در مسیر به شکل پیشفرض کم میشود، مگر آنکه تنظیماتی در روتر اعمال شده باشد که TTL را کم نکند. در مجموع باید بگوییم TTL مکانیزمی برای پیشگیری از بروز مشکل حلقه در لایه 3 است.
نحوه افزایش و کاهش TTL در DNS
تی تی ال در دامنه (Domain) و سامانه نام دامنه (DNS) توصیفکننده مدت زمان کش شدن دامنه و آیپی سرور در سامانههای کلاینتی است. به بیان دقیقتر، TTL در سامانه نام دامنه به مقدار زمانی که آن آدرس آیپی و دامنه برای شما کش شده اشاره دارد. در TTL شبکه مقدار TTL تنها یک عدد است، در حالی که TTL در سامانه نام دامنه بر مبنای ثانیه تنظیم شده و بر هر حسب ثانیه عمل میکند. بهطور مثال، اگر TTL یک دامنه روی مقدار 86400 تنظیم شده باشد، به این معنا است که مشخصات آدرس آیپی و دامنه به مدت یک روز روی سیستم کش میشوند.
هر رکورد سامانه نام دامنه یک مقدار TTL دارد که مشخص میکند یک سرور Resolver چه مدت زمان میتواند یک رکورد DNS را در حافظه موقت خود نگهداری کند. با ذخیرهسازی موقت رکوردها در سرویس سامانه نام دامنه، سرعت ترجمه نام دامنه و بارگذاری صفحات وبسایتها سریعتر میشود. مقدار TTL در سامانه نام دامنه قابلیت کم یا زیاد شدن دارد. برای این منظور به مجوز مدیریتی نیاز دارید تا بتوانید از طریق سیپنل اینکار را انجام دهید. مقدار پیشفرض اختصاص داده شده در سیپنل برابر با 14400 است. برای افزایش یا کاهش TTL در سامانه نام دامنه به شرح زیر کار میکنیم:
ابتدا اطلاعات هویتی را درون پنل مدیریت سیپنل وارد کنید، در بخش Domains گزینه zone Editor را انتخاب کنید، از فهرست نشان داده شده گزینه Manage که مرتبط با دامنه موردنظر است را انتخاب کنید، در ادامه در فهرست رکوردهای دامنه روی گزینه Edit کلیک کرده و در انتها مقدار TTL را بر مبنای ثانیه وارد کرده و دکمه Save را کلیک کنید تا تغییرات ثبت شوند.
افزایش TTL در سربرگ IP Packet
یکی از نکات مهمی که باید در مورد TTL بدانید، نحوه افزایش یا کاهش TTL در سرآیند ip packet است. راهکارهای مختلفی برای تغییر این مقدار در سیستمعاملهای مختلف وجود دارد. بهطور مثال، در سیستمعامل ویندوز برای تغییر مقدار TTL ابتدا باید پنجره خط فرمان را باز کنید و دستور زیر را درون آن تایپ کنید: دقت کنید روش تغییر TTL در هر دو پروتکل IPv4 و IPv6 یکسان است.
netsh int ipv4 set glob defaultcurhoplimit=129
netsh int ipv6 set glob defaultcurhoplimit=129
نکتهای که باید در این بخش به آن اشاره داشته باشیم، حداقل مقدار مناسب TTL در شبکه است که بهتر است این مقدار برابر با 60 ثانیه که معادل 1 دقیقه است در نظر گرفته شود. لازم به توضیح است که بالاترین مقدار نیز در حدود 86400 ثانیه برابر با یک شبانهروز است. به شکل پیشفرض مقدار TTL در شبکه در حدود 3600 ثانیه برابر با یک ساعت است، یعنی بستههای ارسال شده در کمتر از ده دقیقه از بین نمیروند و در بهترین حالت تا 24 ساعت روی شبکه باقی میمانند تا مقصد خود را پیدا کنند. اگر در این بازه زمانی به مقصد نرسند بهطور خودکار روترها آنها را حذف میکنند.
TTL 64 چیست؟
ابزارهایی مثل پینگ و Tracert در دسترس سرپرستان شبکه قرار دارد که از مقدار TTL برای رسیدن یا آزمایش مسیر ارتباطی مبدا به مقصد استفاده میکنند. مدت زمانی که بین ارسال بسته اطلاعاتی و دریافت آن توسط پروتکل ICMP سپری میشود بهنام مدت زمان سفر هاپ (Hop Travel) نامیده میشود. مقدار TTL میتواند محدود یا حوزهای که بسته اطلاعاتی در آن ارسال میشود را مشخص کند.
از مهمترین مقادیر پیشفرض مقدار TTL میتوان به مقدار 0 در TTL به معنی قرارگیری در یک میزبان یا سیستم، مقدار 1 در TTL به معنی قرارگیری در یک زیرشبکه، مقدار 32 در TTL به معنی قرارگیری در یک مرکز داده، مقدار 64 در TTL به معنی قرارگیری در یک کشور، مقدار 128 در TTL به معنی قرارگیری در یک قاره و مقدار 256 در TTL به معنی عدم وجود محدودیت اشاره کرد. یکی از متداولترين روشهاي مورد استفاده براي تعيين سيستم عامل بررسي TTL است. به عنوان مثال، TTL پیشفرض یک سیستم لینوکس 64 است، در حالی که TTL پیشفرض ویندوز 128 و TTL پیش فرض روترها بهطور معمول 254 است.