Jump to content
Калькуляторы

Задача про ARP и конфликт адресов IP В шведском университете задали задачку :)

Преподаватель предоставил .pcap файл, содержащий набор захваченных на интерфейсе пакетов.

 

wireshark.png

 

Задача состоит в том, чтобы самостоятельно сгенерировать идентичный поток пакетов имея коммутатор и несколько лэптопов.

Прилагаю сам: .pcap файл.

Кто может объяснить в деталях, что здесь происходит? Общий смысл конечно понятен: имеется 3 машины, одна с IP-адресом 192.168.1.43 и две с адресом 192.168.1.42. Налицо конфликт. Однако, поведение машины .43 смоделировать самостоятельно не получается.

Буду признателен за помощь :)

Share this post


Link to post
Share on other sites
Кто может объяснить в деталях, что здесь происходит? Общий смысл конечно понятен: имеется 3 машины, одна с IP-адресом 192.168.1.43 и две с адресом 192.168.1.42. Налицо конфликт. Однако, поведение машины .43 смоделировать самостоятельно не получается.
Не наоборот одна машина(Asustek 00:15:f2:f0:44:86) с IP-адресом 192.168.1.42 и две (IBM 00:0d:60:75:c5:6c и 00:0d:60:75:ca:f1) с IP-адресом 192.168.1.43

 

В деталях, хм машина .42 хочет послать пакет на ip .43, для этого она пытается узнать соответствующий мак адрес посылая широковещательный arp запрос, и получает 2 ответа, ессно с разными маками. Они сохраняются в кеше. После одна из .43 оправляет запрос arp с ip .42 и машина .42 отвечает два раза (на оба мака из кеша).

Потом начинается какой то странный пинг понг.

 

Однако, поведение машины смоделировать самостоятельно не получается.
Gratuitous ARP выключите, ну и про фильтр в шарке не забудьте.

Вам проф. сказал какая ось себя так ведёт? А то похоже на реликт 90х

Edited by qwertzy

Share this post


Link to post
Share on other sites

что-то непонятны 2 и 3 пакеты, почему нет сообщения про конфликт?

Ну а дальше непонятно, почему при всего 1ном запросе, получаем несколько ответов.

Share this post


Link to post
Share on other sites

АРП простой как 2 рубля.

Потрудитесь нарисовать на бумажке пакет, хотя бы просто в виде полей/абстрактной структуры для си и вопросов больше не будет.

Давече сам переписывал фряшный. Оказалось она hlen и plen не проверяет, но использует в memcpy и прочих расчётах, со всеми вытекающими. Разработчики уме второй месяц вату катают, вместо добавления моего патча :)

 

 

В деталях, хм машина .42 хочет послать пакет на ip .43, для этого она пытается узнать соответствующий мак адрес посылая широковещательный arp запрос, и получает 2 ответа, ессно с разными маками. Они сохраняются в кеше.
Нет, в кеш добавится только одна запись.

Задача кеша хранить соотвествие ип-мак, чтобы знать на какой мак слать ип пакеты.

Первая или последняя - зависит от реализации.

 

что-то непонятны 2 и 3 пакеты, почему нет сообщения про конфликт?

Ну а дальше непонятно, почему при всего 1ном запросе, получаем несколько ответов.

Дали лог с пакетами отловленными в сети - куда там про конфликт писать?)

 

 

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

В данном случае 6с ответил один раз на броадкаст, первым, второй ответ ф1 затёр его haddr в кеше 86 хоста, и дальше обмен шёл между 86 и ф1.

Share this post


Link to post
Share on other sites

Спасибо за комментарии :)

Не наоборот одна машина(Asustek 00:15:f2:f0:44:86) с IP-адресом 192.168.1.42 и две (IBM 00:0d:60:75:c5:6c и 00:0d:60:75:ca:f1) с IP-адресом 192.168.1.43
Абсолютно верно, перепутал.

 

АРП простой как 2 рубля.
Да я с ARP знаком, не первый год в индустрии :) Глубоких деталей не знаю, это да.

 

Нет, в кеш добавится только одна запись.

Задача кеша хранить соотвествие ип-мак, чтобы знать на какой мак слать ип пакеты.

Первая или последняя - зависит от реализации.

Тоже абслютно верно, НО... тогда возникает вопрос по пакетам 5 и 6. Какого лешего .42 отвечает сразу двум .43 машинам? Запись-то одна в ARP-таблице.

 

Вам проф. сказал какая ось себя так ведёт? А то похоже на реликт 90х
Нет, таких подсказок он к сожалению не дает. Меня тоже этот вопрос ОС мучил. Поэтому я проверил на Win7, Ubuntu и MacOS. Ни одна из них не ведет себя так, как в этом логе.

 

Вот пара вопросов на которые препод ответил на форуме курса:

- Does capture 6 require a setup with more than one switch?

- No, it does not. However it requires at-least 3 systems.

- Can we use VMware for the assignment so we don't need to have a physical switch?

- Yes, you can use vmware. However, log 5 and 6 can be hard to replicate using a virtual switch.

В пятом задании надо было догадаться сделать петлю в сети, чтобы бродкаст закольцевался. Просто одним патчкордом замыкали 2 порта на свиче.

Аналогия с пятым заданием и отмеченная "cложность" его реализации на виртуальном свиче подталкивает меня к мысли, что все же надо как-то этот свич нестандартно использовать и в 6м задании. А как можно нестандартно использовать любой маленький L2-коммутатор? Разве что петлю сделать, или переполнить ARP таблицу, сделав из него хаб. Чай не Extreme операторский какой-нибудь с миллионом маков, хотя и такие переполняли :D

Какие идеи?

Share this post


Link to post
Share on other sites

Если кому-то интересно, я выложил полную версию лабы.

Это вводная лаба на одном из курсов магистрской программы королевского технического университета Швеции.

Можно использовать при приеме на работу новичков ;)

Только ссылку на KTH сохраняйте при использовании, тут с этим строго.

 

http://dl.dropbox.com/u/1117969/arplab.tar.gz

Share this post


Link to post
Share on other sites

Я малость напутал в описании процесса.

 

- Does capture 6 require a setup with more than one switch?

- No, it does not. However it requires at-least 3 systems.

А зачем больше одного?)

 

 

Схема примерно такая.

на 86 запускается пинг на адрес 1.43

потому машина 86 броадкастит арпрегвест на 1.43 адрес.

 

ей отвечают 6с и ф1

 

6с отвечает первой и оказывается в арп кеше

 

через 5 сек (видимо таймаут передачи пинга, а сетевой стёк не сохранил пакет на время арп регвеста и не послал после получения ответа) на с6 улетает второй пингпакет

с6 спрашивает 86 где 1.42 (видимо чтобы ответ прислать на пинг)

86 отвечает с6 что это он 1.42

 

почему там на времени 5.2 уходит ответ на ф1 я не знаю, может вырезали кусок или пакет потерялся или я не правильно понял.

Дальше похоже что ф1 настойчиво пытается представится что у него 1.43 адрес - спуфинг, но 86 плюёт на это (возможно в лог себе).

 

В доке вам даже подсказка: arp-sk http://sid.rstack.org/arp-sk/

 

 

PS: я произвольные arp пакеты генерил своей прогой, которая на фряхе через bpf их в сеть засылала.

Кода на полторы страницы, мне требовалось произвольно задавать plen и hlen, лень было искать чужие тулсы, и не умеют они этого.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this