Проверка связи с компьютерами в локальной сети: узел назначения недоступен

15

У меня есть два компьютера с Ubuntu в локальной сети, и ни один из них не может пропинговать друг друга. Каждый раз, когда я пытаюсь получить сообщение об ошибке «целевой хост недоступен». Оба компьютера могут получить доступ к Интернету с любыми проблемами.

У меня есть роутер ActionTech v1000h от Telus. Я связался с одним из их представителей клиентов, и они сказали, что не должно быть никаких причин, по которым два устройства не могут пинговать друг друга в сети.

Я в полном недоумении, у кого-нибудь из вас есть какие-нибудь идеи?

Компьютер 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)

маршрут -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  

Компьютер 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)

маршрут -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  

Редактировать: пример ошибки, когда компьютер 1 пытается пропинговать компьютер 2:

пинг 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

Редактировать 2: arp -a обоих компьютеров

Компьютер 1:

? (192.168.1.254) at 20:76:00:f5:3b:70 [ether] on wlan0

Компьютер 2:

? (192.168.1.254) at 20:76:00:f5:3b:70 [ether] on wlan0
? (192.168.1.77) at <incomplete> on wlan0

Редактировать 3: nmap -sn 192.168.1.0/24 на компьютере 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

Редактировать 4: tcpdump регистрирует оба компьютера, в то время как первый пинг 192.168.1.254, а затем друг друга:

Компьютер 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

Компьютер 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

Редактировать 5: Установить статические ips для обоих компьютеров etho0 и подключить их с помощью интернет-кабеля. Оба компьютера могут определенно пропинговать друг друга через кабель Ethernet! ifconfig -aРезультаты eth0:

Компьютер 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)

Компьютер 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)
edgargiraffe
источник
1
Как вы их пингуете? IP? Hostname?
Тердон
Кто говорит вам, что «хост назначения недоступен» - ваш локальный адаптер или что-то еще? Пожалуйста, предоставьте копирование / вставку команд ping и их вывод.
Смурф
Я пингую их, используя их IP-адреса. Я добавил правку в исходное сообщение с подробным описанием команды, которую я использую, и сообщением об ошибке.
edgargiraffe
Возможно, вы блокируете ping в настройках вашего роутера?
Тердон
Я не верю, я прочесал настройки роутера за пару часов. Я также поговорил с представителем телусов, и он не дал мне никаких указаний на то, что это может быть проблемой.
edgargiraffe

Ответы:

4

ping gateway с обоих компьютеров, ping 192.168.1.254 затем попытайтесь пропинговать comp1 к compt2 и comp2 к comp1, а затем отправьте результаты arp -aиз обоих блоков

редактировать

Интересно, что-то блокирует трафик

запустите sudo tcpdump -ni wlan0 arpв одном окне на обоих компьютерах, а затем попробуйте пропинговать друг друга и шлюз из другого окна снова и опубликовать результаты

Edit2

До сих пор это показывает, что comp1 делает то, что предполагает отправку запроса arp (запрашивает адрес etherner comp2s), но не получает ответа arp (ничего не слышит). Нужно увидеть tcpdump от PC2, чтобы увидеть полную картину. Либо запустите команду screen, либо сделайте это на ПК1 sudo tcpdump -w pc1.pcap -ni wlan0 arp &и на ПК2, sudo tcpdump -w pc2.pcap -ni wlan0 arp & и вы должны сбросить ее в фоновом режиме и вернуть запрос на пинг. После сбоя проверки связи верните задания на передний план с fg %1остановкой ctrl+cи прочитайте записанные файлы сsudo tcpdump -r pc1/2.pcap

ПК Edit3 делают то, что они предполагают, выпуская ARP, но они не проходят через какие точки к маршрутизатору. Может быть, отключить настройку брандмауэра, сомневаюсь, что он поддерживает VLAN? Хотелось бы, чтобы вы позволили ему работать немного дольше в 22: 45: 48.379058, когда ваш маршрутизатор отправил свой собственный запрос ARP, когда он искал ПК1, 22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28оба ПК должны были его видеть, мы можем видеть, что ПК1 видел его и ответил со своим IP, но не могу скажите, получил ли PC2 его с тех пор, как вы его остановили, остановитесь на 22: 45: 09.796214 . Предполагая, что ваши часы синхронизируются с NTP, то есть.

Edit4

Видите, это все еще не решено. Не видел, что у вас есть эти адаптеры на обоих ПК. Можете ли вы подключиться к маршрутизатору по eth вместо wlan и посмотреть, сможете ли вы пинговать тогда? Или получить другой роутер? Или сделать горячую точку на телефоне, подключить оба компьютера и попробовать пинговать? Кроме того, вы удивились, увидев, что вы смогли соединить два компьютера вместе и проверить связь друг с другом. Использовали ли вы перекрестный кабель?

meccooll
источник
Оба компьютера могут без проблем пропинговать 192.168.1.254, и ни один компьютер не может успешно пропинговать другой, получая сообщение об ошибке, которое я разместил выше. Я добавил второе изменение в исходное сообщение с результатами `arp -a ~ на обоих компьютерах.
edgargiraffe
Компьютер 2 имеет только одно окно, поэтому я не знаю, как заставить его использовать tcdump и пинговать компьютер 1 одновременно. Я добавил результаты запуска tcdump на компьютере 1 в четвертой редакции исходного поста.
edgargiraffe
Команда screenс Ctrl-A и c для создания нового окна может быть полезной. Ctrl-A, затем <Space> переходит к окну, Ctrl-A, затем <Backspace>, переходит на одно назад, так что вы можете переключаться между ними.
Азендейл
Я переделал четвертое редактирование. На обоих компьютерах работал tcpdump, и оба компьютера пытались пропинговать 192.168.1.254, а затем и друг друга. Спасибо, что рассказал мне об этом!
edgargiraffe
1

Попробуйте подключить два компьютера напрямую друг к другу с помощью кабеля Ethernet, настроив оба адреса с фиксированным IP-адресом (например, A: 192.168.1.10, B: 192.168.1.20) и попробуйте выполнить команду ping еще раз.

Тогда вы очень быстро узнаете, возникла ли проблема у вашего маршрутизатора или компьютеров.

Sulliwane
источник
Я установил для компьютера 1 eth0 фиксированный IP-адрес 192.168.1.10. У меня есть только терминал с компьютером 2, поэтому я не мог использовать тот же метод, что и с компьютером 1; как починить ip в терминале? В любом случае я исправил IP-адрес eth0 компьютера 1, подключил их с помощью кабеля Ethernet и использовал компьютер 2 для проверки связи с компьютером 1. Не повезло.
edgargiraffe
Смотрите здесь, чтобы изменить IP-адрес компьютера B с помощью командной строки: askubuntu.com/questions/342705/how-to-set-a-static-ip-address
Sulliwane
Ну, я бы сказал, ping localhostили ping 127.0.0.1это говорит вам, работает ли сетевой интерфейс. Это означает, что оба ваших компьютера могут обработать запрос, если я не ошибаюсь.
AzkerM
Спасибо за вашу помощь! Сделав то, что вы предложили, компьютеры могут пропинговать друг друга по кабелю Ethernet. Я добавил дополнительную информацию в пятой редакции моего оригинального сообщения. Значит ли это, что проблема определенно с роутером?
edgargiraffe
1

Мой первый ответ, когда я вижу что-то странное, это установка wireshark.

Затем сделайте так, чтобы у вас было разрешение использовать его без полномочий root:

sudo dpkg-reconfigure wireshark-common

Выберите вариант «да».

usermod -a -G wireshark your-user-name

Выйдите из системы и снова войдите в систему, чтобы получить новое членство в группе, и теперь вы можете запускать пакеты захвата как пользователь без полномочий root.

Затем запустите Wireshark на машине, выбрав интерфейс, подключенный к сети. Постарайтесь минимизировать трафик, отличный от вашего тестирования, чтобы упростить интерпретацию результатов.

Если вы запустите wireshark на одной машине, а затем попытаетесь пропинговать с другой, вы должны увидеть что-то на машине под управлением wireshark, которая говорит что-то вроде «У кого есть <ip, вы пытаетесь пропинговать>». Если вы получаете это, то компьютер, пытающийся пропинговать, получает свой запрос, полученный компьютером wireshark. Надеюсь, вы также должны увидеть в wireshark что-то вроде «<IP-адрес, который вы пытаетесь пропинговать>, находится по адресу <mac address>». Если вы это сделаете, то компьютер Wireshark отвечает. Если это так, попробуйте запустить wireshark на компьютере, проверяя эхо-запрос, и посмотрите, можете ли вы увидеть ответ «<ip address, на который вы пытаетесь пропинговать> по адресу <mac address>», на компьютере pinging.

Я прошу прощения, если это слишком низкий уровень и идет над вашей головой. Этот метод действительно углубляется в детали. Но способность видеть то, что на самом деле происходит в сети, делает проблемы намного более очевидными.

Azendale
источник
Я установил wireshark на компьютер 2 в соответствии с вашими инструкциями. К сожалению, компьютер 2 не может открыть экран wireshark, поэтому я также установил tshark, это нормально? Я использовал команду tshark -i wlan0и не вижу результатов, пока компьютер 1 пытается
пропинговать
с tshark все должно быть в порядке, я только что сказал wireshark, потому что я думал, что GUI сделает это проще :) Я бы попробовал, учитывая результаты, сделать обратное и посмотреть, можете ли вы увидеть что-нибудь на компьютере 1, используя (wire / t) shark и pinging с компьютера2. Если это также не показывает ничего ARP или ICMP, я бы посмотрел, можете ли вы найти что-нибудь на беспроводных страницах маршрутизатора о «изоляции клиентов» или что-то в этом роде. Если вы найдете это, вы хотите от этого.
Azendale
Я установил wireshark на компьютер 1. Компьютер 1 - мой персональный ноутбук, и на нем много трафика, поэтому я не собираюсь публиковать здесь полные результаты. Я вижу его трансляцию, Who has 192.168.1.2? Tell 192.168.1.77но он никогда не получает ответ. Маршрутизатор, который я использую, не имеет включенной изоляции клиента согласно их faq: часто actiontec.com/products/faqs.php?pid=191#q25
edgargiraffe
1

У меня были те же симптомы с моей локальной сетью (только для компьютеров с Ubuntu). Это случилось с тех пор, как мы получили новый роутер. Это один из тех двухдиапазонных. Не могу понять проблему, пока я не подумаю, что одна «группа» полностью не пересекается с другой. Должно быть легко проверить, я отключил одну машину от Wi-Fi и переподключил ее (к тому же SSID), и что вы знаете, мне повезло (это 50-50 шанс?), И он появился на локальной сети другой машина и теперь я могу пинговать и входить в нее! «Nmap» дал мне подсказку. Спасибо за идею.

user333038
источник
1
Пожалуйста, не добавляйте «спасибо» как ответы. Потратьте некоторое время на сайт, и вы получите достаточные привилегии, чтобы выслушать ответы, которые вам нравятся, что является способом попросить Ubuntu поблагодарить вас.
Парто
0

Просмотрите конфигурацию вашего маршрутизатора и посмотрите, не запущены ли брандмауэры локальной сети. Некоторые маршрутизаторы по умолчанию изолируют подключенные устройства друг от друга.

Вы также можете использовать nmap :

$ nmap -sn 192.168.1.0/24

Посмотрим, придет ли это к чему-нибудь.

PS95
источник
Я просмотрел страницы конфигурации моего маршрутизатора и не верю, что установлены какие-либо локальные сетевые брандмауэры. Я также говорил с представителем клиента, и он не упомянул ни одного. Я добавил третье изменение в исходное сообщение с результатами nmapна компьютере 2.
edgargiraffe
0

Что-то не так с вашей таблицей маршрутизации, но я не вижу в этом ничего плохого. «Узел недоступен» означает, что ядро ​​не может решить, какой адаптер использовать для отправки пакета, поэтому оно сдается и отбрасывает пакет.

Метрика для вашей локальной сети равна 9. Это должно быть 0 или 1. Однако, по слухам, ядро ​​Linux игнорирует метрику.

Я бы попытался добавить маршрут к конкретному хосту. Попробуйте это на компьютере 1:

route add -host 192.168.1.2 metric 0 dev wlan0

Также попробуйте удалить маршрут до 169.254.0.0 и посмотрите, поможет ли это. Это маловероятно, но вы никогда не знаете.

РЕДАКТИРОВАТЬ

У вас не работает VPN? Известно, что Cisco VPN мешает подключению к локальной сети.

sмurf
источник
Я удалил маршрут к 169.254.0.0 с компьютера 1. Я также добавил маршрут к 192.168.1.2 к компьютеру 1. Соответствующий новый маршрут в route -nтаблице:192.168.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 wlan0
edgargiraffe
Нет, я не верю, что у меня работает VPN.
edgargiraffe
0

Все ваши пакеты от компьютера 1 и компьютера 2 направляются в wlan0 на каждом локальном узле , но ни один беспроводной интерфейс не связан с беспроводной сетью.

Вы назначали IP-адреса вручную? Они должны предоставляться через DHCP маршрутизатором как часть настройки ассоциации / аутентификации.

Сделайте sudo iwlist wlan0 scanна каждом компьютере, чтобы увидеть беспроводные сети, доступные для каждого компьютера. Одним из них должен быть ваш роутер. Маршрутизатор настроен с ESSID (именем беспроводной сети), который отличается от значения по умолчанию?

На какой тип шифрования настроен / способен маршрутизатор? Возможные варианты: Нет (очень-очень плохо), WEP (очень плохо), WPA (плохо) и WPA2 (лучше всего доступно на данный момент). Все 3 системы должны согласовать общее шифрование.

После того, как все это исправлено, компьютер 1 должен иметь возможность беспроводного подключения к маршрутизатору, получить от него IP-адрес (наряду с другой сетевой информацией, такой как шлюз по умолчанию, MTU). Уметь к pingроутеру.

Повторите для компьютера 2 .

Тогда, и только тогда, вы можете действительно ping, если маршрутизатор разрешает маршрутизацию локальных адресов.

waltinator
источник
Из того, что я могу сказать, маршрутизатор использует WPA / WPA2безопасность с WPA or WPA2 - Personalтипом WPA. ESSID настроен так, чтобы он отличался от значения по умолчанию. Оба компьютера могут найти маршрутизаторы с помощью sudo iwlist wlan0 scanкоманды. Оба компьютера могут пропинговать роутер. Компьютер 1 имеет динамический IP, а компьютер 2 имеет фиксированный IP. Ни один компьютер не может пропинговать другой.
edgargiraffe
Я использую NetworkManagerдля управления своими соединениями Wi-Fi и паролями, и iwconfigпоказывает: $ 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
waltinator
0

Кажется, проблема в вашей сети. Не в самих машинах Linux. Я бы сказал, что с вами работает ваш беспроводной маршрутизатор / точка доступа.

  • Поскольку вы можете подключиться к Интернету с обоих хостов, они могут получить MAC-адреса шлюзов по умолчанию через запрос ARP.
  • Они не получают ARP-запросы или ответы друг друга.
  • Они (проверенные на компьютере1) получают запрос маршрутизатора ARP.

Это указывает на то, что ваш маршрутизатор / AP глотает запросы ARP, и без функционирования ARP они не знают MAC другого, и поэтому они не могут общаться по Ethernet друг с другом.

Попробуйте сделать так, чтобы маршрутизатор DHCP назначал адреса вместо статического назначения их самостоятельно.

Или добавьте их статически в кеш ARP, чтобы посмотреть, поможет ли это.

На компьютере1:

arp -s 192.168.1.2 00:22:43:9b:7b:64

На компьютере2:

arp -a 192.168.1.77 c4:85:08:77:d3:f5  
MattBianco
источник
0

Проверьте, есть ли у вашей AP маршрутизатора Wlan опция изоляции (включите Изоляцию AP), отключите ее.

Мохамед А. Хафез
источник