Linux系列(1)—— 实验并理解网络服务 DHCP

Linux系列目录 :

《Linux系列(1) —— 实验并理解网络服务 DHCP》
《Linux系列(2)—— DNS网络服务》 — 待续中
《Linux系列(3)—— SSH网络服务》— 待续中
《Linux系列(4)—— Nginx网络服务》— 待续中
《Linux系列(5)—— 文本三剑客》— 待续中
《Linux系列(6)—— Vim 指南》— 待续中
《Linux系列(7)——Shell编程》— 待续中
《Linux系列(8)——常规正则和通配符异同》— 待续中



Linux系列(1)—— 实验并理解网络服务 DHCP_第1张图片
图一:标题

1. DHCP 简介

  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议), 是一个工作在应用层的局域网网络协议。
  • DHCP 使用的 UDP 的不可靠传输。
  • 主要的作用:集中分配和管理网络的资源,使得网络环境中的主机能动态的获得 IP 地址、Gateway 地址、DNS 服务器地址等信息。

2. 工作的原理(租约和续约)


2.1 租约原理图

Linux系列(1)—— 实验并理解网络服务 DHCP_第2张图片
图二:租约原理图

2.2 DISCOVER

  • 当一个客户端启动时, 会将自己的IP设置为 0.0.0.0,因为使用 0.0.0.0 不能正常的通信,所以客户端需要通过DHCP来获取一个合法的IP地址,客户机使用 0.0.0.0 作为源地址,255.255.255.255作为目标的地址,使用UDP协议 67 作为 目的端口来广播请求IP地址信息。
  • DISCOVER 中的报文中包含了 DHCP 客户机的 MAC 地址和计算机名称,以便使 DHCP 服务器知道是哪个客户端发送的请求。
  • (比喻) 在这里可以把 Client 当做是求职者, Server 当做为投递简历的公司。DISCOVER 当做投递的简历。你可以将简历投递给多个公司,也就是说,在一个网段中可能含有多个 DHCP 服务器。Client 在广播的过程中,只要是开放了 67 端口的 Server 都可以收到。

2.3 OFFER

  • 当 DHCP 服务器接收到客户机请求的IP信息时,它会在自己的 IP 地址池中查找是否存在合法的 IP 提供给客户机。如果存在,则将此IP做上标记。加入到 OFFER 消息中,由于此时客户机还没有 IP 地址,所以服务器端使用自己的IP作为源地址,使用 255.255.255.255 作为目标地址, 使用UDP 端口 68 进行广播 OFFER 消息。
  • OFFER 中的消息
    • 客户机的 MAC 地址;
    • DHCP 提供的合法 IP
    • 子网掩码
    • 默认网关(默认的路由)
    • 租约期限
    • DHCP 服务器的 IP 和 MAC
  • (比喻) 你投递简历,并且去多家公司面试,如果面试的成功的话,会有多家公司给你发放 offer ,然后你拿到 offer 后进行对比选择,最终挑选出心仪的公司。

2.4 REQUEST

  • 客户机从接收到的 OFFER 中选择 IP 地址,客户机由于现在还是没有配置上 IP 地址,所以还需要通过广播的形式,客户机仍然使用 0.0.0.0 作为源地址,255.255.255.255 作为目标的地址,使用UDP 67 目的端口来广播 REQUEST 信息。
  • REQUEST 中的信息
    • 提供 IP 配置的服务器 IP
  • (比喻) 同意自己心仪公司的邀请。

2.5 ACK/NAK

2.5.1 ACK 确认租约

DHCP 服务器收到了 REQUEST 消息后,服务器仍然以自己的 IP 作为源地址,使用 255.255.255.255 作为目标地址。使用 UDP 68 作为源端口进行广播 ACK 消息,当客户端接收到了 ACK 消息后,客户机就配置了 IP 地址 完成了 TCP/IP 的初始化。

2.5.1 NAK 拒绝租约

比如:客户端 REQUEST 不成功,客户机试图续约先前的 IP 地址,该 IP 不在可用,如果客户端收到 NAK 的消息后,客户端将重新进行租约的过程。

2.6 客户机续约

Linux系列(1)—— 实验并理解网络服务 DHCP_第3张图片
图三:续约原理图

  • DHCP 客户机在租期过去 50% 的时候,直接向其提过 IP 地址的 DHCP 服务器发送 DHCP REQUEST 消息,如果客户机接收到该服务器回应的 ACK 消息包,客户机就根据包中所提供的新的租期以及其它已经更新的 TCP/IP 参数,更新自己的配置,IP租用更新完成。
  • 如果没有收到 ACK 消息则客户机继续使用,因为还有 50% 的的租期。DHCP 客户机将在租期过去 87.5% 的时候再次向为其提供 IP 地址的 DHCP 服务器联系。如果还不成功,到租约的 100% 的时候,DHCP 客户机必须放弃这个IP地址,重新申请。

注: 如果此时无 DHCP 服务器可用,DHCP 客户机会使用 169.254.0.0/16 中随机的一个地址,并且每隔5分钟再进行尝试。

3.使用 Linux 进行服务搭建

3.1 环境的准备

  • 使用 VMware 虚拟机
  • 在虚拟机安装三台 Centos7.6 操作系统
  • 将网络的连接模式修改为 VMnet 模式,并将 Vmware 虚拟网络编辑器的 DHCP 功能关闭

3.2 为了实验的方便,关闭 Centos 的防护功能

// 检查防火墙是否关闭
systemctl status firewalld

// 防火墙的关闭命令
systemctl stop firedwalld

// 检查 SELinux 防护(如果为disabled即为关闭)
getenforce

// 关闭 SELinux 防护
vim /etc/selinux/config
// 修改SELINUX
SELINUX=disabled

3.3 DHCP服务的安装和一些相关信息

yum install -y dhcp

服务的名称:dhcpd

使用到的端口号:67、68端口

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

配置文件的模板文件:/usr/share/doc/dhcp-*/dhcpd.conf.simple

// 将 dhcpd.conf.simple 覆盖 dhcpd.conf 来进行配置

cp /usr/share/doc/dhcp-*/dhcpd.conf.simple  /etc/dhcp/dhcpd.conf

注:在操作文件的时候一定要进行备份,防患于未然。

3.4 DHCP 的配置信息

subnet 192.168.235.0 netmask 255.255.255.0 {   # 要分配的网段和子网掩码
  range 192.168.235.101 192.168.235.110;       # 声明可用的IP地址池
  option domain-name "internal.example.org";   # 设置DNS域
  option domain-name-servers 8.8.8.8;          # 设置DNS服务器地址
  option routers 192.168.235.2;                # 默认网关的地址
  option broadcast-address 192.168.235.255;    # 设置广播地址(可不写)
  default-lease-time 600;                      # 默认的租约时间
  max-lease-time 7200;                         # 最大租约时间
}

4.测试验证搭建的 DHCP 服务

三台服务器的hostname分别为 Centos7-1、Centos7-2、Centos7-3

使用 Centos7-1 用作 DHCP 服务器

使用 Centos7-2、Centos7-3 用作普通的服务器

配置VMware

Linux系列(1)—— 实验并理解网络服务 DHCP_第4张图片
图四:配置VMware

修改 Centos7.1 DHCP 服务器的配置文件

vim /etc/dhcp/dhcpd.conf
Linux系列(1)—— 实验并理解网络服务 DHCP_第5张图片
图五:修改DHCP配置文件

修改完配置文件后需要重新启动服务

systemctl restart dhcpd.service

重新启动客户机Centos7-2的网卡

ifdown ens33; ifup ens33;

请求DHCP服务器,并且查看

ip addr
Linux系列(1)—— 实验并理解网络服务 DHCP_第6张图片
图六:获取并查看 IP 地址

Centos7-3使用 固定的IP

在 DHCP 服务器(Centos7-1)中设置,并且使用重启服务

Linux系列(1)—— 实验并理解网络服务 DHCP_第7张图片
图七:设置固定 IP

在 Centos7-3 中重启网卡 (发现结果固定的 251 )

Linux系列(1)—— 实验并理解网络服务 DHCP_第8张图片
图八:查看固定 IP

5.根据日志查看 DHCP 服务

vim /etc/log/messages

可以看出在 Linux 的日志中可以充分的体现出我们的分析是没有问题的

签约的四步

图九:签约四步的日志分析

续约的两步

图十:续约两步的日志分析

6.总结

  1. 通过本文的内容,认识并理解了DHCP的实现原理,以及在 Linux 中的实战练习, 对在局域网中的 IP 的分配有了新的认识,在理解DHCP的同时,我们要举一反三,对网络服务和网络协议也要进行深入的理解。
  2. 希望通过我对DHCP的讲解,能够对大家的工作和学习带来帮助,如果有任何的疑问和建议,欢迎大家在评论区讨论。
    Linux系列(1)—— 实验并理解网络服务 DHCP_第9张图片

你可能感兴趣的:(linux,网络,运维)