0.9 Ethernet/ARP

Wireshark Lab - Ethernet & ARP

在這個lab,我們主要研究Ethernet protocol以及ARP protocol。

(一)抓取並分析Ethernet frame

首先,我們開始抓取Ethernet frame,步驟如下:

(註:如果你無法順利使用Wireshark,可以上官方網站去下載範例檔

http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip

並選擇ethernet-ethereal-trace-1 檔案。)

一、  確定你的瀏覽器的cache是清空的。

如果你是使用Mozilla Firefox,選擇Tools -> Clear Private Data and check the box for Cache.

如果你是使用Internet Explorer,選擇Tools->Internet Options->Delete Files.

二、  連結這個URL:

http://gaia.cs.umass.edu/wireshark-labs/HTTP-ethereal-lab-file3.html

你的瀏覽器應該會顯示一個THE BILL OF RIGHTS的網頁。

三、  停止Wireshark 封包抓取,先找出封包號碼,分別是從你的電腦傳到

gaia.cs.umass.edu的HTTP GET message,以及從gaia.cs.umass.edu

傳到你電腦的HTTP response message.

     ↑Fig. 1 第四個封包是HTTP GET message

四、  因為這個lab是關於Ethernet 以及 ARP,在此,我們對IP以及更高層的協定並不感興趣,接著改變Wireshark的”listing of captured packets”,設定成只顯示IP協定的protocol.(操作如下: 選擇Analyze->Enabled Protocols. Then uncheck the IP box and select OK.)

你將會看到如以下的圖:

     ↑Fig. 2 GET request Ethernet information

為了要回答下列的問題,你需要觀察封包細節以及封包內容視窗的詳細資訊。

選擇HTTP GET message裡面的Ethernet frame。展開Ethernet II關於封包細節資訊的視窗。這樣你就會看到Ethernet frame裡面的內容了。

 

參考Fig.2 回答下列1~5題,關於HTTP GET message裡面Ethernet frame的資訊。

1.你電腦裡面的的48-bit Ethernet address是什麼?

答案: Ethernet address是00:09:5b:61:8e:6d

2.在你的Ethernet frame 裡面,48-bit detination address是什麼?這個是gaia.cs.umass.edu的Ethernet address?什麼裝置上有這個Ethernet address?

答案:destination address是00:0c:41:45:90:a8,並不是gaia.cs.umass.edu的Ethernet address,這個是我的Linksys路由器的address

3.取得two type Frame type field的16位元值,bit值為1代表flag field?

答案:Frame type field: 0x0800

4.有多少bytes的ASCII”G”在GET裡面?

答案:52 bytes.

5.在Ethernet frame 裡CRC的16位元值?

答案:CRC field : 0x:0d0a 0d0a

接下來,參考Fig.3回答下列6~10題,關於HTTP response message 裡面Ethernet frame的資訊

     ↑Fig. 3 OK response Ethernet information

6.Ethernet source address是什麼?這個是你的電腦或gaia.cs.umass.edu的address?

答案:source address: 00:0c:41:45:90:a8,不是我的電腦或gaia.cs.umass.edu的address,這個是我的Linksys路由器的address

7.Ethernet frame 裡destination address是什麼?這個是你電腦的Ethernet frame?

答案:destination address:00:09:5b:61:8e:6d

8.取得two type Frame type field的16位元值,bit值為1代表flag field?

答案:Frame type field: 0x0800

9.有多少bytes的ASCII”O”在HTTP response code裡面?

答案:52 bytes.

10.在Ethernet frame 裡CRC的16位元值?

答案:CRC field : 0x:0d0a 0d0a

(二)位址解析協定

在這個章節,我們要觀察ARP protocol。

ARP Caching:

回想一下ARP protocol,通常對電腦維持cache在IP address 和Ethernet address的轉換。arp command(在MS-DOS和Linux / Unix)則是用來查看和操作此緩存的內容。由於ARP command 和 ARP protocol 具有相同的名稱,這很容易混淆。但是它們是不同的,使用arp command 查看和操作ARP cache 中的內容,而ARP protocol定義的格式,這意味著發送和接收的消息,並定義消息的傳輸和接收上所採取的行動。

以下兩種方式可以看電腦裡面的 APR cache 內容:

MS-DOS - arp command 在 c:\windows\system32 裡面

Linux/Unix -  /sbin/arp (linux),/usr/etc/arp (一些Unix版本)

不帶參數的arp command 將顯示在電腦中ARP cache 中的內容。

運行arp command。

     ↑Fig. 4 Command prompt after executing arp

11.寫下電腦的ARP cache 內容。每列的值代表什麼意思?

答案:

Internet Address : IP address

Physical Address : MAC address

Type : protocol type

為了觀察電腦發送和接收ARP message,我們需要清除ARP cache,否則很可能在電腦的cache中,找到所需的IP-Etherner address 轉換,就不需要再發送一個ARP message。

MS-DOS –command  arp-d* 將可以清除ARP cache

Linux/Unix - command arp-d*,將可以清除ARP cache,但是需要root權限。

觀測ARP行動

執行以下操作:

一、  清除ARP cache

二、  確保瀏覽器的cache是空的

三、  啟動Wireshark packet sniffer

四、  進入此連結http://gaia.cs.umass.edu/wireshark-labs/ HTTP-wireshark的實驗室file3.html

五、  停止Wireshark packet capture,改變Wireshark的“listing of captured packets”,只顯示IP protocol 的資訊。

現在應該看到一個如下圖的Wireshark視窗:

     ↑Fig.5 ARP packet

在上面的例子中,前兩個trace包含ARP message。上圖是顯示trace 1。

參考Fig.5回答12~14題:

 

     ↑Fig. 6 ARP request message

12.找出在ARP request message裡面Ethernet frame包含的16進位表示的source address 以及 destination address?

答案:

Source address : 00:d0:59:a9:3d:68.

Destination address : ff:ff:ff:ff:ff:ff(廣播地址)

13.找出16進位表示 2 byte Ethernet Frame 類型欄位. bit值為1代表flag field?

答案:

Ethernet frame 類型欄位 : 0x0806 for ARP

14.從ftp://ftp.rfc-editor.org/innotes/std/std37.txt下載ARP規範

以及一個詳細討論ARP的網站http://www.erg.abdn.ac.uk/users/gorry/course/inet-pages/arp.html

a)  How many bytes from the very beginning of the Ethernet frame does the ARP opcode field begin?

答案:20 bytes

b)  What is the value of the opcode field within the ARP-payload part of the Ethernet frame in which an ARP request is made?

答案:0x0001

c)  Does the ARP message contain the IP address of the sender?

答案:有,ARP message 包含 發送者IP address 192.168.1.105

d)  Where in the ARP request does the “question” appear – the Ethernet address of the machine whose corresponding IP address is being queried?

答案: 當“Target MAC address” 設定成 00:00:00:00:00:00  question 機器就查詢對應的 IP address (192.168.1.1)

 參考Fig.7回答15~16題:

     ↑Fig. 7 ARP reply message

15.Now find the ARP reply that was sent in response to the ARP request.

a)  How many bytes from the very beginning of the Ethernet frame does the ARP opcode field begin?

答案:20 bytes

b)  What is the value of the opcode field within the ARP-payload part of the Ethernet frame in which an ARP response is made?

答案:0x0002

c)  Where in the ARP message does the “answer” to the earlier ARP request appear – the IP address of the machine having the Ethernet address whose corresponding IP address is being queried?

答案:出現在Sender MAC address欄位,包含寄送端 Ethernet address 00:06:25:da:af:73 以及 IP address 192.168.1.1.

16.找出在ARP reply message裡面Ethernet frame包含的16進位表示的source address 以及 destination address?

答案:

Source address : 00:06:25:da:af:73.

Destination address : 00:d0:59:a9:3d:68

17.Open the ethernet-ethereal-trace-1 trace file in http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip. The first and second ARP packets in this trace correspond to an ARP request sent by the computer running Wireshark, and the ARP reply sent to the computer running Wireshark by the computer with the ARP-requested Ethernet address. But there is yet another computer on this network, as indiated by packet 6 – another ARP request. Why is there no ARP reply (sent in response to the ARP request in packet 6) in the packet trace?

答案:因為ARP request 是廣播的,所以會找到許多ARP request 封包,但是ARP reply是直接指向發送端的Ethernet address,所以只有一個。