Jak wspomniano w tym poście :
Powód za zobaczenie niekompletnego ARP jest to, że „Wysłano żądanie ARP dla tego adresu, ale host o tym adresie nie działa w sieci LAN, więc nie ma odpowiedzi”
Tak więc, jeśli przełącznik wielowarstwowy wyśle żądanie ARP do serwera i nie otrzyma odpowiedzi, protokół ARP zostanie oznaczony jako niekompletny w tabeli ARP przełącznika.
Ale co, jeśli serwer wyśle żądanie ARP do przełączyć, ale nie otrzymuje odpowiedzi? Czy serwer wyświetli niekompletny ARP w swojej tablicy ARP, a przełącznik nie wyświetli żadnego wpisu?
Zakładając, że powyższe jest poprawne, czy możemy powiedzieć, że jeśli widzisz niekompletny wpis ARP na urządzeniu lokalnym, problem jest z urządzeniem na drugim końcu połączenia (lub okablowania)? A może są jakieś wyjątki?
Komentarze
- Jak wskazuje @RonTrunk, przełącznik jest przezroczystym urządzeniem warstwy 2, które nie wie lub nie obchodzi o adresowaniu warstwy 3 (IP), więc nie ' nie używa ani nie odpowiada na protokół ARP. Przełącznik może być zarządzany, więc zarządzanie przełącznikiem jest jak host w sieci i ma interfejs warstwy 3, który używa i odpowiada na ARP, ale nie ma to nic wspólnego z funkcją przełączania, która nadal nic nie wie o warstwie-3. Nie ' nie mylić protokołu ARP na urządzeniach warstwy 3 z tablicą adresów MAC przełączników. Wiele osób je myli.
 - Czy przełącznik działa jako brama L3, czy tylko jako przełącznik L2?
 - @cpt_fink, tak by ” switch ” Miałem na myśli przełącznik wielowarstwowy (brama L3)
 
Odpowiedź
W przypadku przełącznika warstwy 3 moduł warstwy 3 w przełączniku jest routerem i działa tak samo jak router, który działa jak każdy inny host dla protokołu ARP. Przełącznik warstwy 3 jest nadal przede wszystkim przełącznikiem warstwy 2, a przełącznik warstwy 2 nadal działa tak samo, jak przełącznik warstwy 2. Części warstwy 3 i warstwy 2 przełącznika warstwy 3 są naprawdę oddzielne. Interfejsy warstwy 3 (zarówno interfejsy wirtualne, jak i wszelkie interfejsy fizyczne skonfigurowane jako interfejsy warstwy 3) będą używać tabeli ARP, ale interfejsy warstwy 2 będą używać tabeli adresów MAC.
 Gdy host, w tym router lub moduł routingu w przełączniku warstwy 3, wysyła żądanie ARP i nie otrzymuje odpowiedzi, oznacza wpis w tablicy ARP jako incomplete. 
Ale co, jeśli serwer wyśle żądanie ARP do przełącznika, ale nie otrzyma odpowiedzi? Czy serwer wyświetli niepełne ARP w swojej tablicy ARP, a przełącznik nie wyświetli żadnego wpisu?
 To zależy. Jeśli host wysyła żądanie ARP do innego hosta, w tym routera, ale nie otrzymał jeszcze odpowiedzi, wpis w tablicy ARP hosta zostanie oznaczony jako incomplete jako adres IPv4 routera. 
To, co router ma w swojej tablicy ARP, zależy od tego, czy router otrzymał żądanie ARP i czy router ma już wpis w tablicy ARP dla hosta.
- 
Router z istniejącym wpisem w tablicy ARP dla hosta będzie miał ten wpis, dopóki router nie wyczyści go z powodu przekroczenia limitu czasu. Limit czasu nie jest wymagany przez RFC, ale RFC ma sekcję, która zajmuje się możliwością wykorzystania limitu czasu dla wpisów w tablicy ARP, a większość hostów robi to:
Może być pożądane przedawnienie tabeli i / lub przekroczenie limitu czasu. Ich implementacja jest poza zakresem tego protokołu.
 - Jeśli router nigdy nie otrzymał żądania ARP i nie miał wpisu dla hosta, nie będzie wpisu w tablicy ARP routera.
 - Jeśli router otrzymał żądanie ARP od hosta, ale odpowiedź zwrotna do hosta została utracona, router będzie miał pełny ARP wpis w tabeli dla hosta.
 
Aby zrozumieć, jak działa ARP, przeczytaj RFC 826, An Protokół rozpoznawania adresów Ethernet – lub – Konwersja adresów protokołu sieciowego na 48-bitowy adres Ethernet do transmisji na sprzęcie Ethernet . Pamiętaj, że ARP działa z IPv4, ale nie dla IPv6, który ma ND (Neighbor Discovery) zamiast ARP.
Odpowiedź
Pomyślne rozwiązanie ARP jest wymagane, aby dwa węzły IPv4 komunikowały się we wspólnym segmencie warstwy 2 (zwykle Ethernet).
Niekompletne żądania ARP mają dwa podstawowe powody.
- 
Żądanie ARP nie zostało odebrane. Albo węzeł docelowy nie otrzymał żądania ARP, albo jego odpowiedź nie została odebrana. Węzeł docelowy może być wyłączony.
 - 
Maska sieci węzła źródłowego nie jest poprawnie skonfigurowana.Węzeł źródłowy traktuje wszystkie miejsca docelowe we własnej podsieci jako lokalne lub na łączu: oczekuje, że będzie w stanie rozmawiać z nimi bezpośrednio przez swój interfejs Ethernet, bez pomocy routera bramkowego.
Gdy np. Węzeł w podsieci 192.168.0.0/24 jest nieprawidłowo skonfigurowany jako 192.168.0.10/16 i traktuje miejsce docelowe jak 192.168.16.1 lokalnie. Nie spróbuje użyć bramy, ale spróbuje bezpośredniego ARP, który pozostaje niekompletny.
 
Czy węzeł źródłowy lub docelowy / następnego przeskoku jest routerem, przełącznikiem wielowarstwowym lub węzeł końcowy nie ma znaczenia.
Odpowiedź
Tablica ARP przełącznika jest używana tylko przez interfejs zarządzania przełącznikiem dla ruchu IP generowane przez sam przełącznik.
W przeciwnym razie przełączniki patrzą tylko na informacje warstwy 2. Nie rozumieją protokołu ARP.
Komentarze
- tak, chodziło mi o przełącznik wielowarstwowy
 
Odpowiedź
Inny możliwy powód – nieprawidłowe ustawienia dhcpcd
Dodaję tę odpowiedź, chociaż (prawdopodobnie) nie jest ona bezpośrednio związana z konkretnym pytaniem powyżej, ma znaczenie w niektórych przypadkach
Jeśli ustawienia statycznego adresu IP / dhcp systemu są nieprawidłowe, to może pojawić się jako pośredni efekt uboczny.
W moim konkretnym przypadku miałem komputer z Linuksem, na którym przeniosłem lokalizacje i zmieniłem ustawienia sieciowe ngs for.
 Zapomniałem zaktualizować je w /etc/dhcpcd.conf, kiedy przeniosłem komputer z powrotem. 
 To jest mój dhcpcd.conf 
interface eth0 static ip_address=192.168.1.8/24 static routers=192.168.1.254 #static routers=192.168.1.1 static domain_name_servers=127.0.0.1 
 Kiedy był ” uszkodzony „, linia static routers=192.168.1.254 została zakomentowana, a wiersz poniżej #static routers=192.168.1.1 został odkomentowany. 
 To spowodowało, że arp wyświetlił nieprawidłowy wpis (” niekompletny „) dla adres 192.168.1.1. 
 Mimo że przeniosłem ten system dopiero tydzień temu, a potem przeniosłem go kilka dni temu, nie miałem absolutnie pojęcia, co jest nie tak z tym. O ile mogłem stwierdzić, mogłem podłączyć go do mojej sieci lokalnej, ssh do niego dobrze i nie było żadnych problemów z wyświetlaniem ip addr. traceroute również nie wyświetlał żadnych przydatnych informacji, sugerował tylko, że wszystkie zapytania przechodziły przez jeden przeskok do ” nazwy hosta komputera „. Oczywiście to nie miało sensu i było błędne, ale nie dało mi żadnych wskazówek, na czym polegał problem – sugerowało to, że wszystkie zapytania zostały rozwiązane (w jakiś sposób) w ta sama maszyna. Nawiasem mówiąc, ta maszyna obsługuje DNS. 
Nie jest to bezpośrednio związane z kwestią OP, ale może być bardzo przydatne dla innych, którzy mają ten problem w przyszłości, i jest to jedyny sposób, w jaki do tej pory udało Ci się znaleźć zdiagnozuj to, ponieważ niewiele innego wydaje się być błędne!
Tylko kilka uwag na temat tego, jak to zdiagnozowałem
- Podczas używania tego komputera jako serwera DNS dla innych komputerów na sieć, te maszyny nie były w stanie obsłużyć zewnętrznych żądań DNS
 - Mogłem ssh do serwera DNS (można by się tego spodziewać, ponieważ jego adres IP jest ustawiony statycznie, a przełącznik / router również oczekuje, że zobaczy maszynę z tym statyczny adres IP podłączony do lokalnej sieci Ethernet przez przełącznik).
 -  Pierwszą rzeczą, która wskazywała na jakiś problem, była awaria 
sudo apt update. (Ponieważ jest to serwer DNS, nie ma interfejsu graficznego i dlatego chociaż uruchomienie czegoś w rodzaju przeglądarki internetowej wskazałoby ten problem znacznie wcześniej lub z poziomu ikony sieciowej na pulpicie, nie ma żadnej z tych rzeczy). -  
ping 8.8.8.8również kończyło się niepowodzeniem, jednak ssh i pingowanie lokalnych maszyn było w porządku -  Sprawdziłem 
/etc/network/interfaces[.d]jednak wszystkie pliki w tych katalogach były puste / ustawione na domyślne, ponieważ oprogramowanie DNS nimi zarządza - Nie było błędów / ostrzeżeń w oprogramowaniu DNS podczas łączenia się z serwerem DNS przez dostarczony interfejs sieciowy
 -  Zacząłem sprawdzać takie rzeczy jak 
ip addr(bez problemów) iarp. Już powiedziałemtraceroutenie” nie wskazuje na czym może być problem, ale wskazuje, że dzieje się coś dziwnego. -  Wyszukiwanie powodów, dla których 
arpmógł mieć niekompletny wpis i poprowadził mnie we właściwych wierszach - Znalazłem to pytanie ( https://serverfault.com/questions/765380/when-do-stale-arp-entries-become-failed-when-never-used ) i zacząłem sprawdzać, jak usunąć wpisy arp.
 -  Usunąłem wpis za pomocą 
arp -d 192.168.1.1 - Jednak ciągle wracało
 -  Próbowałem połączyć się z 
192.168.1.1w mojej sieci lokalnej z innej maszyny, jednak nie zdziwiłem się, że nie mogłem tego zrobić ani wysłać polecenia ping, ponieważ w mojej sieci nie ma komputerów o tym adresie - Zwykle ten adres byłby adresem Twojej bramy / routera usługodawcy internetowego w aplikacje domowe
 -  Przypomniało mi to, że ustawiłem kartę sieciową w innym miejscu tak, aby miała adres 
192.168.1.1i że komputer, który był podłączony do tego adresu był używany jako router do łączenia sieci192.168.0.Xi192.168.1.X -  Pierwotna lokalizacja to sieć 
192.168.1.X, lokalizacja, do której się przeniosłem, to192.168.0.X -  Ponieważ większość 
192.168.1.X/24sieci używają192.168.1.1jako bramy domyślnej, ponieważ ten adres IP początkowo nie wzbudził żadnych podejrzeń i nie wydawał się ” dziwne ” z dowolnego powodu -  Jednak zmieniłem domyślną bramę w 
dhcpcd.confjak opisano powyżej i problem został rozwiązany. -  Wyciągnięta lekcja, podczas tymczasowego tworzenia dziwnej sieci komputer-komputer poza siedzibą firmy, należy nadać karcie routera / karcie sieciowej dziwny statyczny adres IP, np. 
192.168.1.50– może to pomóc przypomnieć sobie lub wskazać, że coś niezwykłego jest ustawione gdzieś w pliku ustawień 
Komentarze
- Niestety, konfiguracje hosta / serwera nie są tu tematem, ale można je rozwiązać na awarii serwera w przypadku firm s.