轉載注明出處:https://www.cnblogs.com/kelamoyujuzhen/p/9520341.html
實驗環境
rhel-server-6.4-x86_64-dvd(ED2000.COM).iso
注意:
對於使用VMware虛擬機進行實驗,需要關閉針對某個WMNet的DHCP設置
搭建DHCP Server
配置本地yum源 搭建KVM環境——03 創建虛擬機后配置環境
安裝DHCP服務

[root@localhost yum.repos.d]# yum -y install dhcp Loaded plugins: product-id, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package dhcp.x86_64 12:4.1.1-34.P1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved =================================================================================================================================== Package Arch Version Repository Size =================================================================================================================================== Installing: dhcp x86_64 12:4.1.1-34.P1.el6 vcd 816 k Transaction Summary =================================================================================================================================== Install 1 Package(s) Total download size: 816 k Installed size: 1.9 M Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : 12:dhcp-4.1.1-34.P1.el6.x86_64 1/1 Verifying : 12:dhcp-4.1.1-34.P1.el6.x86_64 1/1 Installed: dhcp.x86_64 12:4.1.1-34.P1.el6 Complete!
編輯DHCP server配置文件

[root@localhost dhcp]# pwd /etc/dhcp [root@localhost dhcp]# cat dhcpd.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.sample # see 'man 5 dhcpd.conf' # ddns-update-style none; default-lease-time 7200; max-lease-time 14400; option domain-name "cac.com"; option domain-name-servers 192.168.40.10,192.168.40.20 ; subnet 192.168.80.0 netmask 255.255.255.0 { range 192.168.80.10 192.168.80.100; option routers 192.168.80.1; }
關鍵字段解析
全局設置(對所有網段都起作用)
ddns-update-style none;
在沒有DHCP情況下,計算機使用域名通信情況,見下圖,DNS維護IP到域名映射表
在引入DHCP后,計算機一開機,由DHCP自動分配IP,導致DNS那一側IP到域名映射關系失效,需要更新這份映射關系。可以由計算機自己更新(我們用的Windows就有這個功能),也可由DHCP代勞。ddns-update-style none;這句話的意思就是說,DHCP就不要管閑事更新DNS映射表了。見下圖
default-lease-time 7200;
默認租約時間。客戶機通過DHCP獲取IP后,這個IP使用時間是多久。單位秒
max-lease-time 14400;
最大租約時間。正常情況下,如果客戶機在default-lease-time快到期時會向DHCP續租。如果在default-lease-time期間,客戶機死機了,default-lease-time時間到了,DHCP服務器並不會立即回收這個IP,他還會再等等,等的這個時間就是max-lease-time。如果max-lease-time 這么長時間還不來續租,那就回收IP方便別人再使用。
option domain-name "cac.com";
默認域名稱。在一個局域網內,各個計算機之間通過名稱訪問,比如ftp服務器全名叫ftp.cac.com,其他客戶機要想獲取ftp服務就必須使用ftp.cac.com全名(DNS會把這個全名解析成IP)。使用這個字段就可以直接使用ftp通信了。
option domain-name-servers 192.168.40.10,192.168.40.20 ;
指定域名解析服務器,多個域名解析服務器用逗號隔開
子網設置
subnet 192.168.80.0 netmask 255.255.255.0
標記哪個子網
range 192.168.80.10 192.168.80.100;
DHCP分配IP地址范圍
option routers 192.168.80.1;
這個子網的網關是什么,每個子網的網關都不一樣。
子網也可以設置租約時長,如果和全局設置一樣就沒必要寫了。
啟動DHCP服務

service dhcpd start
檢查偵聽端口

[root@WebServer ~]# netstat -tlunp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1116/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1192/master tcp 0 0 :::22 :::* LISTEN 1116/sshd tcp 0 0 ::1:25 :::* LISTEN 1192/master udp 0 0 0.0.0.0:67 0.0.0.0:* 1638/dhcpd
客戶端配置
Linux客戶端
編輯網卡配置文件etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 HWADDR=80:8C:29:7B:54:DC TYPE=Ethernet UUID=76cda891-e44f-4236-9f2c-be13f8d87292 ONBOOT=yes NM_CONTROLLED=yes B0OTPROTO=dhcp
重啟網絡服務 service network restart
在DHCP服務端/var/lib/dhcpd/dhcpd.leases文件查看租約信息

[root@localhost ~]# tail -11 /var/lib/dhcpd/dhcpd.leases lease 192.168.1.100 { starts 2 2018/08/22 08:33:46; ends 2 2018/08/22 14:33:46; tstp 2 2018/08/22 14:33:46; cltt 2 2018/08/22 08:33:46; binding state active; next binding state free; hardware ethernet 00:0c:29:03:e3:40; }
在DHCP客戶端/etc/resolv.conf文件可以看到從DHCP服務器獲取的信息。客戶端這一側租約信息在/var/lib/dhclient/dhclient-ethe.leases文件里面記錄
對於有圖形界面的Linux發行版還可以使用圖形界面來設置,設置完后重啟網絡服務
Windows客戶端
Windows命令行執行ipconfig查看獲取的IP地址。
ipconfig /release告訴DHCP服務器釋放租約。如果這時候新加入一台計算機(使用DHCP獲取IP),會獲取之前釋放的哪個IP
ipconfig /renew 重新獲取IP地址
DHCP服務器分配原則:盡量讓客戶端使用原來的IP地址
給特定的服務器保留固定IP地址
如何理解這種場景
有機房A、B,分別在50和60網段。教師要在兩個教師上課,課堂上學生需要訪問老師的共享文件,學生只知道老師的IP是8,但是由於DHCP是隨機分配IP,教師的IP可能就不是8。通過在DHCP服務器一側設置具體某台機器的IP就可以滿足上面場景要求。注意DHCP服務器是通過MAC標識計算機的。
DHCP服務端配置如下

ddns-update-style none; default-lease-time 7200; max-lease-time 14400; option domain-name "cac.com"; option domain-name-servers 192.168.40.10,192.168.40.20 ; subnet 192.168.80.0 netmask 255.255.255.0 { range 192.168.80.10 192.168.80.100; option routers 192.168.80.1; host win2012 { hardware ethernet 80:8C:29:7B:54:DC; fixed-address 192.168.80.50 option domain-name "cs.com"; } }
DHCP誇網段分配IP地址
見下圖
學校共4各學院,其中計算機學院最關機,存放所有重要服務器,其他學院都是些普通計算機。4個學院4個網段,對於DHCP服務器而言,其作用主要就是分配個IP,任務量並不大,沒必要每個學院都布置一個,其他學院只需要訪問計算機學院的DHCP服務器獲取IP即可。
這里面有個問題,就是DHCP客戶端向DHCP服務端發起分配IP請求,是通過廣播進行的。但是由於是跨網段通信,路由器隔絕廣播域,導致廣播數據包不能傳輸到計算機學院,因此其他學院也就無法自動獲取IP。
解決問題的辦法是DHCP中繼,他在路由器上設置。客戶端的廣播請求經過路由器會變成一個定向轉給DHCP服務器。這有點類似於NAT地址轉換,假設計院,軟院,光電,通信分別是192.168.40.0/24、92.168.50.0/24、92.168.60.0/24、92.168.70.0/24。個網段網管均為X.X.X.1,軟院有個計算機192.168.50.55的廣播包經過路由器會被替換成192.168.50.1
以上是原理部分,具體路由器如何設置,是網管的工作了。