热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxcentos7dhcp,Linux学习dhcp服务的配置(centos7.0)

DHCP介绍功能简介DHCP是一个基于UDP的工作在应用层的协议,用来自动分配IP地址。应用实例:一个办公室有十个人,每个人每天上下班都要

DHCP介绍

功能简介

DHCP是一个基于UDP的工作在应用层的协议,用来自动分配IP地址。

应用实例:一个办公室有十个人,每个人每天上下班都要带着自己的笔记本,所以每次都要手动配置IP地址,这样简直就不是计算机该干的事情是吧。。所以DHCP应运而生,它能够根据服务端的配置给连接到网络的客户机自动分配IP地址。

提供的服务

1.提供IP地址和子网掩码

2.提供IP地址对应的网络地址和广播地址

3.默认网关地址

4.DNS服务器地址

通俗的解释

你们寝室里有六个人(对应到客户机),每个人都需要用床(对应到IP地址)睡觉,所以每个人回到寝室都会需要一张床。这样的话每个人每次回到寝室的时候都需要宿管(对应到网络管理员)都需要给他分配一个床位,这样就很麻烦。

现在有一个“动态床位分配系统”(对应到DHCP服务器),你们每个人回到寝室的时候都会收到一张纸条,纸条上写了你可以使用哪个床位,这就简单多了。

再然后可能小明(对应到一个特定的客户机)有洁癖,他需要一个固定的床位(对应到一个需要固定IP的设备,比如打印机或者提供某些服务的服务器)。所以“动态床位分配系统”可以添加一条规则“叫小明的人来了就分配给他三号床位”,就解决了这个问题。

租约时间

DHCP分配给客户的IP是以租约形式分配的。当客户接入到网络中,DHCP便会分配一个IP给客户机,当租约时间到的时候如果客户机还在使用这个IP那么就可以续约,继续使用当前IP而不是从新分配一个。

在CentOS 7.x 下搭建DHCP服务

0X00 安装DHCP服务

使用yum、rpm、源码等方式进行安装

1 yum install dhcpd

0X01 配置服务器网络服务

首先我们要将本地的网络配置成静态地址,并重启网络服务

1 vim /etc/sysconfig/network-scripts/enp0s3

这里的enp0s3是我的网卡,你需要将这里修改成你的网卡,另外在CentOS 7.x

以前的版本中,使用的是ethx的命名方式。

修改如下选项

1 BOOTPROTO=static #之前很有可能是dhcp,现在我们修改它为静态

2 ONBOOT=yes  #以前可能是no,改为yes、就是打开网络服务的时候启动这个网卡

3 IPADDR=192.168.233.1 #配置文件中可能没有这个,没有的话就自己添加这行

4 # 这里的IP地址可以自定义,不过最后一位最好是1,这样便于识别

然后重启网络服务,如果配置文件没有错误的话,就可以正常启动了

1 systemctl restart network.service

这时候我们检查一下IP是不是已经变成我们设置的静态IP了

2 ifconfig enp0s3

0X02 配置DHCP服务

配置文件在这里

1 vim /etc/dhcp/dhcpd.conf

打开之后会有三行注释,我们初次学习配置的时候可以先不管它,只有服务真的跑起来并生效了我们才会进一步学习是吧。

在配置文件最后添加如下内容

1

#设置DHCP于DNS服务器的动态信息更新模式。初学时完全可以不理这个选项,但是全局设置中一定要有这个选项,否则DHCP服务不能成功启动。

2 ddns-update-style interim;

3 #下面开始分配子网,网段是192.168.233.0 子网掩码是 255.255.255.0

4

#不能理解网段和子网掩码的可以去网上查一下。简单的说网段规定了分配IP的段(分配哪一段IP给客户机),子网掩码规定了网段的大小

5 subnet 192.168.233.0 netmask 255.255.255.0 {

6  range 192.168.233.100

192.168.233.199; #分配给客户机的IP从192.168.233.100开始到192.168.233.199

7  option routers

192.168.233.2; #设置网关

8  default-lease-time 600;

#默认租约时间

9  max-lease-time 7200;

#最大租约时间

}

0X03 给特定客户分配特定地址

上面也说过,如果同一网络内有需要固定IP的设备,我们也可以通过DHCP来给他分配固定的IP。(就比如说那个有洁癖的同学)

首先要说一下DHCP识别主机的方式:

DHCP通过接入客户的网卡的MAC地址来判断客户,所以如果你的机器有两块网卡,并且两块网卡同时接入了网络,那么DHCP就会认为有两个设备接入了网络,并给你的机器分配两个IP

MAC地址并不是“苹果地址”。。。

MAC地址是“物理地址”,每块网卡在出厂的时候都会有一个全球独一无二的MAC地址,MAC地址是一个48位2进制的数字,通常表达为六段两位十六进制。

下面我们继续修改DHCP配置文件,在刚才的配置后面追加下面的内容

1 host Client_C { #有一个主机,叫Client_C

2  hardware ethernet

08:00:27:5e:04:27; #MAC地址是08:...:27的网卡

3  fixed-address

192.168.233.123;  #分配给它192.168.233.123的IP

}

这样配置的话,不管何时,只要这个CLient_C接入到了这个网络中,那么它获取的IP就是固定的这一个,并不会变

然后重启一下DHCP服务就好了

1 systemctl restart dhcpd.service

好了,至此DHCP的基础配置就搞定了



推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
author-avatar
点提土八撇又254
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有