4, DHCP与PXE:IP是怎么来的,又是怎么没的
如何配置IP地址
- 使用
net-toolsifconfig eth1 10.0.0.0/24 ifconfig eth1 up - 使用iproute2
ip addr add 10.0.0.1/24 dev eth1 ip link set up eth1 - 更改配置文件(多数情况)
- 文件内容:CIDR、子网掩码、广播地址和网关地址。
问题: 配置地址时,当你把 ip 地址改为与局域网内的机器不同网段,会发现ping 不通与你处于同一局域网的机器,为什么?
假设你将IP地址更改为15.157.*.*,你要发送的及其IP地址为192.168.1.6,那么你会尝试获取网关的MAC地址,而根据你的IP地址,你的网关地址为15.157.*.*?,所以获取不到网关的MAC地址,发送失败。
graph LR
A{请求的ip是否处于同一网段}-->|是|B(发送ARP请求获取MAC地址)
A-->|否|C(查看是否配置网关)
C-->|是|D(尝试获取网关的MAC地址)
C-->|否|E(发送失败)
动态主机配置协议(DHCP)
网络管理员需要配置一段共享的IP地址,接入的机器都通过DHCP从共享的IP地址里申请,就可以自动配置(用完即还?所以叫动态?)

DHCP工作方式
- "一声吼-DHCP Discover":新机器加入一个网络时,先使用 IP地址 0.0.0.0 发送一个广播包,目的地址为 255.255.255.255。
- 广播包封装在UDP里面,UDP封装在BOOTP里面
- DHCP是BOOTP的增强版
- 广播包里, BOOT request(我是新来的) ,请求IP(没有IP),MAC地址(发过来)
- "我给你-DHCP Server -> DHCP Offer"
- DHCP Server: 需要配置的服务内容?
- DHCP Offer : 给新机器分配一个ip的过程(并保证此ip不在分配给其他机器)
- BooT reply(给你发过去),MAC地址(你的地址),IP(给你分配的IP),(其他:子网掩码,网关,IP地址租用期)
- 如果有多个DHCP Server,新机器会收到多个IP地址。新机器会选择其中一个DHCP Offer(一般是最先到达),并且向网络发送一个DHCP Request 广播数据包,告诉所有DHCP Server 将接受那一台服务器提供的IP地址,请求其他DHCP服务器撤销提供的IP地址。(MAC地址(是我),提供IP的DHCP服务器地址(要他给的),接受的IP(这个IP))
- BooT reply(给你发过去),MAC地址(你的地址),IP(给你分配的IP),(其他:子网掩码,网关,IP地址租用期)
- "约定达成"
- 约定达成前:客户端使用 0.0.0.0 为源地址,255.255.255.255为目标地址进行广播
- 直到,BOOTP里接收某个DHCP Server 分配的IP,发送DHCP request 广而告之(我选他了)
- DHCP Server 接收到 DHCP request 后,会广播返回给客户机一个
DHCP ACK消息包(表明接受客户机的选择),并将IP地址的合法租用信息和其他配置信息也一起发送.
角色:DHCP Server,客户端 Boot Request , Boot Reply 类比:租房子, 1,发布通告我要租房子 2,房东都来联系你,给你地址 3,你选择一个地址后,发通告给所有房东说你选好了 4,被你选的房东看到了,给你发更详细的合同
IP地址的收回和续约
- 续约需要提前(打招呼),不能到了时间再续租
- 一般是在租期过去50%时候,客户机会向提供IP地址的DHCP Server 发送 SHCP request消息包
- 客户起会收到服务器回应的 DHCP ACK 消息包,以此更新自己的配置(新的租期,更新的TCP/IP参数)
预启动执行环境(PXE)
系统启动过程:
graph LR
A[启动BIOS]-->|读取硬盘的MBR启动扇区|B[启动GRUB]
B-->C[加载内核-根文件系统的文件]
C-->D[内核启动,初始化系统]
预启动执行环境(Pre-boot Execution Envionment)
- PXE 协议分为客户端和服务器端(客户端没有操作系统,只能先把客户端放在BIOS里)
- BIOS 把
PXE客户端调入内存里,PXE客户端发送DHCP请求,让DHCP server分配IP地址和PXE服务器地址 - DHCP Server 配置:可以增加PXE服务器地址(安装操作系统)
- DHCP配置样例:
- IP地址段,子网掩码,网关地址,租期;
- 指向 PXE服务器的地址(next server),初始启动文件 filename(会下载这个文件)
ddns-update-style interim; ignore client-updates; allow booting; allow bootp; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option subnet-mask 255.255.255.0; option time-offset -18000; default-lease-time 21600; max-lease-time 43200; range dynamic-bootp 192.168.1.240 192.168.1.250; filename "pxelinux.0"; next-server 192.168.1.180; } - IP地址段,子网掩码,网关地址,租期;
PXE工作过程
- 启动 PXE客户端(通过DHCP协议从DHCP Server获得:IP地址,PXE地址,启动文件)
- 下载启动文件(使用TFTP协议,所以PXE服务器上还有TFTP服务器,用来响应PXE客户端的下载请求)
- PXE客户端接收并执行文件;下载的文件会指示PXE客户端向TFTP服务器请求计算机的配置文件
pxelinux.cfg(里面有内核、initramfs 等信息),;读取配置文件请求安装所需文件。
问题:
- PXE协议可以用来安装操作系统,但如果每次重启都安装操作刺痛。怎么让第一次安装操作系统,后面正常启动?
- 组网?

浙公网安备 33010602011771号