Windows-Xp

需要說明:VMware 網路適配器上基於 TCP/IP 的 NetBIOS 會干擾對網路共享的訪問

  • May 17, 2010

(從 StackOverflow 移到這裡)

前段時間,我們團隊中的幾乎所有工作站(Windows XP SP2)在訪問網路共享時都表現出間歇性但頻繁的延遲。通常,第一次訪問一段時間未訪問的共享會導致工作站幾乎凍結長達 30 秒。然後一切又開始正常工作了。

使用來自 Sysinternals 的 TCPView,我看到在此延遲期間,文件伺服器上的netbios-ssn埠連接到狀態****SYN_SENT

第一次嘗試:

為 Intranet 網路適配器禁用TCP/IP 上的 NetBIOS 。

問題解決了,但我不想為 Intranet 操作我們集中管理的網路配置。

第二次嘗試:

僅為 VMWare 網路適配器禁用TCP/IP上的 NetBIOS(VMNet1 僅用於主機通信)。

問題又解決了!

我的問題:

  • 為什麼一個網路適配器上的TCP /IP 上的 NetBIOS 會干擾另一個網路適配器上的 TCP/IP 上的 NetBIOS?
  • 此問題是否特定於 VMWare 網路適配器?
  • 有沒有其他人見過這種現象?

附加資訊:

  • VMWare 工作站版本 6.0.3
  • 當我開始認真分析問題時,再也不可能找出問題開始時我們的系統發生了什麼變化。

我見過類似的現象。

乍一看,症狀聽起來不太相似:Windows 資源管理器有時會掛起幾秒鐘,無論是訪問本地磁碟還是網路共享。

但經過一番調查,我認為掛起是由類似的 NetBIOS 問題引起的。

一些系統細節:

  • 視窗 XP 專業版 SP3
  • 已安裝 VMware 伺服器 1.0.9
  • VMNet1(僅限主機)網路適配器和 NetBOIS over TCP/IP 已啟用
  • VMNet8 (NAT) 網路適配器和 NetBOIS over TCP/IP 已啟用
  • 系統唯一物理網卡的靜態IP地址是192.168.10.111。此適配器配置為使用 192.168.10.192 作為其唯一的 WINS 伺服器。MAC地址:00-16-17-FA-2C-D4
  • 在 VMNet1 適配器上,系統的靜態 IP 地址是 192.168.137.1。未配置 WINS 伺服器。MAC地址:00-50-56-C0-00-01
  • 在 VMNet8 適配器上,系統的靜態地址是 192.168.145.1。未配置 WINS 伺服器。MAC地址:00-50-56-C0-00-08
  • 所有虛擬機都配置為使用 NAT,但無論如何都會停止。

我整天都在執行 Wireshark,在物理適配器上嗅探數據包。我注意到,只要 Explorer 同時掛起幾秒鐘,就會向 WINS 伺服器發送一個 NetBIOS 名稱服務查詢數據包。這些數據包包含 VMNet 適配器的地址之一作為其源 IP 地址!

這是其中一個可疑數據包:

Frame 25475 (92 bytes on wire, 92 bytes captured)
Ethernet II, Src: 00:16:17:fa:2c:d4 (00:16:17:fa:2c:d4), Dst: 00:15:c5:87:4f:6a (00:15:c5:87:4f:6a)
Internet Protocol, Src: 192.168.145.1 (192.168.145.1), Dst: 192.168.10.192 (192.168.10.192)
User Datagram Protocol, Src Port: netbios-ns (137), Dst Port: netbios-ns (137)
NetBIOS Name Service
 Transaction ID: 0x82a5
 Flags: 0x0000 (Name query)
 Questions: 1
 Answer RRs: 0
 Authority RRs: 0
 Additional RRs: 0
 Queries
   *<00><00><00><00><00><00><00><00><00><00><00><00><00><00><00>: type NBSTAT, class IN

我認為這是不正確的。數據包的源 IP 地址應設置為 192.168.10.111。

我沒有在 WINS 伺服器的介面上嗅探數據包。但我希望它通過其預設網關向 192.168.145.1 發送回复,因為它沒有連接到 192.168.145.0 網路。網關應以“網路不可達”拒絕此數據包。

由於這是一個 UDP 數據包,因此在 SYN_SENT 狀態下沒有連接。但是以相同方式“損壞”的 TCP SYN 數據包應該使連接處於 SYN_SENT 狀態,直到發生超時。

我試圖解決這個問題的一些事情:

  1. 禁用兩個 VMNet 適配器:問題已解決。沒有可疑的數據包。
  2. 重新啟用 VMnet1:資源管理器有時會再次掛起。來源為 192.168.137.1 的可疑數據包。
  3. 禁用 VMNet1 並重新啟用 VMNet8:資源管理器有時會掛起。來源為 192.168.145.1 的可疑數據包。
  4. 啟用兩個 VMNet 適配器,但禁用兩者的 TCP/IP 上的 NetBIOS:問題已解決。沒有可疑的數據包。
  5. 為 VMNet1 重新啟用 TCP/IP 上的 NetBIOS:資源管理器有時會再次掛起。來源為 192.168.137.1 的可疑數據包。
  6. 為 VMNet1 禁用 TCP/IP 上的 NetBIOS 並為 VMNet8 重新啟用它:資源管理器有時會掛起。來源為 192.168.145.1 的可疑數據包。
  7. 將所有介面的介面指標從自動指標更改為靜態值。具有最低指標的 LAN 適配器:Explorer 有時仍會掛起並擷取可疑數據包。

我已經在 Network Connections->Advanced->Advanced Settings以及執行netsh interface ip show config檢查了適配器順序。本地連接是兩個地方列出的第一個連接。

此外,我注意到一些源 IP 地址為 192.168.137.1 和 192.168.145.1 的 NTP 數據包通過物理適配器發送到 192.168.10.192(它是一個 AD DC)。

引用自:https://serverfault.com/questions/43373