11

3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

ARP 基本觀念

ARP 封包架構

ARP 運作流程

ARP 快取的使用

ARP 指令

利用網路監視器分析封包內容

Proxy ARP

3 位址解析通訊協定(ARP)

Page 2: 3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

3-2

精通Windows Server 2003 TCP/IP

位址解析通訊協定(Address Resolution Protocol,ARP)是定義

在 RFC 826 中的 Internet 標準,也是 TCP/IP 通訊協定組件中的一

部份,它主要是用來解析 IP 位址或是主機名稱所對應的硬體位

址,以達到資料傳遞的功能。本章我們將討論有關 ARP 運作原

理,以及如何使用在網路管理方面的部份。

3-1 ARP 基本觀念

若是筆者說:「所有網路通訊在交換資料時,唯一憑藉的資訊是主機

的硬體位址」,可能大多數的讀者都會對這句話感到懷疑,因為通常

我們都會使用 IP 位址、網域名稱或是主機名稱來表示 TCP/IP 網路

中的主機位置。其實這些用來代表主機的位址或名稱都是為了方便

使用者在網路管理時的邏輯觀念,也就是說這些位址或名稱都可以

依據管理上的需求而隨時變更。另外一個理由是因為硬體位址不便

記憶,所以使用硬體位址來管理及識別網路上的主機並不是有效率

的管理方式。

舉例來說,同一個網路中的二部電腦,您可以將它們的 IP 位址設為

192.168.1.1 和 192.168.1.2,由這二個位址很容易判斷出它們可能是

位於同一個網路節區。但是這二部電腦的 MAC 位址可能為 00:AA:

00:3F:89:4A 和 01:3A:EB:24:5C:20,管理員實在很難由

它們看出之間存在何種關係,因此大多數的管理機制並不以 MAC

位址為設計的對象。但不論使用何種名稱來代表主機位置,在實際

交換資料前,都需轉變為硬體位址,否則無法進行網路的訊息傳輸,

這種解析主機硬體位址的工作,就必須利用 ARP 來執行。

所謂的「硬體位址」是為了在區域網路( LAN)中使用而設計的編

碼,它必須包含由製造商編碼在內的唯一位址,在 Ethernet 和 Token

Page 3: 3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

3-3

位址解析通訊協定(ARP) 3

Ring 的網路環境中稱此位址為「媒體存取控制位址」(Media Access

Control Address,MAC Address)。而這個位址儲存在每個實體硬體

裝置中的 ROM。每個硬體位址都使用 48 Bits( 6 Bytes)來編碼,

一般而言,MAC 位址都是使用 16 進位的格式來表示,例如 00:AA:

00:3F:89:4A。

目前 MAC 位址的授權及登錄是由「電氣及電子工程師協會」( IEEE)

負責, IEEE 將 MAC 位址的前 3 個 Bytes 登錄並指派給個別的製造

商,而每個製造商可以將 MAC 位址的最後 3 個 Bytes 指派給獨立網

路介面卡使用。

因為 MAC 位址是一切網路活動的根本,所以 MAC 位址的解析工作

在網路管理上相當重要,而「位址解析通訊協定」正可提供此項服

務。ARP 是定義在 RFC 826 中的 Internet 標準,它也是 TCP/IP 通訊

協定組件中的一部份,主要是用來解析 IP 位址或是主機名稱所對應

的硬體位址,以達到資料傳遞的功能。

透過 ARP 的運作,可以找出本地網路中特定主機或裝置 IP 位址所

對應的 MAC 位址。ARP 主要的訊息有二種:

ARP 要求(ARP Request):藉由網路廣播的要求,以取得

某個 IP 位址對應的 MAC 位址。由於這是一個廣播訊息,

所以本地網路中的所有主機都會得到此要求的內容,而傳

送此類訊息主機就稱為「ARP 要求者」(ARP Requester)。

ARP 回應(ARP Reply):此訊息主要是用來回應 ARP 要求

者的要求,當獲得回應時,ARP 會將此傳送端和接收端的

記錄儲存在稱為「ARP 快取」的本機表格中,以作為將來

回應要求時的參照,傳送此類訊息主機就稱為「ARP 回應

者」(ARP Responder)。

Page 4: 3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

3-4

精通Windows Server 2003 TCP/IP

3-2 ARP 封包架構

和大多數通訊協定不同的是,ARP 封包並沒有一個固定型態的架

構,這是為了使 ARP 能在不同網路中發揮更大的效率,因此在封包

中的每個欄位長度都會依網路類型的不同而有所不同,但是每種網

路類型的 ARP 封包都很相似。

下圖是在 Ethernet 中利用 ARP 解析硬體位址的封包格式,其中包含

許多的欄位,而每個欄位所代表的意義都不同,它的總長度為 224

Bits(28 Bytes)。

圖 3-1 Ethernet 中利用 ARP 解析硬體位址的封包格式

由上圖我們可以知道 ARP 封包含有 9 個不同的欄位,而所有的欄位

長度都會因「硬體類型」欄位值的不同而有所差異,以下是這些欄

位的說明:

硬體類型

此欄位的大小為 16 bits,它表示本地網路的硬體類型,例

如 10 Mb 的 Ethernet 是以 16 進位的 0001 為代碼。傳送端

的 IP Datagram 必須完全符合這種硬體類型,如果不符合,

這個封包就會被丟棄,而且不會回應任何類型的 ACK。

Page 5: 3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

3-5

位址解析通訊協定(ARP) 3

通訊協定類型

此欄位的大小為 16 bits,它表示 ARP 可以提供解析的通訊協

定類型,通常為 IP 通訊協定,IP 是以 16 進位的 0080 為代碼。

硬體位址長度

此欄位的大小為 8 bits,它表示該類型的硬體位址長度,它

是以 16 進位值來表示,例如 Ethernet 和 Token Ring 為 04,

而 Frame Relay 為 02。

通訊協定位址長度

此欄位的大小為 8 bits,它通常表示 IP 位址的長度,它是

以 16 進位值來表示, IPv4 為 06 而 IPv6 為 10。

操作碼

此欄位的大小為 16 bits,它表示 ARP 封包使用的型態,它是

以 16 進位值來表示,ARP 要求是 0001 而 ARP 回應為 0002。

傳送端硬體位址( Sender Hardware Address,SHA)

此欄位的大小為 48 bits,在 ARP 要求時,這是指廣播此要

求的主機 MAC 位址,但是在 ARP 回應時,則表示回應的

主機 MAC 位址。在本地 IP 位址解析時,這是指回應此要

求的主機 MAC 位址。而在遠端 IP 位址解析時,則表示回

應此要求的主機閘道器 MAC 位址。

傳送端通訊協定位址( Sender Protocol Address,SPA)

此欄位的大小為 32 bits,在 ARP 要求時,這是指廣播此要

求的主機 IP 位址,而在 ARP 回應時,則表示回應的主機

IP 位址。在本地 IP 位址解析時,這是指回應此要求的主機

IP 位址,但是在遠端 IP 位址解析時,則表示回應此要求的

閘道器 IP 位址。

Page 6: 3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

3-6

精通Windows Server 2003 TCP/IP

接收端硬體位址(Target Hardware Address,THA)

此 欄 位 的 大 小 為 48 bits, 在 ARP 要 求 時 , 此 值 是

000000000000,因為此時目的地主機的 MAC 位址尚未成功

解析出來。而在 ARP 回應時,則表示廣播 ARP 要求的主

機 MAC 位址。

接收端通訊協定位址(Target Protocol Address,TPA)

此欄位的大小為 32 bits,在 ARP 要求時,此值是要求解析

的 IP 位址,而在 ARP 回應時,這是廣播 ARP 要求的主機

IP 位址。

如前所示,所有欄位的長度都會因為「硬體類型」欄位中指定的值

不同而有所差異,所以這個欄位可說是整個 ARP 封包中最重要的資

訊,下表就是所有可供使用的硬體類型代碼說明:

代碼 硬體類型

1(0x00-01) Ethernet(10 Mb)

2(0x00-02) 實驗用 Ethernet(3 Mb)

3(0x00-03) Amateur Radio AX.25

4(0x00-04) Proteon ProNET Token Ring

5(0x00-05) Chaos

6(0x00-06) IEEE 802 Networks

7(0x00-07) ARCNET

8(0x00-08) Hyperchannel

9(0x00-09) Lanstar

10(0x00-0A) Autonet Short Address

11(0x00-0B) LocalTalk

12(0x00-0C) LocalTalk( IBM PCNet 或 SYTEK LocalNET)

13(0x00-0D) Ultra Link

14(0x00-0E) SMDS

Page 7: 3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

3-7

位址解析通訊協定(ARP) 3 代碼 硬體類型

15(0x00-0F) Frame Relay

16(0x00-10) Asynchronous Transmission Mode(ATM)

17(0x00-11) HDLC

18(0x00-12) Fiber Channel

19(0x00-13) Asynchronous Transmission Mode(ATM)

20(0x00-14) Serial Line

21(0x00-15) Asynchronous Transmission Mode(ATM)

22(0x00-16) MIL-STD-188-220

23(0x00-17) Metricom

24(0x00-18) IEEE 1394.1995

25(0x00-19) MAPOS

26(0x00-1A) Twinaxial

27(0x00-1B) EUI-64

28(0x00-1C) HIPARP

29(0x00-1D) IP 和 ARP over ISO 7816-3

下表是可能的操作碼值,它可用來表示不同類型的 ARP 封包:

操作碼 操作碼說明

1 REQUEST

2 REPLY

3 Request Reverse

4 Reply Reverse

5 DRARP-Request

6 DRARP-Reply

7 DRARP-Error

8 InARP-Request

9 InARP-Reply

10 ARP-NAK

Page 8: 3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

3-8

精通Windows Server 2003 TCP/IP

操作碼 操作碼說明

11 MARS-Request

12 MARS-Multi

13 MARS-MServ

14 MARS-Join

15 MARS-Leave

16 MARS-NAK

17 MARS-Unserv

18 MARS-SJoin

19 ARS-SLeave

20 MARS-Grouplist-Request

21 MARS-Grouplist-Reply

22 MARS-Redirect-Map

23 MAPOS-UNARP

ARP 封裝

當 ARP 訊息在網路上傳送時,必須將它加入網路框架(Frame)中

的 Data 部份,這個動作就稱為「ARP 封裝」(ARP Encapsulation)。

圖 3-2 ARP 封裝

若要表示框架中包含 ARP 訊息,則傳送端必須在框架表頭中的類型

欄位部份,指定某一特定值,然後再將 ARP 訊息加入框架中的 Data

Page 9: 3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

3-9

位址解析通訊協定(ARP) 3

部份。當這個框架到達目的地電腦後,讀取此框架的網路軟體就可

利用表頭中的框架類型,來判斷出此框架的內容,但是在大多數的

情形下,所有包含 ARP 訊息的框架都會使用固定的類型數值。

3-3 ARP 運作流程

在本節中我們要探討有關 ARP 實際運作的流程,依據解析的對象不

同,ARP 的運作方式共分為二類:

本地網路主機 MAC 位址解析

遠端網路主機 MAC 位址解析

以下說明我們將假定主機 A 正以「PING」指令來查詢主機 B 的 IP

位址,在輸入「PING」指令後, ICMP 會要求 ARP 執行主機 B 的

MAC 位址解析,以下是詳細的步驟說明:

本地網路主機 MAC 位址解析-主機 A 與主機 B

位於同一區域網路

1 ARP 首先檢查主機 A 中的快取,如果可以發現主機 B 對應的 MAC

位址,則 ARP 的解析工作即完成。

2 如果在主機 A 的快取中未發現對應的主機 B MAC 位址,ARP 即向

區域網路上的所有主機廣播 ARP 要求封包。在此封包中包含了來源

主機 A 的 MAC 與 IP 位址以及詢問指定 IP 位址對應的 MAC 位址要

求。因為這是一個廣播的封包,所以區域網路上的每部主機都會接

收到此 ARP 要求,然後每部主機會檢查本身的 IP 位址是否符合此

要求的內容。如果主機並沒有找到符合的項目,它會拒絕這個 ARP

要求。

Page 10: 3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

3-10

精通Windows Server 2003 TCP/IP

3 而符合此要求的主機 B 會將來源主機 A 的 MAC 及 IP 位址新增到本

機的 ARP 快取中。

4 主機 B 直接將 ARP 回應訊息傳送回主機 A,此訊息中包含主機 B 的

硬體位址。

5 當主機 A 收到來自主機 B 的 ARP 回應訊息後,主機 A 會先將主機 B

的 MAC 及 IP 位址對應新增到本機的 ARP 快取中,之後主機 A 即可

將此 ICMP 封包(或 IP 封包)傳送到主機 B。

圖 3-3 本地網路主機 MAC 位址解析流程

遠端網路主機 MAC 位址解析-主機 A 與主機 B

位於不同區域網路

1 ARP 首先檢查主機 A 中的快取,如果可以發現主機 B 對應的 MAC

位址,則 ARP 的解析工作即完成。

2 如果在主機 A 的快取中未發現對應的主機 B MAC 位址,ARP 即向

區域網路上的所有主機廣播 ARP 要求封包。在此封包中包含了來源

Page 11: 3 (ARP)epaper.gotop.com.tw/pdf/AXN002800.pdf3-6 ndows ServWi er 2003 TCP/IP Ta rget Har dware Addres s THA 48 b i t s ARP 0 000 00 000 000 MAC ARP AR P MAC Target P ro t oco l Add

3-11

位址解析通訊協定(ARP) 3

主機 A 的 MAC 及 IP 位址以及詢問指定 IP 位址對應的 MAC 位址之

要求。因為這是一個廣播的封包,所以區域網路上的每部主機都會

接收到此 ARP 要求,然後每部主機會檢查本身的 IP 位址是否符合

此要求的內容。但是本地網路中的所有主機都會拒絕這個 ARP 要

求,因為所有的主機都無法符合此要求的內容。

3 路由器在接收到此 ARP 廣播封包後,它會檢查本身的路由表以決定

它是否可以存取這個遠端的子網路,如果可以存取這個遠端網路,

它會將來源主機 A 的 MAC 及 IP 位址新增到本機的 ARP 快取中。

4 路由器直接將 ARP 回應訊息傳送回主機 A,此訊息包含路由器的

MAC 位址。

5 當主機 A 收到來自路由器的 ARP 回應訊息時,主機 A 會先將路由器

的 MAC 及 IP 位址對應新增到本機的 ARP 快取中。在成功解析出路

由器的 MAC 位址後,主機 A 即可將此 ICMP 封包(或 IP 封包)傳

送到路由器,然後路由器會利用與本地網路主機 MAC 位址解析相同

的 ARP 處理程序,來將訊息轉送到主機 B。

圖 3-4 遠端網路主機 MAC 位址解析流程