BOOTP(bootstrap protocol)
在1985年定義在rfc951
用途:伺服端指派ip等資訊讓客戶端取得
BOOTP用於無磁碟主機(用BOOT ROM)連網用,可自動設定TCP/IP環境,但需取得client硬體位址
BOOTP與DHCP的封包格式極為相似,有的DHCP server也支援BOOTP protocol,也能夠回應BOOTP cilent的request
利用udp,客戶端送資料時用port67.伺服端送資料時用port68
IP只對應為靜態,且不支援lease time
當client提出IP的要求時過程如下:
1BOOTP server依照該client的MAC地址,在事前定義好的表格當中尋找符合的項目
2若找到符合的項目,則該項目當中對應的IP地址,將回傳給該用戶端電腦
3因bootp不支援lease time,所以發IP給client時假設lease time無限,也就是不回收cilent的IP
…………………
DHCP(Dynamic Host Configuration Protocol)
bootp的繼起者
主要功能是讓一部機器能夠透過自己的廣播,向DHCP server取得有關ip,mask,default gateway,dns,wins等TCP/IP環境設定
伺服端:集中管理所有的IP網路設定資料,負責處理客戶端的DHCP要求
客戶端:使用從伺服器分配下來的IP環境資料
使用udp:客戶端送資料時用port67.伺服端送資料時用port68
ps:port67,68現在仍稱為bootp
優點
可自動分配ip位址等網路相關參數給主機
可幫主機自動更新網路相關設定
避免ip位置重覆設定的錯誤
提高ip位址的使用率
IP分配方式
Automatic Allocation:第一次租到後便永遠使用
Dynamic Allocation:非永久的使用,lease time已到就停用,但可優先renew(延續)租約
Manual allocation:由管理者自行設定,依硬體位址固定分配IP位址
dhcp role
DHCP server:用來配發ip等網路資訊
DHCP client:請求ip等網路資訊的主機
DHCP Agent(或DHCP Proxy,dhcp relay agent):將client送來的dhcp request送到其他dhcp server,可處理跨網路問題
相關名詞
DHCP scope:DHCP伺服器所能發放IP 的範圍
DHCP Reservation:DHCP 伺服器的保留IP
DHCP Options:DHCP 伺服器的額外設定
lease time:DHCP決定一個IP在使用多久後回收
DHCP運作
客戶端第一次登錄網路(無IP資料設定)
1.cleint送出dhcp discover broadcast
發出DHCPDISCOVER廣播封包(含MAC位址,XID編號),來源0.0.0.0目的255.255.255.255(次數:1,9,13,16秒,5分)
2.server送出dhcp offer broadcast
伺服端收到後,將可用的IP,網路相關設定,dhcp本身ip,租約期限,..等,放進DHCPOFFER廣播封包給client
ps:伺服器若無法提供此項服務,則將此項要求轉送到其他的DHCP伺服器
3.client送出dhcprequest broadcast
client選其中一個Dhcpoffer後,發送Dhcprequest廣播封包(描述用誰的dhcp設定)ARP廣播封包(ip重覆則發送Dhcpdiscover信息)
ps:採用廣播的原因是可以讓其他dhcp server知道用戶端電腦的選擇是什麼
4.server送出dhcpack or dhcpnack broadcast
伺服端收到後,若確認IP租約正式生效則向client發出DHCPACK回應,否則送dhcpnack
若client收到dhcpnack則會從步驟1開始重做
5.client送出dhcpdecline
如果client在所屬本地網段中發現所分配的ip已被其他client使用,就送DHCPDECLINE,然後從步驟1開始重做
6.client送出dhcprelease
client不再需要使用IP時,送出一個DHCPRELEASE訊息給伺服器釋放自己的ip
dhcp agent運作
1. DHCP client送出要求ip的packet給dhcp server時,會被dhcp relay agent攔截
2. dhcp Relay agent將information放進此packet的option82 filed後,轉送給dhcp server處理
information包含switch自己的mac,client目前port,client目前vlan,…等
3. DHCP server收到後根據option82 field內的information分配給client適當的IP
renew續約
客戶端送Dhcprequest,伺服端回DHCPACK
ps:退租用DHCPLEREASE
若ip使用中,伺服端回DHCPNACK(要求從DHCPDISCOVER開始)
ps:在win下使用ipconfig /release可釋放ip位置
DHCP封包格式
OP client:送給server為1反為2
HTYPE:硬體類別(Ethernet=1)
HLEN:硬體位址長度(Ethernet=6)
HOPS:需經router傳,每站加1,同網內為0
TRANSACTION ID:用DHCPREQUEST時產生的數值,以作DHCPREPLY時的依據
SECONDS:Client端啟動時間(秒)
FLAGS:16bits 開頭bit為1表以廣播傳給client
ciaddr:用於想繼續使用之前IP位址
yiaddr:給client的IP位址(在DHCPOFFER,DHCPACK封包內)
siaddr:給client網路開機的開機程式碼server位址(在DHCPOFFER、DHCPACK、DHCPNACK內)
giaddr:跨網用relay agent位址
chaddr:Client硬體位址
sname:Server名稱字串,以0x00結尾
file:給client的網路開機程式名,稍後以TFTP傳送
options:允許Vendor-Specific Area(廠商定議選項),長度可變可帶多選項,兼容BOOTP,格式為code,len,value
……………………
bootp和dhcp的比較
bootp | dhcp | |
分配方式 | manual | manual,automatic,dynamic |
可設定組態 | IP address Gateway address Subnet mask DNS server address | IP address Gateway address Subnet mask DNS server address WINS,domain name,…等 |
使用協定 | udp port 67,68 | udp port 67,68 |