当前位置:网站首页>【网络协议】DHCP和PXE
【网络协议】DHCP和PXE
2022-04-21 23:41:00 【阿月浑子2021】
DHCP(Dynamic Host Configuration Protocol):动态主机配置协议。工作方式如下:
当一台机器新加入一个配置了DHCP Sever网络的时候,首先会进行 DHCP Discover,即使用IP地址0.0.0.0发送一个广播包,目的IP地址为255.255.255.255。广播包封装了UDP,UDP封装了BOOTP。DHCP是BOOTP的增强版,但如果抓包的话,很可能看到的名称还是BOOTP协议。
在这个广播包里,新来的机器进行Boot request。
DHCP Sever就会分配给它一个IP地址,这个过程称为DHCP Offer。同时,DHCP Sever会保留此IP地址,不再为其它机器分配。此时,DHCP Sever也使用广播地址作为目的地址,因为,当下请求分配IP的新机器还没有自己的IP,除此之外,服务器还发送的子网掩码、网关、和IP地址的使用期限等信息。
如果有多次DHCP Sever,这台新机器就会收到多个DHCP Offer,它会选择其中一个作为自己的IP地址,一般是最先到达的那个,并向网络发送一个DHCP Request 广播数据包,包含客户端的MAC地址、接受的IP地址、提供IP地址的DHCP服务器地址等,并告诉所有的DHCP Sever它将接受哪一台服务器提供的IP地址,同时请求其余DHCP Sever撤回它们提供的IP。
客户机会在IP使用期限过去50%的时候,直接向为其提供IP地址的DHCP Sever发送DHCP request消息包。接到服务器回应的DHCP ACK包后,根据包中所提供的新的使用期限以及其他已经更新的TCP/IP参数,更新自己的配置,这样,IP使用期限就更新完成了。
网络管理员不仅能自动分配IP,还能安装操作系统
这个过程和操作系统启动的过程相似。
【附:操作系统启动过程】首先,启动BIOS,BIOS是一个特别小的小系统,只能做特别小的一件事,就是读取硬盘的MBR启动扇区,将GRUB启动起来,然后将权力交给GRUB,GRUB加载内核、加载作为根文件系统的initramfs文件,然后将权力交给内核,最后内核启动,初始化整个操作系统。
安装操作系统的过程,只能插在启动BIOS之前,因为没安装系统之前,连启动扇区都没有。因而,这个过程叫作预启动执行环境(Pre-boot Execution Environment),简称PXE。
PXE协议分为客户端和服务器端,由于还没有操作系统,只能先把客户端放在BIOS里面,当计算机启动时,BIOS将PXE客户端调入内存中,就可以连接服务端做一些操作了。
PXE的客户端启动起来后,会发送一个DHCP请求,让DHCP Sever为它分配一个IP地址。如果想使用PXE,除了IP地址,还需要配置next-sever,指向PXE服务器的地址,另外需要配置初始启动文件filename。这样,PXE客户端就知道PXE服务器在哪里了,也可以知道如何从PXE服务器上下载某个文件,去初始化操作系统。
知道了这些后,PXE客户端就可以开始下载了,下载的时候使用的是TFTP协议,所以在PXE服务器上,往往还需要一个TFTP服务器,将PXE客户端要下载的文件传给它。
PXE客户端收到文件后,开始执行文件。这个文件会指示PXE客户端,向TFTP服务器请求计算机的配置信息pxelinux.cfg。TFTP服务器会给PXE客户端一个配置文件,里面会说内核在哪里、initramfs在哪里。PXE客户端会请求这些文件。
最后,启动Linux内核。
版权声明
本文为[阿月浑子2021]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_56814032/article/details/124330662
边栏推荐
- BUUCTF 刷题记录
- Wechat server configuration
- 音视频编解码
- Multi table view creation problem: modify view data times 1062
- (Reprint) MySQL read-write separation -- cluster and high concurrency
- JDBC method parameter details drivermanager, statement, connection, resultset, Preparedstatement
- Leetcode每日一题824. 山羊拉丁文
- 管理员登录及token相关
- 341-Linux 连接数据库
- Leetcode daily question 824 Goat Latin
猜你喜欢

DetNet: A Backbone network for Object Detection

入参有汉字,报错500,服务器内部错误

7.6 thread properties

Amazing, 4 high-quality software full of surprises, feel more comfortable to use

Ijcai2022 employment results released! The acceptance rate is 15%. Did you win?

C language: simple profit and bonus

leetcode:386. Dictionary order

【acwing】1125. Cattle travel * * * (Floyd)

BUUCTF 刷题记录

LeetCode_ 746 climbing stairs with minimum cost
随机推荐
Iotdb permission management
[fundamentals of interface testing] Part IV - interface testing process and interface document analysis
5、网络结构与ISP,分组延时、丢失、吞吐量
leetcode:386. Dictionary order
Classified summary of series articles (second issue)
340 leetcode valid Letter ectopic words
JDBC方法参数详解 DriverManager,Statement,Connection,ResultSet,PreparedStatement
Storage group physical quantity entity path
How to make knowledge map assist multi round dialogue
机器学习,深度学习,神经网络,深度神经网络之间有何区别?
【接口测试基础】第四篇 | 接口测试流程及接口文档解析
How about huarongda futures? Is it safe to open futures accounts?
Use of database connection pool and Druid
[transfer] differences and relations between collection set map vector list
Man machine verification reCAPTCHA V3 complete instructions
.101键盘事件
Good morning and good night. Punch in V2 0.1 official account module
L2-016 愿天下有情人都是失散多年的兄妹 (25 分)
7.10 thread condition variables
Developing Cami community system with ThinkPHP