Mam dostęp do dwóch komputerów (A i B) w sieci. Oba mają statyczny adres IP z maską podsieci 255.255.255.128 ( sprawdziłem, że serwer DHCP nie jest używany). Chcę skonfigurować wiele adresów IP na tym samym komputerze, a zatem chcę wiedzieć, jakie wszystkie adresy IP są już używane w podsieci.
Z wcześniejszego pytania wypróbowałem nmap -sP -PR 172.16.128.*
polecenie, ale jestem sceptyczny co do jego wyniku, ponieważ to samo polecenie daje różne wyniki na moich dwóch komputerach (A i B). A, na pokazach rezultacie listy adresów IP, które są 8 (podobno) już używany, łącznie z A i B .
Nmap done: 256 IP addresses (8 hosts up) scanned in 1.23 seconds
Ale na B wynik jest inny, tj.
Nmap done: 256 IP addresses (0 hosts up) scanned in 0.00 seconds
Wynik na B nie pokazuje nawet własnego adresu IP, a także adresu IP A!
Co dokładnie robię tutaj źle? Czy w Red Hat Linux (RHEL) istnieje jakiś niezawodny sposób na wykrycie wszystkich adresów IP używanych w podsieci, której częścią jest mój komputer?
RHEL: 6.5
Nmap version: 5.51
źródło
nmap -sP -PR '172.16.128.*'
Odpowiedzi:
Każde dobrze wychowane urządzenie w sieci Ethernet LAN może zignorować prawie każdy ruch, więc PING, skanowanie portów i tym podobne są niewiarygodne. Urządzenia nie mogą jednak ignorować żądań ARP , afaik. Biorąc pod uwagę, że określasz, że skanujesz sieć lokalną, znajduję najmniej delikatną metodę robienia tego, co chcesz, to próby połączenia się ze zdalnym adresem, a następnie zajrzenia do mojej pamięci podręcznej ARP.
Oto proste, niefiltrujące urządzenie (tj. Takie, które nie jest skonfigurowane do ignorowania niektórych klas ruchu IP):
Oto urządzenie filtrujące (skonfigurowane z jednym wierszem
iptables
do ignorowania całego ruchu):Oto urządzenie, które właśnie działa; zauważ brak adresu MAC:
Ta metoda nie jest niezawodna - z jednej strony brakuje urządzeń, które są wyłączone - ale jest to najmniej przerażająca metoda, jaką kiedykolwiek próbowałem.
Edycja : Eric Duminil, tak, działa tylko w sieci lokalnej; patrz akapit pierwszy.
Vishal, metody są funkcjonalnie identyczne. Zwróć uwagę na tekst cytowany w odpowiedzi Leo na temat
nmap
:Jego metoda wymaga mniej pisania. Moje może być wykonane bez przywilejów i może dać ci lepsze zrozumienie tego, co się właściwie dzieje. Ale w obu przypadkach to samo dzieje się na drucie.
źródło
arp
.sudo -u root
(często skracanymsudo
), ale także po prostu zalogowanie się jako root lub zrobienie tego/bin/su
, stąd termin parasolowy.Ponieważ urządzenie nie może ignorować żądań ARP, lubię używać narzędzia o nazwie
arp-scan
. Jest dostępny w większości repozytoriów.Po uruchomieniu polecenia za pomocą
--localnet
przełącznika uzyskasz przegląd całej sieci wewnętrznej.Daje mi listę wszystkich adresów IP i MAC w mojej sieci. Możliwe jest również określenie zakresu sieci do skanowania.
Jeśli masz skonfigurowanych wiele interfejsów sieciowych, możesz określić ten, którego chcesz używać z przełącznikiem
-I
.Więcej informacji na temat możliwych przełączników można znaleźć na stronie https://linux.die.net/man/1/arp-scan lub przez uruchomienie
man arp-scan
.źródło
Nie wiem, którą wersję nmap używasz w swoim Red Hat 6.5, ale dla ostatnich wydań poprawny (i szybszy) sposób, jak sądzę, byłby to:
nmap -sn -n 172.16.128.0/25
Spowoduje to wyświetlenie listy wszystkich hostów w Twojej sieci (więc możesz użyć dowolnego innego adresu IP z tej podsieci, ponieważ powinna być dostępna).
Edytuj i zanotuj: Podsieć, o której wspominasz, to 255.255.255.128, ale następnie wyświetlasz wynik jako skanowanie 254 hostów. Chyba że coś mi brakuje, powinna to być maska / 25 i 126 hostów dostępnych. Jeśli chcesz przeskanować a / 24, zmień powyższe polecenie, aby wysłać zapytanie do wszystkich 254 hostów.
Z książki nmap
-sP
został wycofany i zastąpiony przez-sn
:Ma
-n
to na celu uniknięcie rozpoznawania nazw DNS klientów (przyspiesza skanowanie):Możesz użyć innych kombinacji, aby pogłębić skanowanie lub usługi, ale to powinno wystarczyć do tego, czego szukasz, chyba że hosty same się maskują lub upuszczają wszystko.
Źródło: https://nmap.org/book/man-host-discovery.html
źródło
nmap -sn -n 172.16.128.1/24
zamiast tego (jak powiedziałem w odpowiedzi powyżej, skanuje 255.255. 255.0 mask)Część 1 - fping
To narzędzie pinguje wszystko w określonym zakresie sieci i pokazuje te, które odpowiadają przez ICMP.
Część 2 - arp
Ponieważ fping rozmawiał ze wszystkim w sieci LAN, spowodowałoby to dodanie wpisu do tablicy ARP systemu. Przeczytaj to w ciągu kilku minut, ponieważ tabela arp opróżnia stare wpisy.
Zauważ też, że tabela ARP ma maksymalny rozmiar, a jądro będzie wyświetlać stare i mało używane wpisy.
Połącz to wszystko z
następnie w wolnym czasie przejrzyj plik arp.txt.
źródło
IPv6
Nie zakładaj, że IPv4 jest twoją jedyną opcją. Wiele nowoczesnych systemów operacyjnych dobrze radzi sobie z IPv6, nawet jeśli twój dostawca usług internetowych nie zapewnia łączności V6.
Mogą nawet istnieć urządzenia, które są osiągalne tylko przez IPv6 lub nawet inne protokoły.
Istnieje kilka przydatnych adresów multiemisji udokumentowanych w https://en.wikipedia.org/wiki/Multicast_address#IPv6 Ale interesujący jest dla ciebie ff02 :: 1
źródło
Złą odpowiedzią jest pingowanie adresu rozgłoszeniowego
W tej sieci jest ~ 50 adresów IP z maską sieciową / 16 i tylko siedem odpowiedziało. To nie jest dobre rozwiązanie.
źródło
Oprócz odpowiedzi MadHattera istnieje narzędzie, które wyszukuje arp bez próby wysłania najpierw pakietu sieciowego: arping .
Wydaje się, że istnieją dwie implementacje:
Dla twojego celu po prostu wziąłbym pakiet z twojej dystrybucji linuksa, ponieważ różnice są prawdopodobnie tylko w szczegółach.
źródło
Kiedy dinozaury wędrowały po ziemi, proto- nerdowie używali arpwatch
Strona podręcznika użytkownika arpwatch
źródło
Zaloguj się do przełącznika (-ów) i wydawaj
show mac-address
lub podobne polecenia (w zależności od marki i modelu). To da ci wszystkie adresy MAC aktywnych urządzeń (oprócz samego przełącznika). Jeśli któryś z tych adresów MAC nie występuje wśród adresów MAC znalezionych za pomocą polecenia ping lub innych metod w innych odpowiedziach, możesz chcieć dokładniej zbadać, jakie to urządzenie. Może to nie ma znaczenia, ponieważ nawet nie mówi IP lub należy do innej sieci VLAN, ale przynajmniej możesz uzyskać przegląd, czy twoje inne sondy są dokładne.źródło