對於網絡管理員來說,ARP協議可能聽起來很熟悉。ARP是第2層設備實現的一種協議,用於發現和相互通信。arping工具就是使用這個協議工作的。
現在,為什么你會需要arping呢?想象一下,你正在使用一個小型的辦公室網絡。使用經典的ping命令來ping主機來驗證它們的可用性是非常誘人的,對嗎?好吧,如果你使用的是ICMP協議,那么你實際上是在執行ARP請求來探測網絡中的設備。
這就是arping工具的作用。和ping一樣,arping也是利用網絡層ARP數據包對網絡主機進行ping。這種方法對於那些不響應第3層和第4層ping請求的主機很有用。
本文向大家介紹如何在Linux服務器www.a5idc.net中使用arping命令。
在Linux中進行Arping
在網絡管理員中,arping是一種流行的工具。但是,它不包含在Linux提供的默認工具集中。因此,您將必須手動安裝Arping。
無論您使用什么發行版,都應該可以直接從官方軟件包服務器中獲得。根據您的系統版本運行以下命令。
對於Debian / Ubuntu及其衍生產品,arp工具需要net-tools軟件包:
$ sudo apt install arping net-tools
對於Fedora及其衍生產品:
$ sudo dnf install arping
對於openSUSE及其衍生產品:
$ sudo zypper install arping2
使用arping
發現主機
如果通過以太網連接了多個設備,則系統已經具有用於通過網絡進行通信的內部ARP表。您可以使用arping列出網絡中的條目。
運行以下命令來這樣做:
$ arp -a
如您所見,該命令將打印主機名列表以及它們的IP和MAC地址。
Ping主機
如果知道目標設備的IP地址,則只需將地址傳遞給arping即可執行ARP ping。
$ arping
Arping還允許您定義ping目標設備的次數。為此,請使用“ -c”標志,后跟要執行的ping數。
快速提示:如果標識了新設備,則應運行以下命令來更新ARP表:
$ arp -a
ARP超時
如果arping無法解析目標的IP地址,這將導致ARP超時。為了演示,請運行以下命令。IP地址應該無法訪問。
$ arping -c 7
如您所見,如果您未指定網絡接口,則arping將通知您。這是因為arping要求您指定接口。如果未指定,arping會嘗試猜測。
指定網絡接口
正如您在上一節中所看到的那樣,仲裁更喜歡您指定網絡接口。如果服務器上有多個網絡接口,則特別有必要。Arping無法猜測要使用哪個網卡。
為避免此問題,我們可以手動指定網絡接口進行仲裁。如果使用此方法,則arping將使用指定的網絡接口,而不是進行猜測。
首先,使用以下命令列出所有可用的網絡接口:
$ ip link show
然后,使用“ -I”標志指定要進行仲裁的網絡接口,如下所示:
$ arping -I -c 7
指定源MAC地址
與以前的方法一樣,也可以指定從其發送數據包的源的MAC地址。為此,請使用“ -s”標志,后跟所需的MAC地址,如下所示:
$ arping -c 7 -s
現在,根據您是否擁有MAC地址,有兩個結果:
如果您擁有MAC地址,則可以使用“ -s”標志。
如果您不擁有該MAC地址,那么您正在嘗試對其進行欺騙。如果真是這樣,那么您將不得不使用混雜模式。在此處查看更多有關混雜模式的信息。作為快速提醒,此模式配置為發送NIC接收的所有幀。
好處是,arping可以在混雜模式下運行。要啟用此模式,請使用“ -p”標志。該命令將如下所示:
$ arping -c 7 -s -p
指定源IP地址
仲裁的另一個有趣功能是可以手動定義源IP地址。此方法的工作方式與上一步非常相似。
但是,此方法確實有其自身的問題。一旦對設備進行ping操作,設備將回復您手動定義的IP地址。沒有該IP地址的所有權,仲裁將不會收到答復。
要手動定義源IP地址,請使用“ -S”標志。
$ arping -c 7 -S
此方法還有其他細微差別。使用此方法的方式取決於您是否擁有IP地址:
如果您擁有IP地址,那么您就很好了。
如果您不擁有IP地址,則可能要使用混雜模式。
如果您的情況與第二個選項匹配,請使用“ -p”標志啟用混雜模式。
$ arping -c 7 -S -p
雖然這些是最常用的arping命令,但arping提供了更多功能。例如,arping提供了一個快速的幫助頁面,可即時獲取文檔:
$ arping --help
你也可以更深入地進入手冊頁:
$ man arping
本教程介紹了使用Arping的一些更常見的方法。您可以使用混雜模式更新ARP表和欺騙MAC和IP地址。