萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> DHCP服務介紹及Linux下DHCP服務的管理配置

DHCP服務介紹及Linux下DHCP服務的管理配置

   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在跨網段的路由器另一側,則路由器需要開啟dhcp relay來支持轉發客戶端DISCOVER的廣播包給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;

  }

  }

        .

copyright © 萬盛學電腦網 all rights reserved