第14章 使用DHCP动态管理主机地址
章节简述:
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
添加到开机启动项中:
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动态管理主机地址的更多相关文章
- 《Linux就该这么学》培训笔记_ch14_使用DHCP动态管理主机地址
<Linux就该这么学>培训笔记_ch14_使用DHCP动态管理主机地址 文章最后会post上书本的笔记照片. 文章主要内容: 动态主机地址管理协议 部署dhcpd服务程序 自动管理IP地 ...
- Linux基础学习-使用DHCP动态管理主机地址
动态主机配置协议 部署dhcpd服务程序 参数 作用 ddns-update-style none; 设置DNS服务不自动进行动态更新 ignore client-updates; 忽略客户端更新DN ...
- 在虚拟机中使用DHCP动态管理主机地址
小知识 DHCP协议服务能够自动化的管理局域网内的主机IP地址,有效的提升IP地址使用率,提高配置效率,减少管理与维护成本.简而言之,就是ip地址分配. *****五星重点 所需要的服务:dhcp 下 ...
- DHCP动态管理主机地址
步骤一:搭建环境 需要Windows 2008 R2 系统 (DHCP服务端)以及 CentOS7 系统客户机(DHCP客户机) 安装DHCP服务程序(这里提示读者,一般安装好CentOS系统之后, ...
- 使用DHCP动态管理主机地址
- 《linux就该这么学》第十五节课:第14,15章,dhcp服务和邮件系统
(借鉴请改动) 13章收尾 13.6.分离解析技术 1.在主配置文件中改两个any 2.编辑区域配置文件,写入acl,使用match匹配 ...
- 【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识
第25章 DHCP动态主机配置协议基础知识 本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP ...
- 【RL-TCPnet网络教程】第14章 RL-TCPnet之TCP客户端
第14章 RL-TCPnet之TCP客户端 本章节为大家讲解RL-TCPnet的TCP客户端实现,学习本章节前,务必要优先学习第12章TCP传输控制协议基础知识.有了这些基础知识之后,再搞本 ...
- 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化
第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...
随机推荐
- 好玩的Prim算法
这段时间学算法,用JS实现了一个Prim,用于在连通图中找出最小树,具体内容.代码解析周末会不上,现在先把源码献上: <!DOCTYPE html> <html charset='G ...
- python3 入门 (四) 类与继承
Python 类 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法. 对象可以包含任意数量和类型的数据. p ...
- Qt程序启动画面播放(gif与swf两种动画格式)
学习Qt有一段时间了,发现一个小问题,网上关于Qt的资料或者总结性的学习及应用文章有点少. 比如,Qt完整的API,程序运行之前的启动画面如何按理想效果播放等,每次想在项目中添加一些应用的时候,总是找 ...
- Intelli IDEA 14.04开发版+注册码
Idea,一款比较出色的IDE开发工具,懂她的人,自然懂得. 本版本-14.04+注册码 注册界面 注册码: Name:happy KEY: ...
- Nginx 配置详解
http://www.cnblogs.com/analyzer/articles/1377684.html 本文转自:http://blog.c1gstudio.com/archives/434 推荐 ...
- 利用NABC模型进行竞争性需求分析
利用NABC模型进行竞争性需求分析: 1>N(Need 需求) 越来越多的,各式各样的游戏层出不穷,大的小的中等的都已经琳琅满目了,用户貌似都看不过眼了.现在大游戏费时伤神,当然了得在有 ...
- Fluent Ribbon项目出现“命名空间“clr-namespace:Fluent;assembly=Fluent”中不存在“RibbonWindow”名称”的解决方法
之前在学习@aganqin的Fluent Ribbon项目(http://www.cnblogs.com/aganqin/p/3269384.html).但是一直都有引用了Fluent.dll后仍旧出 ...
- oracle-2中commit 详解
博文转自:http://blog.csdn.net/hzhsan/article/details/9719307 它执行的时候,你不会有什么感觉.commit在数据库编程的时候很常用,当你执行DML操 ...
- 【BZOJ 3188】【Coci 2011】Upit Splay模板题
转啊转终于转出来了,然而我的模板跟陈竞潇学长的模板一模一样,还是太弱啊,第一次用指针. #include<cstdio> #include<cstring> #include& ...
- Html-Css-div标签设定-剧中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...