Я работаю на поставщика услуг VoIP, и я работаю над проблемой с клиентом, у которого есть кабельное подключение к интернету, которое бросает меня в тупик.
У него есть один блок, который мы будем притворяться 70.141.15.0/29, со шлюзом в .1 и маршрутизаторами в .2 и .3. Оба маршрутизатора подключены к его кабельному модему, который, насколько нам известно, настроен на то, что провайдеры кабельных сетей представляют «мостовой режим».
Я пингую оба этих маршрутизатора одновременно из одной и той же системы, которая представляет собой систему Linux, подключенную к оптоволокну с (вероятно) уровня (3). Излишне говорить, что никто на планете не знает, сколько узлов существует между здесь и там. Но проверьте результаты пинга.
К первому роутеру:
64 bytes from 70.141.15.2: icmp_seq=2637 ttl=47 time=45.0 ms
64 bytes from 70.141.15.2: icmp_seq=2638 ttl=47 time=39.2 ms
64 bytes from 70.141.15.2: icmp_seq=2639 ttl=47 time=37.3 ms
64 bytes from 70.141.15.2: icmp_seq=2640 ttl=47 time=46.1 ms
64 bytes from 70.141.15.2: icmp_seq=2641 ttl=47 time=45.8 ms
64 bytes from 70.141.15.2: icmp_seq=2642 ttl=47 time=46.5 ms
64 bytes from 70.141.15.2: icmp_seq=2643 ttl=47 time=40.9 ms
Со второго:
64 bytes from 70.141.15.3: icmp_seq=631 ttl=239 time=54.7 ms
64 bytes from 70.141.15.3: icmp_seq=637 ttl=239 time=40.5 ms
64 bytes from 70.141.15.3: icmp_seq=638 ttl=239 time=40.3 ms
64 bytes from 70.141.15.3: icmp_seq=639 ttl=239 time=38.4 ms
64 bytes from 70.141.15.3: icmp_seq=640 ttl=239 time=44.9 ms
64 bytes from 70.141.15.3: icmp_seq=641 ttl=239 time=38.4 ms
64 bytes from 70.141.15.3: icmp_seq=642 ttl=239 time=38.8 ms
Проверьте значения TTL. Имеет ли это смысл? Эти устройства находятся рядом друг с другом и подключены к этому модему через отдельные порты коммутатора. Как может появиться еще около 200 прыжков? От пинга других сайтов у меня складывается впечатление, что TTL просто не реализован так, как я думаю. Я сомневаюсь, что между мной и 4.2.2.2, или woot.com, есть 200 прыжков, но я получаю менее 50 результатов TTL от обоих.
Один из этих маршрутизаторов (с более высоким TTL) от Fortinet, а другой - пользовательское устройство на основе Linux. Я почти уверен, что у Forti есть домашний сетевой стек, в то время как Linux-бокс использует все, что поставляется с исходным архивом, загруженным разработчиками аппаратного обеспечения. Вполне вероятно, что эхо ICMP реализовано в причудливой форме на одном из них и намеренно отправляет все ответы с TTL 50?
Я также замечаю, что один из немногих сайтов, которые я могу найти, который отвечает здравомыслящим TTL, это slashdot, и я могу предположить, что их серверы и маршрутизаторы могут быть немного меньше «того, что мы нашли в гараже», чем обычный веб-сайт, который вроде как заставляет меня чувствовать, что я могу быть на правильном пути с этим последним предположением.
Подводя итог: означает ли TTL для ping что-нибудь надежное?
источник
Ответы:
Я знаю, сколько узлов. Их ровно 16. Причина, по которой вы получаете разные ответы, заключается в том, что разные операционные системы используют разные начальные значения для TTL. Некоторые устройства используют 255, в то время как другие используют 63. Таким образом, одно из устройств, на которые вы отправляете эхо-запрос, отправляет ответ с TTL, установленным в 255. К тому времени, когда он возвращается к вам, он уменьшается до 239. Это 16 прыжков.
Другое устройство, на которое вы отправляете эхо-запрос, устанавливает TTL равным 63. Поэтому, когда оно вам подходит, значение равно 47
255-239 = 63-47 = 16.
Если вы хотите быть уверены в количестве прыжков между вами и целью, используйте traceroute.
источник
Значения TTL определяются удаленной машиной. Например, если вы пропингуете компьютер с Linux, его исходное значение TTL равно 64. В зависимости от того, сколько сетей он пересекает, чтобы вернуться к вам, TTL вычитается значением 1. Так что, если вы пропингуете 8.8.8.8, то есть Googles nameserver, он имеет исходное значение 128. К тому времени, когда он возвращается к вам, он может иметь значение 121 (это для меня). Это означает, что он пересек 7 сетей, чтобы добраться до меня, и это была машина Windows.
Общие значения TTL
источник
128-Windows, 64-большинство Linux и маршрутизаторы, 60-очень редко, 32-Windows 95.
И никто не использует 63, это, вероятно, поражает другой маршрутизатор на обратном пути.
источник
попробуйте "Tracert [IP ADDRESS]", чтобы увидеть общее количество маршрутов.
Если система запускается с 64 TTL, то, если вы ТРАКТИРУЕТЕ устройство одним прыжком, вы получите TTL = 63.
Я пытался, и вот что я получил. Мне всегда интересно, ТТЛ ... хм круто 😎
источник