目录

DHCP

DHCP的报文类型

DHCP的部署

DHCP中继(DHCP代理)


DHCP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP(67、68)端口工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段

客户端使用 UDP 68 号端口向服务器UDP 67 号端口发送请求,服务器使用UDP 67 号端口给客户端UDP 68 号端口回应

DHCP的作用:可为大量客户机提供自动分配地址,提高网络配置效率。可为客户机分配 ip 、子网掩码、网关、DNS服务器、默认搜索域名等。
DHCP有三种机制分配IP地址:

  • 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
  • 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
  • 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机

IP租约期限到达50%时,DHCP客户端会向DHCP服务器发送单播请求续约,倘若DHCP服务器没回应,客户端在租约期限到达87.5%时,客户端会向DHCP服务器广播申请重绑定IP。如果IP租约到期前都没有收到服务器响应,客户端停止使用此IP地址。

如果DHCP客户端不再使用分配的IP地址,也可以主动向DHCP服务器发送DHCP RELEASE报文,释放该IP地址。

DHCP的报文类型

DHCP客户机发送完DHCP discover消息后,如果未能收到DHCP OFFER,它就会重试4次(相隔2,4,8,16s,加上一个0到1000ms之间的随机数)如果DHCP客户机经过努力仍未获得任何有效的IP地址,将使用备用配置。每隔5分钟,该客户机都继续尝试寻找DHCP服务器,如果有某个DHCP服务器成为可用,客户机将接受到合法的IP地址。

DHCP的部署

​​​​安装:yum  install   dhcp  -y 

服务:/usr/sbin/dhcpd

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

模板文件目录:/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example

开启/关闭/重启/开机自启/开机不自启:  systemcctl   start / stop / restart /enable /disable dhcpd

我们先把模板文件追加到配置文件中:  cat   /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example >> /etc/dhcp/dhcpd.conf ,然后打开配置文件修改 ,把不用的内容都删除,只保留下面几行。

subnet 10.0.0.0 netmask 255.0.0.0 {              //分配的网段
range 10.0.0.100 10.0.0.200; //分配的地址范围
option domain-name-servers redhat.xie.com;
option domain-name "xie.com"; //domain域
option routers 10.0.0.254; //路由ip
option broadcast-address 10.0.0.255; //广播地址
default-lease-time 600;
max-lease-time 7200;
}
host BOSS { //给以下MAC地址做特殊的设置
hardware ethernet 00:0C:29:1C:D2:58; // MAC地址
fixed-address 10.0.0.50; // 分配ip
}

windows客户机获取dhcp :

  • ipconfig  /release          释放原来的ip配置
  • ipconfig  /renew           重新获得ip

Linux客户机获取dhcp:

  • 在网卡配置文件中设置获取方式为dhcp
  • 然后重启网络服务  systemctl restart  network
  • 然后 dhclient  -d  eth0

DHCP中继(DHCP代理)

PC1以广播的形式发送DHCP请求,AR1的G0/0/0口收到 之后,以源地址192.168.1.1单播的形式向AR2的g0/0/0口12.1.1.2发送DHCP请求,AR2口以单播的形式向192.168.1.1回复DHCP,DHCP把回复包发给PC1。在这之间,PC1只知道DHCP的回复包是12.1.1.2发送的。

Linux中的DHCP服务的更多相关文章

  1. 嵌入式linux中使用 DHCP功能描述

    嵌入式linux中使用 DHCP功能描述 busybox中udhcpc的默认script脚本地址为#define DEFAULT_SCRIPT   CONFIG_UDHCPC_DEFAULT_SCRI ...

  2. Linux中如何设置服务自启动?

    转自:Linux中如何设置服务自启动? 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务,主要用三种方式进行这一操作: ln -s             在/etc/rc.d/rc ...

  3. Linux中的sshd服务

    Linux中的sshd服务,主要用于pst终端,远程连接到linux服务中 看sshd服务状态 service sshd status 停止sshd服务 service sshd stop 启动ssh ...

  4. Linux系统下DHCP服务安装部署和使用详解

    一.概述 DHCP :动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或 ...

  5. linux中的dhcp

    目录 一.DHCP服务 二.DHCP的租约过程 三.使用DHCP动态配置主机地址 四.安装DHCP服务器 一.DHCP服务 ① DHCP (Dynamic HostConfiguration Prot ...

  6. 讲述一下自己在linux中配置ftp服务的经历

    本人大二小白一名,从大一下学期就开始接触到linux,当时看到学校每次让我们下载资源都在一个ftp服务器中,感觉特别的高大上,所以自己就想什么时候自己能够拥有自己的ftp服务器,自己放一点东西进去,让 ...

  7. linux中的openoffice服务终止运行

    现象: 最近的linux中的openoffice服务进程运行一段时间后会自动停止,刚开始还以为忘了启动执行自启动脚本导致的.在连续出现前述情况后,开始查找应用程序崩溃的原因,首先查看linux服务器的 ...

  8. linux下搭建DHCP服务

    一键搭建dhcpd服务脚本 [root@dhcp-server~]# cat auto_install_dhcpd.sh #!/bin/sh . /etc/init.d/functions #安装dh ...

  9. 在Linux中设置自启动服务或程序

    三种方法: 1.基于linux的system V机制,其中有个运行级别和链接软连接指向服务脚本的机制. 服务脚本一般处于/etc/init.d/目录下, 而运行级别制定的默认执行脚本在/etc/rc. ...

随机推荐

  1. pytorch(10)transform模块(进阶)

    图像变换 Pad 对图片边缘进行填充 transforms.Pad(padding,fill=0,padding_mode='constant') padding:设置填充大小,(a,b,c,d)左上 ...

  2. C#连接Excel读取与写入数据库SQL ( 上 )

    第一次写C#与sql的东西,主要任务是从Excel读取数据,再存到SQL server中. 先上读取Excel文件的code如下. public bool GetFiles(string equipN ...

  3. JAVA中枚举Enum详解

    1.关键字:enum.枚举可以定义成单独的文件,也可以定义在其他类内部. 枚举在类内部的示例: public class EnumInner { public static void main(Str ...

  4. Java流程控制:增强for循环,break&continue,打印99乘法表

    增强for循环:java5引入了一种主要用于数组或集合的增强for循环for(声明语句:表达式){//代码句子} 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配.其作用域限定在循环语 ...

  5. 2018.9.9 nowcoder 普及组第一场

    2018.9.9 nowcoder 普及组第一场 C-括号 题目大意:一个只包含左右括号的字符串\(S\),希望删掉S中若干个字符,使得剩下的字符串是一个合法的括号串,有多少不同的方案. Soluti ...

  6. JAVA面试题:输出100以内所有的素数

    转载:https://www.cnblogs.com/onway/archive/2012/11/15/2771912.html Java输出1-100中所有的素数 很多人笔试时都会遇到这个问题,小农 ...

  7. Go语言学习笔记——在本地建立一个官网查看

    命令行内运行 godoc -http=:8080 运行完成后打开浏览器输入网址:http://localhost:8080能看到一个和官网一模一样的网站,然后查看帮助文档

  8. for-in 语句

    for-in 语句循环专门用于遍历范围,列表,元素和字典等可迭代对象. 循环中的变量的值受for-in循环控制,该变量将会在每次循环开始时自动被赋值,因此程序不应该在循环中对该变量进行赋值 for-i ...

  9. 12、MyBatis教程之缓存

    13.缓存 简介 1.什么是缓存 [ Cache ]? 存在内存中的临时数据. 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高 ...

  10. certutil绕过

    一般进内网过后我都会使用certutil下载文件,但在最近打一台内网机子的时候出现了certutil拒绝访问的情况,在本地搭建了一个环境尝试绕过certutil下载文件. 安装杀软更新到最新版本,开启 ...