TTL истек в пути

418
Mugiwara

Я купил сервер с 4 IP-адресами, которые необходимо настроить вручную

  • yy.zz.159.7/23 (gw yy.zz.156.1)
  • yy.zz.159.8/23 (gw yy.zz.156.1)
  • yy.zz.159.13/23 (gw yy.zz.156.1)
  • xxx.144.29.243 (gw xxx.144.28.1) Основной IP-адрес

Я добавил подынтерфейс ifcfg-eth0: 1/2/3 для каждого из них, и это моя таблица маршрутов:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface xxx.144.28.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0 yy.zz.156.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 yy.zz.156.1 0.0.0.0 UG 0 0 0 eth0 0.0.0.0 xxx.144.28.1 0.0.0.0 UG 0 0 0 eth0 

Когда я пингую добавленные ip-адреса, я получаю TTL expired in transitсообщение, из моих исследований я думаю, что в моей таблице маршрутов есть бесконечный цикл, может кто-нибудь указать на проблему здесь?

0
Можете ли вы убедиться, что адреса действительно отображаются в `ip addr`? Хотя, основываясь на результатах `traceroute` для ваших адресов, я на самом деле предполагаю, что проблема в провайдере, а не в вашей конфигурации. grawity 5 лет назад 1
да, я уверен, что я хотел убедиться, что моя конфигурация правильная, прежде чем связываться с провайдером, большое спасибо за ваш ответ Mugiwara 5 лет назад 0

1 ответ на вопрос

2
grawity

Я угадал ваши адреса, выполнил traceroute(ну, mtr) для всех четырех из них, и хотя он показывает цикл, он пинг-понг между двумя адресами, которые очень похожи на двухточечную связь между двумя маршрутизаторами. Тот же цикл также происходит при попытке пропинговать / трассировать другие адреса из подсети, так что это, вероятно, «нормально» для еще не назначенных адресов у этого провайдера.

Исходя из этого, я предполагаю, что проблема связана с вашим провайдером сервера - у них нет правильных маршрутов, указывающих дополнительные адреса к вашему серверу.


Между тем, ваша собственная таблица маршрутизации кажется нормальной и не пропускает ничего очевидного. Хотя это еще не вся таблица маршрутизации - есть записи, которые устаревшая команда route не видит. Если вы напрямую назначаете IP-адрес интерфейсу (например, показанному в ip addr ), это создает скрытый маршрут / 32, который указывает ОС всегда использовать пакеты, и это имеет приоритет над обычными маршрутами подсети.

Так что, если вы проверили, что адреса введены ip addr, цикл, как правило, не будет вашей ошибкой.


То, что вы должны проверить теперь даже ли вы получать пакеты на всех. Используйте инструмент захвата пакетов, такой как tcpdump :

tcpdump -n -i eth0 "icmp" 

Пока он работает, попробуйте пинговать адреса сервера. Если бы у вас был цикл, tcpdump показывал бы серию пакетов «ICMP Echo» для каждой попытки ping. С другой стороны, если он вообще не показывает никаких эхо-пакетов, то проблема в вашем интернет-провайдере (то есть в хостинговой компании) - они на самом деле не правильно направили адреса на ваш сервер.

Вы были правы, я связался с провайдером и теперь он работает, спасибо еще раз: D Mugiwara 5 лет назад 0