作爲網絡中的主機身份標識,IP是一個邏輯地址,但在實際進行通信時,物理網絡使用的仍然是物理地址,IP地址是不能被物理網絡識別的。ARP協議提供了將主機的IP地址映射爲MAC地址的方法,RARP協議提供了允許工作站動態獲取其協議地址的方法。
ARP
互聯網中主機的邏輯地址爲32位的IP地址,物理地址爲48位的MAC地址。對於以太網而言,並不能識別IP地址,計算機之間要進行通信,則需要獲取對方的物理地址。因此在物理網絡中,在邏輯IP地址和物理MAC地址間建立了一種映射關係,這種映射關係稱爲地址解析。
ARP工作原理:
假設HostA與HostC處於同一網段,並且HostA要向HostC發送數據。
- HostA查看自己的ARP表是否有HostC表項。若表中有HostC的表項,則根據表項中HostC的MAC地址,將數據封裝成幀,並從對應的物理接口上發送數據給HostC
- 若表中沒有HostC表項,則HostA暫存該數據包,並廣播一個ARP請求。請求中的目的MAC地址全0。
- HostC 接收到ARP請求後,將自己的MAC地址單播給HostA。其餘的主機不作應答。
- HostA 收到ARP響應後,將HostC的MAC地址存入ARP表項。並把數據包封裝成幀,發送給HostC
ARP表項: ARP表項可分爲動態ARP表項和靜態ARP表項。動態ARP表項是經ARP協議解析後存入ARP表中的,超出老化時間後將被自動刪除。靜態ARP表項是由管理員手動配置的,不會被自動刪除。靜態ARP表項優先級高於動態ARP表項,可以覆蓋相應的動態ARP表項。
代理ARP: 當ARP查詢的目標主機與源主機不在同一個網段時,路由器可運行代理ARP協助主機進行通信。源主機將ARP請求發送給代理路由器,代理路由器在目的主機的網段進行ARP廣播,目的主機將回應ARP響應給代理路由器,最後路由器將目的主機的MAC發給源主機。使用代理ARP時,源主機與目的主機之間通信的數據都將流向代理路由器,並由代理路由器進行轉發。由於代理路由器會廣播ARP請求,會降低網絡效率,只適合中小型網絡使用。
RARP
無盤工作站中沒有磁盤,在啓動時從服務器中獲取操作系統進行引導。而工作站IP地址在操作系統中進行配置,啓動時還不具有IP地址。獲取操作系統時需要與服務器進行通信,就需要具有IP地址。這兩者產生了矛盾,爲了解決這個矛盾,可以使用RARP協議動態獲取工作站協議地址。
RARP工作原理:
- 若有一個無盤工作站需要啓動,首先引導到ROM中的基本系統,此時廣播一個RARP請求報文。
- RARP服務器收到請求報文後,對其響應並分配一個IP地址。
- 無盤工作站獲取IP後,利用此地址與服務器進行通信,並獲取操作系統。
IP包轉發
主機單播IP包轉發
主機單播IP之前,首先判斷目的主機所在網段。如果是同一網段,則解析目的主機的MAC地址,然後封裝成幀,由直接連接此網段的接口發送給目的主機。如果不處於同一網段,則將IP包轉發給默認網關的路由器,由路由器將數據包發送給目的主機。
路由器單播IP包轉發
- 如果IP包目的地址爲主機,則解封裝此包,將數據交由上層協議處理。
- 如果IP包目的地址非主機,而是網段中的某個主機。則路由器將解析IP數據包目的主機的MAC地址,隨即將此IP包以此硬件地址爲目的地址封裝成幀,並由此直接連接此網段的接口發送給目的主機。
- 如果IP包目的地址爲其他網段的某個主機。 則由路由器交由下一跳路由器。路由器將解析下一跳路由器的MAC地址,並將IP包以此爲目的地址封裝成幀發送給下一跳路由器。
主機接收IP包
主機接收IP包的情況:
- IP包中目的地址爲本機地址
- IP包中目的地址爲廣播地址
- IP包中目的地址爲一組播地址,並且本機地址屬於該組播地址
如果IP包目的地址不符合這些情況,主機的網絡層將丟棄該IP包。
廣播風暴
路由器轉發廣播將導致全網充斥廣播,整個網絡會由於廣播而癱瘓,這種情況被稱爲廣播風暴。爲了避免廣播風暴,路由器默認不轉發廣播包。
ARP配置
路由器
//添加靜態arp表項
arp static ip-address mac-address
//刪除靜態arp表項
undo arp static
//顯示arp運行情況
display arp
//清除arp表
reset
//啓動代理arp
proxy-arp enable
//顯示代理arp信息
display proxy-arp [interface interface-type interface-number]
Windows
//查看arp表項
arp -a
//添加靜態arp
arp -s