Чому traceroute відображає багато ip-адрес для одного і того ж хопу?


14

Ось маршрут маршруту від мого дому до sina.com.cn.

 traceroute -n   sina.com.cn
traceroute to sina.com.cn (202.108.33.60), 30 hops max, 60 byte packets
 1  192.168.31.1  0.476 ms  0.587 ms  0.695 ms
 2  140.0.5.1  2.557 ms  2.699 ms  3.065 ms
 3  221.11.155.65  4.501 ms * 221.11.165.9  5.045 ms
 4  * 221.11.156.18  26.480 ms 221.11.165.233  22.950 ms
 5  219.158.9.97  14.176 ms * 219.158.19.149  21.472 ms
 6  219.158.9.97  18.142 ms 219.158.8.81  44.856 ms  52.539 ms
 7  124.65.194.190  53.162 ms 219.158.8.81  50.614 ms 124.65.194.190  47.266 ms
 8  124.65.194.190  50.760 ms 61.148.143.26  49.351 ms  53.515 ms
 9  210.74.176.138  43.056 ms  43.286 ms 61.148.143.26  53.712 ms
10  202.108.33.60  46.385 ms 210.74.176.138  42.896 ms  46.931 ms

192.168.31.1 - це мій домашній маршрутизатор.
140.0.5.1 - це мій публічний ip, який надає провайдер.

curl  ifconfig.me
140.0.5.1 

У третьому рядку йдеться

3  221.11.155.65  4.501 ms * 221.11.165.9  5.045 ms

Чому є дві ip адреси 221.11.155.65 і 221.11.165? Що це означає?

Є чи пакет стрибок від 140.0.5.1 до 221.11.155.65, потім переходить від 221.11.155.65 до 221.11.165?


Одне уточнення. Якщо провайдер надав вам IP-адресу, він не повинен відображатися в командах traceroute, які ви запускаєте. І якби ви провели трасування до IP-адреси, воно відображатиметься як скакальний 1. Швидше за все, у вас немає жодної IP-адреси, і 140.0.5.1це якась CGN, яка поводиться дещо незвично.
kasperd

Відповіді:


4

Що таке traceroute, це використовувати поля опцій, оскільки він надсилає пакети протоколів повідомлень про Інтернет (icmp). Кожен шлюз або точка маршрутизації в мережі зчитує пакети на одному інтерфейсі, вирішує, куди вони повинні йти, і записує їх на інший інтерфейс. Цей інтерфейс, мабуть, ближче до пункту призначення. Поки маршрутизатор пересилає пакет, він також вносить зміни до заголовка пакета. Це скорочує "час жити" або поле для переліку стрибків на одиницю. Кожен шлюз на шляху пакета до пункту призначення зменшує це поле.

Коли поле для переліку стрибків опуститься до нуля, багато маршрутизатори будуть надсилати назад icmp повідомлення із зазначенням того, куди було скинуто пакет. Для того, щоб знайти, яка IP-адреса знаходиться на певній відстані, traceroute надсилатиме пакети з варіантами часу проживання та дасть мені відповідь, коли час вичерпається. повідомлення з переліком переходів, починаючи з 1 і збільшуючи дорогу вгору, повертають IP-адресу прогресивно віддалених маршрутизаторів. Оскільки traceroute робить це кілька разів, коли ви збираєтеся повернутися (якщо у вас добре пов’язана мережа, як і Інтернет), на кілька запитів відповіді кілька. може статися так, що конкретний шлюз відповість у різній кількості подалі, тому що маршрут до цього шлюзу пройшов через різні перестрибування.


11

Тут tracerouteви даєте інформацію як про принаймні 2 маршрути до місця призначення, починаючи з маршрутизатора:

           IP adresses                 Internet operator

           140.0.5.1                   Firstmedia - Indonesia
             /    \
            /      \
221.11.155.65      221.11.165.9        China Unicom - China

Це нормальна ситуація для величезного інтернет-оператора: мати багато маршрутів, щоб протистояти нормальним інцидентам в Інтернеті.

-aВаріант tracerouteможе допомогти вам визначити , до якого оператора кожен IP - адреса належить.

Ось приклад більшого дерева маршрутів, які ви можете отримати навіть зі свого мобільного телефону через мережевий інструмент, наприклад сервер http://ping.eu/traceroute/ : простежити до 140.0.5.1


Ні - варіант для моєї traceroute в debian9.
скрап

traceroute [-46dFITUnreAV] [-f first_ttl] [-g ворота, ...] [-i пристрій] [-m max_ttl] [-p порт] [-s src_addr] [-q nqueries] [-N squeries] [ -t tos] [-l flow_label] [-w timetimes] [-z sendwait] [-UL] [-D] [-P proto] [--sport = port] [-M метод] [-O mod_options] [ --mtu] [--back] хост [packet_len]
скрап

Я тут використовував FreeBSD.
дан

8

З traceroute(8)посібника по OpenBSD:

Три щупи (точне число можна змінити за допомогою -q опції) надсилаються і друкується рядок із зазначенням межі TTL або стрибку, адреса шлюзу та час зворотного шляху кожного зонда. Якщо відповіді зонда надходять з різних шлюзів, адреса кожної системи, що реагує, буде надрукована.

Посібник для Linux матиме подібні формулювання.

Ви бачите безліч IP-адрес - шлюзи, що реагують на окремі зонди в конкретних обмеженнях.

У вашому випадку три зонди привели до відповідей, які з обмеженням рівня стрибків 3 повернулися до вас із шлюзів у 221.11.155.65 та у 221.11.165.9.

Отже, відповідь така: Ні, пакет не переходить між двома хостами, переліченими на цьому рядку, три зонди надсилаються, і вони беруть два різні маршрути від 140.0.5.1.


1
@RuiFRibeiro Я уточнив свою відповідь, щоб відповісти на явне запитання.
Kusalananda

Дійсно, я підтвердив, щонайменше, у traceroute Debian є те саме формулювання.
Rui F Ribeiro
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.