详解DHCP服务工作原理及配置案例

news2024/10/1 19:16:46

一.  DHCP概述

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个主机IP简化分配管理的TCP/IP协议,用户通过DHCP服务器动态的分配给客户端IP地址及其他环境的配置工作,包括IP地址、子网掩码、网关和DNS等。

     DHCP基于服务器/客户端模式,当客户机启动时,自动与DHCP服务器通信,要求提供自动分配IP地址的服务,而安装了DHCP的服务器则会响应客户端的请求。DHCP服务器拥有固定的IP地址,客户端的IP地址则是由DHCP服务器动态分配的。

    DHCP服务主要应用在网段内计算机数量非常多,上百台的计算机需要网络管理员逐一配置IP地址、网关和DNS等参数时,工作量巨大,而且以后维护工作十分繁重;公司单位具有相当多的移动设备,如笔记本电脑,需要临时配置IP地址,容易造成IP地址冲突等现象。以上情况下,架设DHCP服务器是十分必要的。

二、DHCP的工作原理

DHCP主要通过客户端发送广播包给整个物理网段,如果在局域网内有DHCP服务器,则会响应客户端的请求,因此,DHCP服务器与客户机应在同一个网段内。客户端取得IP整个过程如下:

1、DHCP客户端寻找DHCP服务器。

如果客户端设置使用DHCP取得IP地址,则客户端开机或重新启动时,客户端以广播方式在整个物理网段内发送DHCP请求,只有DHCP服务器才会响应,其他的主机收到该请求则会直接丢弃。

2、DHCP服务器提供IP地址。

DHCP服务器接收到客户端的请求后,从IP地址池中选择一个尚未分配的IP地址分配给客户端,向该客户端发送包含租借的IP地址和其他配置信息的数据包。

此外,DHCP服务器还会提供给客户端一个租约时间,并等待客户端的响应。

  3、客户端接收服务器提供的参数并设置本身的网络环境。

     客户端收到服务器传来的数据包参数,如IP地址、子网掩码、网关和DNS,对本身的网络环境进行设置,完成配置后,即向DHCP服务器发送一个数据包,确认该参数已被接收。

   4、DHCP服务器记录该次租约行为。

    客户端与DHCP服务器建立租约行为后,该次租约记录到DHCP服务器的日志文件中,并且开始租约计时。租约到时解除的行为主要以下几种情况:

(1)客户端离线:离线主要包括重新启动、关机和关闭网络接口等,这时DHCP服务器就会收回分配的IP地址,并放回服务器备用区内,以便日后使用。

(2)客户端租约到期:由于DHCP服务器分配的IP地址是有使用期限的,客户端使用此IP地址到期,而且没有再次向DHCP服务器提出申请,这时DHCP服务器就会收回该IP地址。

     客户端取得IP整个过程如图所示。

三、DHCP服务的配置

DHCP服务器安装后,并没有生产配置文件,需要配置文件dhcpd.conf,配置内容主要设置IP作用域、DHCP选项、租约和保留特定IP地址等。

DHCP配置文件dhcpd.conf的格式如下:

选项/参数                               #这些选项/参数全局有效

声明{

选项/参数                               #这些选项/参数局部有效

}

(1)声明

声明定义作用域、分配给客户端的IP地址范围等,如下表11.1所示。

表11.1  dhcpd.conf文件中常用的声明及功能

声明

功能

shared-network 名称 {…}

定义超级作用域

subnet 网络号 netmask 子网掩码 {…}

定义作用域(或IP子网)

range 起始IP地址 终止IP地址

定义作用域(或IP子网)范围

host 主机名 {…}

定义保留地址

group {…}

定义一组参数

(2)参数

参数是必选的或控制DHCP行为的值。常用参数及功能如表11.2所示.

表11.2  dhcpd.conf文件中常用的选项及功能

选项

功能

ddns-update-style 类型

定义所支持的DNS动态更新类型(必选)

allow/ignore client-updates

允许/忽略客户机更新DNS记录

default-lease-time 数字

指定默认的租约期限

max-lease-time 数字

指定最大租约期限

hardware 硬件类型 MAC地址

指定网卡接口类型和MAC地址

server-name 主机名

通知DHCP客户机服务器的主机名

fixed-address  IP地址

分配给客户端一个固定的IP地址

  (3)选项

    选项用来配置客户端的可选参数,它们用option作为开头,如表11.3所示。

表11.3  dhcpd.conf文件中常用的选项及功能

选项

功能

subnet-mask 子网掩码

为客户端指定子网掩码

domain-name “域名”

为客户端指定DNS域名

domain-name-servers  IP地址

为客户端指定DNS服务器的IP地址

host-name “主机名”

为客户端指定主机名

routers  IP地址

为客户端指定默认网关

broadcast-address 广播地址

为客户端指定广播地址

netbios-name-servers  IP地址

为客户端指定WINS服务器的IP地址

netbios-node-type 节点类型

为客户端指定节点类型

ntp-server  IP地址

为客户端指定网络时间服务器的IP地址

nis-servers  IP地址

为客户端指定NIS域服务器的地址

nis-domain “名称”

为客户端指定所属的NIS域的名称

time-offset 偏移差

为客户端指定与格林尼治时间的偏移差

【实例】架设一台DHCP服务器,要求如下:

1子网192.168.2.0,子网掩码为255.255.255.0,建立一个IP作用域,并将在192.168.2.20~192.168.2.100范围之内的IP地址动态分配给客户机。

2假设子网中的DNS服务器地址为192.168.2.2,IP路由器地址为192.168.2.1,所在的网域名为test.com,将这些参数指定给客户机使用。

3为某台主机保留192.168.2.50这个IP地址。

配置代码如下:

ddns-update-style interim;

ignore client-updates;

subnet 192.168.2.0 netmask 255.255.255.0 {

range 192.168.2.20 192.168.2.100;

option routers 192.168.2.1;

option subnet-mask 255.255.255.0;

option domain-name "test.com";

option domain-name-servers 192.168.2.2;

option broadcast-address 192.168.2.255;

default-lease-time 86400;

max-lease-time 172800;

host pc1 {

hardware ethernet 00:01:6c:e3:c0:f7;

fixed-address 192.168.2.50;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2182988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【NVIDIA】如何使用nvidia-smi命令管理和监控GPU

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

KPConv: Flexible and Deformable Convolution for Point Clouds

Abstract Kernel Point Convolution(KPConv)是一种点云卷积方法,它可以直接在点云数据上进行操作,无需任何中间的表示形式。方法的核心在于使用核点来定义卷积权重,核点位于欧几里得空间中,并仅对靠近它们…

Spring DI 笔记

目录 1.什么是DI? 2.依赖注入的三种⽅式 2.1属性注⼊ 2.2构造⽅法注⼊ 2.3Setter 注⼊ 2.4三种注⼊优缺点分析 3.Autowired存在问题 1.什么是DI? DI: 依赖注⼊ 依赖注⼊是⼀个过程,是指IoC容器在创建Bean时, 去提供运⾏时所依赖的资源,⽽资源指的…

(JAVA)浅尝关于 “栈” 数据结构

1. 栈的概述: 1.1 生活中的栈 存储货物或供旅客住宿的地方,可引申为仓库、中转站。例如酒店,在古时候叫客栈,是供旅客休息的地方,旅客可以进客栈休息,休息完毕后就离开客栈 1.2计算机中的栈 将生活中的…

第1 章 第一节:基础语法

第1 章 第一节:基础语法 1.1书写规则 1.1.1关键字 在Java语言中,已经定义好的,具有一定的功能和作用的英文单词。所有的关键字都是小写的 在Java中总共有51个关键字,还有两个保留字const\goto. 常见的关键字: if…

User-Agent在WebMagic爬虫中的重要性

对于需要从网站上抓取数据的开发者来说,WebMagic是一个强大的工具。它是一个简单灵活的Java爬虫框架,用于抓取网页数据。在爬虫技术中,User-Agent(用户代理)是一个关键的HTTP请求头,它告诉服务器关于客户端…

中九无科研无竞赛保研经验帖——上交软院、中科大计算机、复旦工程硕、南大工程硕、浙大软件

本人bg: 学校:中九软件工程rk:夏令营5%,预推免3%(都是写的预估排名)六级:480, 四级:540科研:无竞赛:美赛M,以及水赛国三、省二若干 保研前期没有…

jenkins项目发布基础

随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。Jenkins 自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,…

向日葵远程控制怎么下载?推荐4个远程控制工具网站。

从官网下载的软件质量有保障,安全性和可信度也比较好。所以不管需要使用什么样的软件,最好是到官网下载。如果是有远程控制的需求,我可以推荐几个安全可靠的网站给大家。 1、向日葵远程控制大师 直达链接:https://dow…

【STM32单片机_(HAL库)】4-3【定时器TIM】定时器输出PWM实现呼吸灯实验

1.硬件 STM32单片机最小系统LED灯模块 2.软件 pwm驱动文件添加定时器HAL驱动层文件添加GPIO常用函数定时器输出PWM配置步骤main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "pwm.h"int main(void) {HA…

运用循环单链表实现约瑟夫问题

代码&#xff1a; #include <iostream> using namespace std; struct node {int id;node *next; }; int len0; //存现在链表的长度int main() {node*head,*temp,*tail;headnew node;head->next head;tailhead;int A,B;cin>>A>>B;lenA;int num1;while…

unity一键注释日志和反注释日志

开发背景&#xff1a;游戏中日志也是很大的开销&#xff0c;虽然有些日志不打印但是毕竟有字符串的开销&#xff0c;甚至有字符串拼接的开销&#xff0c;有些还有装箱和拆箱的开销&#xff0c;比如Debug.Log(1) 这种 因此需要注释掉&#xff0c;当然还需要提供反注释的功能&am…

数据结构-链表笔记

移除节点 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListN…

windows上安装mingw教程及mingw64国内下载地址汇总

​ 首先进去官方官网地址&#xff1a;https://www.mingw-w64.org&#xff0c;注意如果下载不了或者下载慢可以使用下面提供国内下载地址&#xff0c;可以满速下载。 进入官网后&#xff0c;直接在左侧点击Downloads即可。 点击Sources选项   点击Downloads后&#xff0c;在右…

qfluentwidgets组件库的配置与使用

文章目录 前言一、安装1 安装conda环境2 配置designer和pyuic3 查看是否成功二、简单使用前言 这篇博客用来记录qfluentwidgets组件库的基本使用。 如果你愿意花200块钱去官网github地址买一份作者的组件库,添加到了designer中了。那么本博客前面的所有配置对你都是没有用的,…

Chromium 用户数据目录User Data 初始化过程c++

一、先说结论 User Data 路径优先级如下&#xff1a; 1、注册表中策略配置的路径。 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium UserDataDir"xx_path" 2、命令行中的路径。 --user-data-dir"xx_path" 3、默认用户路径 %LOCALAPPDATA%/Chrom…

在使用visual studio 2022,运行程序时弹窗:“ 此任务要求应用程序具有提升的权限“

系列文章目录 文章目录 系列文章目录前言一、问题原因二、解决方法1.第一种解决方法2.第二种解决方法 前言 在使用visual studio 2022&#xff0c;运行程序时弹窗&#xff1a;" 此任务要求应用程序具有提升的权限"&#xff0c;每次都要再次点击“使用其他凭证重新启…

【LeetCode HOT 100】详细题解之二叉树篇

【LeetCode HOT 100】详细题解之二叉树篇 94 二叉树的中序遍历方法一&#xff1a;递归方法二&#xff1a;迭代 104 二叉树的最大深度方法一&#xff1a;递归方法二&#xff1a;迭代 226 翻转二叉树方法一&#xff1a;递归方法二&#xff1a;迭代 101 对称二叉树方法一&#xff…

麦克斯韦方程组的独立方程与辅助方程

第四个方程可以由第一个方程得到。注意哈密顿算符求散度是对空间求偏导&#xff0c;也就是xyz&#xff0c;而麦克斯韦方程组中的矢量除了xyz还有t也是自变量。 方程1推出方程4&#xff08;用到求微分的换顺序&#xff09; 方程2推出方程3&#xff0c;用到电流面密度和电荷体密…

python调用opencv报错“module ‘cv2‘ has no attribute ‘namedWindow‘”

之前电脑上使用pip install安装过opencv相关的python模块&#xff0c;不过后续学习opencv时主要使用OpenCVSharp在VS2022中创建项目测试。今天学习过程中突然想用python试试&#xff0c;不过运行下面代码时报错“module ‘cv2’ has no attribute namedWindow”。 import cv2c…