Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Глюки ARP-кеша и получение MAC существующих хостов   Найти похожие ветки 

 
__Алексей__   (2010-01-07 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 ©   (2010-01-07 17:09) [1]

> __Алексей__  (07.01.2010 13:47:00)  [0]

Если адрес в другой сети, то МАС адреса как правило не будет.


 
Anatoly Podgoretsky ©   (2010-01-07 17:13) [2]

Не только в другой сети, сколько в другом физическом сегменте. Запросы ARP не марштуризируются.


 
__Алексей__   (2010-01-07 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-кеш после пинга на все адреса. Может он что даст понять...



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.092 c
15-1331704846
CrytoGen
2012-03-14 10:00
2013.03.22
Менеджеры памяти для 64 bit


15-1331479236
Sergey Masloff
2012-03-11 19:20
2013.03.22
Пишу из горящего танка. Накрылся HDD. Кто виноват и что делать


2-1332312465
TKN
2012-03-21 10:47
2013.03.22
UpdateSql


2-1332437524
sasha198407
2012-03-22 21:32
2013.03.22
ошибка Exception EAccessViolation in module Project1.exe


15-1347609677
Dmitry87
2012-09-14 12:01
2013.03.22
Запуск программы от имени текущего пользователя