什麼是DHCP協議?
DHCP(Dynamic Host Configuration Protocol ,動態主機配置協議)通常被用在大型的局域網絡中,主要作用是集中的管理,分配IP地址,使網絡環境中的主機動態的獲得IP地址,Gateway地址,DNS服務器地址等信息,並能夠提升地址的使用率。
DHCP協議的工作過程?
1.發現階段:即DHCP客戶機尋找DHCP服務器的階段。DHCP客戶機以廣播的方式發送DHCP discover 發現信息來尋找DHCP服務器(因爲DHCP服務器的IP地址對客戶機來說是未知的),即向255.255.255.255發送特定的廣播信息,網絡上每一臺安裝了TCP/IP協議的主機都會接收到這種廣播信息,但只有DHCP服務器纔會作出響應。
2.提供階段:即DHCP服務器提供IP地址的階段。在網絡中收到DHCP discover發現信息的DHCP服務器都會作出響應,它從尚未出租的IP地址中挑選一個分配給DHCP客戶機,向DHCP客戶機發送一個包含出租的IP地址和其他設置額DHCP offer提供信息。
3.選擇階段:DHCP客戶機選擇某臺DHCP服務器提供的IP地址的階段。 如果有多臺DHCP服務器向DHCP客戶機發來的DHCP offer,客戶機只接收第一個收到的DHCP offer,然後它以廣播的方式回答一個DHCP request請求信息。該信息中包含它所選定的DHCP服務器請求IP地址的內容。之所以要以廣播的方式回答,是爲了通知所有的DHCP服務器,它將選擇某臺DHCP服務器所提供的IP地址。
4.確認階段:即DHCP服務器確認所提供的IP地址的階段。當DHCP服務器收到DHCP客戶機回答的DHCP resquest請求後,它便向DHCP客戶機發送一個包含它提供的IP地址和其他設置的DHCP ACK確認信息,告訴DHCP客戶機可以使用它所提供的IP地址。然後DHCP客戶機便將其TCP/IP協議與網卡綁定,除了DHCP客戶機所選擇的服務器IP外,其他的DHCP服務器都將收回曾提供的IP地址
5.重新登陸:以後DHCP客戶機每次登陸網絡時,就不需要再發送DHCP discover發現信息了。而是直接發送包含前一次所分配IP地址的DHCP resquest請求。當DHCP服務器收到這一信息後,它會嘗試讓客戶機繼續使用原來的IP並回答一個DHCP ACK確認信息,如果此IP地址無法分配個原來的DHCP客戶機時(比如IP分配給其他DHCP客戶機使用) ,則DHCP服務器給DHCP客戶機回答一個DHCP NACK 否認消息,當原來的DHCP客戶機收到此消息後,它就必須重新發送DHCP discover發現信息重新請求新的IP地址。
6.更新租約:DHCP服務器向DHCP客戶機出租的IP地址一般都由一個租借期限,期滿後DHCP服務器會收回出租的IP地址。如果DHCP客戶機要延長其IP租約,則必須更新其租約。DHCP客戶機啓動時和IP租約期限過一半時,DHCP客戶機都會自動向DHCP服務器發送其更新租約的信息。
DHCP由三種機制分配IP地址:
1.自動分配方式:DHCP服務器爲主機指定一個永久性的IP地址,一旦DHCP客戶端第一次成功從DHCP服務器租用到IP地址,就可以永久使用該地址。
2.動態分配方式:DHCP服務器給主機指定一個有時間限制的IP地址, 時間到期或主機明確表示放棄該地址時,該地址可以被其他主機使用。
3.手工分配方式:客戶端的IP地址是由網絡管理員指定的,DHCP服務器只是將指定的IP地址告訴客戶端主機。
三種地址分配方式中, 只有動態分配方式可以重複使用客戶端不再需要的地址
DHCP服務配置
在開始之前注意selinux狀態disable 防火牆關閉
[root@localhost ~]# yum install -y dhcp ##安裝服務
[root@localhost ~]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
[root@localhost ~]# cp /usr/share/doc/dhc*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
7 option domain-name "westos.com"; ##設置DNS域
8 option domain-name-servers 172.25.8.10; ##設置DNS服務器地址
9
10 default-lease-time 600; ##設置默認租約時間,單位爲秒
11 max-lease-time 7200; ##設置最大租約時間,單位爲秒
14 #ddns-update-style none; ##設置dns的更新方式
22 log-facility local7; ##指定日誌設備
#####註釋前面的subnet修改最後一個subnet聲明
27 #subnet 10.152.187.0 netmask 255.255.255.0 {
28 #}
32 subnet 172.25.8.0 netmask 255.255.255.0 { ##子網網段和子網掩碼
33 range 172.25.8.100 172.25.8.105; ##設置ip地址池範圍100-105
34 option routers 172.25.8.254; ##設置客戶機的默認網關
35 }
[root@localhost ~]# systemctl restart dhcpd ##重啓服務
服務器的配置到此結束,下面進行客戶機的配置
[root@server ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp ###找到BOOTPROTO改稱dhcp
[root@server ~]# systemctl restart network ##重啓網絡
重啓之前客戶端的IP(ps:不要在意主機名)
重啓之後IP變成了設置的範圍最小值(100-105)中的100