
ローカル ネットワークに 2 台の Ubuntu コンピュータがありますが、どちらも相互に ping できません。試行するたびに、「宛先ホストに到達できません」というエラー メッセージが表示されます。どちらのコンピュータも問題なくインターネットにアクセスできます。
私は Telus の ActionTech v1000h ルーターを使用しています。同社の顧客担当者と連絡を取ったところ、ネットワーク上で 2 つのデバイスが相互に ping できない理由はないはずだと言われました。
まったく困惑しています。皆さん何かアイデアはありますか?
コンピュータ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 に ping を実行しようとしたときのエラーの例:
192.168.1.2にpingする
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:最初に 192.168.1.254 に ping し、次に相互に ping を実行したときの両方のコンピューターの tcpdump ログ:
コンピュータ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:両方のコンピューター etho0 に静的 IP を設定し、インターネット ケーブルで接続します。両方のコンピューターは、イーサネット ケーブルを介して確実に相互に ping を実行できます。eth0ifconfig -a
の結果:
コンピュータ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)
答え1
両方のコンピュータからゲートウェイにpingを実行しping 192.168.1.254
、次にcomp1からcompt2に、comp2からcomp1にpingを実行して、arp -a
両方のボックスからの結果を投稿します。
編集
興味深いことに、何かが交通を妨害している
両方のコンピューターの 1 つのウィンドウで実行しsudo tcpdump -ni wlan0 arp
、両方のコンピューターの別のウィンドウから相互に ping を実行し、ゲートウェイに再度 ping を実行して結果を投稿します。
編集2
これまでのところ、comp1 は ARP 要求を送信している (comp2 のイーサネット アドレスを要求している) が、ARP 応答 (何も返ってこない) を受け取っていないことが示されています。全体像を確認するには、PC2 からの tcpdump を確認する必要があります。screen コマンドを実行するか、PC1sudo tcpdump -w pc1.pcap -ni wlan0 arp &
と PC2 でこれを実行します。sudo tcpdump -w pc2.pcap -ni wlan0 arp &
&fg %1
バックグラウンドで実行し、pingのプロンプトを返す必要があります。pingが失敗したら、 stopでジョブをフォアグラウンドに戻しctrl+c
、書き込まれたファイルを読み取ります。sudo tcpdump -r pc1/2.pcap
編集3
PCはARPを送信して本来の役割を果たしていますが、ルーターへのポイントを通過できません。ファイアウォール設定を無効にしているのかもしれません。VLANをサポートしていないのでしょうか?もう少し長く実行できればいいのにと思います。22:45:48.379058ルーターはPC1を探しているときに独自のARP要求を送信し、22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28
両方のPCがそれを見ているはずです。PC1がそれを見てIPで応答したことはわかりますが、PC2がそれを受け取ったかどうかはわかりません。22:45:09.796214ただし、時計が NTP と同期されていることを前提とします。
編集4
まだ解決されていないようです。両方の PC に eth アダプターがあるかどうかはわかりません。wlan ではなく eth でルーターに有線接続して、ping できるかどうか確認できますか? または、別のルーターを入手しますか? または、電話でホットスポットを作成し、両方の PC を接続して ping を試しますか? また、2 台の PC を接続して相互に ping できたことに驚きました。クロスオーバー ケーブルを使用しましたか?
答え2
2 台のコンピューターをイーサネット ケーブルで直接接続し、両方に固定 IP アドレス (例: A: 192.168.1.10、B: 192.168.1.20) を設定して、再度 ping を実行してみてください。
そうすれば、問題がルーターから発生しているのか、コンピューターから発生しているのかがすぐにわかります。
答え3
このような奇妙なものを見たときの私の最初の対応は、Wireshark をインストールすることです。
次に、非ルートとして使用するための権限が付与されるようにします。
sudo dpkg-reconfigure wireshark-common
「はい」オプションを選択します。
usermod -a -G wireshark your-user-name
ログアウトして再度ログインし、新しいグループ メンバーシップを取得すると、非ルート ユーザーとしてパケットのキャプチャを実行できるようになります。
次に、ネットワークに接続されたインターフェースを選択して、マシン上で Wireshark を実行します。結果の解釈を容易にするために、テスト以外のトラフィックを最小限に抑えるようにしてください。
あるマシンでWiresharkを実行し、別のマシンからpingを実行しようとすると、すべきWireshark を実行しているマシンで、「<ping しようとしている IP> は誰ですか」のようなメッセージが表示される。このメッセージが表示された場合、ping しようとしているコンピュータの要求が Wireshark コンピュータによって受信されている。Wireshark で「<ping しようとしている IP アドレス> は <mac アドレス> にあります」のようなメッセージも表示されるはずである。このメッセージが表示された場合、Wireshark コンピュータは応答している。この場合は、ping しているコンピュータで Wireshark を実行し、ping しているコンピュータで「<ping しようとしている IP アドレス> は <mac アドレス> にあります」という応答が表示されるかどうか確認する。
これが低レベルすぎて理解できない場合は申し訳ありません。この方法は詳細にまで踏み込みます。しかし、ネットワーク上で実際に何が起こっているかを確認できれば、問題がはるかに明確になる傾向があります。
答え4
私の LAN でも同じ症状がありました (Ubuntu マシンのみ)。新しいルーターを入手してから発生しました。デュアル バンドのルーターです。問題の原因がわかりませんでしたが、1 つの「バンド」が他のバンドと完全に分離しているのではないかと思いました。テストは簡単でしょう。1 台のマシンを Wi-Fi から切断し、再度接続しました (同じ SSID に)。すると、なんと、運が良かったのです (50 対 50 の確率でしょうか)。もう 1 台のマシンの LAN に表示され、ping を実行してログインできるようになりました。上記の「nmap」で手がかりを得ました。アイデアをありがとうございます。