【第22期】观点:IT 行业加班,到底有没有价值?

配置DHCP服务器实现动态地址分配

转载 2016年06月02日 15:28:59

本节所讲内容:

•      DHCP服务器工作原理

•      使用DHCP为局域网中的机器分配IP地址

•      使用DHCP为服务器分配固定IP地址

 

实验环境:

服务端:xuegod63.cn   IP:192.168.1.63

客户端:xuegod64.cn   IP:192.168.1.64

 

DHCP服务概述:

名称:DHCP  - Dynamic Host Configuration Protocol  动态主机配置协议

功能:DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:

1、 给内部网络或网络服务供应商自动分配IP地址,主机名,DNS服务器,域名

2、 配和其它服务,实现集成化管理功能。如:无人执守安装服务器

 

特点: C/S 模式

自动分配IP地址,方便管理

DHCP不会同时租借相同的IP地址给两台主机;

DHCP管理员可以约束特定的计算机使用特定的IP地址;

可以为每个DHCP作用域设置很多选项;

客户机在不同子网间移动时不需要重新设置IP地址。每次都自动获取IP地址就可以了。

 

DHCP的缺点:

当网络上存在多服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;

DHCP服务器不能跨路由器与客户机通信,除非路由器允许BOOTP协议转发。

 

端口:

DHCP服务使用:端口67(bootps)68(bootpc)

例:查看

# vim /etc/services

DHCP协议由 bootp协议发展而来,是BOOTP增强版本,bootps代表服务端端口, bootpc代表客户端端口

 

bootp协议:引导程序协议(BOOTP)。它可以让无盘工作站从一个中心服务器上获得IP地址,为局域网中的无盘工作站分配动态IP地址,并不需要每个用户去设置静态IP地址

 

BOOTP有一个缺点您在设定前须事先获得客户端的硬件地址,而且,MCA地址与IP的对应是静态的。换而言之,BOOTP非常缺乏“动态性 ”,若在有限的IP资源环境中,BOOTP的一对一对应会造成非常可观的浪费

DHCP可以说是BOOTP增强版本,它分为两个部分:一个是服务器端,而另一个是客户端。所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;而客户端则会使用从服务器分配下来的IP环境数据。比较BOOTP, DHCP透过“租约”的概念,有效且动态的分配客户端的TCP/IP设定,而且,作为兼容考虑,DHCP也完全照顾了BOOTP Client的需求。

 

DHCP服务运行原理:

DHCP客户端向服务端请求过程

              客户端C                                                    服务器端S

                                                                   目标端口      源IP               目标IP

       -------DHCPDISCOVER------->          udp 目标67  源IP0.0.0.0 目的IP:255.255.255.255

#即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCPdiscover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应

 

          <------DHCPOFFER ----------        udp  68  源IP是DHCP服务器的IP,目的IP:  255.255.255.255

即DHCP服务器提供IP地址的阶段。在网络中接收到DHCPdiscover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCPoffer提供信息

 

          -------DHCPREQUEST -------->                     udp        67 源IP0.0.0.0              目的IP:255.255.255.255

即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCPoffer提供信息,则DHCP客户机只接受第一个收到的DHCPoffer提供信息,然后它就以广播方式回答一个DHCPrequest请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址

 

          <------DHCPACK ------------                  udp   68 源IP是服务器的IP 目的IP: 255.255.255.255

即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCPrequest请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCPack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地

 

注意:客户端执行DHCP DISCOVER 后,如果没有DHCP 服务器响应客户端的请求,客户端会随机使用169.254.0.0/16 网段中的一个IP 地址配置本机地址。

169.254.0.0/16是windows的自动专有IP寻址范围,也就是在无法通过DHCP获取IP地址时,由系统自动分配的IP地址段。 

早先的Linux上并不会产生这条路由,现在有这条路由是为了和windows兼容。

[root@xuegod63 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.1.0     0.0.0.0         255.255.255.0   U    0      0        0 eth0

169.254.0.0    0.0.0.0         255.255.0.0     U    1002   0        0 eth0

0.0.0.0         192.168.1.1     0.0.0.0         UG   0      0        0 eth0

 

安装DHCP

dhclient-4.1.1-38.P1.el6.x86_64.rpm          #客户端

dhcp-common-4.1.1-38.P1.el6.x86_64.rpm #包括DHCP客户端和服务端共同需要的一些文件

dhcp-4.1.1-38.P1.el6.x86_64.rpm               #DHCP服务端

 

[root@xuegod63 ~]# yum -yinstall dhcp

 

例:查看一个软件包的作用

 

[root@xuegod63 ~]# rpm-qpi /mnt/Packages/dhcp-common-4.1.1-38.P1.el6.x86_64.rpm

warning:/mnt/Packages/dhcp-common-4.1.1-38.P1.el6.x86_64.rpm: Header V3 RSA/SHA256Signature, key ID fd431d51: NOKEY

Name        : dhcp-common                  Relocations: (notrelocatable)

Version     : 4.1.1                             Vendor: Red Hat, Inc.

Release     : 38.P1.el6                     Build Date: 2013年09月20日 星期五 19时24分54秒

Install Date: (notinstalled)               Build Host:x86-002.build.bos.redhat.com

Group       : System Environment/Base       Source RPM: dhcp-4.1.1-38.P1.el6.src.rpm

Size        : 198000                           License: ISC

Signature   : RSA/8, 2013年10月16日 星期三 13时49分14秒, Key ID199e2f91fd431d51

Packager    : Red Hat, Inc.<http://bugzilla.redhat.com/bugzilla>

URL         : http://isc.org/products/DHCP/

Summary     : Common files used by ISC dhcp client andserver

Description :

DHCP (Dynamic HostConfiguration Protocol) is a protocol which allows

individual devices on anIP network to get their own network

configuration information(IP address, subnetmask, broadcast address,

etc.) from a DHCP server.The overall purpose of DHCP is to make it

easier to administer alarge network.

 

配置文件位置:

当DHCP 主程序包安装好后会自动生成主配置文件的范本文件

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

而在/etc 目录下会建立一个空白的dhcpd.conf 主配置文件。

ls /etc/dhcp/dhcpd.conf

现在我们将范本配置文件复制到/etc 目录下替换掉空白dhcpd.conf 主配置文件。

[root@xuegod63 ~]# cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf

 

 

服务启动关闭脚本,查看端口

[root@xuegod63 ~]#service dhcpd start

正在启动dhcpd:                                           [失败]

#这是因为默认配置文件中分配的都是10.17.224.0网段的IP地址。而我的配置IP地址是192.168.1.0. 必须在一个网段中。

 

启动方法:

方法1

#service dhcpd restart  /start/stop/status 

 

方法2

[root@xuegod63 ~]# /etc/init.d/dhcpd  start

 

保证开机启动:

chkconfig dhcpd on   #配置的服务要保证开机启动

1)chkconfig

运行级别3 自动加载dhcpd 服务

chkconfig --level 3 dhcpd .

运行级别3 关闭自动加载dhcpd 服务

chkconfig --level 3 dhcpd off

 

修改配置文件,实战举例

说明:

dhcp 范本配置文件内容包含了部分参数、声明以及选项的用法,其中注释部分可以放在任何位

置,并以“#”号开头,当一行内容结束时,以“;”号结束,大括号所在行除外

 

可以看出整个配置文件分成全局和局部两个部分。但是并不容易看出哪些属于参数,哪些属于声明和选项。

概念与协议:

作用域:可以分配IP的范围 subnet

地址池:可以分配给客户端的IP,range包括的IP

保留地址:指定某个客户端使用一个特定IP,通过host配置的

租约(时间):客户端可以使用这个IP地址的时间

 

配置文件:/etc/dhcp/dhcpd.conf

       部分配置解释

 

# option definitions common to all supportednetworks...    #定义全局配置,通用于所有支持的网络选项.

option domain-name "example.org";    #为客户端指定所属的域

option domain-name-servers ns1.example.org,ns2.example.org;  #为客户端指定DNS服务器地址

 

 

(3)default-lease-time number(数字)

 default-lease-time 600;    

lease:租赁,租约

作用:定义默认IP 租约时间,以秒为单位的租约时间。

互动:如果设置的比较短,是否会出现租约时间到了以后会重新去获取ip地址,造成用户断网?

50%:续约。(续不上继续用)

87.5%:再次续约。(续不上找别人)

DHCP工作站除了在开机的时候发出 DHCPrequest请求之外,在租约期限一半的时候也会发出 DHCPrequest ,如果此时得不到 DHCP服务器的确认的话,工作站还可以继续使用该IP;当租约期过了87.5%时,如果客户机仍然无法与当初的DHCP服务器联系上,它将与其它 DHCP服务器通信。如果网络上再没有任何DHCP协议服务器在运行时,该客户机必须停止使用该IP地址,并从发送一个Dhcpdiscover数据包开 始,再一次重复整个过程。要是您想退租,可以随时送出 DHCPRELEASE 命令解约,就算您的租约在前一秒钟才获得的。

 

 

(4)max-lease-time number 7200;  (数字)

作用:定义客户端IP租约时间的最大值,当客户端超过租约时间,却尚未更新IP 时,最长可以使用该IP 的时间;

例:

比如,机器在开机获得IP地址后,然后关机了。这时,当时间过了default-lease-time 600秒后,没有机器向DHCP续约,DHCP会保留7200秒,保留此IP地址不用于分配给其它机器。当超过7200秒后,将不再保留此IP地址给此机器。

注意:(3)、(4)都是以秒为单位的租约时间,该项参数可以作用在全局配置中,也可以作用在局部配置中。

 

log-facility local7;   #定义日志类型为  local7

 

3.3 常用声明介绍

声明一般用来指定IP 作用域、定义为客户端分配的IP 地址池等等

声明格式如下:

subnet 网络号 netmask 子网掩码 {

选项或参数

}

 

注意:网络号必须与DHCP 服务器的网络号相同

下面介绍以下每个选项的含意:

(1)range 起始IP 地址 结束IP 地址

作用:指定动态IP 地址范围

注意:可以在subnet(子网) 声明中指定多个range,但多个range 所定义IP范围不能重复

 

常用选项介绍

选项通常用来配置DHCP 客户端的可选参数,比如定义客户端的DNS 地址、默认网关等等。选项

内容都是以option 关键字开始。

常见选项使用如下:

(1)option routers IP 地址

作用:为客户端指定默认网关

如:option routers 10.5.5.1;

(3)option domain-name-servers IP 地址

作用:为客户端指定DNS 服务器地址

注意:(1)、(2)、(3)选项可以用在全局配置中,也可以用在局部配置中。

 

3.5 租约数据库文件

租约数据库文件用于保存一系列的租约声明,其中包含客户端的主机名、MAC 地址、分配到的IP地址,以及IP地址的有效期等相关信息。这个数据库文件是可编辑的ASCII 格式文本文件。每

当发生租约变化的时候,都会在文件结尾添加新的租约记录。

DHCP 刚安装好后租约数据库文件dhcpd.leases 是个空文件

/var/lib/dhcpd/dhcpd.leases

当DHCP 服务正常运行后就可以使用cat 命令查看租约数据库文件内容了

 

实例:

 应用案例

公司有60 台计算机,IP 地址段为192.168.0.1-192.168.0.254,子网掩码是255.255.255.0,网关为192.168.0.1,192.168.0.2-192.168.0.30 网段地址给服务器配置,客户端可以使用的地址段为192.168.0.100-200,其余剩下的IP 地址为保留地址。

操作步骤:

定制全局配置和局部配置,局部配置需要把192.168.0.0/24 网段声明出来,然后在该声明中指定一个IP 地址池,范围为192.168.0.100-192.168.0.200,分配给客户端使用,最后重新启动dhcpd 服务让配置生效。

 

实验环境:

互动:我的虚拟机使用桥接模式是否可行? 不行,因为你的局域网中有可能就有DHCP服务器,这样你就很难,让你的客户端是从你的DHCP服务器获得IP地址。另外,也可能造成公司局域网中其它机器因为获得了你DHCP服务器上的IP地址,而上不了网。

将xuegod63和xuegod64的网卡模式改为:

 

修改配置文件

subnet 192.168.0.0 netmask 255.255.255.0 {

  range192.168.0.100 192.168.0.200;

 option domain-name-servers 192.168.0.1;

 option domain-name "xuegod63.cn";

 option routers 192.168.0.1;

 option broadcast-address 192.168.0.255;

 default-lease-time 600;

 max-lease-time 7200;

}

 

确保IP地址为192.168.0.0网段

[root@xuegod63 ~]# ifconfig

eth0     Link encap:Ethernet  HWaddr00:0C:29:E0:19:A9 

         inet addr:192.168.0.63  Bcast:192.168.0.255  Mask:255.255.255.0

 

启动服务

[root@xuegod63 ~]# service dhcpd restart

正在启动 dhcpd:                                           [确定]

 

验证:

登录到xuegod64主机

开启ip的自动获取

重启网络通过dhcp服务端分配地址信息

查看分配的IP

[root@xuegod64 ~]# ifconfig

eth0     Link encap:Ethernet  HWaddr00:0C:29:0F:90:4F 

         inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0

 

查看默认网关

[root@xuegod64 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.0.0     0.0.0.0         255.255.255.0   U    0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U    1002   0        0 eth0

0.0.0.0         192.168.0.1     0.0.0.0         UG   0      0        0 eth0

 

查看DNS

[root@xuegod64 ~]# cat/etc/resolv.conf

; generated by/sbin/dhclient-script

search xuegod63.cn cn

nameserver 192.168.0.1

 

查看租约数据库文件

[root@xuegod63 ~]# cat/var/lib/dhcpd/dhcpd.leases

# The format of this file isdocumented in the dhcpd.leases(5) manual page.

# This lease file was writtenby isc-dhcp-4.1.1-P1

 

server-duid"\000\001\000\001\036\210\0034\000\014)\340\031\251";

 

lease 192.168.0.100 {

  starts 5 2016/03/25 14:11:54;

  ends 5 2016/03/25 14:21:54;

  cltt 5 2016/03/25 14:11:54;

  binding state active;

  next binding state free;

  hardware ethernet 00:0c:29:0f:90:4f;

}

 

例2:IP 地址绑定

在DHCP 中的IP 地址绑定用于给客户端分配固定IP 地址。比如服务器需要使用固定IP 地址就可以使用IP 地址绑定,通过MAC 地址与IP 地址的对应关系为指定的物理地址计算机分配固定IP地址。

整个配置过程需要用到 host 声明和hardware、fixed-address 参数。

(1)host 主机名 {......}

作用:用于定义保留地址

(2)hardware 类型 硬件地址

作用:定义网络接口类型和硬件地址。常用类型为以太网(ethernet),地址为MAC 地址。

(3)fixed-address IP 地址

作用:定义DHCP 客户端指定的IP 地址。

subnet 192.168.0.0 netmask255.255.255.0 {

  range 192.168.0.100 192.168.0.200;

  option domain-name-servers 192.168.0.1;

  option domain-name "xuegod63.cn";

  option routers 192.168.0.1;

  option broadcast-address 192.168.0.255;

  default-lease-time 600;

  max-lease-time 7200;

  host xuegod64 {     #这一段内容,要写在subnet字段中,和subnet配合使用

        hardware ethernet 00:0C:29:0F:90:4F;

        fixed-address 192.168.0.254;

  }

}

 

验证:

xuegod63重启dhcp服务

[root@xuegod63 ~]# servicedhcpd restart

关闭 dhcpd:                                              [确定]

正在启动 dhcpd:                                           [确定]

 

xuegod64重启network服务

service network restart

 

注意:划分子网时,如果选择直接配置多作用域实现动态IP 分配的任务,则必须要为DHCP 服务

器添加多块网卡,并配置多个IP 地址,否则DHCP 服务器只能分配与其现有网卡IP 地址对应网

段的作用域。
举报

相关文章推荐

开启busybox的dhcp功能

1.配置过程 1.1、配置Linux内核使能DHCP相关选项: [*]Networking support --> Networking support Networking optio...

在virtualbox中如果开启DHCP服务

virtualbox的很多设置需要命令行才能完成,这就是和VMware的

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

路由器开启DHCP,电脑设置静态ip上网,有可能会冲突吗?

有可能冲突,如果DHCP先分配一个IP给某一主机,而同静态IP的那台主机后上线的话,就冲突了。静态IP先上线的话是不会冲突的。 路由器的DHCP服务那没有识别某IP地址是否已上线就不再分配的功能。 ...

Android 以太网Ethernet DHCP和静态设置实现

前提:下面涉及的内容均需要系统权限,也就是系统应用,开发非系统app则饶边。 以太网设置一般是进入系统原生的设置APP,进入到以太网选项进行设置的。在一些专用场合,需要定制APP,不直接调用...

3560交换机开启dhcp

新来了一个交换机,要做dhcp: 1,恢复出厂设置; 2,设置了默认vlan; 3,给默认vlan加地址; 4,设置dhcp: Switch(Config)Ip Dhcp Pool IP03...

DHCP静态IP绑定浅谈

由于不知道DHCP静态绑定中的IP是否会被分配到任意一个客户端,用路由器做了一个实验。实验如下:

DHCP服务器中设置IP地址保留

DHCP服务器提供的IP地址保留功能可以将特定IP地址与指定网卡的MAC地址绑定,从而使该IP地址为该网卡专用。以绑定运行Windows XP(SP2)系统计算机的网卡MAC地址为例,操作步骤如下...

深入剖析DHCP服务IP地址自动分配原理

以下内容摘自笔者最新出版的《深入理解计算机网络》一书,目前该书已在当当网和京东网上可以正式预订了:当当网链接:http://product.dangdang.com/main/product.aspx...

解决在DHCP环境下私自指定ip和私自搭建dhcp服务器的方法

网络管理员:现在用户真是不省心,自己改个IP地址;私接AP、忘关DHCP,还有的下个小黑客程序,就想在你内网里试试。单靠交换机能管吗?   测试工程师:能!很多交换机上的小功能都可帮大忙。   测...

DHCP的工作原理、怎么检测IP地址冲突

原帖地址:http://7658423.blog.51cto.com/7648423/1270601 理解DHCP的雏形BOOTP(Bootstrap Protocol) ...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)