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.8
ró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łemtraceroute
nie” nie wskazuje na czym może być problem, ale wskazuje, że dzieje się coś dziwnego. - Wyszukiwanie powodów, dla których
arp
mó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.1
w 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.1
i że komputer, który był podłączony do tego adresu był używany jako router do łączenia sieci192.168.0.X
i192.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/24
sieci używają192.168.1.1
jako 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.conf
jak 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.