Конференция "Сети" » Глюки ARP-кеша и получение MAC существующих хостов
 
  • __Алексей__ (07.01.10 13:47) [0]
    Прошу поделиться соображениями по поводу одной проблемы.

    Есть программа, которая определяет MAC-адреса станций по их IP-адресам. MAC определяется двумя способами:

    1. Чтением ARP-кеша и поиском там искомого соответствия. По идее, после отправки ICMP-пакета нужному IP-адресу, этот адрес должен появится в ARP-кеше на 2 минуты. Но его там никогда не оказывается :( Именно в локальной сети одного удаленного пользователя.

    2. Отправкой ARP-запроса на искомый IP-адрес. Функция SendARP всегда возвращает ошибку 67 - ERROR_BAD_NET_NAME. Т.е. пакет просто не нашел адресата. Хотя пинг на этот IP замечательно идет.

    Периодически в ARP-кеше появляются некоторые адреса, которые запрашивались ранее. Но они присутствуют там со статусом INVALID (2).
    Натолкните на мысль, отчего так ведет себя ARP в сети юзера. Сам он ни бельмес не понимает.

    Как я понял, он может с одной тачки пинговать 2 подсети 10.150.x.x и 10.151.x.x

    Может что-то с бриджем неверно сделано? Что с него еще спросить для выяснения проблемы? Может настройки сети какие...
    В общем: МАСТЕРА, HELP!! :)

    PS: Все IP-адреса, MAC которых программа пытается определить, пингуются и находятся в локальной коммутируемой сети.
  • Anatoly Podgoretsky © (07.01.10 17:09) [1]
    > __Алексей__  (07.01.2010 13:47:00)  [0]

    Если адрес в другой сети, то МАС адреса как правило не будет.
  • Anatoly Podgoretsky © (07.01.10 17:13) [2]
    Не только в другой сети, сколько в другом физическом сегменте. Запросы ARP не марштуризируются.
  • __Алексей__ (07.01.10 20:09) [3]
    Дык хоть с одной из подсетей-то должен адресок засветиться в кеше? Если у него 2 подсети, 10.150.x.x и 10.151.x.x , то комп, на котором программа работает, находится в одной из них. IP-адреса, которые она пингует, примерно 50/50  - в своей и чужой подсетке. Значит хотя бы у половины адресов должно ж что-то застрять в кеше?

    Может переполнение таблицы? Или ARP протокол не разрешен в сети? На эту мысль натолкнула ошибка SendARP 67 - ERROR_BAD_NET_NAME. Как будто пакет ARP "завернули" и он отрапортовал, что хост не найден.

    То, что в  кеше нашлось 3 записи с INVALID-статусом можно объяснить Вашими доводами. Как правило INVALID записи могут являться адресами из другой физической сети и иметь вид 00-00-00-00-00-00.

    Думаю попросить у юзера полный ARP-кеш после пинга на все адреса. Может он что даст понять...
 
Конференция "Сети" » Глюки ARP-кеша и получение MAC существующих хостов
Есть новые Нет новых   [134438   +31][b:0][p:0]