Я не понимаю, почему traceroute на Mac OS не отображает IP-адрес моего домашнего маршрутизатора.

Мой traceroute на www.google.com выглядит следующим образом

1  182.55.226.3 (182.55.226.3)  11.116 ms  13.576 ms  14.185 ms
2  183.90.44.217 (183.90.44.217)  8.347 ms  5.254 ms  7.229 ms
3  183.90.44.201 (183.90.44.201)  7.215 ms  5.495 ms  7.216 ms
4  203.117.35.193 (203.117.35.193)  7.693 ms
   203.117.35.105 (203.117.35.105)  9.191 ms
   203.117.35.221 (203.117.35.221)  7.427 ms
5  203.117.34.81 (203.117.34.81)  7.399 ms  7.444 ms
   203.117.34.85 (203.117.34.85)  9.939 ms
6  203.117.37.22 (203.117.37.22)  14.190 ms
   203.117.36.38 (203.117.36.38)  7.944 ms
   203.117.37.22 (203.117.37.22)  12.577 ms
7  72.14.198.156 (72.14.198.156)  9.226 ms
   72.14.196.189 (72.14.196.189)  12.200 ms  7.388 ms
8  108.170.240.242 (108.170.240.242)  5.872 ms * *
9  216.239.57.50 (216.239.57.50)  14.198 ms
   72.14.234.96 (72.14.234.96)  8.626 ms
   216.239.57.50 (216.239.57.50)  10.731 ms
10 72.14.239.65 (72.14.239.65)  10.027 ms
   64.233.175.215 (64.233.175.215)  12.213 ms
   72.14.233.43 (72.14.233.43)  28.103 ms
11  * * 216.239.35.168 (216.239.35.168)  16.768 ms
12  64.233.175.215 (64.233.175.215)  11.001 ms *

Так как traceroute отображает маршрутизаторы, через которые проходит пакет, для посещения серверов google.com, почему мой первый маршрутизатор не является домашним маршрутизатором (192.168.0.1), который получает пакет. Вместо этого 182.55.226.3, кажется, прибывает из одного из маршрутизаторов в моей стране. Должен ли traceroute отображать частный или публичный IP-адрес моего домашнего маршрутизатора. IP-адрес первого прыжка также не соответствует внешнему IP-адресу моего маршрутизатора.

Трассировка на WAN IP-адрес моего маршрутизатора дает ровно один переход. Однако когда я пытаюсь выполнить трассировку до 182.55.226.3, результат выглядит примерно так.

traceroute to 182.55.226.3 (182.55.226.3), 64 hops max, 52 byte packets
1  * * *
2  * * *
3  * * *
4  * * *
5  * * *
6  * * *
7  * * *
8  * * *
9  * * *
10  * * *
11  * * *
12  * * *

2 ответа2

1

почему мой первый маршрутизатор не домашний маршрутизатор (192.168.0.1), который получает пакет.

Как работает traceroute? Он отправляет ping-пакеты с другим значением свойства TTL (время жизни). В общем случае каждый маршрутизатор уменьшает TTL и направляет этот пакет на следующий переход, если его значение больше 0 или, если он стал равным нулю, он отбрасывает эхо-запрос и отправляет пакет "TTL expired" в обратном направлении. Таким образом, traceroute отправляет пакет с TTL = 1 и получает "истекший TTL" от ближайшего узла в трассе (и извлекает его IP), затем отправляет пакет с TTL = 2 и получает "истекший TTL" от второго узла в трассировке. и так до тех пор, пока понг не вернется.

Обычно любой маршрутизатор уменьшает TTL на 1. Но он может уменьшить его на 2, 3 или более (что означает, что этот след очень дорогой), или не изменять его (скрывать себя), или когда-либо увеличивать его (разрешать длинные пути).

Похоже, ваш роутер не меняет TTL. Поэтому, когда TRACEROUTE отправляет пакет с TTL = 1, маршрутизатор просто направляет его без изменения TTL. Следующий переход уменьшает его, результат равен 0, он отправляет "TTL expired" ... и первый узел в трассировке - 182.55.226.3 (это шлюз по умолчанию для интерфейса WAN вашего маршрутизатора?), А не ваш маршрутизатор (192.168.0.1),

0

Ваш маршрутизатор имеет несколько сетевых интерфейсов. 192.168.0.1 - это адрес на внутреннем интерфейсе, и (очень вероятно) 182.55.226.3 - это адрес на внешнем интерфейсе, который ваш ISP назначил вашему маршрутизатору.

Некоторые маршрутизаторы отвечают на трассировку с помощью адреса внутреннего интерфейса, другие - с помощью адреса внешнего интерфейса.

Если у вашего роутера есть веб-интерфейс, где вы можете видеть его внешний адрес, проверьте, соответствует ли он недавнему traceroute .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .