Linux之DHCP的原理与配置

Linux之DHCP的原理与配置 超详细

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。


推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

本文详细介绍了DHCP协议的功能、工作原理,包括自动分配IP地址、租约过程的六个步骤,以及DHCP的安装、配置和使用方法,帮助读者全面理解DHCP在TCP/IP网络中的作用。
摘要由CSDN通过智能技术生成
一.了解DHCP服务
1. DHCP (Dynamic Host Configuration Protocol)动态主机配置协议
是由Internet工作小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议

DHCP协议采用的是UDP作为传输协议,是给网络内的客户机自动分配IP地址;DHCP客户端发送请求消息给服务端的67号端口,DHCP服务端回应响应消息给客户端的68号端口。

2.使用 DHCP 的好处
(1)减少了管理人员的工作量和发生错误的可能性

(2)避免了IP地址冲突,减去为每个用户重新配置IP地址的时间

(3)提高了IP地址的使用率

(4)方便客户端的配置,可以自动获取,无需设置掩码、网关和其他设置

3.DHCP的分配方式
(1)自动分配:分配到一个IP地址后永久使用

(2)手动分配:由DHCP服务器管理员专门指定IP地址

(3)动态分配:使用完后释放该IP,供其他客户机使用

二 .DHCP的租约过程
1.客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程,分为四个步骤:


前面四步是完成交互的主要过程

(1)客户机请求IP地址

当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址;此时DHCP客户机以广播方式发送DHCP Discover 发现信息来寻找服务器。

 (2)服务器响应

DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机;如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer消息。

(3)客户机选择IP地址
DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机。

(4)服务器确定租约
DHCP服务器接收到DHCP Request消息后,以DHCPACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息;当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化。

(5)重新登录
DHGP客户机每次重新登录网络时,不需要再发送DHCFDiscover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息。

(6)更新租约

当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约;客户机直接向提供租约的服务器发送DHCP Request包要求更新现有的地址租约。

2.DHCP的交互过程,即工作原理


(1)客户端通过广播发送DHCP Discover报文寻找DHCP服务端。

(2)服务端通过广播发送DHCP Offer报文向客户端提供从地址池中挑选的可用IP等网络信息。

(3)客户端只接收第一个收到的DHCP Offer报文并提取IP地址,然后向通过广播发送DHCP

Request报文告知服务端要使用该IP地址。

(4)服务端通过广播发送DHCP ACK报文告知客户端该IP地址是合法可用的,并提供租约信息。

三.DHCP的安装、配置、和使用
1.DHCP的安装
(1)先进行系统的初始化操作:关闭防火墙、关闭selinux 功能

[root@192 ~]# systemctl disable --now firewalld.service 
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@192 ~]# setenforce 0
[root@192 ~]# vim /etc/selinux/config


(2)准备好DHCP的软件包用 rpm 安装或者使用配置好yum源仓库,使用 yum install 安装

                    #使用 yum install 安装

[root@192 ~]# cd /etc/yum.repos.d/
[root@192 yum.repos.d]# cat local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
#gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7
[root@192 yum.repos.d]# yum install -y dhcp

  #使用 rpm 安装 

[root@192 yum.repos.d]# cd
[root@192 ~]# cd /mnt/
[root@192 mnt]# ls 
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@192 mnt]# cd Packages/
[root@192 Packages]# ls | grep dhcp
dhcp-4.2.5-83.el7.centos.1.x86_64.rpm
dhcp-common-4.2.5-83.el7.centos.1.x86_64.rpm
dhcp-libs-4.2.5-83.el7.centos.1.x86_64.rpm
[root@192 Packages]# rpm -ivh dhcp-4.2.5-83.el7.centos.1.x86_64.rpm
警告:dhcp-4.2.5-83.el7.centos.1.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
    软件包 dhcp-12:4.2.5-83.el7.centos.1.x86_64 已经安装
[root@192 Packages]# rpm -q dhcp
dhcp-4.2.5-83.el7.centos.1.x86_64
 

2.DHCP的配置
配置DHCP主机服务端步骤

[root@192 ~]# cd /etc/dhcp/        #切换到dhcp目录下查看文件
[root@192 dhcp]# ls
dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts
[root@192 dhcp]# vim dhcpd.conf    #进入文件


[root@192 share]# cd /usr/share/doc/          #进入到体制的目录中
[root@192 doc]# ls | grep dhcp                #过滤查看 dhcp 的目录 
dhcp-4.2.5
dhcp-common-4.2.5
[root@192 doc]# cd dhcp-4.2.5/                #进入到目录中
[root@192 dhcp-4.2.5]# ls                     #会存在相关配置模板的文件
dhcpd6.conf.example  dhcpd.conf.example  ldap
[root@192 dhcp-4.2.5]# vim dhcpd.conf.example 
[root@192 dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes      #将模板移动到 /etc/dhcp/目录下
                                               并覆盖掉原本的空文件
[root@192 dhcp-4.2.5]# cd /etc/dhcp/
[root@192 dhcp]# ls
dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts
[root@192 dhcp]# vim dhcpd.conf               #此后进入文件修改配置即可

之后保存退出即可

3.DHCP的使用
(1)新打开一台服务器,把主机和新的服务器都从NAT模式,转换成仅主机模式。还要把仅主机模式下的DHCP服务关闭。

(2)配置新开的服务器的网卡

(2)配置新开的服务器的网卡

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
                       #进入修改网卡设置


[root@localhost ~]# systemctl restart network        #重启网卡
[root@localhost ~]# ifconfig                         #查看IP地址
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 
        inet 192.168.80.100  netmask 255.255.255.0  broadcast 192.168.80.255
              #IP地址被自动分配
        inet6 fe80::d9fe:29ff:2d32:2b0b  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d4:c1:b5  txqueuelen 1000  (Ethernet)
        RX packets 362769  bytes 526223215 (501.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 35434  bytes 2269365 (2.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 95  bytes 8540 (8.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 95  bytes 8540 (8.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:65:68:b8  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

即可通过DHCP服务给服务器分配IP地址

[root@localhost ~]# vi /etc/resolv.conf    #查看DNS服务,其他配置也设置成功
 
# Generated by NetworkManager
search test1
nameserver 8.8.8.8
nameserver 114.114.114.114

 4.查看租约

[root@localhost ~]# cd /vsr/lib/dhcpd/          #租约文件的路径
[root@localhost dhcpd]# ls
dhcpd6.leases  dhcpd.leases  dhcpd.leases~    #存放租约的文件

拓展1:如果主机切换仅主机模式后,xshell无法连接 
直接在主机配置相同网段的一个IP地址即可

拓展2: 要给某个服务器配置指定的IP地址192.168.80.188
(1)首先,先进入到   /etc/dhcp/ 目录下的    dhcpd.conf    文件,对文件内进行下面的修改

(2)配置成功后,在主机重启DHCP服务

[root@localhost dhcp]# systemctl restart dhcpd    #重启服务
(3)之后去指定的服务器进行IP地址的刷新

四.总结:
熟悉DHCP的工作原理,和交互的前四步过程
掌握安装dhcpd服务和全局配置的参数

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux运维老纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值