Linux DHCP服務器

  DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網的網絡協議,使用UDP協議工作, 主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作爲對所有計算機作中央管理的手段,在RFC 2131中有詳細的描述。DHCP有3個端口,其中UDP67和UDP68爲正常的DHCP服務端口,分別作爲DHCP Server和DHCP Client的服務端口;546號端口用於DHCPv6 Client,而不用於DHCPv4,是爲DHCP failover服務,這是需要特別開啓的服務,DHCP failover是用來做“雙機熱備”的。  

  功能:

   DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)通常被應用在大型的局域網絡環境中,主要作用是集中的管理、分配IP地址,使網絡環境中的主機動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,並能夠提升地址的使用率。

DHCP協議採用客戶端/服務器模型,主機地址的動態分配任務由網絡主機驅動。當DHCP服務器接收到來自網絡主機申請地址的信息時,纔會向網絡主機發送相關的地址配置等信息,以實現網絡主機地址信息的動態配置。DHCP具有以下功能:

   1. 保證任何IP地址在同一時刻只能由一臺DHCP客戶機所使用。

   2. DHCP應當可以給用戶分配永久固定的IP地址。

   3. DHCP應當可以同用其他方法獲得IP地址的主機共存(如手工配置IP地址的主機)。

   4. DHCP服務器應當向現有的BOOTP客戶端提供服務。

  DHCP有三種機制分配IP地址:

   1) 自動分配方式(Automatic Allocation),DHCP服務器爲主機指定一個永久性的IP地址,一旦DHCP客戶端第一次成功從DHCP服務器端租用到IP地址後,就可以永久性的使用該地址。

   2) 動態分配方式(Dynamic Allocation),DHCP服務器給主機指定一個具有時間限制的IP地址,時間到期或主機明確表示放棄該地址時,該地址可以被其他主機使用。

   3) 手工分配方式(Manual Allocation),客戶端的IP地址是由網絡管理員指定的,DHCP服務器只是將指定的IP地址告訴客戶端主機。

     三種地址分配方式中,只有動態分配可以重複使用客戶端不再需要的地址。

  DHCP消息的格式是基於BOOTP(Bootstrap Protocol)消息格式的,這就要求設備具有BOOTP中繼代理的功能,並能夠與BOOTP客戶端和DHCP服務器實現交互。BOOTP中繼代理的功能,使得沒有必要在每個物理網絡都部署一個DHCP服務器。RFC 951和RFC 1542對BOOTP協議進行了詳細描述。

  DHCP客戶端

   在支持DHCP功能的網絡設備上將指定的端口作爲DHCP Client,通過DHCP協議從DHCP Server動態獲取IP地址等信息,來實現設備的集中管理。一般應用於網絡設備的網絡管理接口上。

  DHCP客戶端可以帶來如下好處:

   降低了配置和部署設備時間。

   降低了發生配置錯誤的可能性。

   可以集中化管理設備的IP地址分配。

  DHCP服務器

   DHCP服務器指的是由服務器控制一段IP地址範圍,客戶端登錄服務器時就可以自動獲得服務器分配的IP地址和子網掩碼。  

  DHCP協議採用UDP作爲傳輸協議,主機發送請求消息到DHCP服務器的67號端口,DHCP服務器迴應應答消息給主機的68號端口。詳細的交互過程如圖。

wKioL1U4RH3DRBUrAADHgVOXtDc355.jpg

 Linux DHCP配置:

   1、設置DHCP固定IP (DHCP服務器必須使用固定IP)

[root@master dhcp]# ifconfig -a           #查看當前使用網卡,設置固定IP
eth1   Link encap:Ethernet  HWaddr 00:0C:29:52:46:0F  
     inet addr:192.168.8.7  Bcast:192.168.8.255  Mask:255.255.255.0
     inet6 addr: fe80::20c:29ff:fe52:460f/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:15330 errors:0 dropped:0 overruns:0 frame:0
     TX packets:9236 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000 
     RX bytes:16260358 (15.5 MiB)  TX bytes:785794 (767.3 KiB)

wKiom1U4WzjByLkdAAGvOQECjTU757.jpg

   2、安裝DHCP

[root@master yum.repos.d]# yum -y install dhcp    #以本地光盤爲yum源安裝DHCP
Error: Package: 12:dhcp-4.1.1-34.P1.el6.centos.x86_64 (Master)
           Requires: dhcp-common = 12:4.1.1-34.P1.el6.centos
           Installed: 12:dhcp-common-4.1.1-43.P1.el6.centos.x86_64 (@Master)
               dhcp-common = 12:4.1.1-43.P1.el6.centos
           Available: 12:dhcp-common-4.1.1-34.P1.el6.centos.x86_64 (Master)
               dhcp-common = 12:4.1.1-34.P1.el6.centos
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
   #提示版本不一致,要求安裝dhcp-4.1.1-34版本,卸載dhcp-common-4.1.1-43包,再重新安裝DHCP
[root@master yum.repos.d]# rpm -qc dhcp    #rpm查詢DHCP配置
/etc/dhcp/dhcpd.conf                #IPV4配置文件
/etc/dhcp/dhcpd6.conf                #IPV6配置文件
/etc/openldap/schema/dhcp.schema
/etc/portreserve/dhcpd               #備用端口文件
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd6
/etc/sysconfig/dhcrelay
/etc/sysconfig/dhcrelay6
/var/lib/dhcpd/dhcpd.leases             #IPV4租約文件
/var/lib/dhcpd/dhcpd6.leases            #IPV6租約文件

   3、編輯配置文件

[root@master ~]# cd /etc/dhcp/     #切換至配置目錄
[root@master dhcp]# ll
total 12
drwxr-xr-x. 2 root root 4096 Oct 16  2014 dhclient.d    #DHCP客戶端腳本文件
-rw-r--r--. 1 root root  193 Oct 16  2014 dhcpd6.conf   #IPV6配置文件
-rw-r--r--. 1 root root  112 Oct 16  2014 dhcpd.conf   #IPV4配置文件
[root@master dhcp]# cat dhcpd.conf     #查看配置文件爲空,提示有模板可用
# 
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see 'man 5 dhcpd.conf'
[root@master dhcp]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample dhcpd.conf
    #Copy模板覆蓋當前配置文件
    
[root@master dhcp]# vim dhcpd.conf         #編輯配置文件
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# option definitions common to all supported networks...
option domain-name "example.org";                    #全局配置,定義區域名  
option domain-name-servers ns1.example.org, ns2.example.org;  #全局配置,定義域名服務器
default-lease-time 600;                #全局配置,定義默認租約時間,單位爲秒
max-lease-time 7200;                 #全局配置,定義最大租約時間,單位爲秒

# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the 
# DHCP server to understand the network topology.

subnet 10.0.0.0 netmask 255.255.255.0 {     #subnet定義網絡段,子網掩碼
  range 10.0.0.3 10.0.0.254;       #使用range定義IP地址段,必須排除此DHCP服務器IP
  option domain-name-servers master.dove.com;  #使用option定義域名服務器
  option domain-name "master.dove.com";     #使用option定義區域名
  option routers 10.0.0.1;            #使用option定義路由器IP
  option broadcast-address 10.0.0.255;      #使用option定義廣播地址
  default-lease-time 3600;            #定義此網段IP地址默認租約時間
  max-lease-time 7200;              #定義此網段IP地址最大租約時間
}

## This is a very basic subnet declaration.  #將配置中從此行開始,以下全部註釋

  4、啓動DHCP服務wKiom1U4ZZGjjZpdAAEBrQyDdc4824.jpg

  5、測試客戶端

    環境:虛擬機CentOS6.4作爲DHCP服務器,網絡爲Vmnet2

       虛擬機CentOS6.4作爲DHCP客戶端,網絡爲Vmnet2

   查看DHCP客戶端獲取IP

wKiom1U4pv-wCtVAAAFDvK4zYA4604.jpg

   查看DHCP服務器租約文件wKiom1U4qHWi6_TDAAHdBozIdLg720.jpg

  6、DHCP保留客戶端IPwKiom1U4qGPzPi9zAAFwYiJPQzk996.jpg

   重新獲取IP

 dhclient -d 也可重新獲取IP,一般建議重啓網絡服務,因爲網絡服務本身會調用dhclient腳本.

wKioL1U4qo6TaJNhAAIMAeQIN9M321.jpg

  到此DHCP服務器搭建完成.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章