锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. DHCP详解:概念、架构、原理、搭建过程、常用命令与实战案例

DHCP详解:概念、架构、原理、搭建过程、常用命令与实战案例

0
  • 软件开发
  • 发布于 2024-08-13
  • 0 次阅读
黄健
黄健

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

一、DHCP 概述

1.1 DHCP 的定义

DHCP(Dynamic Host iguration Protocol,动态主机配置协议)是一种网络管理协议,用于自动分配 IP 地址以及其他网络配置参数(如子网掩码、网关地址、DNS 服务器等)。通过 DHCP,网络管理员可以简化网络配置管理,减少手动配置的错误,且使设备可以方便地接入网络。

1.2 DHCP 的工作原理

DHCP 的工作流程主要包括以下四个步骤:发现(Discover):客户端设备启动后,广播一个 DHCP Discover 消息,寻找可用的 DHCP 服务器。
提供(Offer):DHCP 服务器接收到 Discover 消息后,保留一个 IP 地址,并广播一个 DHCP Offer 消息,提供给客户端。
请求(Request):客户端从收到的多个 DHCP Offer 消息中选择一个,广播一个 DHCP Request 消息,请求使用特定的 IP 地址。
确认(Acknowledge):DHCP 服务器接收到 Request 消息后,确认该 IP 地址并广播一个 DHCP ACK 消息,完成 IP 地址分配。
此外,DHCP 协议还包括租约机制,确保客户端在一定时间内可以使用分配的 IP 地址,并可以在租约到期前进行续租。

二、DHCP 架构

2.1 DHCP 服务器

DHCP 服务器是网络中负责管理和分配 IP 地址的设备或服务。它维护一个 IP 地址池(IP Pool),并根据客户端的请求分配 IP 地址。一个网络可以有一个或多个 DHCP 服务器,以提高可靠性和容错性。

2.2 DHCP 客户端

DHCP 客户端是请求 IP 地址和其他网络配置的设备,如计算机、智能手机、平板电脑等。当客户端接入网络时,会自动向 DHCP 服务器发送请求,并获得相应的网络配置。

2.3 DHCP 中继代理

在大型网络或跨子网的网络环境中,DHCP 中继代理(DHCP Relay Agent)用于将客户端的 DHCP 请求转发到远程的 DHCP 服务器,从而实现跨子网的 IP 地址分配。

三、DHCP 的搭建过程

3.1 环境准备

在搭建 DHCP 服务器之前,需要准备以下环境:一台运行 Linux 或 Windows 操作系统的服务器。
安装并配置好网络环境,确保服务器可以与客户端设备通信。
3.2 在 Linux 上搭建 DHCP 服务器
以下步骤演示如何在 CentOS 7 上安装和配置 DHCP 服务器。

3.2.1 安装 DHCP 服务器

首先,通过包管理器安装 DHCP 服务器软件:

default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option routers 192.168.1.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option domain-name "example.com";
}

3.2.2 配置 DHCP 服务器

编辑 DHCP 服务器配置文件 / etc/dhcp/dhcpd.,添加以下配置:

sudo systemctl start dhcpd
sudo systemctl enable dhcpd

3.2.3 启动并启用 DHCP 服务器

启动 DHCP 服务器并配置为开机自启动:

cmd
 
ipig /all

3.2.4 验证 DHCP 服务器

在客户端设备上配置为自动获取 IP 地址,并观察是否成功获取到 DHCP 服务器分配的 IP 地址。可以通过以下命令查看分配的 IP 地址:

cmd
 
net start dhcpserver

3.3 在 Windows 上搭建 DHCP 服务器

以下步骤演示如何在 Windows Server 上安装和配置 DHCP 服务器。

3.3.1 安装 DHCP 服务器角色

打开服务器管理器,点击 “添加角色和功能”。
在 “服务器角色” 列表中选择 “DHCP 服务器”,然后点击“下一步” 并完成安装。

3.3.2 配置 DHCP 服务器

打开 “DHCP 管理器”。
在左侧导航栏中右键点击 “IPv4”,选择 “新建作用域”。
按照向导提示,配置 IP 地址范围、子网掩码、默认网关和 DNS 服务器等信息。

3.3.3 启动 DHCP 服务器

DHCP 服务器角色安装完成后,服务会自动启动。可以通过 “服务管理器” 检查 DHCP 服务器的运行状态。

3.3.4 验证 DHCP 服务器

在客户端设备上配置为自动获取 IP 地址,并观察是否成功获取到 DHCP 服务器分配的 IP 地址。可以通过命令提示符使用以下命令查看分配的 IP 地址:

cmd
net stop dhcpserver

四、DHCP 常用命令

4.1 在 Linux 上的常用命令

启动 DHCP 服务:

cmd
net stop dhcpserver
net start dhcpserver

停止 DHCP 服务:

sudo yum install -y dhcp-relay
sudo dhcrelay -i eth1 192.168.1.1

重启 DHCP 服务:

subnet 192.168.2.0 netmask 255.255.255.0 {
    range 192.168.2.100 192.168.2.200;
    option routers 192.168.2.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option domain-name "example.com";
}

查看 DHCP 服务状态:

cmd
 
ipig /all

查看 DHCP 日志:

host specific-device {
    hardware ethernet 00:11:22:33:44:55;
    fixed-address 192.168.1.50;
}

4.2 在 Windows 上的常用命令

启动 DHCP 服务:

default-lease-time 600; # 默认租约时间(秒)
max-lease-time 7200;    # 最大租约时间(秒)

停止 DHCP 服务:

ip a
或者在Windows上:
 
cmd
 
ipig /all

重启 DHCP 服务:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option routers 192.168.1.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option domain-name "example.com";
    option ntp-servers 192.168.1.1;
    option netbios-name-servers 192.168.1.1;
}

查看 DHCP 日志:
DHCP 日志通常存储在 %SystemRoot%\System32\Dhcp 目录下,可以通过文件资源管理器查看。

五、DHCP 实战案例

5.1 实现跨子网的 DHCP 配置

在实际网络环境中,经常需要跨子网分配 IP 地址。以下步骤演示如何通过 DHCP 中继代理实现这一需求。

5.1.1 配置 DHCP 中继代理

假设有两个子网:192.168.1.0/24 和 192.168.2.0/24,DHCP 服务器位于 192.168.1.0/24 子网中。需要在 192.168.2.0/24 子网的路由器或交换机上配置 DHCP 中继代理,将 DHCP 请求转发到 DHCP 服务器。在 Linux 上,可以使用以下命令配置 DHCP 中继代理:

ip a
或者在Windows上:
 
cmd
 
ipig /all

其中,eth1 是 192.168.2.0/24 子网的网络接口,192.168.1.1 是 DHCP 服务器的 IP 地址。

5.1.2 配置 DHCP 服务器

编辑 DHCP 服务器配置文件 / etc/dhcp/dhcpd.,添加 192.168.2.0/24 子网的配置:

failover peer "dhcp-failover" {
    primary;
    address 192.168.1.1;
    port 647;
    peer address 192.168.1.2;
    peer port 647;
    max-response-delay 60;
    max-unacked-updates 10;
    mclt 3600;
    split 128;
    load balance max seconds 3;
}
 
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option routers 192.168.1.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option domain-name "example.com";
    failover peer "dhcp-failover";
}
备DHCP服务器配置:
 
failover peer "dhcp-failover" {
    secondary;
    address 192.168.1.2;
    port 647;
    peer address 192.168.1.1;
    peer port 647;
    max-response-delay 60;
    max-unacked-updates 10;
    split 128;
    load balance max seconds 3;
}
 
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option routers 192.168.1.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option domain-name "example.com";
    failover peer "dhcp-failover";
}

5.1.3 验证跨子网的 DHCP 配置

在 192.168.2.0/24 子网中的客户端设备上配置为自动获取 IP 地址,并观察是否成功获取到 DHCP 服务器分配的 IP 地址。

5.2 配置静态 IP 地址分配

在某些场景下,可能需要为特定设备分配固定的 IP 地址。以下步骤演示如何在 DHCP 服务器上配置静态 IP 地址分配。

5.2.1 获取设备的 MAC 地址

在客户端设备上,使用以下命令获取 MAC 地址:

sudo systemctl start dhcpd
sudo systemctl enable dhcpd

或者在 Windows 上:

ip a
或者在Windows上:
cmd
ipig /all

5.2.2 配置 DHCP 服务器

编辑 DHCP 服务器配置文件 / etc/dhcp/dhcpd.,添加静态 IP 地址分配的配置:

host specific-device {
    hardware ethernet 00:11:22:33:44:55;
    fixed-address 192.168.1.50;
}

其中,00:11:22:33:44:55 是设备的 MAC 地址,192.168.1.50 是为该设备分配的固定 IP 地址。

##### 5.2.3 重启 DHCP 服务器

重启 DHCP 服务器以应用配置更改:

 

sudo systemctl restart dhcpd


####   
5.2.4 验证静态 IP 地址分配

  
在客户端设备上重新连接网络,并检查是否成功获得配置的固定 IP 地址。

### 5.3 配置 DHCP 租约时间

DHCP 租约时间决定了客户端设备在不进行续约的情况下,能够保持分配的 IP 地址的时间。以下步骤演示如何配置 DHCP 租约时间。

#### 5.3.1 配置 DHCP 租约时间

编辑 DHCP 服务器配置文件 / etc/dhcp/dhcpd.,配置默认租约时间和最大租约时间:

default-lease-time 600; # 默认租约时间(秒)
max-lease-time 7200;    # 最大租约时间(秒)


#### 5.3.2 重启 DHCP 服务器

  
重启 DHCP 服务器以应用配置更改:

sudo systemctl restart dhcpd


####   
5.3.3 验证 DHCP 租约时间

  
在客户端设备上获取 IP 地址,并使用以下命令查看租约时间:

ip a
或者在Windows上:

cmd

ipig /all


  
六、DHCP 的高级功能与最佳实践
--------------------

###   
6.1 使用 DHCP 选项

  
DHCP 选项用于提供除 IP 地址之外的其他配置参数,如默认网关、DNS 服务器等。以下步骤演示如何配置常见的 DHCP 选项。

#### 6.1.1 配置常见的 DHCP 选项

  
编辑 DHCP 服务器配置文件 / etc/dhcp/dhcpd.,添加以下配置:

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option domain-name "example.com";
option ntp-servers 192.168.1.1;
option netbios-name-servers 192.168.1.1;
}


#### 6.1.2 重启 DHCP 服务器

  
重启 DHCP 服务器以应用配置更改:

sudo systemctl restart dhcpd


####   
6.1.3 验证 DHCP 选项

  
在客户端设备上获取 IP 地址,并使用以下命令查看 DHCP 选项配置:

ip a
或者在Windows上:

cmd

ipig /all


#### 6.2 高可用性 DHCP 配置

为了确保 DHCP 服务的高可用性,可以配置多个 DHCP 服务器,使用 DHCP failover 机制实现负载均衡和故障切换。

#### 6.2.1 配置 DHCP failover

在两台 DHCP 服务器上分别编辑 / etc/dhcp/dhcpd. 文件,添加以下配置:

主 DHCP 服务器配置:

failover peer "dhcp-failover" {
primary;
address 192.168.1.1;
port 647;
peer address 192.168.1.2;
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
mclt 3600;
split 128;
load balance max seconds 3;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option domain-name "example.com";
failover peer "dhcp-failover";
}
备DHCP服务器配置:

failover peer "dhcp-failover" {
secondary;
address 192.168.1.2;
port 647;
peer address 192.168.1.1;
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
split 128;
load balance max seconds 3;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option domain-name "example.com";
failover peer "dhcp-failover";
}


#### 6.2.2 启动并配置 DHCP 服务器

在两台 DHCP 服务器上启动 DHCP 服务,并确保服务运行正常:

sudo systemctl start dhcpd
sudo systemctl enable dhcpd


#### 6.2.3 验证 DHCP 高可用性配置

关闭主 DHCP 服务器,观察客户端设备是否能够从备 DHCP 服务器获取 IP 地址。可以通过以下命令查看客户端设备获取到的 IP 地址:i

ip a
或者在Windows上:
cmd
ipig /all


七、DHCP 安全性考虑
------------

### 7.1 防止 DHCP 欺骗攻击

DHCP 欺骗攻击(DHCP Spoofing)是指恶意攻击者通过伪造 DHCP 服务器向客户端设备发送错误的网络配置。可以通过以下方法防止 DHCP 欺骗攻击:

启用 DHCP Snooping:在交换机上配置 DHCP Snooping,确保只有可信的 DHCP 服务器可以向客户端发送 DHCP 消息。  
配置静态绑定:在交换机上配置静态绑定,将客户端设备的 MAC 地址和端口绑定,防止恶意设备伪造 DHCP 请求。

### **7.2 使用 DHCP 认证**

DHCP 认证可以确保只有合法的客户端设备可以获取 IP 地址。常用的 DHCP 认证方法包括:MAC 地址认证:在 DHCP 服务器上配置允许的 MAC 地址列表,只有在列表中的设备可以获取 IP 地址。  
用户认证:使用 802.1X 协议,通过 RADIUS 服务器对用户进行认证,确保只有合法用户可以接入网络。

八、总结
----

   通过本文,我们详细介绍了 DHCP 的概念、架构、工作原理,搭建过程,常用命令,以及一些高级功能和实战案例。DHCP 作为一种重要的网络管理协议,广泛应用于各种网络环境中,为设备自动分配 IP 地址和其他网络配置参数,简化了网络管理,提高了网络的可用性和可靠性。希望本文能帮助读者更好地理解和应用 DHCP,提高网络管理效率和安全性。
标签: #软件开发 1171
相关文章

万字:支付“核心系统”详解 2024-11-02 15:33

专栏作者:隐墨星辰 \| 主编:陈天宇宙 这篇文章也尝试化繁为简,探寻支付系统的本质,讲清楚在线支付系统最核心的一些概念和设计理念。 虽然支付行业已经过了风头最劲的时光,但跨境支付仍然在蓬勃发展,每年依然有很多新人进入这个行业,这篇文章尝试为这些刚入行的新人提供一点帮助。 文章只介绍一些支付行业十几

资深支付架构师视角:实战从问题定义到代码落地的完整套路 2024-11-02 15:33

前言 今天从一个实际案例入手,介绍站在架构师的角度,如何识别并定义问题,提炼需求,技术方案选型,再到详细设计,最后利用AI的能力协助写出核心的代码,验证与调优。 解决问题存在一定的模式,也可以称之为框架,总结出自己的思考和解题框架,以后再碰到同类型的问题就可以如庖丁解牛一样容易。 很多年前,我写代码

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

设计模式第16讲——迭代器模式(Iterator) 2024-10-08 11:24

一、什么是迭代器模式 迭代器模式是一种行为型设计模式,它提供了一种统一的方式来访问集合对象中的元素,而不是暴露集合内部的表示方式。简单地说,就是将遍历集合的责任封装到一个单独的对象中,我们可以按照特定的方式访问集合中的元素。 二、角色组成 抽象迭代器(Iterator):定义了遍历聚合对象所需的方法

vue2路由和vue3路由区别及原理 2024-10-08 11:24

一、Vue2 与 Vue3 路由的区别 1. 创建路由实例方式的不同 Vue 2 中,通过 Vue.use() 注册路由插件,并通过 new VueRouter() 来创建路由实例。 import Vue from 'vue';import VueRouter from 'vue-router';i

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.