zed.0xff.me
LLTD scanner for Linux/FreeBSD
(или используем “ответчик обнаружения топологии канального уровня” в своих интересах)
Факт первый:
Не так давно стал замечать в настройках сети машин под виндой новые строчки, связанные с топологией сети. Ну как бы новые и ладно, вроде не мешают. Тем более что виндой сам не пользуюсь.. :)
Факт второй:
Есть такая полезная утилита arping, которая позволяет пинговать машины в сети по протоколу ARP (и не только). Но. Но пинговать машины мы можем только если у них уже настроен IP-адрес. Т.е. это спасает от, допустим, неверно настроенной маски, или там DNS, или фаервола. Но не более.
Заманчиво иметь такую утилиту, которой можно было бы “пинговать” машину пользователя, даже если у него все настройки пропали или потерялись, или “племянница приходила”.. ;)
arping 2.х вроде бы такую возможность имеет, надо только знать MAC-адрес машины:
arping -i em0 11:22:33:44:55:66
Но умеет, да не совсем. При этом на указанный мак посылается всего лишь широковещательный ICMP запрос.. и я пока среди окружающих машин не увидел ни одной, которая бы на него ответила.. Везде ответы на широковещательные пинги запрещены.. :(
А теперь – совмещаем факты :)
Удивительно, но Microsoft в этот раз своим внедрением нового протокола сыграл нам на руку :)
Протокол LLTD как раз и нужен для того чтобы обнаруживать в локалке машины не зависимо от их ipv4/ipv6/ipx адресов.
При посылке одной из машин в сеть специального магического пакета – все остальные (естественно, где этот протокол установлен и включен) сразу же отзываются, радостно сообщая свой айпишник(!), сетевое имя, мак, ну и разные флаги.
Спецификация на протокол открыта.
Собственно, за пару дней и была написана утилита lltdscan.
Взять можно на http://github.com/zed-0xff/lltdscan
Вот примеры работы:
1 2 3 4 |
#sudo ./lltdscan -t1300 interface eth0 101 bytes from 00:01:33:ed:54:a1 (192.168.123.12 ): time=929 ms name="XZ" found 1 hosts in 1.303 seconds |
1 2 3 4 5 6 7 8 9 10 11 12 |
#sudo ./lltdscan -t1300 -v interface eth0 101 bytes from 00:01:33:ed:54:a1 (192.168.123.12 ): time=929 ms name="XZ" Host ID: 00 01 ee ff 22 a1 Charact.: 20 00 00 00 (full-duplex) Media: 00 00 00 06 (Ethernet) Perf.cntr: 00 00 00 00 00 36 9e 99 Link speed: 100 Mbit/s Name: 31 00 43 00 QoS: 60 00 00 00 (802.1q-support, 802.1p-support) found 1 hosts in 1.302 seconds |