如何透過命令列介面取得交換器的ARP表?

如何透過命令列介面取得交換器的ARP表?

我可以在網路交換器的使用者介面上看到連接的設備資訊。是否可以使用命令列或 PowerShell 查詢交換器的 ARP 表?

在第三條評論後添加了以下詳細信息,並寫了前兩個答案。

假設我們有一個以交換器為中心的子網,基於Linux和Windows的電腦都連接到交換器。假設網路中有一台 Windows 計算機,而我們打算將資料包傳送到子網路中的另一台電腦。因此,我們需要知道它的地址。

此時,我嘗試向網路的廣播 IP 位址發送 PING 請求以利用ARPWindows 指令,但沒有主機回應我。也就是說,我們電腦的 ARP 表並沒有被新條目刷新。出於有效的安全原因,現代基於 Linux 和 Windows 的系統可能不支援電腦網路的廣播屬性。

這就是為什麼,我想到透過主機的命令 shell 取得交換器的 ARP 表到主機。

答案1

從網路設備查詢資訊首先需要該設備具有管理介面。這意味著根本無法查詢非託管設備。

有3種管理介面:命令列、GUI和SNMP。如果設備具有串行接口,則可以將電腦直接連接到該接口以存取 CLI。在遠端設備上,可以透過 SSH 或 telnet 存取 CLI;出於安全原因強烈建議不要後者。 GUI 介面是基於瀏覽器的。

設備可用的介面可以(或至少應該)在設備規格中找到。 Soho 路由器通常只有 GUI,但某些裝置可能可以使用 CLI。 SNMP 極為罕見。

網路設備只是一台設計用於執行非常特定任務的電腦。與任何電腦一樣,它們具有由製造商設計的作業系統。 Cisco IOS、ArubaOS、ExtremeXOS、Juniper 作業系統等與任何其他電腦作業系統的差異相同。 Cisco IOS 無法辨識 ArubaOS 指令。

簡單網路管理協議是每個網路管理應用程式用來管理設備的協定。有 3 個或多或少不相容的版本 - 例如,僅具有 SNMPv1 介面的交換器根本無法使用 SNMPv2c 進行查詢。

管理 SNMP 使用的設備物件標識符(OID)。它們具有標準化結構,以字串 1.3.6.1.4.1 開頭。這是讀:

1     iso - ISO is the name of the group that launched the OID standard 
.3   org - Organization specified next to this figure 
.6   dod - The US Department of Defense 
.1   internet - Determines that communication will be through the internet 
.4 private - States that the device is manufactured by a private company 
.1 enterprise - States that the manufacturer is an enterprise

字串中的下一個元素是標識製造商的私人企業編號 (PEN)。這些都是由 IANA 分配。例如,對於 Cisco 設備,字串以 開頭1.3.6.1.4.1.9,對於 HP 設備,字串以 開頭1.3.6.1.4.1.11,對於 Intel 設備1.3.6.1.4.1.343,以此類推。

有一些命令列 SNMP 實作。網路SNMP開放式SNMP幾乎都是業界標準。使用它們除了協議版本之外還有一些障礙:

  • 如何在設備中實現 SNMP 完全由製造商自行決定。 ACME GreatSwitch 2000 上存在的物件可能無法在 ACME GS 1000 中實現;運行 ACMEOS 42 的 ACME GS 2000 上存在的物件可能在 ACMEOS 41 或 43 中不可用。
  • 雖然有一些線上儲存庫,例如對象識別碼訊息油視窗,它們不可靠。使用可用的 OID 更新它們並MIB完全由製造商自行決定。最新資訊只能從製造商取得

……僅舉兩個例子。

由於上述原因,根本不可能有一個簡單的命令query switch arp table。有人創建了一個適用於 PowerShell 的 SNMP cmdlet。然而,就像所有其他命令列 SNMP 實作一樣需要了解可用的 OID 以及如何使用它們

相關內容