У меня есть 3 хоста (ПК1, ПК2 и ПК3). Я установил IP-адреса для ПК2 и ПК3 на 10.0.0.2 и ПК3 на 10.0.0.1 . Я телнет от ПК1 до 10.0.0.2. Затем я вошел в ПК3. В Wireshark я вижу, что ПК3 сначала отвечает своим MAC-адресом, а затем ПК2 отвечает, но он рассматривается как дублирующий IP-адрес и не учитывается. Почему это? Почему ПК3 не перезаписывается ПК2?

2 ответа2

1

Ответ, ранее помеченный как правильный, на самом деле неверен (в определенной степени). Полученный пакет будет отправлен в кадре с определенным MAC-адресом назначения. MAC-адрес назначения будет основан на таблице ARP отправителей.

Ответ ARP кэшируется автоматически независимо от того, истек ли он. Поэтому ответ LAST будет кэшироваться с перезаписью первого полученного ответа (именно так и работает ARP Poisoning). Вы можете узнать больше о ARP Poisoning для более подробной информации об этом.

Результирующее соединение с вашим "telnet" будет последним устройством, которое ответило на последний запрос ARP, который был передан в широковещательный домен.

Упрощенное объяснение того, что должно происходить, приведено ниже:

  1. У отправителя нет записи таблицы ARP для IP:X.
  2. Отправитель выполняет запрос ARP для IP:X.
  3. Все устройства в широковещательном домене отправляются ARP Request.
  4. Все устройства, настроенные с IP:X, отвечают на запрос ARP.
  5. Отправитель получает каждый ответ ARP 1 за раз. а. Ответ ARP # 1 получен, и пара MAC/IP добавлена в таблицу ARP. б. Ответ ARP # 2 получен, и пара MAC/IP перезаписывает первый ответ. ... (повторите "b" для каждого ответа)
  6. Отправитель отправляет пакет с MAC-адресом назначения, который содержится в последнем принятом ответе ARP.

Однако, если отвечающее устройство видит противоречивые ответы, у него есть несколько вариантов, основанных на RFC 5227. 1 из тех, кто отвечает агенту конфигурации, что его IP неверен. Не видя захвата пакета, трудно сказать вам точно, что вы видите.

0

* пожалуйста, обратитесь к Гоблинлордам, ответьте более точно, объясните, что я пытался донести.

Если я не ошибаюсь, потому что PC2 медленнее реагирует. Когда вы делаете сеанс telnet, вы создаете сеанс TCP. Это начинается с трехстороннего TCP-рукопожатия. Поскольку вы отправили только один запрос на подключение telnet, ваш клиент видит, что он уже подключен к ip 10.0.0.2, поэтому он отбрасывает ответ от ПК2 как дубликат.

В основном ваш компьютер считает, что ответ от более медленного устройства не запрошен. Если вы очистите таблицу arp, а затем повторите попытку много раз, вы увидите, что то же самое происходит, когда ПК2 отвечает первым и данные с ПК3 должны быть сброшены.

Не уверен, что вы пытаетесь достичь, но я бы посоветовал дать PC2 и PC3 уникальные ips.

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