Mam dwa komputery Ubuntu w sieci lokalnej i żaden z nich nie może pingować się nawzajem. Za każdym razem, gdy próbuję, pojawia się komunikat o błędzie „Host docelowy nieosiągalny”. Oba komputery są w stanie uzyskać dostęp do Internetu bez żadnych problemów.
Mam router ActionTech v1000h firmy Telus. Skontaktowałem się z jednym z ich przedstawicieli klientów i powiedzieli, że nie powinno być żadnego powodu, dla którego dwa urządzenia nie mogłyby pingować się w sieci.
Jestem całkowicie zagubiony, czy któryś z was ma jakieś pomysły?
Komputer 1:
ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:10084 errors:0 dropped:0 overruns:0 frame:0
TX packets:10084 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:797420 (797.4 KB) TX bytes:797420 (797.4 KB)
wlan0 Link encap:Ethernet HWaddr c4:85:08:77:d3:f5
inet addr:192.168.1.77 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::c685:8ff:fe77:d3f5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:373068 errors:0 dropped:0 overruns:0 frame:0
TX packets:380158 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:103445020 (103.4 MB) TX bytes:112630337 (112.6 MB)
trasa -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Komputer 2:
ifconfig -a
etho0 Link encap:Ethernet HWaddr 00:24:8c:ae:f6:91
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:2
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:110 errors:0 dropped:0 overruns:0 frame:0
TX packets:110 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8414 (8.4 KB) TX bytes:8414 (8.4 KB)
wlan0 Link encap:Ethernet HWaddr 00:22:43:9b:7b:64
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::222:43ff:fe9b:7b64/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:252 errors:0 dropped:0 overruns:0 frame:0
TX packets:435 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:123143 (123.1 KB) TX bytes:65828 (65.8 KB)
trasa -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Edycja: Przykład błędu, gdy komputer 1 próbuje pingować komputer 2:
ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
From 192.168.1.77 icmp_seq=1 Destination Host Unreachable
From 192.168.1.77 icmp_seq=2 Destination Host Unreachable
From 192.168.1.77 icmp_seq=3 Destination Host Unreachable
From 192.168.1.77 icmp_seq=4 Destination Host Unreachable
From 192.168.1.77 icmp_seq=5 Destination Host Unreachable
From 192.168.1.77 icmp_seq=6 Destination Host Unreachable
^C
--- 192.168.1.2 ping statistics ---
7 packets transmitted, 0 received, +6 errors, 100% packet loss, time 6031ms
pipe 3
Edycja 2: arp -a
obu komputerów
Komputer 1:
? (192.168.1.254) at 20:76:00:f5:3b:70 [ether] on wlan0
Komputer 2:
? (192.168.1.254) at 20:76:00:f5:3b:70 [ether] on wlan0
? (192.168.1.77) at <incomplete> on wlan0
Edycja 3: nmap -sn 192.168.1.0/24
na komputerze 2
Starting Nmap 6.40 ( http://nmap.org ) at 2014-05-07 21:14 PDT
Nmap scan report for 192.168.1.2
Host is up (0.00024s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 3.30 seconds
Edycja 4: Dzienniki tcpdump na obu komputerach podczas pierwszego pingowania 192.168.1.254, a następnie dla siebie:
Komputer 1:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
22:45:01.661300 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:02.659393 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:03.659394 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:04.676872 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:05.675391 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:06.675396 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:07.692825 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28
22:45:48.379108 ARP, Reply 192.168.1.77 is-at c4:85:08:77:d3:f5, length 28
22:45:54.419388 ARP, Request who-has 192.168.1.254 tell 192.168.1.77, length 28
22:45:54.420875 ARP, Reply 192.168.1.254 is-at 20:76:00:f5:3b:70, length 28
Komputer 2:
reading from file pc2.pcap, link-type EN10MB (Ethernet)
22:44:43.538367 ARP, Request who-has 192.168.1.254 tell 192.168.1.2, length 28
22:44:43.676705 ARP, Reply 192.168.1.254 is-at 20:76:00:f5:3b:70 (oui Unknown), length 28
22:45:02.107935 ARP, Request who-has 192.168.1.254 tell 192.168.1.2, length 28
22:45:02.107951 ARP, Reply 192.168.1.254 is-at 20:76:00:f5:3b:70 (oui Unknown), length 28
22:45:06.780619 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28
22:45:07.778419 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28
22:45:08.778419 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28
22:45:09.796214 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28
Edycja 5: Skonfiguruj statyczne IP dla obu komputerów etho0 i połącz je kablem internetowym. Oba komputery mogą zdecydowanie pingować się za pomocą kabla Ethernet! ifconfig -a
wyniki eth0:
Komputer 1:
eth0 Link encap:Ethernet HWaddr 68:68:68:00:62:a4
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::6a68:68ff:fe00:62a4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4060 (4.0 KB) TX bytes:7629 (7.6 KB)
Komputer 2:
eth0 Link encap:Ethernet HWaddr 00:24:8c:ae:f6:91
inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::224:8cff:feae:f691/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:250 errors:0 dropped:0 overruns:0 frame:0
TX packets:130 errors:0 dropped:0 overruns:0 carrier:3
collisions:0 txqueuelen:1000
RX bytes:26501 (26.5 KB) TX bytes:20897 (20.8 KB)
źródło
Odpowiedzi:
ping 192.168.1.254
pinguj bramę z obu komputerów, a następnie spróbuj pingować comp1 do compt2 i comp2 do comp1, a następnie publikować wynikiarp -a
z OBU skrzynekEdytować
Ciekawe, że coś blokuje ruch
uruchom
sudo tcpdump -ni wlan0 arp
w jednym oknie na obu komputerach, a następnie spróbuj pingować się nawzajem i bramę z innego okna na obu komputerach i opublikować wynikiEdytuj2
Jak dotąd pokazuje to, że comp1 robi to, co przypuszczalnie wysyła żądanie arp (prosząc o adres etherner comp2s), ale nie otrzymuje odpowiedzi arp (słyszy cokolwiek z powrotem). Musisz zobaczyć tcpdump z PC2, aby zobaczyć pełny obraz. Albo uruchomić polecenie ekranu lub zrobić to na PC1
sudo tcpdump -w pc1.pcap -ni wlan0 arp &
i PC2 nasudo tcpdump -w pc2.pcap -ni wlan0 arp &
& powinien wyrzucić go w tle i daje swoją szybką plecami do ping. Gdy ping nie powiedzie się, przenieś zadania z powrotem na pierwszy plan,fg %1
zatrzymaj jectrl+c
i przeczytaj zapisane pliki za pomocąsudo tcpdump -r pc1/2.pcap
Komputery Edit3 robią to, co powinny, wypuszczając ARP, ale nie dostają, które punkty wskazują na router. Może wyłącz ustawienie zapory, wątpisz, że obsługuje sieci VLAN? Chciałbym, żebyś działał trochę dłużej o 22: 45: 48.379058 Twój router wysłał własne żądanie ARP, gdy szukał PC1,
22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28
oba komputery powinny go zobaczyć. Widzimy, że PC1 to widział i odpowiedział z jego adresem IP, ale nie mogę powiedz, czy PC2 go dostał, odkąd go zatrzymałeś, zatrzymaj się tuż przy 22: 45: 09.796214 . Zakładając, że twoje zegary są zsynchronizowane z NTP, to znaczy.Edytuj4
Zobacz, że nadal nie został rozwiązany. Nie widziałem, że masz adaptery etyczne na obu komputerach. Czy możesz podłączyć się do routera na eth zamiast wlan i sprawdzić, czy możesz pingować? Lub zdobyć inny router? Lub zrobić hotspot w telefonie połączyć oba komputery i spróbować pingować? Zaskoczony, że udało ci się połączyć ze sobą dwa komputery i pingować się, czy użyłeś kabla z przeplotem?
źródło
screen
Poleceń, z Ctrl-A następnie c, aby utworzyć nowe okno może być pomocne. Ctrl-A, a następnie <Space>, przesuwa się do przodu o okno, Ctrl-A, a następnie <Backspace> cofa o jedno okno, aby można było przełączać się między nimi.Spróbuj połączyć bezpośrednio dwa komputery za pomocą kabla Ethernet, ustawiając zarówno na stały adres IP (np. A: 192.168.1.10, B: 192.168.1.20), jak i spróbuj ponownie wykonać polecenie ping.
Wtedy bardzo szybko dowiesz się, czy problem pochodzi z routera, czy z komputerów.
źródło
ping localhost
lubping 127.0.0.1
który mówi ci, czy interfejs sieciowy jest włączony. Oznacza to, że oba komputery są w stanie obsłużyć żądanie, jeśli się nie mylę.Moją pierwszą odpowiedzią, gdy widzę coś dziwnego, jest instalacja Wiresharka.
Następnie ustaw go tak, abyś miał uprawnienia do używania go jako użytkownika innego niż root:
Wybierz opcję „tak”.
Wyloguj się i zaloguj ponownie, aby odebrać nowe członkostwo w grupie, a teraz możesz uruchamiać pakiety przechwytywania jako użytkownik inny niż root.
Następnie uruchom wireshark na komputerze, wybierając interfejs podłączony do sieci. Spróbuj zminimalizować ruch inny niż testowanie, aby ułatwić interpretację wyników.
Jeśli uruchomisz wireshark na jednym komputerze, a następnie spróbujesz pingować z innego, powinieneś zobaczyć coś na komputerze z uruchomionym wireshark, które mówi coś w stylu „Kto ma <ip próbujesz pingować>”. Jeśli to otrzymasz, to komputer próbujący pingować ma żądanie odebrane przez komputer wireshark. Mamy nadzieję, że powinieneś również zobaczyć w wireshark coś w stylu „<adres IP, który próbujesz pingować> znajduje się w <adres MAC>”. Jeśli to zrobisz, komputer wireshark odpowiada. W takim przypadku spróbuj uruchomić wireshark na pingowanym komputerze i sprawdź, czy możesz zobaczyć odpowiedź „<adres IP, który próbujesz pingować> znajduje się na <adres mac>>” na pingowanym komputerze.
Przepraszam, jeśli jest to zbyt niski poziom i przewyższa cię. Ta metoda zagłębia się w szczegóły. Ale możliwość zobaczenia, co faktycznie dzieje się w sieci, sprawia, że problemy stają się o wiele bardziej oczywiste.
źródło
tshark -i wlan0
i nie widzę żadnych wyników, gdy komputer 1 próbujeWho has 192.168.1.2? Tell 192.168.1.77
ale nigdy nie otrzymuje odpowiedzi. Router, którego używam, nie ma włączonej izolacji klienta zgodnie z ich częstoMiałem te same objawy z moją siecią LAN (tylko maszyny Ubuntu). Stało się, odkąd mamy nowy router. To jeden z tych dwuzakresowych. Nie mogłem zrozumieć problemu, dopóki nie pomyślałem, że jeden zespół może być całkowicie odmienny od drugiego. Powinien być łatwy do przetestowania, odłączyłem jedną maszynę od Wi-Fi i ponownie podłączyłem ją (do tego samego SSID), a co wiesz, miałem szczęście (czy to szansa 50-50?) I pojawiła się na drugiej i mogę teraz pingować i zalogować się do niego! Powyższy „nmap” dał mi wskazówkę. Dzięki za pomysł.
źródło
Przejrzyj konfigurację routera i sprawdź, czy zapory sieci lokalnej nie działają. Niektóre routery domyślnie izolują podłączone urządzenia od siebie.
Możesz także użyć
nmap
:Sprawdź, czy to coś wymyśli.
źródło
nmap
na komputerze 2.Coś jest nie tak z twoim routingiem, ale nie widzę w tym nic złego. „Host nieosiągalny” oznacza, że jądro nie może zdecydować, którego adaptera użyć do wysłania pakietu, więc się poddaje i upuszcza pakiet.
Metryka dla Twojej sieci lokalnej wynosi 9. To powinno być 0 lub 1. Jednak jądro Linuksa ma zignorować tę metrykę.
Spróbowałbym dodać trasę do określonego hosta. Spróbuj tego na komputerze 1:
route add -host 192.168.1.2 metric 0 dev wlan0
Spróbuj także usunąć trasę do 169.254.0.0 i sprawdź, czy to pomoże. Jest to mało prawdopodobne, ale nigdy nie wiadomo.
EDYTOWAĆ
Nie masz uruchomionej sieci VPN, prawda? Wiadomo, że Cisco VPN zakłóca lokalne połączenia sieciowe.
źródło
route -n
tabeli to:192.168.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 wlan0
Wszystkie pakiety z komputera 1 i komputera 2 są kierowane do wlan0 na każdym komputerze lokalnym, ale żaden interfejs bezprzewodowy nie jest powiązany z siecią bezprzewodową.
Czy przypisałeś adresy IP ręcznie? Powinny być dostarczone przez router przez DHCP w ramach konfiguracji powiązania / uwierzytelnienia.
Wykonaj
sudo iwlist wlan0 scan
na każdym komputerze, aby zobaczyć sieci bezprzewodowe dostępne dla każdego komputera. Jednym z nich powinien być router. Czy router jest skonfigurowany z ESSID (nazwa sieci bezprzewodowej), który różni się od domyślnego?Do jakiego rodzaju szyfrowania skonfigurowany / skonfigurowany jest router? Dostępne opcje to None (bardzo bardzo źle), WEP (bardzo źle), WPA (źle) i WPA2 (najlepiej dostępne na razie). Wszystkie 3 systemy muszą uzgodnić wspólne szyfrowanie.
Po tym wszystkim, komputer 1 powinien być w stanie połączyć się bezprzewodowo z routerem, uzyskać od niego adres IP (wraz z innymi informacjami o sieci, takimi jak brama domyślna, MTU). Być w stanie
ping
routera.Powtórz dla komputera 2 .
Tylko wtedy możesz naprawdę
ping
, jeśli router zezwala na lokalny routing adresów.źródło
WPA / WPA2
zabezpieczeń zWPA or WPA2 - Personal
typem WPA. ESSID jest skonfigurowany tak, aby był inny niż domyślny. Oba komputery mogą znaleźć routery za pomocąsudo iwlist wlan0 scan
polecenia. Oba komputery mogą pingować router. Komputer 1 ma dynamiczny adres IP, a komputer 2 ma stały adres IP. Żaden komputer nie może pingować drugiego.NetworkManager
do zarządzania połączeniami Wi-Fi i hasłami, iiwconfig
pokazuje:$ iwconfig wlan0 wlan0 IEEE 802.11bg ESSID:"Fairfield" Mode:Managed Frequency:2.422 GHz Access Point: 14:D6:4D:2D:5F:AE Bit Rate=54 Mb/s Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:off Link Quality=70/70 Signal level=-40 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx Invalid frag:0 Tx excessive retries:0 Invalid misc:37 Missed beacon:0
Problem wydaje się być w twojej sieci. Nie w samych maszynach z linuksem. Powiedziałbym, że to twój router bezprzewodowy / punkt dostępowy bawi się z tobą sztuczkami.
Oznacza to, że twój router / AP połyka żądania ARP i bez działania ARP nie znają MAC drugiego, a zatem nie mogą ze sobą rozmawiać przez Ethernet.
Spróbuj, aby router DHCP przypisał adresy, a nie statycznie.
Lub dodaj je statycznie do pamięci podręcznej ARP, aby zobaczyć, czy to pomoże.
Na komputerze 1:
Na komputerze 2:
źródło
Sprawdź, czy punkt dostępowy routera wlan ma opcję izolacji (włącz izolację punktu dostępowego), wyłącz ją.
źródło