首页 > 系统相关 >linux网络DHCP原理与配置

linux网络DHCP原理与配置

时间:2024-04-28 16:45:40浏览次数:23  
标签:linux 客户机 IP地址 服务器 dhcpd dhcp DHCP 原理

了解DHCP

DHCP概述

dhcp动态主机配置协议,有Internet工作任务小组设计开发,专门用于为tcp/ip网络中计算机自动分配tcp/ip参数的协议。
dhcp是一个局域网的网络协议。指的是有服务器控制一段IP地址范围,客户机登录服务器是就可以自动获得服务器分配的IP地址和子网掩码。
dhcp采用c/s架构,c-client(客户机),s-server(服务器),客户机/服务器架构。
dhcp服务采用传输层UDP协议,客户机使用UDP协议的68端口,服务器使用UDP协议的67端口。

DHCP的分配方式

  • 自动分配:分配到一个IP地址后永久使用(一般不采用)
  • 手动分配:由dhcp服务器管理员手动分配指定IP地址(类似于静态,如公司中的打印机,扫描仪需要固定IP地址)
  • 动态分配:使用完后释放该IP,供其他客户机使用

DHCP租约过程

客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程

1.客户机请求IP地址(DHCP Discover)

当一个DHCP客户机启动时,客户机还没有IP地址,客户机要通过DHCP获取一个合法的地址。
此时DHCP客户机以广播方式发送 DHCP Discover 报文发现信息来寻找DHCP服务器。

2.服务器响应(DHCP Offer)

DHCP服务器接收到来自客户机请求lP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机。
如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则 DHCP Offer 消息(包含网络配置信息:IP地址、子网掩码、DNS、租期等)。

3.客户机选择IP地址(DHCP Request)

DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址, 之后广播发送 DHCP Request 消息,通告给局域网中所有的DHCP服务器,它选择了哪个DHCP服务器的哪个IP以及租约期限。
让未被选中的DHCP服务器,把未使用的地址收回。同时发出IP地址的DHCP服务器将该地址保留,该地址就不能再分配给另一个DHCP客户机。

4.服务器确定租约(DHCP Ack)

DHCP服务器接收到DHCP Request消息后,以 DHCP ACK 消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。
当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化。

使用DHCP动态配置主机地址

1.DHCP服务优点

  • 为大量客户机自动分配地址,提供集中管理
  • 减轻管理和维护成本、提高网络配置效率

2.可分配的地址信息主要包括

  • 网卡的IP地址、子网掩码
  • 对应的网络地址、广播地址
  • 默认的网关地址
  • DNS服务器地址

DHCP配置文件

DHCP服务的配置文件为/etc/dhcp/dhcpd.conf
参数含义:

点击查看代码
 # 设置全局配置参数
 option domain-name "example.org";     //指定默认域名
 option domain-name-servers 114.114.114.114;      //指定DNS服务器地址
 default-lease-time 600;              //默认租约600秒(10分钟)
 max-lease-time 7200;                 //最大租约为7200秒(2小时)
 ddns-update-style none;              //禁用DNS动态更新


 # subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
 subnet 192.168.100.0 netmask 255.255.255.0 {         //声明要分配的网段地址
 range 192.168.100.128 192.168.100.200;               //设置地址池
 option routers 192.168.100.10;                       //指定默认网关地址
}


 # host主机声明(给单机分配固定的IP地址)    
 host hgstname{                                //指定需要分配固定IP地址的客户机名称
 hardware ethernet 00:c0:c3:22:46:81;          //指定该主机的MAC地址
 fixed-address 192.168.4.100;                  //指定保留给该主机的IP地址
}

实验1:自动获取IP地址

  • 1.先关闭linux防火墙
  • 2.安装dhcp软件包,并查看配置文件
点击查看代码
systemctl stop firewalld                   #关闭防火墙
setenforce 0                               #关闭selinux防火墙

[root@localhost ~]#yum install dhcp -y     #安装dhcp服务
[root@localhost ~]#rpm -qc dhcp            #查看配置文件
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases

  • 3.编辑dhcp服务的配置文件/etc/dhcp/dhcpd.conf,设置网段、地址池、网关地址
点击查看代码
[root@localhost ~]#vim /etc/dhcp/dhcpd.conf 
#空的
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#       在此目录下有配置模板
#   see dhcpd.conf(5) man page
#
~                                                                                
~                                                                                   
~  
[root@localhost ~]#ls  /usr/share/doc/dhcp-    #按Tab键补全查看
dhcp-4.2.5/        dhcp-common-4.2.5/ 
[root@localhost ~]#  ls  /usr/share/doc/dhcp-4.2.5/
dhcpd6.conf.example  dhcpd.conf.example   ldap/   

[root@localhost ~]#cp  /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y          #将文件拷贝过来覆盖

[root@localhost network-scripts]#  cd /etc/dhcp
[root@localhost dhcp]#vim dhcpd.conf           #修改配置文件

#第8行 修改默认的全局dns地址
8 option domain-name-servers  114.114.114.114;
#直接修改27 行
27 subnet 172.16.235.0 netmask 255.255.255.0 {      #需要分配的网段(跟自己在同一网段)   子网掩码
28   range 172.16.235.30  172.16.235.60;            #地址池  可以使用的ip地址范围
29   option routers 172.16.235.2;                   #网关
30   option domain-name-servers  218.2.135.1;       #dns服务器
31 }


  • 4.启动dhcp服务并查看状态
    systemctl start dhcpd 启动服务
    systemctl status dhcpd 查看状态

  • 5.验证实验结果
    在linux中验证,需在另一台虚拟机中配置ens33文件,只保留BOOTPROT=dhcp。
    systemctl restart network 重启服务
    ip a 显示所有接口配置信息

在windows中验证,打开cmd
在虚拟机的cmd命令提示符中输入命令进行验证

ipconfig 查看网卡信息
ipconfig -h 查看命令帮助
ipcongfig /release 释放地址
ipcongfig /renew 重新获取地址
ipconfig /all 全部信息

标签:linux,客户机,IP地址,服务器,dhcpd,dhcp,DHCP,原理
From: https://www.cnblogs.com/leikj/p/18164010

相关文章

  • pytest lastfailed原理
    相信很多使用pytest的,都知道pytest有运行上次失败用例的参数,如下:--lf,--last-failedrerunonlytheteststhatfailedatthelastrun(orallifnonefailed)--ff,--failed-firstrunalltests,butrunthelastfailuresfirst.Thism......
  • SpringBoot自动装配原理
     个人理解,SpringBoot就是由Spring和SpringMVC整合而来。开箱即用、简化监控、简化配置、简化部署;约定大于配置;boot脱离了传统Spring手动配置大量的bean,而SpringBoot自动装配改变了繁琐的局面。 SpringBoot的自动配置基于条件注解和自动配置类,它能够根据应用程序的......
  • mybat中的拦截器的使用和原理分析
    一、mybatis拦截器的介绍和简单使用要使用mybatis的拦截器需要先对mybatis的执行流程有比较全面的认识,可以参考下我的另两篇文章mybatis源码解析mybatis中sql的执行流程mybatis执行sql的过程中涉及到这几个核心对象Executor:执行器,StatementHandler,ParameterHandler,R......
  • Linux安全机制
    Linux基础Linux常用命令lscdpwdunamewhoamimanfindechocatlesshead/tailgrepcutdiff#比较文本差异mvcprmpstopkillifconfigpingnetstatncsutouchmkdirchmodchownvimhistoryexit使用变量:var=value#给变量var赋值为value$var,${var......
  • 编译原理PL0语法分析实验1
    编译原理PL0语法分析实验11,待分析的简单语言的词法相同点:都是分析种别码不同点:词法分析器分析的是字符串中的单词的种别码(单词)语法分析器分析的是字符串的文法是否正确(句子)待分析的简单语言的语法BNF:(1)<程序>::=begin<语句串>end(2)<语句串>::=<语句>{;<语句>}(3)<语句>::=<赋值语句>......
  • Linux试题库100试题测验
     Linux基础知识一、单选题(共20题每题1分共20分) 下面哪个Linux命令可以一次显示一页内容?CA.pause B.cat C.more D.grep 怎样更改一个文件的权限设置?BA.attrib B.chmod C.change D.file 3.下面哪个参数可以删除一个用户并同时删除用......
  • Linux 之 vi / vim
    vi/vim​ Vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说,vi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。​ 基本上vi/vim共分为三种模式,命令模式(CommandMode)、输入模......
  • 批量修改Linux文件夹下所有文件大小写
    批量修改Linux文件夹下所有文件大小写 小写转大写:[root@localhost/]# forcpplivein*;domv$cpplive`echo$cpplive|tr [a-z][A-Z]`;done 大写转小写:[root@localhost/]# forcpplivein*;domv$cpplive`echo$cpplive|tr [A-Z][a-z]`;done 修改后......
  • Linux: Desktop Environment DE GUI
     Checkwhichdesktopenvironmentyouareusingecho$XDG_CURRENT_DESKTOP FROMGUI gnome-shell--version gdm3--version DisplayManagerVSDisplayServer CheckwhetherWaylandorXorgisinuse(DisplayServer)必须使用GUIte......
  • 响应式原理(Vue3、Vue2)
    1.Vue3副作用函数(onMounted、watchEffect)帮助管理组件中的副作用逻辑,并自动追踪其依赖关系,以确保在数据变化时能够自动触发副作用函数的更新。会自动追踪被其内部函数引用的响应式数据。当这些数据发生变化时,Vue3会自动重新运行副作用函数,确保副作用与数据的状态保持同步。......