章节简述:

DHCP协议服务能够自动化的管理局域网内的主机IP地址,有效的提升IP地址使用率,提高配置效率,减少管理与维护成本。

学习dhcpd服务程序的使用方法并逐条讲解配置参数,完整演示自动化分配IP地址、绑定IP地址与mac地址等实验。

DHCP中继代理技术是多个物理网段共同一台DHCP服务器的最佳解决方案,运维人员必学的实用技术之一。

14.1 动态主机管理协议

DHCP动态主机管理协议(Dynamic Host Configuration Protocol)是一种基于UDP协议且仅限用于局域网的网络协议,主要用途是为局域网内部设备或网络供应商自动分配IP地址,通常会应用在大型的局域网环境中或局域网内存在比较多的移动办公设备,DHCP协议能够实现集中的管理、分配IP地址。

DHCP服务程序能够使局域网内的主机自动且动态的获取IP地址、子网掩码、网关地址以及DNS服务器地址等信息,且能够有效的提升地址使用率,提高配置效率,减少管理和维护成本。

DHCP协议能够保证任何IP地址在同一时刻只能由一台DHCP客户机使用,且能够为指定主机分配固定的IP地址。

DHCP服务程序的常见术语:

作用域:一个完整的IP地址段,DHCP服务根据作用域来管理网络的分布、分配IP地址及其他配置参数。

超级作用域:用于支持同一物理网络上多个逻辑IP地址子网段,包含作用域的列表,并对子作用域统一管理。
排除范围:将某些IP地址在作用域中排除,确保这些IP地址不会被提供给DHCP客户机。
地址池:在定义DHCP服务的作用域并应用排除范围后,剩余用来动态分配给DHCP客户机的IP地址范围。
租约:即DHCP客户机能够使用动态分配到的IP地址的时间。
预约:保证局域子网中特定设备总是获取到相同的IP地址。

14.2 安装dhcpd服务程序

dhcpd服务程序用于提供DHCP协议服务,确认镜像挂载且yum仓库配置完毕后即可开始安装:

[root@linuxprobe ~]# yum install dhcp
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分安装过程………………
> Package dhcp.x86_64 12:4.2.5-27.el7 will be installed
………………省略部分安装过程………………
Complete!

dhcpd服务程序与配置文件:

编辑
主配置文件 /etc/dhcp/dhcpd.conf
执行程序 /usr/sbin/dhcpd
/usr/sbin/dhcrelay

先来分析下dhcp程序的主配置文件吧:

[root@linuxprobe ~]# cat /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page

是的,你没有看错!dhcpd服务程序的配置文件默认只有注释语句,需要参考下模板文件:

[root@linuxprobe ~]# cat /usr/share/doc/dhcp*/dhcpd.conf.example

一个标准的DHCP配置文件应该包括全局配置参数子网网段声明地址配置选项以及地址配置参数

全局配置参数用于定义整个配置文件的全局参数,而子网网段声明用于配置整个子网段的地址属性,具体参数有:

编辑
参数 作用
ddns-update-style 类型 定义DNS服务动态更新的类型,类型包括:
none(不支持动态更新),interim(互动更新模式)与ad-hoc(特殊更新模式)。
allow/ignore client-updates 允许/忽略客户机更新DNS记录。
default-lease-time 21600 默认超时时间。
max-lease-time 43200 最大超时时间。
option domain-name-servers 8.8.8.8 定义DNS服务器地址。
option domain-name "domain.org" 定义DNS域名。
range 定义用于分配的IP地址池。
option subnet-mask 定义客户机的子网掩码。
option routers 定义客户机的网关地址。
broadcase-address 广播地址 定义客户机的广播地址。
ntp-server IP地址 定义客户机的网络时间服务器(NTP)。
nis-servers IP地址 定义客户机的NIS域服务器的地址。
hardware 硬件类型 MAC地址 指定网卡接口的类型与MAC地址。
server-name 主机名 通知DHCP客户机服务器的主机名。
fixed-address IP地址 将某个固定IP地址分配给指定主机。
time-offset 偏移差 指定客户机与格林尼治时间的偏移差。

出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流请加A群:560843(),B群:340829(推荐),C群:463590(推荐),点此查看全国群

*本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

14.3 自动管理IP地址

DHCP协议的初衷是更高效的集中管理管理局域网内IP地址资源,那么符合让DHCP服务更准确的完成工作呢?

为了让实验更有挑战性,我们来模拟一个真实环境吧:

运维部:
明日约有50名外部学员自带笔记本设备来我司培训学习,请保证学员能够用DHCP获取IP地址并正常上网。

机房网段及参数如下:

编辑
参数名称
默认租约时间 21600秒
最大租约时间 43200秒
IP地址范围 192.168.10.50~192.168.10.150
子网掩码 255.255.255.0
网关地址 192.168.10.1
DNS服务地址 192.168.10.1
搜索域 linuxprobe.com

看完配置要求后,首先请准备实验环境:

编辑
主机类型 操作系统 IP地址
DHCP服务端 红帽RHEL7操作系统 192.168.10.1
DHCP客户机 红帽RHEL7操作系统 DHCP自动获取地址

请您按照下面的幻灯片逐步操作,可点击图片两侧箭头或下方小圆点“○”切换步骤。

  • 配置虚拟机网络类型(两台主机都要配置成一样的)。
  • 配置DHCP服务端的IP地址。
  • 配置DHCP客户机的网卡。

另外因为虚拟机软件VmwareWorkstation默认开启了虚拟机DHCP服务,必需关闭后再进行DHCP实验:

当您确定两台主机的网卡和虚拟机都已经配置妥当,那么就开始配置DHCP服务程序吧:

[root@linuxprobe ~]# vim /etc/dhcp/dhcpd.conf
//请注意dhcpd服务程序的配置文件中每个参数均需要以;号结尾。
//请将下面表格中的参数逐行写入到dhcpd.conf文件中。
编辑
参数 作用
ddns-update-style none; 设置DHCP服务不自动动态更新。
ignore client-updates; 忽略客户机更新DNS记录。
subnet 192.168.10.0 netmask 255.255.255.0 { 作用域为192.168.10.0/24网段。
range 192.168.10.50 192.168.10.150; IP地址池为192.168.10.50-150(约100个IP地址)。
option subnet-mask 255.255.255.0; 定义客户机默认的子网掩码。
option routers 192.168.10.1; 定义客户机的网关地址。
option domain-name "linuxprobe.com"; 定义默认的搜索域。
option domain-name-servers 192.168.10.1; 定义客户机的DNS地址。
default-lease-time 21600; 定义默认租约时间。
max-lease-time 43200; 定义最大预约时间。
} 此为结束符

重启dhcpd服务程序:

[root@linuxprobe ~]# systemctl start dhcpd

添加到开机启动项中:

[root@linuxprobe ~]# systemctl enable dhcpd
ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'

因为在红帽RHCSA、RHCE或RHCA考试后都要重启您的实验机再执行判分脚本。

所以请读者在日常工作中也要记得将需要的服务加入到开机启动项中:”systemctl enable dhcpd“。

此时在DHCP客户机上重启网卡设备,即可自动获取到IP地址:

14.4 分配固定IP地址

DHCP协议的术语预约指的就是保证局域子网中特定设备总是获取到相同的IP地址,换句话说dhcpd服务会将某个IP地址私藏下来,只有匹配到特定主机了才会拿出来分配,而要做IP地址与主机的绑定,需要使用下面的参数格式:

编辑
host 主机名称 {        
  hardware ethernet 该主机的MAC地址;  
  fixed-address 欲指定的IP地址;    
}        

查看到要绑定IP地址的主机mac地址(00:0c:29:27:c6:12):

在DHCP配置文件中添加绑定语句:

ddns-update-style none;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.150;
option subnet-mask 255.255.255.0;
option routers 192.168.10.1;
option domain-name "linuxprobe.com";
option domain-name-servers 192.168.10.1;
default-lease-time 21600;
max-lease-time 43200; host linuxprobe {
hardware ethernet 00:0c:29:27:c6:12;
fixed-address 192.168.10.88;
}
}

确定配置参数填写正确后重启dhcpd服务:

[root@linuxprobe ~]# systemctl restart dhcpd

DHCP客户机重新加载网卡设备后查看到顺利绑定到了指定的IP地址,不错哦~

出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流请加A群:560843(),B群:340829(推荐),C群:463590(推荐),点此查看全国群

*本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

14.5 DHCP中继代理

DHCP中继代理(即DHCP Relay Agent)用于转发来自于另一个没有DHCP服务器子网段中客户端的DHCP请求,即当一台DHCP客户端发起请求后,此时DHCP中继代理就会将已经预先定义好的DHCP服务器的信息转发给客户端。

如果客户机与DHCP服务器处在同一个子网段,则客户机自然能够顺利动态获取到IP地址,但若客户机与DHCP服务器处在不同的子网段或物理网段,则需要DHCP Relay Agent来处理和转发DHCP协议信息,换句话说,DHCP中继代理可以让每个物理子网不再必需配有一台DHCP服务器,而是将请求转发给指定的DHCP服务器。

在BOOTP模式中执行dhcrelay服务(DHCPv4):

第1步:复制服务程序

[root@linuxprobe ~]# cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/

第2步:编辑服务程序

[root@linuxprobe ~]# vim /etc/systemd/system/dhcrelay.service
ExecStart参数中添加指定DHCP服务器地址
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.10.1
如果希望仅某个网卡专门用于监听DHCP请求,则在ExecStart选项中追加-i参数,默认全部网卡均监听。
ExecStart=/usr/sbin/dhcrelay -d --no-pid 192.168.10.1 -i eno16777736

第3步:启动dhcrelay中继服务程序。

[root@linuxprobe ~]# systemctl --system daemon-reload
[root@linuxprobe ~]# systemctl restart dhcrelay
[root@linuxprobe ~]# systemctl enable dhcrelay

坦白讲,一般DHCP中继功能在日常工作使用较少,或由路由器负责DHCP中继功能,极少用红帽Linux系统搭建。

第14章 使用DHCP动态管理主机地址的更多相关文章

  1. 《Linux就该这么学》培训笔记_ch14_使用DHCP动态管理主机地址

    <Linux就该这么学>培训笔记_ch14_使用DHCP动态管理主机地址 文章最后会post上书本的笔记照片. 文章主要内容: 动态主机地址管理协议 部署dhcpd服务程序 自动管理IP地 ...

  2. Linux基础学习-使用DHCP动态管理主机地址

    动态主机配置协议 部署dhcpd服务程序 参数 作用 ddns-update-style none; 设置DNS服务不自动进行动态更新 ignore client-updates; 忽略客户端更新DN ...

  3. 在虚拟机中使用DHCP动态管理主机地址

    小知识 DHCP协议服务能够自动化的管理局域网内的主机IP地址,有效的提升IP地址使用率,提高配置效率,减少管理与维护成本.简而言之,就是ip地址分配. *****五星重点 所需要的服务:dhcp 下 ...

  4. DHCP动态管理主机地址

    步骤一:搭建环境 需要Windows 2008 R2 系统  (DHCP服务端)以及 CentOS7 系统客户机(DHCP客户机) 安装DHCP服务程序(这里提示读者,一般安装好CentOS系统之后, ...

  5. 使用DHCP动态管理主机地址

  6. 《linux就该这么学》第十五节课:第14,15章,dhcp服务和邮件系统

    (借鉴请改动) 13章收尾 13.6.分离解析技术    1.在主配置文件中改两个any         2.编辑区域配置文件,写入acl,使用match匹配                      ...

  7. 【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识

    第25章      DHCP动态主机配置协议基础知识 本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP ...

  8. 【RL-TCPnet网络教程】第14章 RL-TCPnet之TCP客户端

    第14章      RL-TCPnet之TCP客户端 本章节为大家讲解RL-TCPnet的TCP客户端实现,学习本章节前,务必要优先学习第12章TCP传输控制协议基础知识.有了这些基础知识之后,再搞本 ...

  9. 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化

    第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...

随机推荐

  1. 小白学习mysql之函数

    ## 导语 曾经我以为,学会了select.update.insert和delete之后,我就学会了数据库~,要不是到公司看到SQL里充满了密密麻麻的的各种函数,我差点就信了~,当初的自己是多么的天真 ...

  2. WCF Data Service 使用小结 (一)—— 了解OData协议

    最近做了一个小项目,其中用到了 WCF Data Service,之前是叫 ADO.NET Data Service 的.关于WCF Data Service,博客园里的介绍并不多,但它确实是个很好的 ...

  3. 我的bootstrap使用的历程

    1.bootstrap快速开发,和amaze一样,同样是自己布局,然后找对应的模板,然后复制. 2.bootstrap实现的不完美的地方,我们要靠自己的样式去解决. 典型的居中布局, containe ...

  4. 在线富文本编辑器FckEditor配置(.Net Framework 3.5)

    进入FCKeditor文件夹,编辑 fckconfig.js 文件.1.上传设置  .  var _FileBrowserLanguage         = 'php' ;         // a ...

  5. ThinkPHP之视图模版的使用

    用户发起一个请求后,服务器应该返回一个页面,而页面是由我们的视图层来控制的. 一.修改控制器 <?php namespace Home\Controller; use Think\Control ...

  6. 第四课:seajs的模块编译_compile过程

    最近比较闲,我就讲下seajs的模块编译_compile过程. 这里紧接着第三课的例子来讲解.首先是a.js的编译 Module.prototype._compile = function() { 1 ...

  7. Day10

    会议讨论 628:今天是冲刺的最后一天了,好紧张好激动,我们组还有好些个功能没实现呢,感觉崩崩哒!还要实现选择不同的专业导入不同的课表呢. 601:在修改教师帐号信息的页面要有当密码格式.用户名格式等 ...

  8. 【poj1010】 STAMPS

    http://poj.org/problem?id=1010 (题目链接) 感到了英语深深的恶意... 题意(真的很难懂....) 第一行数字是邮票的面值,每一个数字就是一个不同的种类,哪怕面值相同. ...

  9. C++ 中常见预定义宏的使用

    http://blog.csdn.net/hgl868/article/details/7058906 替代字符串: #define DOWNLOAD_IMAGE_LOG /var/log/png.l ...

  10. what linux java cpu 100% ?

    1.用top找到最耗资源的进程id [ bin]# toptop - 16:56:14 up 119 days, 6:17, 7 users, load average: 2.04, 2.07, 2. ...