BOOTP:引導協議 (Bootstrap Protocol)

90年代初期以前,無盤工作站風行一時風行一時。在一個無盤工作站內網環境中系統服務器上運行工作站所需要的系統,將工作站的硬盤和主機分離,無盤工作站只執行操作不執行存儲。當時,出於成本的考慮這樣佈署可以減輕曾本負擔。有了無盤工作站,就引出了今天要說的主題BootP:
引導協議(BOOTP)是一種基於 UDP/IP 的協議,這樣一個古老的協議也許今天的很多IT工程師都沒有機會接觸。這種協議允許正在啓動的主機動態配置而無需用戶監督。BOOTP 主要用於客戶機從服務器獲得自己的 IP 地址,服務器的 IP 地址以及啓動映象文件名。其它一些配置信息,如本地子網掩碼、本地時間偏移量、默認路由器地址和各種 Internet 服務器地址,都能與使用 BOOTP 協議的客戶機交流。這樣可以避免每個用戶手工設置靜態IP地址的麻煩。

BOOTP 使用兩個不同的知名通訊端口 UDP67/68。UDP67 用於服務器,UDP68 用於 BOOTP 客戶機。客戶機啓動時,本身還沒有 IP 地址,這時 BOOTP 客戶機就以廣播的形式發出一個名爲 BOOTREQUEST 的 IP 地址查詢請求包,這個請求包中包含了客戶機物理地址,還可能有一個 IP 地址,如果已有的話。客戶使用地址 255.255.255.255 發送廣播,這種特殊地址稱爲有限廣播地址。然後客戶機等待服務器的響應,如果在特定時間段內沒有收到響應,客戶機就重新發出請求。

通過引導答覆(bootreply)包,服務器響應客戶機請求。請求可以包含“通用”引導文件名,例如,unix 或 ethertip。但服務器發送引導應答包時,它使用對應的引導文件的確切的路徑名稱來取代這個字段。爲了確定路徑名,服務器會查詢本身的的數據庫。這個數據庫關聯了客戶機地址、請求文件名和爲用戶定製的特殊引導文件。如果請求(bootrequest)文件名是空,服務器就返回一個文件名字段用於表示客戶機需加載的默認文件。

在客戶機 IP 地址不知道的情況下,服務器必須要有一個硬件地址和 IP 地址相對應的數據庫。客戶機 IP 地址也被放到“bootreply”的某一字段中。

BOOTP 和 RARP 類似,但 RARP 只運行於 LAN 網絡的數據鏈路層;而基於 UDP/IP 的配置協議 BOOTP 則提供了更多配置方面的信息,它允許整個 IP 網絡動態配置。總之,BOOTP 及其擴展成爲動態主機配置協議(DHCP)的基礎。

協議結構

    * Op – 消息操作代碼,可以是引導請求( BOOTREQUEST )也可以是引導答覆( BOOTREPLY )
    * Htype – 硬件地址類型
    * Hlen – 硬件地址長度
    * Xid – 事務 ID.
    * Secs – 客戶機開始地址請求或續約後消耗的時間(秒數)
    * Flags – 標記
    * Ciaddr – 客戶機 IP 地址
    * Yiaddr – “你的”(客戶機) IP 地址
    * Siaddr – 在 bootstrap 中下一臺服務器可用服務器的 IP 地址
    * Giaddr – 通過代理啓動時代理的 IP 地址
    * Chaddr – 客戶機硬件地址
    * Sname – 其他可用服務器主機名稱,空終止符
    * File – 引導文件名、空終止符; DHCPDISCOVER 包中的屬名或者空值, DHCPOFFER 包中的完全合格目錄路徑名
    * Options – 可選參數字段
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章