У меня есть доступ к двум компьютерам (A и B) в сети. Оба получили статический IP-адрес с маской подсети 255.255.255.128 (я проверил, что DHCP-сервер не используется). Я хочу настроить несколько IP-адресов для одной машины и, следовательно, я хочу знать, какие все IP-адреса уже используются в подсети.
Из предыдущего вопроса я попробовал nmap -sP -PR 172.16.128.*
команду, но я скептически отношусь к ее результату, поскольку одна и та же команда дает разные результаты на двух моих компьютерах (A и B). На А, результат показывает, список 8 адресов , которые (предположительно) уже используется, в том числе из А и В .
Nmap done: 256 IP addresses (8 hosts up) scanned in 1.23 seconds
Но на B результат другой, т. Е.
Nmap done: 256 IP addresses (0 hosts up) scanned in 0.00 seconds
Результат на B даже не показывает его собственный IP-адрес, а также IP-адрес A!
Что именно я здесь делаю не так? Есть ли в Red Hat Linux (RHEL) надежный способ обнаружения всех IP-адресов, используемых в подсети, частью которой является мой компьютер?
RHEL: 6.5
Nmap version: 5.51
источник
nmap -sP -PR '172.16.128.*'
Ответы:
Любое устройство с хорошим поведением в локальной сети Ethernet может игнорировать почти любой трафик, поэтому PING, сканирование портов и тому подобное ненадежны. Устройства, однако, не могут игнорировать запросы ARP . Учитывая, что вы указываете, что сканируете локальную сеть, я нахожу наименее хрупкий способ сделать то, что вы хотите, это попытаться подключиться к удаленному адресу, а затем заглянуть в мой кэш ARP.
Вот простое устройство без фильтрации (т. Е. Такое, которое не настроено на игнорирование некоторых классов IP-трафика):
Вот фильтрующее устройство (одно из которых настроено на одну строку
iptables
для игнорирования всего трафика):Вот устройство, которое только что вышло; обратите внимание на отсутствие MAC-адреса:
Этот метод не является непогрешимым - он пропускает отключенные устройства, во-первых, - но это наименее ужасный метод, который я когда-либо пробовал.
Редактировать : Эрик Думинил, да, он работает только в локальной сети; см. абзац первый
Вишал, методы функционально идентичны. Обратите внимание на текст, приведенный в ответе Лео о
nmap
:Его метод предполагает меньше печатания. Мой может быть сделан без привилегий, и может дать вам лучшее понимание того, что на самом деле происходит. Но то же самое делается на проводе в обоих случаях.
источник
arp
.sudo -u root
(часто сокращается доsudo
), а также просто вход в систему как root или выполнение/bin/su
, отсюда и общий термин.Поскольку устройство не может игнорировать запросы ARP, мне нравится использовать инструмент с именем
arp-scan
. Он доступен в большинстве репозиториев.Когда вы запустите команду с
--localnet
коммутатором, она даст вам обзор всей вашей внутренней сети.Дает мне список всех IP-адресов и MAC-адресов в моей сети. Также можно указать диапазон сети для сканирования.
Если у вас настроено несколько сетевых интерфейсов, вы можете указать тот, который вы хотите использовать с коммутатором
-I
.Более подробную информацию о возможных переключателях можно найти по адресу https://linux.die.net/man/1/arp-scan или запустив
man arp-scan
.источник
Я не знаю, какую версию nmap вы используете в Red Hat 6.5, но для последних выпусков правильный (и более быстрый) способ, которым я думаю, будет:
nmap -sn -n 172.16.128.0/25
Это перечислит все хосты в вашей сети (так что вы можете использовать любой другой IP из этой подсети, так как он должен быть доступен).
Отредактируйте и отметьте: упомянутая вами подсеть - 255.255.255.128, но затем вы выводите результаты сканирования как 254 хоста. Если я не пропустил что-то, это должна быть маска / 25 и 126 доступных хостов. Если вы хотите просканировать / 24, измените указанную выше команду для запроса всех 254 хостов.
Из книги nmap
-sP
прекращено и заменено-sn
:-n
Чтобы избежать разрешения DNS - клиентов (делает сканирование быстрее):Вы можете использовать другие комбинации для углубления сканирования или служб, но этого должно быть достаточно для того, что вы ищете, если только хосты не маскируют себя или не отбрасывают все.
Источник: https://nmap.org/book/man-host-discovery.html
источник
nmap -sn -n 172.16.128.1/24
вместо этого (как я уже говорил в ответе выше, это будет сканировать 255.255. 255.0 маска)Часть 1 - fping
Этот инструмент проверяет все в указанном диапазоне сети и показывает те, которые отвечают через ICMP.
Часть 2 - арп
Поскольку fping говорил со всем в локальной сети, это привело к добавлению записи в таблицу ARP системы. Прочтите его в течение пары минут, потому что таблица arp сбрасывает старые записи.
Также обратите внимание, что таблица ARP имеет максимальный размер, и ядро будет удалять старые записи и записи с низким уровнем использования.
Положите все это вместе с
затем просмотрите arp.txt на досуге.
источник
IPv6
Не думайте, что IPv4 - ваш единственный вариант. Многие современные операционные системы прекрасно справляются с IPv6, даже если ваш провайдер не обеспечивает подключение V6.
Могут даже быть устройства, которые доступны только по IPv6 или даже по другим протоколам.
Есть несколько удобных многоадресных адресов, задокументированных в https://en.wikipedia.org/wiki/Multicast_address#IPv6 Но интересным для вас является ff02 :: 1
источник
Плохой ответ - пинговать широковещательный адрес
В этой сети ~ 50 IP-адресов с / 16 сетевой маской и только семь ответили. Так что это не очень хорошее решение.
источник
В дополнение к ответу MadHatter, есть инструмент, который выполняет поиск arp без попытки сначала отправить сетевой пакет: arping .
Кажется, есть две реализации:
Для вашей цели я бы просто взял пакет из вашего дистрибутива Linux, поскольку различия, вероятно, только в деталях.
источник
Еще когда динозавры бродили по земле, прото- ботаники использовали arpwatch
man-страница arpwatch
источник
Войдите в свой коммутатор (-ы) и выполните
show mac-address
или аналогичные команды (в зависимости от марки и модели). Это даст вам все MAC-адреса активных устройств (кроме самого коммутатора). Если какой-либо из этих MAC-адресов не встречается среди MAC-адресов, найденных с помощью любого из ping или других методов в других ответах, вы можете дополнительно исследовать, что это за устройство. Возможно, это не имеет значения, потому что он даже не говорит по IP или принадлежит к другой VLAN, но, по крайней мере, вы можете получить представление о точности ваших других датчиков.источник