DHCP服务搭建
实验环境:
服务端: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
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客户端向服务端请求过程

注意:客户端执行DHCP DISCOVER 后,如果没有DHCP 服务器响应客户端的请求,客户端会随机使用169.254.0.0/16 网段中的一个IP 地址配置本机地址。
169.254.0.0/16是windows的自动专有IP寻址范围,也就是在无法通过DHCP获取IP地址时,由系统自动分配的IP地址段。
早先的Linux上并不会产生这条路由,现在有这条路由是为了和windows兼容。
[root@localhost ~]# 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
yum install dhcp -y
配置文件位置:
当DHCP 主程序包安装好后会自动生成主配置文件的范本文件 /usr/share/doc/dhcp-4.2.5/dhcpd.conf.sample
而在/etc 目录下会建立一个空白的dhcpd.conf 主配置文件。 ls /etc/dhcp/dhcpd.conf
现在我们将范本配置文件复制到/etc 目录下替换掉空白dhcpd.conf 主配置文件。
\cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
注意: 不同系统中的 dhcp-4.2.x 版本不同
配置文件,解释说明 dhcp 范本配置文件内容包含了部分参数、声明以及选项的用法,其中注释部分可以放在任何位置 并以"#"号开头,当一行内容结束时,以";"号结束,大括号所在行除外 可以看出整个配置文件分成全局和局部两个部分。但是并不容易看出哪些属于参数,哪些属于声明和选项。
概念与协议: 作用域:可以分配IP的范围 subnet 地址池:可以分配给客户端的IP,range包括的IP 保留地址:指定某个客户端使用一个特定IP,通过host配置的 租约(时间):客户端可以使用这个IP地址的时间
option definitions common to all supportednetworks... #定义全局配置,通用于所有支持的网络选项. option domain-name "example.org"; #为客户端指定所属的域 option domain-name-servers ns1.example.org,ns2.example.org; #为客户端指定DNS服务器地址
常用声明介绍 声明一般用来指定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)选项可以用在全局配置中,也可以用在局部配置中。
租约数据库文件 租约数据库文件用于保存一系列的租约声明,其中包含客户端的主机名、MAC 地址、分配到的IP地址,以及IP地址的有效期等相关信息。这个数据库文件是可编辑的ASCII 格式文本文件。每 当发生租约变化的时候,都会在文件结尾添加新的租约记录。 DHCP 刚安装好后租约数据库文件dhcpd.leases 是个空文件 /var/lib/dhcpd/dhcpd.leases 当DHCP 服务正常运行后就可以使用cat 命令查看租约数据库文件内容了

应用案例1: 公司有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地址,而上不了网。
注意: vmware实验环境 需要设置为vmnat1 不使用本地dhcp 服务将ip分配给虚拟机
**注意:**vmnat1为 192.168.0.x 网段 时可以与window通讯 ,若vmnat1的网段192.168.4.0 与 centos设置的192.168.0.63 则不通
xuegod63 设置静态IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="1832dfd5-0cff-4976-84d4-a0fa9751ba26"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.0.63"
NETMASK="255.255.255.0"
GATEWAY="192.168.0.2"
DNS1="114.114.114.114"
systemctl restart network
xuegod63 192.168.0.63 修改配置文件只保留以下内容
vim /etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.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;
}
重启dhcpd服务
systemctl restart dhcpd
xuegod64 设置dhcp

查看路由
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 ens33
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
查看网关
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search xuegod63.cn
nameserver 192.168.0.1
查看租约
cat /var/lib/dhcpd/dhcpd.leases

windos查看vmnat1的IP可以看到也是自动获取的

应用案例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 netmask 255.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;
# 这一段内容,要写在subnet字段中,和subnet配合使用
# host 后面的 xuegod64 可以不是另一台机器的主机名,建议一致便于区分
host xuegod64 {
hardware ethernet 00:0c:29:89:c1:e8;
fixed-address 192.168.0.254;
}
}
查看另一台要绑定的mac地址

重启dhcpd服务
systemctl restart dhcpd
重启另一台要固定IP绑定的网络
systemctl restart network
验证:

注意:划分子网时,如果选择直接配置多作用域实现动态IP 分配的任务,则必须要为DHCP 服务器添加多块网卡,并配置多个IP 地址,否则DHCP 服务器只能分配与其现有网卡IP 地址对应网段的作用域。