DHCP是“动态主机配置协议(Dynamic Host Configuration Protocol)的简写,主要是用来给网络客户机分配动态的IP地址。能有效的防止手动配置IP地址中出现的IP地址冲突问题

DHCP客户端获取地址分为六个步骤

1、寻找DHCP服务器

客户端发送广播 DHCPDISCOVER 来寻找网络中的DHCP服务器

只有DHCP服务器才会做出响应

2、分配IP地址

接收到DHCPDISCOVER的DHCP服务器都会做出响应,向DHCP客户端发送一个尚未租出的IP地址和其他设置的DHCPOFFER提供信息

3、接受IP地址

DHCP客户端接收到DHCPOFFER提供信息后,选择第一个接收到的提供信息,然后以广播方式回答一个DHCPREQUEST 请求信息,该信息包含它所选定的的DHCP服务器请求的IP地址信息

4、IP地址确认分配

当DHCP服务器收到DHCP客户端回答的DHCPREQUEST请求信息后,向DHCP客户端发送一个包含IP地址和其它设置的DHCPACK确认信息

5、重新登陆

当DHCP客户端每次重新登录网络时,不再发送DHCPDISCOVER信息,直接发送包含前一次所分配的IP地址的DHCPREQUEST请求信息,当DHCP服务器收到这一信息后,它会尝试让DHCP客户端继续使用原来的IP地址,并回答一个DHCPACK确认信息。如果此IP地址已无法再分配给原来的DHCP客户端使用时,则DHCP服务器给DHCP客户端回答一个DHCPNACK否认信息。当原来的DHCP客户端收到此DHCPNACK否认信息后,它就必须重新发送DHCPDISCOVER发现信息来请求新的IP地址。

6、更新租约

DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户端要延长其IP租约,则必须更新其IP租约。DHCP客户端启动时和IP租约期限过一半时,DHCP客户端都会自动向DHCP服务器发送更新其IP租约的信息。



例1、在CentOS 6.4 x64系统下搭建DHCP服务器

DHCP的应用_dhcp

一、安装DHCP软件包并查看已安装的DHCP相关的软件包

[root@localhost ~]#yum install dhcp -y

[root@localhost ~]# rpm -qa|grep dhcp

dhcp-4.1.1-34.P1.el6.centos.x86_64

dhcp-common-4.1.1-34.P1.el6.centos.x86_64

二、查看DHCP的相关文件

[root@localhost /]# rpm -ql dhcp

/etc/dhcp

/etc/dhcp/dhcpd.conf

/etc/dhcp/dhcpd6.conf

/etc/openldap/schema/dhcp.schema

/etc/portreserve/dhcpd

/etc/rc.d/init.d/dhcpd

三、编辑DHCP配置文件

[root@localhost /]# vim /etc/dhcp/dhcpd.conf

# DHCP Server Configuration file.

#   see /usr/share/doc/dhcp*/dhcpd.conf.sample

#   see 'man 5 dhcpd.conf'

#

~  

四、读取配置文件模板并修改

在末行模式下输入                                                                    

:r /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  


 7 # option definitions common to all supported networks...

 8 option domain-name "a.com";     //域名服务器

 9 option domain-name-servers 1.1.1.1,2.2.2.2;  //DNS服务器地址

10

11 default-lease-time 600;   //默认租用时间

12 max-lease-time 7200; //最大租用时间


28 subnet 192.168.3.0 netmask 255.255.255.0 {    //作用域

29         range 192.168.3.150 192.168.3.200;  //地址池

30         range 192.168.3.156 192.168.3.200; //网关

31         option routers 192.167.3.1;

32         host teacher { //地址绑定

33           hardware ethernet 00:0c:29:db:a1:f3;

34           fixed-address 192.168.3.155;

35         }

36 }


保存退出

五、检测语法是否有错误

[root@localhost /]# service dhcpd configtest

Syntax: OK

启动DHCP服务

[root@localhost /]# service dhcpd start

Starting dhcpd:                                            [  OK  ]

[root@localhost /]# chkconfig dhcpd on        

[root@localhost /]# netstat -tupln |grep dhcp

udp        0      0 0.0.0.0:67       0.0.0.0:*          4608/dhcpd

六、配置DHCP客户端获取地址并查看日志

DHCP的应用_dhcp _02

DHCP的应用_dhcp _03

DHCP的应用_dhcp _04


[root@localhost ~]# tail -f /var/log/messages

May  4 16:53:48 localhost dhcpd: DHCPRELEASE of 192.168.3.150 from 00:0c:29:db:a1:f3 (FLXP--20140326M) via eth0 (found)

May  4 16:53:57 localhost dhcpd: DHCPDISCOVER from 00:0c:29:db:a1:f3 via eth0

May  4 16:53:57 localhost dhcpd: DHCPOFFER on 192.168.3.155 to 00:0c:29:db:a1:f3 via eth0

May  4 16:54:00 localhost dhcpd: DHCPDISCOVER from 00:0c:29:db:a1:f3 via eth0

May  4 16:54:00 localhost dhcpd: DHCPOFFER on 192.168.3.155 to 00:0c:29:db:a1:f3 via eth0

May  4 16:54:08 localhost dhcpd: DHCPDISCOVER from 00:0c:29:db:a1:f3 via eth0

May  4 16:54:08 localhost dhcpd: DHCPOFFER on 192.168.3.155 to 00:0c:29:db:a1:f3 via eth0

May  4 16:54:08 localhost dhcpd: uid lease 192.168.3.150 for client 00:0c:29:db:a1:f3 is duplicate on 192.168.3.0/24

May  4 16:54:08 localhost dhcpd: DHCPREQUEST for 192.168.3.155 (192.168.3.120) from 00:0c:29:db:a1:f3 via eth0

May  4 16:54:08 localhost dhcpd: DHCPACK on 192.168.3.155 to 00:0c:29:db:a1:f3 via eth0




例2、超级作用域的实现



超级作用域的实现同例1,只有第四步有区别

四、读取配置文件模板并修改

:r /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  


 7 # option definitions common to all supported networks...

 8 option domain-name "a.com";     //域名服务器

 9 option domain-name-servers 1.1.1.1,2.2.2.2;  //DNS服务器地址

10

11 default-lease-time 600;   //默认租用时间

12 max-lease-time 7200; //最大租用时间


28 shared-network abc  {     //超级作用域

29

30 subnet 192.168.3.0 netmask 255.255.255.0 {

31         range 192.168.3.150 192.168.23.150 ;//为了看到效果我们只给每个作用域一个地址

32         option routers 192.167.3.1 ;

33 }

34 subnet 192.168.4.0 netmask 255.255.255.0 {

35         range 192.168.4.150 192.168.4.150 ;

36         option routers 192.167.4.1 ;

37 }

38 }


DHCP的应用_dhcp _05

DHCP的应用_dhcp _06

DHCP的应用_dhcp _07

超级作用域完成了




例3、DHCP中继

1】修改服务器的IP地址

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0


DEVICE=eth0

BOOTPROTO=none

HWADDR=00:0c:29:02:29:7b

IPV6INIT=no

ONBOOT=yes

IPADDR=192.168.30.100

NETMASK=255.255.255.0

GATEWAY=192.168.30.1

DNS1=202.202.224.68

TYPE=Ethernet

UUID="33b4de4a-cead-4ec3-b264-43512afb04c7"


重启网络服务

[root@localhost ~]# service network restart

查看路由

[root@localhost ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.30.0    0.0.0.0         255.255.255.0   U     1      0        0 eth0

0.0.0.0         192.168.30.1    0.0.0.0         UG    0      0        0 eth0


2】DHCP服务器配置同例1,配置文件修改如下


 7 # option definitions common to all supported networks...

 8 option domain-name "a.com";     //域名服务器

 9 option domain-name-servers 1.1.1.1,2.2.2.2;  //DNS服务器地址

10

11 default-lease-time 600;   //默认租用时间

12 max-lease-time 7200; //最大租用时间


29 subnet 192.168.10.0 netmask 255.255.255.0 {

30         range 192.168.10.2 192.168.10.253 ;

31         option routers 192.168.10.1 ;

32 }      

33 subnet 192.168.20.0 netmask 255.255.255.0 {

34         range 192.168.20.2 192.168.20.253 ;

35         option routers 192.167.20.1 ;

36 }      

37 subnet 192.168.30.0 netmask 255.255.255.0 {

38         range 192.168.30.2 192.168.30.253 ;

39         option routers 192.167.30.1 ;

40 }

后续同例1五

3】配置路由

用windows server 2003 做路由器

设置如下

DHCP的应用_dhcp _08

DHCP的应用_dhcp _09

DHCP的应用_dhcp _10

DHCP的应用_dhcp _11

好了,路由器配置好了

4】测试

DHCP的应用_dhcp _12

DHCP的应用_dhcp _13


好了,DHCP中继完成了