dhcp(Dynamic Host Configuration Protocol):設定一段共用IP地址,為新上線的機器分配IP地址,回收下線機器的IP地址。
正常情況下主機(DHCP client)和DHCP server互動通過四個封包完成IP的設定,分為DHCP Discover、DHCP Offer、DHCP request、DHCP ACK四步:
不完整的包是無法在網路上傳輸的
新的機器上線還沒有合法的IP地址時,會使用0.0.0.0
向255.255.255.255
這個地址傳送廣播包,廣播包封裝了UDP,UDP封裝了BOOTP(Bootstrap Protocol)。這個包發出Boot request,意在告訴區域網中的主機,我還沒有IP地址,我的MAC地址是xx:xx:xx:xx:xx:xx
,誰能給我一個IP地址?
物理層:包含網路卡資訊、使用了DHCP協定的UDP包等資訊
資料鏈路層:包含主機MAC地址,廣播MAC地址ff:ff:ff:ff:ff:ff
等資訊
網路層:包含TTL、主機IP地址、廣播地址等資訊
傳輸層:udp的埠號等資訊
應用層:Boot request中包含當前主機IP地址、DNS伺服器地址(此時的主機一無所知,置為0.0.0.0),需要獲取的子網掩碼、閘道器、DNS等資訊
後續主機和DHCP傳輸的四個包都是一步一步對以上資訊的填補。
為什麼叫選擇DHCP Offer?因為如果有多個DHCP server,他們都會傳送DHCP Offer廣播包,此時新主機(DHCP client)會收到多個包,通常會選擇最先到達的DHCP Offer。選擇好offer之後此時的使用者端仍然沒有IP地址,繼續傳送廣播包,稱為DHCP request。
DHCP server收到DHCP request後會使用廣播或單播的模式傳送一個ACK包作為最終確認,完成這一步新機器的IP地址就設定完成了。
ff:ff:ff:ff:ff:ff
,同理組裝IP頭,UDP頭通過以上內容我們知道DHCP分配的IP地址有租約一說,租期到了就需要收回地址,如果主機IP在租期到期後還需要繼續使用,那麼就要主動向DHCP server以單播的形式傳送DHCP request來請求續租。
通過DHCP server和PXE server(Pre-boot Execution Environment)、TFTP server可以做到批次安裝作業系統。
主機啟動是通過BIOS讀取MBR(Master Boot Record)來啟動GRUB -> 通過GRUB載入核心、initramfs檔案 -> 再由核心啟動初始化作業系統。所以將PXE client放在BIOS裡面,BIOS將PXE client調入記憶體,通過PXE client與PXE server傳輸資料和執行指令可以完成作業系統的自動安裝
next-server
指向PXE server的地址,再設定filename
指向啟動檔案pxelinux.0如果需要一些客製化化的設定可以使用kickstart組態檔。
學習自:
《趣談網路協定》劉超
《圖解TCP/IP》
《圖解HTTP》
《網路是怎樣連線的》