網路規劃與管理技術第四章 TCP/IP 協定與分析  上一頁    下一頁

4-2 ARP 協定與分析

內容:

  • 4-2-1 ARP 協定概述

  • 4-2-2 ARP 協定分析 - Wireshark

  • 4-2-3 ARP 協定分析 - Packet Tracer

4-2-1 ARP 協定概述

基本上,在 Ethernet 網路上傳送訊息,都必須以 Ethernet 封包格式封裝,來源位址與目的位址也都必須是 Ethernet Address 格式(48 bits)。但在 TCP/IP 網路上傳送訊息又都以 IP Address格式(32 bits),那 Ethernet IP 位址之間的轉換機制,則須仰賴 ARP 協定來達成。

『位址解析協定』(Address Resolution Protocol, ARP是被用來以 IP 位址查詢其相對應的 Ethernet 位址,其運作方式如下圖所示。首先主機 A163.15.2.1)欲透過 Ethernet 網路傳送訊息給 IP = 163.15.2.4 主機,則發送出 ARP Request(查問 163.15.2.4)廣播到所屬網路區段內。所有主機都會接收到該 ARP Request 封包,並分解是否詢問自己,如果不是就不予理會而拋棄。主機 C163.15.2.4)收到 ARP Request 後,發現詢問自己則回應 ARP Reply(包含 Ethernet 位址)給發問者(163.15.2.1) 重點說明如下:

    • Ethernet Address:主機在實體網路間識別。

    • IP Address:主機在網際網路間識別。

    • ARP Request:廣播方式。主機利用對方的 IP Address 詢問它的 Ethernet Address

    • ARP Reply被詢問者回應 IP Ethernet Address 對應給詢問者。

    • ARP Cache:主機將詢問過的 Ethernet Address IP Address 對應結果儲存,下次不用再問。

4-5 ARP 運作方式

TCP/IP 規範裡還有『反向位址解析協定』(Reverse Address Resolution Protocol, RARP,功能是由自己的 Ethernet Address 詢問自己應有的 IP Address,大多應用在動態 IP 設定使用,回應者是 RARP Server。但目前網路上大多使用 DHCP Bootp 協定取代,已甚少使用RARP 協定,因此本書不再敘述。但會另外介紹 DHCP 協定與服務。

ARP Request ARP Reply 封包 (如圖 4-6) 大致相同,各欄位功能如下:

Hardware Type表示發送主機使用之網路實體介面種類,如 1 表示 Ethernet 網路介面。

Protocol Type表示所使用的通訊協定,如 0x0800 表示 IP 協定,其它通訊協定模式如表 5-1 所示。

Operation Type表示此封包的工作模式:

1 ARP 要求(ARP Request

2 ARP 回應(ARP Reply

3 RARP 要求(RARP Request)。

4 RARP 回應(RARP Reply

HLEN網路介面卡硬體位址長度。若 Ethernet 位址的長度為 6

PLEN網路協定位址長度。因為 IP 位址長 4 個位元組,此值為 4

Sender HW發送端的硬體位址。如果是 Ethernet 網路的話,此為 6 個位元組長的地址,如 0x8823AA112233

Target HW目的地的硬體位址。

Sender IP發送端的 IP 位址,如 163.15.2.1

Target IP目的地主機的 IP 位址,如163.15.2.4

4-6 ARP 封包格式

4-2-2 ARP 擷取與分析 - Wireshark

(A) 系統分析

ARP 封包是當工作站欲詢問某一 IP 位址是屬於哪一個工作站所有,並請它回應相對應的 Ethernet 位址,因此它是屬於廣播訊息。查詢後工作站會將查詢結果存放於主機的 ARP 佇列(ARP Cache) 內,就不須重複查詢了。因此,我們擷取之前先將 ARP Cache 清除掉,再隨意發送一個封包給某一主機,便會發生 ARP 封包,再擷取它即可。

吾人利用本機(120.118.165.107) 執行 ping 命令,對一個不知 Ethernet 位址的電腦 (IP = 120,118.165.191),讓他自動產生 ARP 查詢訊息,如圖 4-7 所示。

4-7 ARP 封包攫取

(C) 擷取封包工具

我們需要用到下列工具:

Wireshark 網路封包分析器(安裝於 Windows 7)

Windows 命令提示字元:ipconfigarpping 等命令。

(D) 擷取封包步驟

(1) 開啟Windows 命令提示字元(利用管理員身分開啟),首先利用 ipconfig 命令查詢本電腦的 IP 位址(查出為 120.118.165.107),再執行 arp –d arp –a 等命令,清除電腦內記憶的ARP 訊息。

(2) 開啟Wireshark

(2) 開啟Windows 命令提示字元(利用管理員身分開啟),首先利用 ipconfig 命令查詢本電腦的 IP 位址(查出為 120.118.165.107),再執行 arp –d arp –a 等命令,清除電腦內記憶的ARP 訊息。

(2) 選擇 Wireshark 擷取篩選項目(host 120.118.165.107) eth.type = 0x0806 表過濾 ARP 封包,再選擇介面卡,如下:

(3) 此時 Wireshark 已開始擷取封包,吾人立即在Windows 命令提示字元上執行:ping 某一主機位址(ping 120.118.165.191)使它產生 ARP 封包(ARP cache 已清除),如下:

(4) Wireshark 視窗按暫停,並在顯示篩選器上選擇 arp,如下:

(E) ARP 協定分析

Wireshark 視窗按暫停,分析 ARP Request ARP Reply 封包如下:

(1) ARP Request 封包分析

由上圖中第 141 封包是主機發送出去 ARP request 封包,點選該封包由協定視窗上可以看出各個封包標頭的內容。

Ethernet II 封包標頭,如下:

DA:目的位址。廣播位址(broadcast)

SA(Source):來源位址。00:25:b3:0a:c1:17(48 bits)

Type0x0806 ARP 封包。

ARP request 封包標頭,如下:

 

Hardware typeEthernet (I)

Protocol typeIPv4

Hardware size6

Protocol type4

OpcodeRequest (1)

Source MAC address00:25:b3:0a:c1:17

Source IP address120.118.165.107

Target MAC address00:00:00:00:00:00

Target IP address120.118.165.191

(2) ARP Reply 封包分析

由上圖中第 142 封包是 120.118.165.191主機回覆的 ARP respond 封包,點選該封包由協定視窗上可以看出各個封包標頭的內容。

Ethernet II 封包標頭,如下:

Destination00:25:b3:0a:c1:17

Source00:0c:29:a2:ad:3e

Type0x0806 ARP 封包。

ARP reply 封包標頭,如下:

Hardware typeEthernet (I)

Protocol typeIPv4

Hardware size6

Protocol type4

Opcodereply (2)

Source MAC address00:0c:29:a2:ad:3e

Source IP address120.118.165.191

Target MAC address00:25:b3:0a:c1:17

Target IP address120.118.165.107

4-2-3 ARP 擷取與分析 – Packet Tracer

(A) 系統分析

ARP 封包是當工作站欲詢問某一 IP 位址是屬於哪一個工作站所有,並請它回應相對應的 Ethernet 位址,因此它是屬於廣播訊息。查詢後工作站會將查詢結果存放於主機的 ARP 佇列(ARP Cache) 內,就不須重複查詢了。因此,我們擷取之前先將 ARP Cache 清除掉,再隨意發送一個封包給某一主機,便會發生 ARP 封包,再擷取它即可。清除命令如下:

C:\>arp -a  [顯示 ARP Queue]

Internet Address Physical Address Type

192.168.0.2 0001.9636.969a dynamic

 

C:\>arp -d    [刪除 ARP Queue]

Packet Tracer 並沒有模擬 ARP Catch 的功能,我們只要執行 ping 命令,對一個不知 Ethernet 位址的電腦 (IP = 120,118.165.191),讓他自動產生 ARP 查詢訊息即可。

 (B) 網路規劃

吾人利用 Packet Tracer 設計一個簡單網路,包含有三個 PC 電腦,期望網路環境如下:

網路區段

Gateway/DNS

  名稱

  IP 位址

   連接埠口

192.168.0.0/

255.255.255.0

192.168.0.254/

168.95.1.1

PC0

192.168.0.1

HUB(Fa0)

PC1

192.168.0.2

HUB(Fa1)

PC2

192.168.0.3

HUB(Fa2)

因此,我們需要在 Packet Tracer 上選擇下列裝置:

(1) Hub-PT:模擬集線器 (Hub) 一只。提供 PC 電腦之間連線。

(2) PC-PT:模擬 PC 主機三只。PC0 ~ PC2 主機使用。

(3) 規劃網路如下:(請下載 ARP 封包擷取.pkt)

 (C) 網路設定

集線器 Hub 不需任何設定。

PC0 ~ PC3 須設定相關網路參數,如下( PC0)Gateway = 192.168.0.254DBS Server = 168.95.1.1IP Address = 192.168.0.1Subnet Mask = 255.255.255.0

(D) 擷取封包步驟

(1) 步驟 1Packet Tracer 採用 Simulation 模式,編輯 Edit Filters ,點選 ARP,表示只擷取 ARP 封包。

 

(2) 步驟 2再由 PC0 ping 發送給 PC2 如下:(點選 PC0 -> Desktop -> Command Prompt ->)

Packet Tracer PC Command Line 1.0

C:\>ping 192.168.0.2   

Pinging 192.168.0.2 with 32 bytes of data:

(3) 步驟 3 packet Tracer 上按『Auto Capture/Play』暫停。

(D) ARP 協定分析

(1) 步驟 1 Packet Tracer Auto Capture/Play』,則可觀察到擷取到 ARP 的封包,其中包含 ARP Request ARP Reply 兩封包。

(2) 步驟 2分析 ARP Request 封包標頭,如下:

Hardware Type0x0001Protocol Type0x0800Opcode0x0001

Source MAC Source IP

Target MAC 0Target IP = 192.168.0.2

(3) 步驟 3分析 ARP Reply 封包標頭,如下:

Hardware Type0x0001Protocol Type0x0800Opcode0x0002

Source MAC = 0001.9636.969A Source IP = 192.168.0.2

Target MAC000B.BE1D.2DB9Target IP = 192.168.0.1

 

 

翻轉工作室:粘添壽

 

網路規劃與管理技術:

 

 

翻轉電子書系列: