web-dev-qa-db-ja.com

一方向にのみ機能するping

マシンA、B、Cで構成されるcentos 7を実行している小さなクラスターがあります。これらはすべて、同じLAN上で接続された個別の物理マシンです。

マシンAはBとCにpingできます。マシンBはAとCにpingできます。ただし、マシンCはマシンAにしかpingできません。

私の問題は、マシンCがマシンBにpingできないことです。宛先ホストに到達できませんと表示されます。

ネットワークスイッチの変更、イーサネットの変更、すべてのマシンでファイアウォールとSELinuxの無効化を試みましたが、それでも問題は解決しません。また、IPアドレスと/ etc/hostsファイルをチェックして、それらがすべて一貫していることを確認しました。

この問題の原因を診断するために何ができるのだろうかと思っています。

ありがとうございました !

1
Andrew

マシン名またはIPアドレスでpingを実行しますか、それとも両方の方法で同じですか?

これらのマシンのいずれかがルーティング(複数のNIC)を実行していますか?

同じLAN上にあると言うときは、各マシンが同じスイッチに接続された1つだけネットワークカードを使用していて、それらの間にルーターがないことを意味すると思います。 。また、それらが同じ論理IPサブネット上にあると想定しています。これが正しくない場合は、質問に詳細を記入してください。私はこれらの仮定が100%正しくないと信じる理由があります。

試すべきこと:

  • 最初にIPアドレスでpingを実行します。これにより、名前解決の問題が除外されます。これが成功した場合は、おそらく名前解決の問題があります(DNSサーバーがhostsファイルに同意しないなど)。
  • 各マシンでインターフェイスのサブネットマスクを確認してください。それらが一致しない場合、これは状況によっては発生する可能性があります。
  • 複数のゲートウェイを確認します。マシンCには複数の定義がある場合があります。それらが同じIPサブネット上にある場合、これは問題にはなりません。メッセージDestination Host unreachableは、pingしようとしているアドレスを認識しているが、定義されているルートでは到達できないように見えることを意味します。

Linuxでは通常route -nで実行される、各マシンのルーティングテーブルを提供できれば便利です。

1
GuitarPicker

「宛先ホストに到達できません」と言う場合、これを報告するデバイスのIPアドレスは何ですか。つまり、ping出力では、次のようになります。

X.x.x.xからicmp_seq = 2宛先ホストに到達できません

では、その出力のx.x.x.xは何ですか?おそらくC自身のIPアドレスですが、確認する価値があります。

それがC自身のアドレスである場合、これは通常、ARPテーブルにBがなく、ARP要求への応答を取得していないことを意味します。確認するには、「arp -a」の出力を確認します(pingの実行中、またはpingの停止直後)。BのIPアドレスとそのMACアドレスの行、BのIPと「不完全」またはBのIPとの行がまったくありませんか?

また、たとえば、を使用してパケットキャプチャを実行することも役立ちます。 tcpdumpまたはwiresharkを使用して、pingの実行時にネットワークで実際に何が発生しているかを確認します。 BとCで同時に2つのキャプチャを取得する方がさらに便利な場合があります。

1
hertitu