ARP協議詳解之ARP動態與靜態條目的生命週期

ARP動態條目的生命週期

動態條目隨時間推移自動添加和刪除。

 

  • q  每個動態ARP緩存條目默認的生命週期是兩分鐘。當超過兩分鐘,該條目會被刪掉。所以,生命週期也被稱爲超時值。
  • q  延長規則:當ARP條目已存在,使用該條目後,將會重設超時值爲兩分鐘。

 

【實例1-12】下面將驗證動態條目的生命週期是兩分鐘。具體操作步驟如下所示:

(1查看本機的ARP緩存表。執行命令如下所示:

 

  • C:\Documents and Settings\Administrator>arp -a
  • No ARP Entries Found

 

輸出的信息表示本節中沒有任何ARP緩存條目。

(2在本機上執行ping命令,通過ARP請求廣播獲取動態ARP條目。如下所示:

 

  • C:\Documents and Settings\Administrator>ping 192.168.7.6
  • Pinging 192.168.7.6 with 32 bytes of data:
  • Reply from 192.168.7.6: bytes=32 time<1ms TTL=64
  • Reply from 192.168.7.6: bytes=32 time<1ms TTL=64
  • Reply from 192.168.7.6: bytes=32 time<1ms TTL=64
  • Reply from 192.168.7.6: bytes=32 time<1ms TTL=64
  • Ping statistics for 192.168.7.6:
  •     Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
  • Approximate round trip times in milli-seconds:
  •     Minimum = 0ms, Maximum = 0ms, Average = 0ms

 

執行以上命令後,將會產生接口地址爲192.168.7.6的動態ARP緩存條目。

(3查看ARP緩存表。執行命令如下所示:

 

  • C:\Documents and Settings\Administrator>arp -a
  • Interface: 192.168.7.8 --- 0x2
  •   Internet Address      Physical Address      Type
  •   192.168.7.6          50-e5-49-eb-46-8d     dynamic

 

從輸出的信息中可以看到,本機中存在一條ARP緩存條目。

(4過兩分鐘後,再次查看ARP緩存表。發現該條目已被刪除。顯示結果如下所示:

 

  • C:\Documents and Settings\Administrator>arp -a
  • No ARP Entries Found

 

從輸出信息中,可以確定前面的動態ARP條目已被刪除。

【實例1-13】下面將驗證重複使用動態條目,條目會一直生效。具體操作步驟如下所示:

(1查看本機的ARP緩存表。執行命令如下所示:

 

  • C:\Documents and Settings\Administrator>arp -a
  • No ARP Entries Found

 

輸出的信息表示本節中沒有任何ARP緩存條目。

(2在本機上執行ping命令,通過-t選項實現一直使用獲取到的動態條目。如下所示:

 

  • C:\Documents and Settings\Administrator>ping 192.168.6.100 -t
  • Pinging 192.168.6.100 with 32 bytes of data:
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • Reply from 192.168.6.100: bytes=32 time<1ms TTL=64
  • ......

 

執行以上命令後,將會產生接口地址爲192.168.6.100的動態ARP緩存條目。

(3查看ARP緩存表。如下所示:

 

  • C:\Documents and Settings\Administrator>arp -a
  • Interface: 192.168.7.8 --- 0x2
  •   Internet Address         Physical Address      Type
  •   192.168.6.100          50-e5-49-eb-46-8d     dynamic

 

從輸出的信息中,可以看到本機中有一條動態ARP條目。該主機的ARP條目緩存時間,可以通過抓包工具獲取到。下面使用Wireshark過濾只顯示ARP協議的數據包,如圖1.20所示。

 

 

圖1.20  動態條目重複使用

從該界面可以看到,捕獲到的所有數據包中只有第9個數據幀是ARP廣播請求包。這是因爲在第一次通信時,不知道對方(192.168.6.100)的MAC地址。在後面捕獲到的數據包中,沒有出現過這樣的廣播包。這說明在該過程中,主機中的ARP條目沒有發送變化。

ARP靜態條目的生命週期

靜態條目一直保留在ARP緩存中,意思是永久生效。但不同的操作系統中,靜態條目的保存方式是不同的。例如,在Windows XP系統中,重新啓動計算機後該條目失效。而在Windows 7中,即使重新啓動計算機後,該靜態條目仍然保存。下面通過幾個實例依次驗證各種操作系統對靜態條目的處理方式。

【實例1-14】下面驗證Windows XP的靜態條目不保存情況。具體操作步驟如下所示:

(1手動綁定接口爲192.168.7.8的ARP條目。執行命令如下所示:

 

  • C:\Documents and Settings\Administrator>arp -s 192.168.7.7 00-19-21-3f-c3-e5

 

執行以上命令後,沒有任何輸出信息。

(2查看ARP緩存表。執行命令如下所示:

 

  • C:\Documents and Settings\Administrator>arp -a
  • Interface: 192.168.7.8 --- 0x2
  •   Internet Address      Physical Address      Type
  •   192.168.7.7          00-19-21-3f-c3-e5     static

 

從輸出的信息中,可以看到接口爲192.168.7.7的ARP緩存條目爲static(靜態)。

(3重新啓動計算機。啓動後,再次查看ARP緩存表。如下所示:

 

  • C:\Documents and Settings\Administrator>arp -a
  • No ARP Entries Found

 

輸出的信息表示沒有找到ARP條目。

【實例1-15】下面驗證Windows 7的靜態條目保存。具體操作步驟如下所示:

(1手動綁定接口爲192.168.7.6的ARP條目。執行命令如下所示:

 

  • C:\Documents and Settings\Administrator>arp -s 192.168.7.6 50-e5-49-eb-46-8d

 

執行以上命令後,沒有任何輸出信息。

(2查看ARP緩存表。執行命令如下所示:

 

  • C:\Documents and Settings\Administrator>arp -a
  • Interface: 192.168.7.8 --- 0x2
  •   Internet Address      Physical Address      Type
  •   192.168.7.6           50-e5-49-eb-46-8d     靜態

 

從輸出的信息中,可以看到接口爲192.168.7.6的ARP緩存條目爲靜態。

(3重新啓動計算機。啓動後,再次查看ARP緩存表。如下所示:

 

  • C:\Documents and Settings\Administrator>arp -a
  • Interface: 192.168.7.8 --- 0x2
  •   Internet Address      Physical Address      Type
  •   192.168.7.6           50-e5-49-eb-46-8d    靜態

 

從輸出的信息中可以看到綁定的靜態條目仍然存在。

【實例1-16】下面驗證Linux的靜態緩存是否保存。具體操作步驟如下所示:

(1查看本機的ARP緩存表。執行命令如下所示:

 

  • [email protected]:~# arp -a
  • localhost (192.168.5.5) at 00:0c:29:56:bd:21 [ether] on eth0

 

輸出的信息,表示本機中有一條動態ARP緩存條目。

(2將192.168.5.5的IP地址與MAC地址綁定。執行命令如下所示:

 

 

執行以上命令後,接口爲192.168.5.5的ARP條目將爲靜態。

(3查看ARP緩存表。執行命令如下所示:

 

  • [email protected]:~# arp -a
  • localhost (192.168.5.5) at 00:0c:29:56:bd:00 [ether] PERM on eth0

 

從輸出的信息中可以看到查看到的ARP條目中,出現了一個PERM關鍵字。該關鍵字表示這條ARP條目爲靜態。

(4重新啓動計算機。啓動後,再次查看ARP緩存表。執行命令如下所示:

 

 

執行以上命令後,沒有任何信息輸出。這表示該靜態條目,重新啓動計算機後將被刪除。