Chinaunix首页 | 论坛 | 博客
  • 博客访问: 610967
  • 博文数量: 244
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-27 09:53
个人简介

记录学习,记录成长

文章分类

全部博文(244)

我的朋友

分类: LINUX

2015-08-07 18:46:48

DHCP服务的工作机制
(1)DHCP发现——DHCP  DISCOVER
    DHCP客户机发出’DHCP发现‘广播包,即目的IP地址为255.255.255.255的数据包,这样的广播包会被同一个网段的所有主机收到;
(2)DHCP提供——DHCP  OFFER
    收到DHCP发现广播包的客户机会忽略该信息,而服务器会给予响应,成为DHCP提供;可能有多台DHCP服务器都给出响应,他们分别从自己的IP地址池中找出一个未分配的IP地址和附带上子网掩码等参数一并提供给客户机;注意该包也是以广播包的形式发出的;
(3)DHCP请求——DHCP  REQUEST
    DHCP客户机收到DHCP提供包以后将准备采用收到的第一个(说明双方更容易通信)提供包中所提供的IP地址等信息,于是,正式向该DHCP服务器发出DHCP请求的广播包,这样做可以保证所有发出DHCP提供包的服务器收到该请求包,另外也同时”谢绝“其他DHCP服务器的提供包,以便其他服务器及时收回自己的IP地址;
(4)DHCP确认——DHCP  ACK
    当收到DHCP请求包之后,该DHCP服务器正式发出DHCP确认包,予以确认(仍是广播包形式),当客户机收到DHCP确认包后,DHCP的租借过程成功完成,此时的DHCP客户机才有了IP地址等网络参数;
为了能够及时的延长租期,DHCP服务制订了DHCP租期更新机制:
(1)RENEW更新:在50%租期时刻,DHCP客户机会发出DHCP REQUEST数据包,向DHCP服务器请求续租,如果收到DHCP服务器的响应则续租成功,否则进入下一个g更新阶段;
(2)REBIND更新:如果在50%租期时刻没有收到服务器的响应,则DHCP客户机可以继续使用当前IP,直到87.5%租期时刻,DHCP客户机发出DHCP  DISCOVER数据包,如果收到服务器的响应则续租成功,如果收到其他DHCP服务器的响应,则在用完剩下12.5%的租期后采用新的租期;

1.安装DHCP相关包
[root@localhost ~]# yum list all | grep dhcp
dhcp-common.i686                        12:4.1.1-38.P1.el6.centos        @anaconda-CentOS-201311271240.i386/6.5
dhcp.i686                               12:4.1.1-43.P1.el6.centos        base   
dhcp-common.i686                        12:4.1.1-43.P1.el6.centos        base   
dhcp-devel.i686                         12:4.1.1-43.P1.el6.centos        base   
[root@localhost ~]# yum install dhcp
[root@localhost ~]# rpm -qa | grep dhcp
dhcp-4.1.1-38.P1.el6.centos.i686
dhcp-common-4.1.1-38.P1.el6.centos.i686
2.将配置内容复制到主配置文件中
[root@localhost dhcp]# cat dhcpd.conf 
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample     #将该文件中内容复制到dhcpd.conf中
#   see 'man 5 dhcpd.conf'
[root@localhost dhcp]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 
cp: overwrite `/etc/dhcp/dhcpd.conf'? y
[root@localhost dhcp]# 
其中选项:
 ddns-update-style  interim|none|ad-hoc    #设置DDNS的更新方案
                                  interim表示DNS互动更新模式
                                  none:表示不支持动态更新
                                  ad-hoc:表示特殊DNS更新模式
 ignore  client-updates   #忽略客户端更新

 subnet 10.5.5.0 netmask 255.255.255.224 {        #设置子网(或者说成地址池)及其参数,该子网必须要和网卡IP在同一个网段
  option   subnet-mask       255.255.255.0        #设置子网掩码 
 option   nis-domain        "domain.org"            #设置nis域
  option   domain-name-servers     ns1.internal.example.org;     #设置DNS服务器的IP地址
  option   domain-name                "internal.example.org";        #设置域名即/etc/resolv.conf中的search字段
  option   routers 10.5.5.1;                    #设置默认网关IP地址
  option   broadcast-address     10.5.5.31;    #设定广播地址,若不设定系统会自动根据class A ,B ,C,的原则计算广播地址
  option   time-offset            -18000        #设置时区
  default-lease-time    600;                      #设置默认租期
  max-lease-time        7200;                    #设置最大租期
  range   10.5.5.26   10.5.5.30;               #设置地址池即可分配IP地址的范围
            host     自定义名字  {                  #设置IP地址与MAC地址绑定,针对主机单独做设置
      hardware   ethernet     0:0:c0:5d:bd:95;    #该主机的MAC地址
      fixed-address    10.5.5.28;                        #为这台主机分配指定IP
                                        }

}
3.  配置配置文件
[root@localhost dhcp]# cat dhcpd.conf 
ddns-update-style  none;
ignore  client-updates;
subnet 192.168.85.0  netmask 255.255.255.0 {
        option routers          192.168.85.2;
        option subnet-mask      255.255.255.0;
        option domain-name      "mageedu.com";
        option domain-name-servers      192.168.85.2;
        option time-offset      -18000;
        range   192.168.85.180  192.168.85.185;
        default-lease-time      21600;
        max-lease-time          43200;
}
4.重启服务并测试
[root@localhost dhcp]# service dhcpd start
Starting dhcpd: [  OK  ]
DHCP服务采用UDP协议,其中DHCp服务器采用67号端口,DHCP客户机采用68号端口;
[root@localhost dhcp]# netstat -unlp | grep dhcp
udp        0      0 0.0.0.0:67                  0.0.0.0:*                               10573/dhcpd

5.  新建一台作为客户机测试DHCP服务是否正常运行


6.然后更改配置文件,添加host选项,为这台主机配置IP地址与MAC地址绑定
[root@localhost dhcp]# cat dhcpd.conf 
ddns-update-style  none;
ignore  client-updates;
subnet 192.168.85.0  netmask 255.255.255.0 {
        option routers          192.168.85.2;
        option subnet-mask      255.255.255.0;
        option domain-name      "mageedu.com";
        option domain-name-servers      192.168.85.2;
        option time-offset      -18000;
        range   192.168.85.180  192.168.85.185;
        default-lease-time      21600;
        max-lease-time          43200;
                host  rhel {
                        hardware ethernet       00:0C:29:A6:46:2F;
                        fixed-address           192.168.85.183;    #既然是保留IP,不必需要是range中的IP也可以是192.168.85.0 中的任意IP
                        }
}
此时在客户机上重启network查看此时的IP



查看租约信息
[root@localhost dhcpd]# pwd
/var/lib/dhcpd
[root@localhost dhcpd]# ll
total 8
-rw-r--r-- 1 dhcpd dhcpd   0 Nov 22  2013 dhcpd6.leases
-rw-r--r-- 1 root  root  663 Aug  7 03:36 dhcpd.leases
-rw-r--r-- 1 root  root  603 Aug  7 03:27 dhcpd.leases~
[root@localhost dhcpd]# cat dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1
lease 192.168.85.180 {
  starts 5 2015/08/07 10:16:41;
  ends 5 2015/08/07 16:16:41;
  tstp 5 2015/08/07 16:16:41;
  cltt 5 2015/08/07 10:16:41;
  binding state active;
  next binding state free;
  hardware ethernet 00:50:56:2f:6d:43;
}
lease 192.168.85.181 {
  starts 5 2015/08/07 10:27:26;
  ends 5 2015/08/07 16:27:26;
  tstp 5 2015/08/07 16:27:26;
  cltt 5 2015/08/07 10:27:26;
  binding state active;
  next binding state free;
  hardware ethernet 00:0c:29:a6:46:2f;
}
server-duid "\000\001\000\001\035W<\011\000\014)E\203\316";

7.  dhclient命令
也可以用ifconfig  ethX   down将IP释放,然后用dhclient命令查看获取IP的过程
用法:
dhclient命令使用动态主机配置协议动态的配置网络接口的网络参数。 
参数:
-4 : 使用DHCPv4
-6 : 使用DHCPv6
-d:总是以前台方式运行程序; 
-q:安静模式,不打印任何错误的提示信息; 
-r:释放ip地址
例子:

 dhclient -r #释放IP 

# dhclient #获取IP
dhclient命令不能连续执行两次,可以执行一次后释放该进程(killall dhclient)在执行dhclient命令
 
阅读(1261) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~