动态主机配置协议(DHCP)与预启动执行环境(PXE)
分类:
文章
•
2024-12-17 15:32:22
- 和其他机器通讯,需要给网卡配置IP地址。
- 比如你给自己网卡配了个地址16.158.23.6,你想给目标IP 192.168.1.6发包,但是包发不出去,因为MAC地址没有。
- 源知道自己的MAC地址,但是目标的MAC地址不知道。
Linux会先判断IP是不是一个网段的,如果是一个网段,才会发ARP请求获取MAC地址。否则,如果是跨网段的,会将包发到网关。
- 如果配置了网关的话,Linux会获取网关的MAC地址,将包发出去。没有配置网关,包压根就发不出去。
网关要和当前的IP地址是同一个网段的
。
动态主机配置协议(DHCP)
申请IP
- 配置一段共享的IP地址,每一台机器都通过DHCP协议,来共享IP地址里申请,然后自动配置好即可。等用完了再还回去。
- 当一台机器新加入一个网络,只知道自己的MAC地址,这时候沟通只能靠吼,
我来啦,有人吗,这一步叫DHCP Discover
。
- 新机器用IP地址0.0.0.0发送一个广播包,目的IP地址为255.255.255.255,内容是:
我是新来的(Boot request),我的MAC地址是xxx,我还没有IP地址,谁租给我一个!
- 如果该网络有DHCP Server,他就相当于这些IP的管理员,立刻能知道来了一个新人(因为MAC地址是新的),需要租给它一个IP地址。这个过程称为
DHCP Offer
。同时,DHCP Server将分配给该新人的IP地址标记,保证不会分给别人。
- DHCP Server使用广播地址作为目的地址(此时新人还没有IP),DHCP Server说:我分配了一个可用的IP给你,你看如何。除此之外,服务器还发送了子网掩码,网关和IP地址租用期等信息。
- 如果有多个DHCP Server都提供了DHCP offer,新机器通常会选择第一个到达的,并且向网络中发送一个DHCP Request广播数据包,包含自己的MAC地址,接受的IP地址,提供IP的DHCP服务器的地址,并告诉所有DHCP Server它接收的是哪一台的Server,告诉其他DHCP服务器可以撤销offer以便于把IP分给别人。
- 由于还未得到DHCP Server的最后确认,新人依然使用0.0.0.0作为源地址、255.255.255.255为目标地址进行广播。
- 当DHCP Server接收到客户机的DHCP request后,会广播返回一个ACK,表明接收新人的选择,并将新人选择的IP地址的合法租用信息等放入该确认包。
续租和退租IP
- 客户机会在租期过去50%时,直接向为其提供IP地址的DHCP Server发送DHCP request申请续租,接收到DHCP ACK消息包后,会根据包中所提供的新的租期以及其他已经更新的 TCP/IP 参数,更新自己的配置。
- 退租则什么都不需要做。
预启动执行环境(PXE)
- 使用场景,数据中心批量安装操作系统。
- 把PXE客户端放在BIOS里,当计算机启动时,BIOS把PXE客户端调入内存里。
- DHCP Server除了配置共享IP段,还可以配置
next-server
,指向PXE服务器地址,还需要PXE服务器上初始化文件的文件名。
- 首先,启动PXE客户端,通过DHCP协议告诉DHCP Server,
我刚来,啥也没有
。DHCP Server租一个IP地址给他,同时给他PXE服务器地址还有启动文件名pxelinux.0。
- PXE客户端要去PXE服务器下载这个文件,使用TFTP协议,所以PXE服务器上还有一个TFTP服务器。
- 当PXE客户端收到这个文件后,执行这个文件。这个文件会指示PXE客户端向TFTP服务器请求配置信息pxelinux.cfg。里面有内核去哪下载,initramfs去哪下载,再分别请求这些。
- 最后启动内核,操作系统启动。