ttl در پینگ : وقتی بسته دیتا در اینترنت ایجاد و ارسال میشود، این ریسک وجود دارد که مسیرش را از روتری به روتر دیگر ادامه دهد و پایانی برای آن نباشد. بنابراین تاریخ انقضایی تعریف شد با نام time to live یا hop limit. در ادامه به بررسی این مفاهیم میپردازیم. با توسعه شبکه آداکهمراه باشید.
- تی تی ال چیست و چگونه کار می کند؟
- مقدار پیش فرض ttl و Hop Limit
- ttl در پینگ به چه معناست؟
- تغییر ttl در سیستم عاملهای لینوکس و ویندوز
- نحوه افزایش و کاهش ttl در dns
برخی از مطالب مرتبط:
DHCP چیست و چگونه کار می کند؟؛ پادکست
مجازی سازی سرور چیست و چگونه کار میکند؟
آنتی ویروس چیست و چگونه امنیت کامپیوتر، سرور یا گوشی شما را حفظ می کند؟
چه فیلدهایی میتوان در Microsoft Dynamics CRM ایجاد کرد؟
چگونه در Outlook امضای شخصی بسازیم؟
تی تی ال چیست و چگونه کار می کند؟
برای اینکه مطمئن شویم بستههای IP عمر محدودی در شبکه دارند تمام بستههای آی پی دارای فیلد هدر ۸ بیتی Time To Live (در IPv4) و یا Hop Limit (در IPv6) هستند. این فیلد، حداکثر تعداد هاپ های لایه سه (معمولا روتر) که در مسیری که بسته به مقصد میپیماید وجود دارد را مشخص میکند.
در تصویر زیر فیلد Time to Live در هدر IPv4 را میبینید.
در تصویر زیر فیلد Hop Limit در هدر IPv6 را میبینید.
Hop چیست؟
هر دستگاه لایه سه در شبکه، یک هاپ محسوب میشود. هر بار که بسته به یک هاپ میرسد، از مقدار Hop Limit یا ttl یکی کم میشود و به مسیرش ادامه میدهد. وقتی بسته IPv6 با مقدار هاپ لیمیتِ صفر، به دستگاهی برسد که مقصدش نیست، توسط دستگاه حذف – Discard میشود و پیام خطای ICMP به هاست ایجاد کننده آن، میفرستد. وقتی مقدار آن صفر یا یک باشد و به دستگاهی برسد که مقصدش است، Accept میشود.
پیغام خطای ICMP در IPv6 به صورت زیر است:
- IPv6: type 3: ‘Time Exceeded’, code 0: ‘Hop limit exceeded in transit’
در مورد IPv4 وضعیت سادهتری داریم: اگر این فیلد صفر باشد، بسته حذف میشود. بدین ترتیب در شبکه از ایجاد لوپ مسیریابی و مواردی از این دست، جلوگیری و از Fail شدن روتر پیشگیری میشود.
پیغام خطای ICMP در IPv4 به صورت زیر است:
- IPv4: type 11: ‘Time Exceeded’, code 0: ‘time to live exceeded in transit’
زمان ttl با ثانیه بیان میشود اما مدت زمانی که طول میکشد بسته پردازش شود خیلی کمتر از یک ثانیه است. بر این اساس حداکثر زمانی که بسته در شبکه وجود دارد ۴.۲۵ دقیقه یا ۲۵۵ ثانیه است. چون فیلد ۸ بیتی است حداکثر مقدار آن میتواند ۲۵۶ باشد یعنی در واحد باینری میشود ۱۱۱۱۱۱۱۱.
خب، پس Time to live چیست؟ TTL یا Time to live به مدت زمان یا تعداد Hop که بسته قبل از حذف توسط روتر میتواند در شبکه وجود داشته باشد گفته میشود.
کاربردهای دیگر ttl
TTL در CDN Caching و DNS Caching هم استفاده میشود.
در DNS برای هر رکورد، ttl تعریف میشود تا مدت زمان کش بودن اطلاعات مربوط به دامنه و آی پی آدرس مشخص شود. با کش شدن این اطلاعات، بار کمتری به سرور DNS وارد میشود و زمان لود صفحات کاهش مییابد.
ttl در شبکه توزیع محتوا یا CDN هم کاربرد دارد و بازه زمانی لازم برای مراجعه به سرور هاست و آپدیت محتوا را مشخص میکند. نتیجه آن افزایش سرعت وب سایت و افزایش سرعت ارایه محتوا به کاربر است.
مقدار پیش فرض ttl و Hop Limit
مقدار پیش فرض ttl و Hop Limit در سیستم عاملهای مختلف فرق دارد برخی از آنها را در ادامه میبینید:
- Linux kernel 2.4 (circa 2001): ۲۵۵for TCP, UDP and ICMP
- Linux kernel 4.10 (2015): ۶۴for TCP, UDP and ICMP
- Windows XP (2001): ۱۲۸for TCP, UDP and ICMP
- Windows 10 (2015): ۱۲۸for TCP, UDP and ICMP
- Windows Server 2008: ۱۲۸for TCP, UDP and ICMP
- Windows Server 2019 (2018): ۱۲۸for TCP, UDP and ICMP
- MacOS (2001): ۶۴for TCP, UDP and ICMP
میتوان از مقدار ttl یا hop limit به نوع سیستم عاملی که در هاست استفاده میشود پی برد. مثلا ttl 64 چیست؟ مربوط به سیستم عامل MacOS است.
ttl در پینگ به چه معناست؟
دستورات رایج شبکه، ping و traceroute هر دو از ttl استفاده میکنند. ابتدا بگوییم Ping مخفف چیست. Ping مخفف Packet InterNet Groper و ابزاری برای عیب یابی اتصالات شبکه است.
معنی ttl in ping چیست؟ پینگ مستقیما برای ttl یا hop limit استفاده نمیشود اما خروجی این دستور، ttl یا hop limit بسته آی پی ورودی که برای پیامهای ICMP Echo Response دریافت میشود را نشان میدهد.
مثلا دستور زیر به همراه پینگ، در IPv4 استفاده میشود:
sudo tcpdump -vvnni any ‘icmp[icmptype] == 8’
دستور زیر به همراه پینگ، در IPv6 استفاده میشود:
sudo tcpdump -vvnni any ‘icmp[icmptype] == 128’
تغییر ttl در سیستم عاملهای لینوکس و ویندوز
برای کاهش یا افزایش ttl در سربرگ ip packet روش های مختلفی بسته به نوع سیستم عامل وجود دارد که در ادامه به تغییر ttl در لینوکس و ویندوز میپردازیم.
تغییر ttl در لینوکس
تغییر ttl در IPv4 در لینوکس به صورت زیر است:
برای تغییر ttl از دستور زیر استفاده کنید:
sysctl -w net.ipv4.ip_default_ttl=128
در این دستور مقدار ttl را ۱۲۸ تعریف میکنیم. این تغییر موقتی است و تا زمان ریبوت بعدی اعمال میشود.
اگر بخواهید مقدار ttl به صورت دایم و ثابت تغییر کند، از روش های زیر استفاده کنید:
- ادیت فایل/etc/sysctl.conf
- ایجاد فایل جدید با پسوند .conf در دایرکتوری /etc/sysctl.d/
- ادیت فایل موجود در دایرکتوری/etc/sysctl.d/
هر مسیری که انتخاب میکنید دستور زیر را به فایل اضافه و ذخیره کرده و خارج شوید:
net.ipv4.ip_default_ttl = 128
سپس سیستم را ریبوت کنید.
تغییر ttl در IPv6 در لینوکس مشابه IPv4 است ولی باید IPv4 را به IPv6 تغییر دهید.
تغییر ttl در ویندوز
برای نمایش مقدار کنونی ttl در command prompt دستور زیر را تایپ کنید:
C:WINDOWSsystem32>netsh int ipv4 show global<br>Querying active state…<br><br>General Global Parameters<br>———————————————<br>Default Hop Limit : 128 hops<br>…
با دستور زیر بلافاصله و به صورت دایم مقدار ttl تغییر میکند:
netsh int ipv4 set global defaultcurhoplimit=64
تغییر ttl در IPv6 در ویندوز مشابه IPv4 است ولی باید IPv4 را به IPv6 تغییر دهید.
نحوه افزایش و کاهش ttl در dns
ttl در دامین و DNS مشخص کننده مدت زمان کش شدن دامنه و آی پی سرور در سیستم کلاینت است. مقدار ttl در dns را میتوان زیاد و کم کرد. ttl بیشتر یا کمتر کاملا بستگی به کاربرد و تغییراتی دارد که در آدرس و وب سرور و رکوردها اعمال میشود.
cpanel یک روش برای این کار است. مقدار پیش فرض در سی پنل ۱۴۴۰۰ و معادل ۴ ساعت است.
نحوه افزایش و کاهش ttl در dns به ترتیب زیر است:
- وارد کنترل پنل در cpanel شوید.
- در قسمت Domains گزینهZone Editor را بزنید.
- از لیست نمایش داده شده گزینه Manage مربوط به دامنه موردنظرتان را انتخاب کنید.
- در لیست رکوردهای دامنه روی گزینه Edit کلیک کنید.
- مقدار TTL را بر حسب ثانیه تغییر دهید و Save کنید.