Ping 只在一個方向上運作

Ping 只在一個方向上運作

我有一個運行centos 7的小型集群,由機器A、B和C組成。

機器 A 可以 ping 通 B 和 C。

我的問題是機器 C 無法 ping 通機器 B。

我嘗試過更改網路交換器、更改乙太網路、停用所有電腦上的防火牆和 SELinux,但問題仍然存在。我還檢查了 IP 位址和 /etc/hosts 檔案以確保它們全部一致。

我想知道我可以嘗試什麼來幫助診斷這個問題的原因。

謝謝 !

答案1

您是透過電腦名稱還是透過 IP 位址進行 ping 操作,還是兩種方式都相同?

這些機器中是否有執行路由(多個 NIC)的機器?

我假設當你說它們在同一個區域網路上時,你的意思是每台機器都使用一個一個且唯一一個連接到同一交換器的網路卡,且它們之間沒有路由器。我還假設它們位於同一邏輯 IP 子網路上。如果這是不正確的,請在問題中提供更多詳細資訊。我有理由相信這些假設並不是100%正確的。

值得嘗試的事:

  • 首先透過 IP 位址進行 Ping。這將排除名稱解析問題。如果成功,則您可能會遇到名稱解析問題(例如 DNS 伺服器與主機檔案不一致)。
  • 檢查每台電腦上介面的子網路遮罩。如果它們不匹配,則在某些情況下可能會發生這種情況。
  • 檢查是否有多個網關。機器 C 可能有多個定義。如果它們位於同一 IP 子網路上,這應該不是問題。訊息目標主機不可達意味著它知道它嘗試 ping 的位址,但似乎無法透過定義的路由到達那裡。

如果您可以為每台機器提供路由表,這將會有所幫助,這通常是route -n在 Linux 上完成的。

答案2

當您說「它說目標主機無法存取」時,報告此情況的裝置的 IP 位址是什麼?我的意思是,在 ping 輸出中您會得到類似以下內容的內容:

來自 xxxx icmp_seq=2 目標主機無法存取

那麼輸出中的 xxxx 是什麼呢?它可能是 C 自己的 IP 位址,但值得檢查。

如果它是 C 自己的位址,那麼這通常意味著它的 ARP 表中沒有 B,並且沒有得到 ARP 請求的答案。若要進行確認,請檢查「arp -a」的輸出(在ping 執行時,或在停止ping 後立即),是否顯示包含B 的IP 位址及其MAC 位址的行,是否顯示包含B 的IP 和「的行」不完整」或與 B 的 IP 根本不符?

也可能有幫助的是使用 tcpdump 或wireshark 等運行資料包捕獲,以查看運行 ping 時網路上實際發生的情況。同時在 B 和 C 上進行 2 次捕獲可能會更有用。

相關內容