一、DHCP 概述

当局域网中有大量的PC时、如果我们逐个为每台PC去手动配置IP、那这就是一个吃力也未必讨好的办法 累死你

而DHCP 刚好可以解决这个问题、DHCP全称(动态主机配置协议)、使用的协议为UDP、端口为67

DHCP的典型应用模式为:

首先在网络中架设一台专用的DHCP服务器、负责集中分配网络参数(IP、掩码、网关、DNS)

而其它PC作为DHCP客户端、将网卡配置设置为自动获取即可、这样就能与DHCP服务器进行通信、完成自动配置过程


1)DHCP 分配机制

DHCP有三种分配机制 如下所示:

1、自动分配:客户端第一次成功获取该地址之后、即可永久使用该地址

2、动态分配:分配之后并不是固定的、有时间限制、过期之后该地址将释放、供其他主机使用

3、手动分配:自己指定


2)DHCP 租约过程

DHCP的租约过程分为四步:

1、客户端请求IP:      客户机发出DISCOVER广播包

2、 服务端响应:        服务端发出OFFER广播包

3、 客户端选择IP:     客户机发出REQUEST广播包

4、 服务端确定租约:  服务端发出ACK广播包

===============下面来具体看一下===============

(1)客户端请求IP地址

当客户端启动时它还没有地址、所以要通过DHCP来获取一个合法的IP地址

因为客户机不知DHCP的地址、所以使用 4个0作为源地址、4个255作为目标地址来广播请求IP

其中包括自己的MAC地址和自己的计算机名、以便DHCP服务器确定是那台客户机发送的请求

(2)服务端响应请求

当DHCP服务器收到来自客户端的请求时、便会在自己的地址池中查看是否有合法的IP地址

如果有则将此地址做上标记、并增加到OFFER信息中、随后进行广播

信息中包括 客户机的MAC、DHCP提供的IP、掩码、网关、DHCP服务器的地址、租约期限

(3)客户端选择IP地址

客户机收到OFFER包之后、并从中提取IP、发出IP的DHCP服务器会将此地址保留

最后客户机会将REQUEST信息广播到全部的DHCP服务器、以表明它接收提供的内容

(4)服务器确定租约

服务器收到REQUEST消息之后、便会以ACK消息形式向客户机广播成功确认、当客户机那边收到ACK消息时、它也就配置了IP地址、完成了TCP/IP的初始化


二、DHCP 部署

DHCP服务器的地址为:   10.2.3.10

分配客户端的网段为:     10.2.3.11-33

1)解决先决条件

提示:在虚拟机当中部署DHCP服务的时候需要把宿主机的DHCP功能关掉、否则在进行分配的时候会起冲突

2)安装DHCP服务

[root@node1 ~]# yum -y install dhcp*

3)建立DHCP配置文件

提示:主配置文件位于:/etc/dhcpd.conf、但是里面并不包含有效配置、需要我们手动复制范本过去

[root@node1 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf.bak
[root@node1 ~]# grep -v "^#" /etc/dhcp/dhcpd.conf.bak > /etc/dhcp/dhcpd.conf

4)配置文件说明

1、配置文件构成

在主配置文件可使用:声明、参数、选项 这三种类型的配置、下面来看一下:

声明:用于网络布局划分、较常见的声明为 subnet、host 前者声明一个网段、后者越来设置固定IP

参数:由关键字和值组成、以分号结束、位于指定的声明范围之内、如租约时间、最大租约时间

选项:由option引导、后面根关键字和值 也以分号结束 用于分配各种地址参数 如网关、掩码、DNS

2、DHCP全局配置

max-lease-time 43200;									#最大租约时间
ddns-update-style none;									#动态DNS更新模式
default-lease-time 21600;								#默认租约时间
option domain-name "mds.com";							#默认搜索域
option domain-name-servers 202.96.134.133,223.6.6.6;	#DNS服务器地址

5)DHCP配置

提示:刚刚的全局配置上面我已经定义过了、现在只需确定subnet网段声明即可、如下所示:

subnet 10.2.3.0 netmask 255.255.255.0 {
  range 10.2.3.11 10.2.3.33;
  option routers 10.2.3.2;
}

配置网段声明以后、如果我们需要为某台服务器分配固定的IP、那就可以这样做、如下所示:

选项说明:

hardware ethernet: 指定该主机的MAC地址

fixed-address:        指定保留给该主机的IP地址

host prtsvr {
  hardware ethernet 08:00:07:26:c0:a5;
  fixed-address 10.2.3.20;
}

6)启动服务

[root@node1 ~]# systemctl enable dhcpd
[root@node1 ~]# systemctl start dhcpd
[root@node1 ~]# netstat -anpu | grep "dhcpd"
udp        0      0 0.0.0.0:67              0.0.0.0:*                           61763/dhcpd

三、DHCP客户端使用

1)用Linux作为客户端

提示:只需将获取地址的方式定义为自动获取即可、如下所示:

DEVICE="ens33"
TYPE="Ethernet"
ONBOOT="yes"
BOOTPROTO="dhcp"  #如果是static则将其改为dhcp即可
DEVICE="ens33"

定义完配置文件以后、对应的获取和释放命令为:

获取地址:dhclient -d 网卡名

释放地址:dhclient -r 网卡名

注意:执行获取命令的时候、如果没有指定网卡名、则除lo设备以外的所有网络接口都将通过DHCP方式申请新的IP地址

如下所示:通过查看服务端的日志、可以看见获取成功、地址为:10.2.3.12

最后:如果要释放所获得的IP地址、则可以使用 -r 选项、如下所示、释放就没了:


四、网络命令补充

1)route 命令

Linux系统中的路由表决定着从本机向其他主机和其他网络发送数据的去向

执行route命令可查看当前主机的路由表信息、输出结果中 信息如下所示:

[root@node1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags 	Metric 		Ref   	 Use	Iface
0.0.0.0         10.2.3.2        0.0.0.0         UG    	100   		0      	 0 		ens33
10.2.3.0        0.0.0.0         255.255.255.0   U     	100    		0        0 		ens33

选项解释如下:

Destination:   对应目标网段地址

Gateway:       下一跳路由器滴孩子

Iface:             发送数据的网络接口

flags:             表示标签、U表示正常、UG表示网关

注意:当目标网段地址为 4个0的时候、代表此行是默认网关记录、当下一跳为4个0的时候、表示目标网段与本机相连

1、添加到指定网段的路由记录

格式:route add -net 目标网段地址 gw 下一跳路由器的IP地址

例如:添加本机到172.16.3.0/24的路由、并将数据都转发给10.2.3.2

[root@node1 ~]# route add -net 172.16.3.0/24 gw 10.2.3.2

2、删除到指定网段的路由记录

格式:route del -net 目标网段地址

例如:删除前面添加到172.16.3.0/24网段的路由条目

[root@node1 ~]# route del -net 172.16.3.0/24

3、添加网关记录

格式:route add default gw 网关地址

例如:添加10.2.3.1的默认网关记录

[root@node1 ~]# route add default gw 10.2.3.1

4、删除网关记录

格式:route del default gw 网关地址

例如:删除刚刚所添加的10.2.3.1的默认网关记录

[root@node1 ~]# route del default gw 10.2.3.1

2)traceroute 命令

提示:trancroute命令用于测试从当前主机到目标主机之间经过了那些网络节点、并显示其中的连接状态、如果无法响应则状态为0

如果CentOS是最小安装的、那可能没有这条命令、这时候就需要安装它、如下所示:

[root@node1 ~]# yum -y install traceroute

比如:随便跟踪一台服务器、-4指定为IPV4地址

[root@node1 ~]# traceroute 203.95.133.123

3)netstat 命令

提示:此用于查看网络连接状态、路由表、接口统计信息 、面是几个常见的选项

-a:显示所有活动连接

-n:以数字形式显示

-r:显示路由表信息

-l:显示处于监听状态的网络连接信息

-t:显示TCP相关信息

-u:显示UDP相关信息

-p:显示网络连接的相关进程号

============================================================

例如:查看TCP和UDP的信息

[root@node1 ~]# netstat -anput

4)网卡接口激活与禁用

激活命令:ifup 网卡名		或者		ifconfig 网卡名 up
禁用命令:ifdown 网卡名		或者		ifconfig 网卡名 down

5)网卡绑定虚拟接口

提示:虚接口我们可以理解为一块网卡配置多个IP地址、不过这个地址是临时的、重启就失效了、配置MySQL-MHA架构的时候通常会用到

例如:为网卡ens33、添加一个虚接口、IP地址为 172.16.23.11

[root@node1 ~]# ifconfig ens33:1 172.16.23.11

【只是为了打发时间】

动态主机配置协议-DHCP的更多相关文章

  1. 计算机网络之动态主机配置协议DHCP

    为了将软件协议做成通用的和便于移植,协议软件的编写者不会把所有细节都固定在源代码中,而是把协议软件参数化,这就使得在很多台计算机上使用同一个经过编译的二进制代码成为可能. 一台计算机和另一台计算机的区 ...

  2. 【网络协议】动态主机配置协议DHCP

    动态主机配置协议DHCP 当某组织获得一块地址后,就可以为本组织内的主机或者路由器分配IP地址.这个分配工作可以由系统管理员手动通过网络管理工具来完成.也可以由动态主机配置协议(Dynamic Hos ...

  3. 动态主机配置协议DHCP

    一.什么是DHCP DHCP,动态主机配置协议,提供一种称为“即插即用连网”的机制,允许一台计算机加入新的网络和获取IP地址而不用手工配置. 二.DHCP工作原理和工作流程 DHCP服务器被动打开UD ...

  4. 【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识

    第25章      DHCP动态主机配置协议基础知识 本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP ...

  5. <TCP/IP>DHCP动态主机配置协议

    坚持是一种好习惯 大家都知道,为了上网我们是需要提交一些配置信息的,如IP地址,子网掩码,DNS服务器等,这些是一个主机能够在Internet上运行并给用户提供常用服务(比如web和Email)的基本 ...

  6. 第9章 应用层(2)_动态主机配置协议(DHCP)

    2. 动态主机配置协议(DHCP) 2.1 静态地址和动态地址的应用场景 (1)静态地址应用场景 ①IP地址不经常更改的设备(如服务器地址) ②使用有规律的IP地址以便于管理(如学校机房为方便教师管理 ...

  7. DHCP:动态主机配置协议

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP ...

  8. DHCP(动态主机配置协议)工作流程

    一.DHCP的作用 我们先来看一下什么是DHCP,DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)它可以为客户机自动分配IP地址.子网掩码以及缺省网 ...

  9. DHCP动态主机配置协议

    1.DHCP简述 某组织一旦获得了一个地址,它就可以为本组织内的主机与路由器接口逐个分配IP地址.系统管理通常可以手工配置路由器中的IP地址(静态分配).但这项任务目前通常更多是使用动态主机配置协议( ...

随机推荐

  1. oop(面向对象语言的三大特征):封装,继承,多态; (抽象),函数绑定

    封装/隐藏 : 通过类的访问限定符实现的   private    public 继承的意义之一:代码的复用 类的继承是指在一个现有类的基础上去构建一个新的类,构造出来的新类被称为派生类(子类),现有 ...

  2. TensorFlow——学习率衰减的使用方法

    在TensorFlow的优化器中, 都要设置学习率.学习率是在精度和速度之间找到一个平衡: 学习率太大,训练的速度会有提升,但是结果的精度不够,而且还可能导致不能收敛出现震荡的情况. 学习率太小,精度 ...

  3. 极简安装 TensorFlow 2.0 GPU

    前言 之前写了几篇关于 TensorFlow 1.x GPU 版本安装的博客,但几乎没怎么学习过.之前基本在搞 Machine Learning 和 Data Mining 方面的东西,极少用到 NN ...

  4. Flutter兼容AndroidX

    参考官方文档:https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility 第一步 distribu ...

  5. cogs 2. 旅行计划 dijkstra+打印路径小技巧

    2. 旅行计划 ★★   输入文件:djs.in   输出文件:djs.out   简单对比时间限制:3 s   内存限制:128 MB [题目描述] 过暑假了,阿杜准备出行旅游,他已经查到了某些城市 ...

  6. CDH安装详细测试正确

    1. CDH简介 简单来说,Cloudera Manager是一个拥有集群自动化安装.中心化管理.集群监控.报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到 ...

  7. Oracle RAC服务器重启故障排查

    Oracle Real Application Clusters(Oracle RAC),相对于Oracle单实例来说部署安装和维护都增加了难度,尤其在日常的维护和故障处理过程中,各种日志的查看更加重 ...

  8. 关于Navicat连接oralcle出现Cannot load OCI DLL 87,126,193 ,ORA-28547等错误

    navicat连接oracle数据库报ORA-28547: connection to server failed, probable Oracle Net admin error错误的解决方法 na ...

  9. 玩转Django2.0---Django笔记建站基础十一(二)((音乐网站开发))

    11.5 歌曲排行榜 歌曲排行榜是通过首页的导航链接进入的,按照歌曲的播放次数进行降序显示.从排行榜页面的设计图可以看到,网页实现三个功能:网页顶部搜索.歌曲分类筛选和歌曲信息列表,其说明如下: 1. ...

  10. 痞子衡嵌入式:语音处理工具pzh-speech诞生记(2)- 界面构建(wxFormBuilder3.8.0)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具pzh-py-speech诞生之界面构建. 之前痞子衡设计过一个串口调试助手pzh-py-com,也专门写过一篇关于其界面构 ...