作用
通過MAC位址擷取IP位址,通常用于無盤系統地啟動。
通常IP位址被存儲在檔案中,是以無盤系統無法正常擷取IP位址,而是靠RARP協定通過網絡擷取IP位址。
格式
在以太網中,RARP請求格式如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLyQjM4EDMxkTMxEjMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
RAPR請求格式同ARP一緻,隻是某些位的内容需要變化。
幀類型:0x8035
操作字段op:請求為3,應答為4
方式
當一個主機需要将MAC位址映射為IP位址時,會以廣播的形式,向網絡上的所有主機發送RAPR請求,這點同ARP請求一樣。但是不一樣的是請求的響應。RAP請求隻會有一個主機響應,而RARP請求則會被目前網絡中的所有主機響應。是以,源主機可能會受到多條回複,此時,會以第一次收到的響應為準。
tcpdump指令執行個體
第一行
第一行是發送者發送的資料。其中
8:0:20:3:f6:42
表示源主機MAC位址,而
ff:ff:ff:ff:ff:ff
表示廣播,該消息會發送給目前網路上的所有主機。 rarp表示該資料幀的資料類型為RARP,60表示消息長度為60。 後面的rarp表示rarp請求。
who-is 8:0:20:3:f6:42 tell 8:0:20:3:f6:42
,按照英足字面意思了解就是,告訴
8:0:20:3:f6:42
誰是
8:0:20:3:f6:42
,也就是說,
8:0:20:3:f6:42
的IP位址是多少。
第二行
開頭同第一行相同,但是資料長度卻是42,小于以太網幀長度。
這是因為tcpdump命夠擷取到這些資料是通過BSD分組過濾器在驅動程式處接收來的。而BSD會
rarpd(逆位址解析協定程式)
将帶有以太網幀資料頭和資料内容的資料傳回給tcpdump指令。此時,驅動程式還未像資料中添加空白的填充字元。
rarp reply表示該條消息是rarp應答。
8:0:20:3:f6:42 at sun
表示
8:0:20:3:f6:42
的IP位址是 sun,次處使用主機名代替了IP位址。
第三行
此例中的rarp操作時發送在無盤作業系統啟動時,當主機擷取到自己的IP位址後,就會通過TFTP請求,來請求讀取配置檔案,該條消息就是做的該操作。
逾時
rarp請求可能會逾時,由于rarp請求的作用是請求IP位址,而IP位址在網絡通信中是不能省略地,是以,rarp請求會被不斷地發送,直到獲得結果。
但是此過程中,逾時時間會在不斷變化,每次逾時後,逾時時間都會增加一個固定值,直至逾時時間超過某個門檻值後,又會變化為最小的逾時時間,如此循環。
RARP伺服器
RARP伺服器的作用就是為無盤系統系統提供從MAC位址到IP位址的映射。
但是,與ARP協定不同,MAC到IP的映射關系一般存儲在磁盤上的檔案中,是以RARP協定需要讀取檔案。但是核心一般是不會讀取檔案的,是以RARP伺服器不能像ARP協伺服器一樣作為核心的一部分,在核心中實作,而是需要通過使用者空間的應用程式來完成。
此時,就需要系統級别的支援,支援使用者空間的程序接收和發送特定的以太網幀資料,是以RARP伺服器的運作對系統擁有依賴性。
與RAP請求不同,ARP請求隻會有一個應答,而RARP請求則不同,如果網絡中存在多個個伺服器,則RARP請求就會被回複多次,不僅會導緻網絡中的流量增減,還可能會産生同時回複的網絡沖突問題。
習題
如何防止一個有多個RAPR伺服器的網絡上防止他們之間的響應沖突
為伺服器分級,有主伺服器和從伺服器。主伺服器用于回複RARP響應,當主伺服器當機時,RAPR請求會重複發送,而此時再由次RAPR伺服器回複。
也就是,主伺服器回複首次接收到的RARP請求,而次RARP伺服器回複重複的RAPR請求。
** RARP需要不同的幀類型字段嗎?ARP和RARP都使用相同的值0x0806嗎?**
理論上時不需要的,因為有OP字段描述了該條消息的類型。
但實際上時有的。