1. DHCP服務簡介
DHCP是Dynamic Host Configuration Protocol,動態主機配置協議,是用來在物理網路給主機分配ip地址的一種方式,區別於bootp,一次分配終身使用的缺點。
DHCP提出的租約的概念,使得可以根據需要動態確定主機需要的IP地址,並且IP地址可以迴圈使用。
2. DHCP結構
DHCP是典型的C/S結構,需要服務端啟動守護程序來保證來自client段的請求能被響應,DHCP的工作原理如下:
可以透過DORA來記憶:
Client: DHCP DISCOVER #客戶端向相同網路傳送廣播包,企圖尋找DHCP伺服器
Server: DHCP OFFER#如果DHCP服務段收到DISCOVER包,則向客戶端回覆OFFER廣播包
Client: DHCP REQUEST#客戶端收到來自DHCP的OFFER廣播包後,則確定DHCP伺服器,繼續向DHCP伺服器傳送REQUEST包,來申請ip資訊
Server: DHCP ACK#DHCP服務端向客戶端傳送ACK包,攜帶ip和租約資訊給客戶端, DHCP發現過程結束
因為路由器和dhcp之間的連線是有ip資訊的。
DHCP服務端埠 UDP 67
DHCP客戶端埠 UDP 68
DHCP reservation: 地址保留:
專用於某特定客戶端的地址,不應該使用地址池中的地址;優先於地址池中的地址;
3. Linux下DHCP服務安裝配置
由於CentOS6/7的系統管理機制不同,所以開機自啟動服務的方式有所不同,但是配置檔案,幫助文件大同小異
3.1 CentOS 6下 DHCP安裝:
#yum install dhcp
#透過rpm -ql dhcp 來查詢hdcp包所建立安裝的檔案,我們可以分析他的使用方式:
這裡列舉幾個比較重要的檔案:
#DHCP服務配置檔案:
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
#服務指令碼,控制dhcp服務的啟動,關閉,狀態查詢,reload等
/etc/rc.d/init.d/dhcpd
/etc/rc.d/init.d/dhcpd6
/etc/rc.d/init.d/dhcrelay
/etc/rc.d/init.d/dhcrelay6
#dhcp命令引數配置檔案: 此檔案內容提供一些區段給dhcpd守護程序在系統引導時使用,dhcpd守護程序使用DHCP及BOOTP協議為主機自動分配IP地址
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd6
/etc/sysconfig/dhcrelay
/etc/sysconfig/dhcrelay6
#dhcp二進位制程式
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
#dhcp的ip地址租約庫,可以查到ip分配情況
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
4.1 CentOS6下dhcp服務配置檔案管理:
4.1.1 首先編輯dhcp主配置檔案:
option domain-name "richie.com"; #dhcp主機名
option domain-name-servers 192.168.229.141; #名稱伺服器的地址
default-lease-time 600; #預設租約秒數
max-lease-time 7200;#最大租約秒數
log-facility local7; #log級別
subnet 192.168.229.0 netmask 255.255.255.0 {
range 192.168.229.201 192.168.229.220; #可供分配的ip段
option routers 192.168.229.1, 192.168.229.2; #如果在最近配置的option routers那就直接飲用,如果沒有,那就會自動繼承上一級的option
} #子網配置格式
當編輯完,儲存退出,可以使用這個命令來檢測語法錯誤:
service dhcpd configtest
4.1.2 配置ip地址預留:
需要在subnet {} 內部,配置host{}格式如下:
host windows1 {
hardware ethernet 00:0c:29:0:f3:44;
fixed-address 192.168.229.222;
option routers 192.168.0.1 #這裡可以針對這臺機器設定option routers的值,而不用繼承上一級的閘道器資訊
}
最後,儲存退出
service dhcpd force-reload
測試效果:
linux client:
dhclient -d eth0
window client:
ipconfig /renew
4.1.3 配置開機自啟動:
還是老命令chkconfig dhcpd on, 預設會將init級別2,3,4,5都設定為開機自啟動, 也可以使用 chkconfig --level 2,3,4 來自己指定需要的執行級別自啟
4.1.4 管理dhcp服務
service dhcpd {start|stop|restart|force-reload|condrestart|try-restart|configtest|status}
4.2 CentOS 7下的DHCP服務管理
4.2.1 配置檔案:
同CentOS6上的配置,參見4.1.1
4.2.2 配置ip地址預留:
同CentOS6上的配置,參見4.1.2
4.2.3 配置開機自啟動:
由於CentOS6/7的系統服務管理機制的不同,CentOS7引入了systemd來管理所有的服務,所以不能再使用chkconfig命令來設定,需要使用:
# systemctl is-enabled DAEMON.service 檢視dhcp服務狀態, 相當於C5的 chkconfig --list dhcpd
# systemctl enable DAEMON.service啟用開機自啟動dhcp服務, 相當於C5的 chkconfig dhcpd on
# systemctl disable DAEMON.service 禁用開機自啟動dhcp服務, 相當於C5的 chkconfig dhcpd off
4.2.4 管理dhcp服務
# systemctl {start|stop|restart|status} DAEMON.service
5. DHCP配置命令總結
一個簡單dhcp服務的配置檔案至少需要包含如下的配置資訊:
dhcpd.conf
option domain-name
option domain-name-servers
option routers
subnet NETWORK netmask MASK {
range START_IP END_IP;
host HOSTID {
hardware ethernet 00:11:22:33:44:55;
fixed-address IP;
========================================================
例子:
option domain-name "richie.com";
option domain-name-servers 192.168.229.141;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
range 192.168.229.201 192.168.229.220;
option routers 192.168.229.1, 192.168.229.2;
hardware ethernet 00:0c:29:30:f3:44;
fixed-address 192.168.229.211;
1. DHCP服務簡介
DHCP是Dynamic Host Configuration Protocol,動態主機配置協議,是用來在物理網路給主機分配ip地址的一種方式,區別於bootp,一次分配終身使用的缺點。
DHCP提出的租約的概念,使得可以根據需要動態確定主機需要的IP地址,並且IP地址可以迴圈使用。
2. DHCP結構
DHCP是典型的C/S結構,需要服務端啟動守護程序來保證來自client段的請求能被響應,DHCP的工作原理如下:
可以透過DORA來記憶:
Client: DHCP DISCOVER #客戶端向相同網路傳送廣播包,企圖尋找DHCP伺服器
Server: DHCP OFFER#如果DHCP服務段收到DISCOVER包,則向客戶端回覆OFFER廣播包
Client: DHCP REQUEST#客戶端收到來自DHCP的OFFER廣播包後,則確定DHCP伺服器,繼續向DHCP伺服器傳送REQUEST包,來申請ip資訊
Server: DHCP ACK#DHCP服務端向客戶端傳送ACK包,攜帶ip和租約資訊給客戶端, DHCP發現過程結束
因為路由器和dhcp之間的連線是有ip資訊的。
DHCP服務端埠 UDP 67
DHCP客戶端埠 UDP 68
DHCP reservation: 地址保留:
專用於某特定客戶端的地址,不應該使用地址池中的地址;優先於地址池中的地址;
3. Linux下DHCP服務安裝配置
由於CentOS6/7的系統管理機制不同,所以開機自啟動服務的方式有所不同,但是配置檔案,幫助文件大同小異
3.1 CentOS 6下 DHCP安裝:
#yum install dhcp
#透過rpm -ql dhcp 來查詢hdcp包所建立安裝的檔案,我們可以分析他的使用方式:
這裡列舉幾個比較重要的檔案:
#DHCP服務配置檔案:
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
#服務指令碼,控制dhcp服務的啟動,關閉,狀態查詢,reload等
/etc/rc.d/init.d/dhcpd
/etc/rc.d/init.d/dhcpd6
/etc/rc.d/init.d/dhcrelay
/etc/rc.d/init.d/dhcrelay6
#dhcp命令引數配置檔案: 此檔案內容提供一些區段給dhcpd守護程序在系統引導時使用,dhcpd守護程序使用DHCP及BOOTP協議為主機自動分配IP地址
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd6
/etc/sysconfig/dhcrelay
/etc/sysconfig/dhcrelay6
#dhcp二進位制程式
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
#dhcp的ip地址租約庫,可以查到ip分配情況
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
4.1 CentOS6下dhcp服務配置檔案管理:
4.1.1 首先編輯dhcp主配置檔案:
/etc/dhcp/dhcpd.conf
option domain-name "richie.com"; #dhcp主機名
option domain-name-servers 192.168.229.141; #名稱伺服器的地址
default-lease-time 600; #預設租約秒數
max-lease-time 7200;#最大租約秒數
log-facility local7; #log級別
subnet 192.168.229.0 netmask 255.255.255.0 {
range 192.168.229.201 192.168.229.220; #可供分配的ip段
option routers 192.168.229.1, 192.168.229.2; #如果在最近配置的option routers那就直接飲用,如果沒有,那就會自動繼承上一級的option
} #子網配置格式
當編輯完,儲存退出,可以使用這個命令來檢測語法錯誤:
service dhcpd configtest
4.1.2 配置ip地址預留:
需要在subnet {} 內部,配置host{}格式如下:
subnet 192.168.229.0 netmask 255.255.255.0 {
host windows1 {
hardware ethernet 00:0c:29:0:f3:44;
fixed-address 192.168.229.222;
option routers 192.168.0.1 #這裡可以針對這臺機器設定option routers的值,而不用繼承上一級的閘道器資訊
}
}
最後,儲存退出
service dhcpd force-reload
測試效果:
linux client:
dhclient -d eth0
window client:
ipconfig /renew
4.1.3 配置開機自啟動:
還是老命令chkconfig dhcpd on, 預設會將init級別2,3,4,5都設定為開機自啟動, 也可以使用 chkconfig --level 2,3,4 來自己指定需要的執行級別自啟
4.1.4 管理dhcp服務
service dhcpd {start|stop|restart|force-reload|condrestart|try-restart|configtest|status}
4.2 CentOS 7下的DHCP服務管理
4.2.1 配置檔案:
同CentOS6上的配置,參見4.1.1
4.2.2 配置ip地址預留:
同CentOS6上的配置,參見4.1.2
4.2.3 配置開機自啟動:
由於CentOS6/7的系統服務管理機制的不同,CentOS7引入了systemd來管理所有的服務,所以不能再使用chkconfig命令來設定,需要使用:
# systemctl is-enabled DAEMON.service 檢視dhcp服務狀態, 相當於C5的 chkconfig --list dhcpd
# systemctl enable DAEMON.service啟用開機自啟動dhcp服務, 相當於C5的 chkconfig dhcpd on
# systemctl disable DAEMON.service 禁用開機自啟動dhcp服務, 相當於C5的 chkconfig dhcpd off
4.2.4 管理dhcp服務
# systemctl {start|stop|restart|status} DAEMON.service
5. DHCP配置命令總結
一個簡單dhcp服務的配置檔案至少需要包含如下的配置資訊:
dhcpd.conf
option domain-name
option domain-name-servers
option routers
subnet NETWORK netmask MASK {
range START_IP END_IP;
host HOSTID {
hardware ethernet 00:11:22:33:44:55;
fixed-address IP;
}
}
========================================================
例子:
dhcpd.conf
option domain-name "richie.com";
option domain-name-servers 192.168.229.141;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.229.0 netmask 255.255.255.0 {
range 192.168.229.201 192.168.229.220;
option routers 192.168.229.1, 192.168.229.2;
host windows1 {
hardware ethernet 00:0c:29:30:f3:44;
fixed-address 192.168.229.211;
}