趣谈网络4讲| DHCP与PXE

上一节,学习了一下IP相关的知识,但是如何配置 IP 呢?配置有两种方式
第一种方式:通过命令行手动配置,配置好以后 up 就可以了

  • 使用net-tools:
    sudo ifconfig eth1 IP地址
    sudo ifconfig eth1 up
  • 使用 iproute2:
    sudo ip addr add IP地址 dev eth1
    sudo ip link set up eth1

手动配置有一个问题,包发不出去。为什么呢?前面讲过,只要是在网络中的包,都是完整的,可以有下层没上层,但绝对不可能有上层没下层。现在假设机器 A 的 IP 地址是 192.16.1.2,目标机器 B 地址是 192.168.9。通过配置命令将 A 修改成 C 12.156.14.6. 现在在 A 的机器上 ping B 的IP地址,ping 不通。原因是,没有机器 B 的 MAC 地址。因为在Linux系统上,只有在同一个网段才会发送 ARP 请求,然后获取 MAC 地址。如果 B 的 IP 地址和 C 的 IP 地址不在同一个网段,Linux会怎么操作? Linux 默认的逻辑是,如果是一个跨网段的调用,它便不会直接将包发送到网络上,而是企图将包发送到网关上,再由网关去寻找目的地址。

如果修改 IP 地址却没有修改 网关地址,包也是发送不出去。所以真正配置 IP 的时候,一定不是直接用 命令配置,而是放在一个配置文件里面。配置文件的格式基本上就是 CIDR、子网掩码、广播地址和网关地址。

动态主机配置协议(DHCP:Dynamic Host Configuration Protocol)

在现实中有这么一种场景,就是每个人会携带自己的笔记本来来回回在办公室穿梭,如果每到一个地方就需要 IT 人员给分配一个 IP 地址,那么肯定会累死 IT 人员的。为了解决这个问题, DHCP 被提出。

解析DHCP的工作方式
当一台新机器加入到一个网络的时候,通过 DHCP Discover发出信号。新来的机器使用 IP 地址 0.0.0.0 发送了一个广播包,目的 IP 地址为 255.255.255.255.广播封装了 UDP, UDP封装了BOOTP。其实 DHCP 是 BOOTP 的增强版。格式如下:

如果一个网络管理员配置在网络里配置了DHCP Server的话,他就相当于这些 IP 的管理员。只有 MAC 唯一,IP 管理员才知道这是一个新的机器,需要租给它一个 IP地址,这个过程就是 DHCP Offer。DHCP Offer格式如下:

如果有多个DHCP Server,那么这台新机器就会收到多个 IP地址, 这台新机器会选择其中的一个,一般选择最先到达的这个 IP 地址。选完以后,告诉其他 DHCP Server收回它们提供的 IP 地址。

最后一步就是由DHCP Server 确认分配的 IP 地址有效。 DHCP Server 接受到客户机的 DHCP Request以后,会广播返回给客户机一个DHCP ACK的消息,表明已经接受客户机的选择。格式如下:

预启动执行环境(PXE)

这个就是属于课外知识了,第一次听到这样的东西,这也说明了非科班出身的不足之处。
DHCP 可以自动分配 IP 地址,如果你想自动给一批电脑安装操作系统,该怎么操作。这个时候就需要 PXE。
先了解一下操作系统的启动过程:首先启动 BIOS(这是一个特别小的系统),作用就是读取硬盘的 MBR 启动扇区,将 GRUB 启动起来;然后将权利交给 GRUB,GRUB 加载内核,加载作为根文件系统的 initramfs 文件,然后将权利交给内核;最后内核启动,初始化整个操作系统。

PXE 协议分为客户端和服务器端,由于还没有操作系统,所以先把客户端放在 BIOS 里执行。

解析 PXE 的执行过程
首先启动 PXE 客户端。第一步通过 DHCP 协议告诉 DHCP Server 获得一个 IP 地址,同时也给它一个 PXE 服务器的地址、启动文件 pexlinux.0。
其次, PXE 客户端到 PXE 服务器端下载文件,初始化机器。下载的时候采用的是 TFTP 协议。
最后,利用下载的文件和配置信息启动 Linux 内核。
流程如下所示:

总结

  • DHCP : 新机器加入到一个网络中获取 IP 地址的协议
  • DHCP协议能够给客户推荐“装修队”PXE,能够安装操作系统,在云计算领域有很大用处

说点什么

avatar
  Subscribe  
提醒

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部