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相关的软件包
[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客户端获取地址并查看日志
[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 }
超级作用域完成了
例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 做路由器
设置如下
好了,路由器配置好了
4】测试
好了,DHCP中继完成了