Я пытаюсь пропинговать мой хост-компьютер (Windows 7) до Ubuntu 13.04 (VirtualBox). Однако я получаю ошибку:

Pinging 10.0.2.15 with 32 bytes of data:
Reply from 78.87.2.210: TTL expired in transit.
Reply from 78.87.2.210: TTL expired in transit.
Reply from 78.87.2.210: TTL expired in transit.
Reply from 78.87.2.210: TTL expired in transit.

Ping statistics for 10.0.2.15:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

tracert 10.0.2.15 показал, что есть цикл маршрутизации.

Tracing route to 10.0.2.15 over a maximum of 30 hops

  1     1 ms    <1 ms    <1 ms  192.168.1.1
  2    42 ms    43 ms    42 ms  b5.met.cyta.gr [46.103.127.5]
  3     *       41 ms     *     178-103-193.brsl3.cyta.gr [178.59.10
  4    45 ms    42 ms    46 ms  78-2-210.itr.cyta.gr [78.87.2.210]
  5     *        *        *     Request timed out.
  6    46 ms    47 ms    44 ms  78-2-210.itr.cyta.gr [78.87.2.210]
  7     *       42 ms    42 ms  e2-med-t7-4.itr.cyta.gr [78.87.2.199
  8    43 ms    44 ms    43 ms  78-2-210.itr.cyta.gr [78.87.2.210]
  9     *       43 ms    42 ms  e2-med-t7-4.itr.cyta.gr [78.87.2.199
 10    46 ms    42 ms    44 ms  78-2-210.itr.cyta.gr [78.87.2.210]
 11     *        *        *     Request timed out.
 12    42 ms    43 ms    43 ms  78-2-210.itr.cyta.gr [78.87.2.210]
 13     *        *        *     Request timed out.
 14    45 ms    44 ms    42 ms  78-2-210.itr.cyta.gr [78.87.2.210]
 15     *        *       43 ms  e2-med-t7-4.itr.cyta.gr [78.87.2.199
 16    46 ms    47 ms    47 ms  78-2-210.itr.cyta.gr [78.87.2.210]
 17     *        *        *     Request timed out.
 18    46 ms    45 ms    45 ms  78-2-210.itr.cyta.gr [78.87.2.210]
 19     *        *        *     Request timed out.
 20    44 ms    43 ms    43 ms  78-2-210.itr.cyta.gr [78.87.2.210]
 21     *        *       43 ms  e2-med-t7-4.itr.cyta.gr [78.87.2.199
 22    44 ms    44 ms    46 ms  78-2-210.itr.cyta.gr [78.87.2.210]
 23    42 ms     *       43 ms  e2-med-t7-4.itr.cyta.gr [78.87.2.199
 24    45 ms    43 ms    43 ms  78-2-210.itr.cyta.gr [78.87.2.210]
 25    43 ms     *       45 ms  e2-med-t7-4.itr.cyta.gr [78.87.2.199
 26    54 ms    47 ms    44 ms  78-2-210.itr.cyta.gr [78.87.2.210]
 27    43 ms     *        *     e2-med-t7-4.itr.cyta.gr [78.87.2.199
 28    43 ms    42 ms    46 ms  78-2-210.itr.cyta.gr [78.87.2.210]
 29     *        *       42 ms  e2-med-t7-4.itr.cyta.gr [78.87.2.199
 30    43 ms    43 ms    44 ms  78-2-210.itr.cyta.gr [78.87.2.210]

Есть ли способ решить эту проблему?

Настройки сети VirtualBox:

Хост-адаптер

Случайный режим: Запретить

Кабель подключен

1 ответ1

1

TL:DR;

Вы неправильно настроили маршрутизацию и пропускаете частные IP-адреса в Интернет. Исправьте свой маршрут. Это может помочь.


Более длинная версия:

IP-номера являются уникальными. У нас только 2 32 IP-адреса, и они тщательно распределены, чтобы мы знали, как маршрутизировать IP-пакеты из одного места в другое. Если вы подключаетесь к Интернету, вы должны использовать один из этих официально назначенных IP-адресов или диапазонов IP-адресов.

Это не всегда удобно, когда у вас больше компьютеров, чем IP-адресов (и вы, как правило, получаете только один IP-адрес в качестве домашнего пользователя). Мы работаем над этим с RFC 1918. RFC 1918 описывает несколько диапазонов IP-адресов, которые никогда не должны использоваться публично в Интернете. Это означает, что:

  • Вы можете свободно использовать их дома, но также
  • Вы никогда не должны пропускать их в Интернет. А также
  • Если вы хотите общаться с хоста с IP-адресом RFC1918, вы должны использовать некоторые специальные приемы (например, туннели, VPN или NATting).

В вашем случае вы отправляете пакеты напрямую с 10.0.2.15 в Интернет. Вы можете увидеть, что пакет начинается с 10.0.2.15, затем маршрутизируется до 192.168.1.1 (который, вероятно, является вашим шлюзом по умолчанию) и оттуда до 5.met.cyta.gr. 5.met.cyta.gr никогда не должен видеть ваш пакет. Это должно было быть отброшено на краю вашей домашней сети.

Однако из-за неправильной конфигурации 5.met.cyta.gr получает пакет. По какой-то причине он отправляет его на e2-med-t7-4.itr.cyta.gr. Это может быть связано либо с тем, что они никогда не ожидали увидеть этот тип неправильного пакета, и это путь по умолчанию для e2-med-t7-4.itr.cyta.gr, либо из-за того, что cyta.gr также использует диапазон 10.0.0.0/8 для внутреннего использования. e2-med-t7-4.itr.cyta.gr также не знает, что с ним делать, и отправляет его на 5.met.cyta.gr, где цикл начинается снова.

Без тщательного рассмотрения это могло бы связать сеть между этими двумя машинами, поскольку они продолжают пересылать пакеты друг другу. В конце концов, эти последние две машины будут настолько заняты, что не смогут больше ничего делать.

Для предотвращения подобных проблем IP-датаграммы имеют поле под названием TTL (время жизни). Каждый раз, когда пакет / датаграмма проходит через маршрутизатор, это поле уменьшается на единицу. Если он достигает нуля, он сбрасывается и предупреждение отправляется обратно исходному отправителю. Это приводит к тому, что время истечения TTL в транзитном сообщении будет отображаться на вашем компьютере.

Исправление заключается в правильной настройке вашего собственного граничного маршрутизатора (вероятно, в 192.168.1.1). Он не должен пересылать пакеты для любого из IP-адресов RFC1918 (192.168.0.0/16, 10.0.0.0/8 или 172.16.0.0/16) в Интернет.

Что именно с ними делать, зависит от вашей домашней настройки. В сообщении недостаточно информации, чтобы ответить на этот вопрос.

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