網(wǎng)站建設(shè)公司包括哪些板塊武漢seo網(wǎng)絡(luò)優(yōu)化公司
簡(jiǎn)介
動(dòng)態(tài)主機(jī)配置協(xié)議 DHCP(Dynamic Host Configuration Protocol,動(dòng)態(tài)主機(jī)配置協(xié)議) 是 RFC 1541(已被 RFC 2131 取代)定義的標(biāo)準(zhǔn)協(xié)議,該協(xié)議允許服務(wù)器向客戶端動(dòng)態(tài)分配 IP 地址和配置信息。
使用UDP協(xié)議,C/S模式。
dhcp服務(wù)器使用 67/UDP,dhcp客戶端使用 68/UDP。
分配IP方式
- 將一個(gè)IP地址固定分配給一個(gè)客戶端
- 隨機(jī)地將地址永久性分配給客戶端
- 隨機(jī)地將地址分配給客戶端使用一段時(shí)間(常用)
地址的有效使用時(shí)間段稱為租用期,租用期滿之前,客戶端必須向服務(wù)器請(qǐng)求繼續(xù)租用。服務(wù)器接受請(qǐng)求后才能繼續(xù)使用,否則無條件放棄
二八原則
避免單臺(tái)DHCP服務(wù)器宕機(jī),客戶端將無法獲取IP地址,通常有多臺(tái)DHCP服務(wù)器;然而DHCP服務(wù)器之間沒有監(jiān)督機(jī)制,無法保證分配地址沒有沖突,可使用兩臺(tái)DHCP服務(wù)器。
若主機(jī)A側(cè)有200臺(tái)主機(jī),主機(jī)B側(cè)有200臺(tái)主機(jī),DHCP服務(wù)器各自按二八原則劃分管控的動(dòng)態(tài)IP范圍,DHCP A:10.0.0.1~10.0.0.160和192.168.0.161~192.168.0.200,DHCP B:10.0.0.161~10.0.0.200和192.168.0.1~192.168.0.160;主機(jī)A獲取10網(wǎng)段IP,若DHCP A宕機(jī),可通過DHCP中繼獲取DHCP B中的10網(wǎng)段IP;主機(jī)B同理
DHCP中繼
默認(rèn)情況下,路由器隔離廣播包,不會(huì)將收到的廣播包從一個(gè)子網(wǎng)發(fā)送到另一個(gè)子網(wǎng)。當(dāng)DHCP服務(wù)器和客戶端不在同一個(gè)子網(wǎng)時(shí),充當(dāng)客戶端默認(rèn)網(wǎng)關(guān)的路由器將廣播包發(fā)送到DHCP服務(wù)器所在的子網(wǎng),這一功能就稱為DHCP中繼(DHCP Relay)
DHCP工作過程
DHCP在工作過程中涉及到的報(bào)文種類及其作用如下:
1、DHCP DISCOVER:客戶端開始DHCP過程的第一個(gè)報(bào)文,是請(qǐng)求IP地址和其它配置參數(shù)的廣播報(bào)文。
2、DHCP OFFER:服務(wù)器對(duì)DHCP DISCOVER報(bào)文的響應(yīng),是包含有效IP地址及配置的單播(或廣播)報(bào)文。
3、DHCP REQUEST:客戶端對(duì)DHCP OFFER報(bào)文的響應(yīng),表示接受相關(guān)配置。客戶端續(xù)延IP地址租期時(shí)也會(huì)發(fā)出該報(bào)文。
4、DHCP DECLINE:當(dāng)客戶端發(fā)現(xiàn)服務(wù)器分配的IP地址無法使用(如IP地址沖突時(shí)),將發(fā)出此報(bào)文,通知服務(wù)器禁止使用該IP地址。
5、DHCP ACK :服務(wù)器對(duì)客戶端的DHCP REQUEST報(bào)文的確認(rèn)響應(yīng)報(bào)文??蛻舳耸盏酱藞?bào)文后,才真正獲得了IP地址和相關(guān)的配置信息。
6、DHCP NAK:服務(wù)器對(duì)客戶端的DHCP REQUEST報(bào)文的拒絕響應(yīng)報(bào)文。客戶端收到此報(bào)文后,會(huì)重新開始新的DHCP過程。
7、DHCP RELEASE:客戶端主動(dòng)釋放服務(wù)器分配的IP地址。當(dāng)服務(wù)器收到此報(bào)文后,則回收該IP地址,并可以將其分配給其它的客戶端。
8、DHCP INFORM:客戶端獲得IP地址后,發(fā)送此報(bào)文請(qǐng)求獲取服務(wù)器的其它一些網(wǎng)絡(luò)配置信息,如DNS等。
續(xù)租
- 在使用租期過去50%時(shí)刻處, 客戶端向服務(wù)器發(fā)送單播DHCP REQUEST報(bào)文續(xù)延租期。
- 如果收到服務(wù)器的DHCP ACK報(bào)文,則租期相應(yīng)向前延長(zhǎng),續(xù)租成功。如果沒有收到DHCP ACK報(bào)文,則客戶端繼續(xù)使用這個(gè)IP地址。在使用租期過去87.5%時(shí)刻處,向服務(wù)器發(fā)送廣播DHCP REQUEST報(bào)文續(xù)延租期。
- 如果收到服務(wù)器的DHCP ACK報(bào)文,則租期相應(yīng)向前延長(zhǎng),續(xù)租成功。如果沒有收到DHCP ACK報(bào)文,則客戶端繼續(xù)使用這個(gè)IP地址。在使用租期到期時(shí),客戶端自動(dòng)放棄使用這個(gè)IP地址,并開始新的DHCP過程。
實(shí)現(xiàn)
軟件包
服務(wù)端
dhcp-server(centos8中)、dhcp(centos7及之前)
/usr/sbin/dhcpd | dhcp服務(wù)主程序 |
/etc/dhcp/dhcpd.conf | dhcp服務(wù)配置文件 |
/usr/share/doc/dhcp-server/dhcpd.conf.example | dhcp配置文件模板 |
/usr/lib/systemd/system/dhcpd.service | dhcp服務(wù)service文件 |
/var/lib/dhcpd/dhcpd.leases | 地址分配記錄 |
客戶端
dhcp-client
/usr/sbin/dhclient | 客戶端程序 |
/var/lib/dhclient | 自動(dòng)獲取的IP信息 |
配置文件
查看dhcp配置文件模版
[root@wenzi ~]# vim /usr/share/doc/dhcp-server/dhcpd.conf.example
#指定客戶端默認(rèn)的域,局部或全局
option domain-name "example.org";
#指定客戶端默認(rèn)的DNS,局部或全局
option domain-name-servers ns1.example.org, ns2.example.org;#最小租期時(shí)間,單位 秒
default-lease-time 600;
#最長(zhǎng)租期時(shí)間 單位 秒
max-lease-time 7200;#通過配置syslog.conf定義日志文件存放何處
log-facility local7;#在這個(gè)子網(wǎng)上不提供服務(wù),但是聲明它可以幫助DHCP服務(wù)器理解網(wǎng)絡(luò)拓?fù)?subnet 10.152.187.0 netmask 255.255.255.0 {
}#這是一個(gè)非?;镜淖泳W(wǎng)聲明
subnet 10.254.239.0 netmask 255.255.255.224 {#客戶端獲取動(dòng)態(tài)IP的范圍,可有多個(gè)range,但I(xiàn)P范圍不能重疊range 10.254.239.10 10.254.239.20;#為客戶端指定默認(rèn)網(wǎng)關(guān)option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}#這個(gè)聲明允許BOOTP(DHCP協(xié)議前身)客戶端獲取動(dòng)態(tài)地址,我們不建議這樣做。
subnet 10.254.239.32 netmask 255.255.255.224 {range dynamic-bootp 10.254.239.40 10.254.239.60;option broadcast-address 10.254.239.31;option routers rtr-239-32-1.example.org;
}#針對(duì)單獨(dú)子網(wǎng)配置
subnet 10.5.5.0 netmask 255.255.255.224 {range 10.5.5.26 10.5.5.30;option domain-name-servers ns1.internal.example.org;option domain-name "internal.example.org";option routers 10.5.5.1;#廣播地址option broadcast-address 10.5.5.31;default-lease-time 600;max-lease-time 7200;
}#通過host 任意名 {} 配置
host passacaglia {#單個(gè)客戶端主機(jī)MAC地址hardware ethernet 0:0:c0:5d:bd:95;#獲取bootloader啟動(dòng)文件的名稱filename "vmunix.passacaglia";#去 toccata.example.com 主機(jī)獲取 vmunix.passacaglia 文件server-name "toccata.example.com";
}#通過host 任意名 {} 配置單個(gè)客戶端主機(jī)使得IP和MAC地址綁定,固定IP
host fantasia {hardware ethernet 08:00:07:26:c0:a5;#固定客戶端主機(jī)的IP地址fixed-address fantasia.example.com;
}#您可以聲明一類客戶端,然后基于此進(jìn)行地址分配
#下面的示例顯示了某個(gè)類中的所有客戶端,獲取10.17.224/24子網(wǎng)上的地址,所有其它客戶端獲取10.0.29/24 #子網(wǎng)上的地址的情況。
class "foo" {match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
}
#告知是否為一些子網(wǎng)絡(luò)分享相同網(wǎng)絡(luò)
shared-network 224-29 {subnet 10.17.224.0 netmask 255.255.255.0 {option routers rtr-224.example.org;}subnet 10.0.29.0 netmask 255.255.255.0 {option routers rtr-29.example.org;}pool {allow members of "foo";range 10.17.224.10 10.17.224.250;}pool {deny members of "foo";range 10.0.29.10 10.0.29.230;}
}
具體使用見http://t.csdn.cn/b36rQ