一、DHCP簡介和原理
- DHCP(Dynamic Host Configuration Protocol)作用
- 爲大量客戶機自動分配地址,提供集中管理
- 減輕管理和維護成本,提高網絡配置效率
- 可分配的地址信息如下
- IP地址,子網掩碼
- 對應的網絡地址,廣播地址
- 默認網關地址
- DNS服務器地址
- 引導文件、TFTP服務器地址
- DHCP服務器一般要求和客戶機在同一網段,纔可以分配地址,若不在同一網段,則要用到中繼
- DHCP的原理
- 客戶端尋找服務器
- 客戶端在局域網上廣播尋找DHCP服務器
- Win7以前以及Linux若找不到DHCP服務器,則會每隔一段時間就廣播一次
- Win7以後若找不到DHCP服務器,則會自動配置一個假IP(169.254.···)
- 若在局域網內有多臺DHCP服務器,則客戶機會選擇響應最快的服務器
- 服務器提供地址信息
- 服務器監聽到請求以後,回覆OFFER數據包給客戶端
- OFFER數據包只有服務器的IP地址
- 客戶端接受並廣播
- 客戶端收到服務器發送到OFFER數據包後,在局域網上廣播REQUEST數據包
- 服務器接受並確認
- 服務器向客戶端發送ACK數據包(裏面有各種地址信息)
- 客戶端關機後重新登入或IP地址租約到期後重新申請
- 在客戶端本地已經有DHCP服務器的地址,直接向服務器發送REQUEST請求
- 服務器確認
- 若服務器確認IP地址未被其他人使用,則回覆ACK數據包
- 客戶端尋找服務器
- DHCP租約
- DHCP服務器分配的IP地址是有時間限制的,假設爲n天
- 在使用了IP地址時間爲n/2天時,客戶端會詢問服務器是否能增加IP使用時間
- 服務器正常,則一般會延長客戶端使用IP的時間
- 服務器出問題,則客戶端會在3n/4天時間再詢問一次,若還是沒有迴應,客戶端會在IP地址使用時間到期後,重新尋找DHCP服務器
二、相關文件
- dchp端口號
- IPv4:udp67、udp68
- IPv6:udp546、udp547
- 服務名:
dhcpd
- 主配置文件:
/etc/dhcpd/dhcpd.conf
[root@192 dhcp-4.2.5]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
-
模版文件:
/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
- 可以直接將模版文件複製到主配置文件,即可生效
[root@192 /]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf cp:是否覆蓋"/etc/dhcp/dhcpd.conf"? y
三、配置文件主要內容
option domain-name "example.org";
:dhcp服務器的域名option domain-name-servers ns1.example.org, ns2.example.org;
:使用的DNS域名,如8.8.8.8default-lease-time 600;
:默認dhcp租約時間,單位爲smax-lease-time 7200;
:最大dhcp租約時間#authoritative;
:標識爲權威服務器,即局域網內有多臺dhcp服務器時,權威服務器優先去分配地址,以
防止IP地址混亂(局域網內不要搭建實驗dhcp服務器)
四、配置服務器
(1)配置服務器端
-
修改配置文件
- 修改DNS域名:常用的有8.8.8.8,202.106.0.20
- 配置子域:選擇一個subnet進行配置,其它可以刪除
# A slightly different configuration for an internal subnet. subnet 192.168.1.0 netmask 255.255.255.0 { # 必須和dhcp服務器在同一網段 range 192.168.1.50 192.168.1.100; # 設置分配的IP地址範圍 # option domain-name-servers ns1.internal.example.org; # 已配置 # option domain-name "internal.example.org"; option routers 192.168.1.1; # 設置網關 option broadcast-address 192.168.1.255; # 設置廣播地址 default-lease-time 600; max-lease-time 7200; }
host fantasia
可刪除(實驗,只有一臺主機請求IP)
-
重啓服務
service dhcpd restart
(2)配置客戶端
- 修改配置文件:
/etc/sysconfig/network-scripts/ifcfg-eth0
,改爲下面4句即可
TYPE=Ethernet # 類型是否是以太網
BOOTPROTO=dhcp # 是否自動獲取IP(none、static、dhcp,dhcp爲自動獲取IP)
DEVICE=ens33 # 網卡設備名
ONBOOT=no # 是否隨網絡服務啓動,eth0生效(如果爲no,則IP不生效)
- 重啓網絡服務
service network restart
(3)查看租約信息
- 服務器端查看:
/var/lib/dhcpd/dhcpd.leases
- 客戶端查看:
/var/lib/dhclient
參考教程:B站:兄弟連視頻