Главная страница
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.054 c
15-1339959786
Artem
2012-06-17 23:03
2013.03.22
Pocket Fritz


2-1333473036
Usver
2012-04-03 21:10
2013.03.22
Перевод с C++ на Delphi


15-1349627361
Roman_man
2012-10-07 20:29
2013.03.22
Формальный аттестат и Веб-Мани. Кипер Лайт


2-1334303031
rikitiki2012
2012-04-13 11:43
2013.03.22
Realtex


15-1340456276
stas
2012-06-23 16:57
2013.03.22
Свою кнопку в чужое приложение