Я купил сервер с 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 , из моих исследований я думаю, что в моей таблице маршрутов есть бесконечный цикл, может кто-нибудь указать на проблему здесь?

1 ответ1

2

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

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


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

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


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

tcpdump -n -i eth0 "icmp"

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

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