DHCP协议和PXE

在学习IP地址基本概念之后,需要了解到如果需要和其他机器通讯,我们就需要一个通讯地址,我们需要给网卡配置一个地址。

如何配置 IP 地址?

可以用命令行自己配置一个地址。可以使用 ifconfig,也可以使用 ip addr。设置好了以后,用这两个命令,将网卡 up 一下,就可以开始工作了。

使用 net-tools:

$ sudo ifconfig eth1 10.0.0.1/24
$ sudo ifconfig eth1 up

使用 iproute2:

$ sudo ip addr add 10.0.0.1/24 dev eth1
$ sudo ip link set up eth1

配置客户端的IP地址我们需要用到DHCP和PXE:

概述:

  • DHCP 协议:主要是用来给客户租用 IP 地址,和房产中介很像,要商谈、签约、续租,广播还不能“抢单”;
  • PXE:DHCP 协议能给客户推荐“装修队”PXE,能够安装操作系统,这个在云计算领域大有用处。

ARP协议工作机制(链路层)

通过IP查找MAC地址需要用到ARP协议,如果目标ip地址和自己是一个网段,会直接在网段内进行广播,如果不是一个网段,则不会直接将包发送到网络上,而是企图将包发送到网关上。所以如果跨网段调用,且没配置网关,则包根

本发不出去。配置一个局域网主要需要配置CIDR、子网掩码、广播地址、网关地址。

DHCP 动态主机配置协议(Dynamic Host Configuration Protocol)(应用层)

网管首先配置一段共享的IP地址,新接入的机器通过DHCP协议从这段IP里面取一个未被使用的作为自己的IP,用完了再把ip还回去,非常像连接池,可以理解为一个ip池。

解析DHCP工作过程

新加入的机器使用IP地址0.0.0.0发送一个广播包,目标ip是255.255.255.255,MAC层包头内有自己的MAC地址,UDP协议,下层是BOOTP协议,而DHCP其实是BOOTP的增强版。

在这个广播包里面,新人大声喊:我是新来的(Boot request),我的 MAC 地址是这个,我还没有 IP,谁能给租给我个 IP 地址!

 

DHCP Server发现了这个新人的广播包后会再通过广播包给新人分配一个ip地址,这个过程叫DHCP Offer。

 

新人收到了offer之后会再发送一个已经收到的广播包,如果同时收到多个offer,一般选择第一个收到的offer,这个过程叫DHCP Request。

DHCP收到Request后,会回复一个DHCP ACK的广播包,确认这个新人此时可以正式用给它分配的ip地址了。

在一个租期到达50%的时候,需要继续向DHCP Server发送DHCP Request消息包进行续租。

IP 地址的收回和续租

既然是租房子,就是有租期的。租期到了,管理员就要将 IP 收回。如果不用的话,收回就收回了。就像你租房子一样,如果还要续租的话,不能到了时间再续租,而是要提前一段时间给房东说。DHCP 也是这样。

客户机会在租期过去 50% 的时候,直接向为其提供 IP 地址的 DHCP Server 发送 DHCP request 消息包。客户机接收到该服务器回应的 DHCP ACK 消息包,会根据包中所提供的新的租期以及其他已经更新的 TCP/IP 参数,更新自己

的配置。这样,IP 租用更新就完成了。

好了,一切看起来完美。DHCP 协议大部分人都知道,但是其实里面隐藏着一个细节,很多人可能不会去注意。接下来一个有意思的事情:网络管理员不仅能自动分配 IP 地址,还能帮你自动安装操作系统!

PXE 预启动执行环境(Preboot Execution Environment)

PXE客户端放在BIOS里面,计算机启动时,BIOS把PXE客户端加载到内存,PXE客户端启动后首先通过DHCP获取一个ip地址,并且DHCP Server可以把PXE客户端地址配置在next-server选项,把启动文件配置在filename选项,这样

PXE客户端就知道PXE服务端ip地址和安装操作系统需要的启动文件了,PXE客户端通过TFTP一些现在启动文件。

解析PXE工作过程

首先,启动 PXE 客户端。第一步是通过 DHCP 协议告诉 DHCP Server,我刚来,一穷二白,啥都没有。DHCP Server 便租给它一个 IP 地址,同时也给它 PXE 服务器的地址、启动文件 pxelinux.0。

其次,PXE 客户端知道要去 PXE 服务器下载这个文件后,就可以初始化机器。于是便开始下载,下载的时候使用的是 TFTP 协议。所以 PXE 服务器上,往往还需要有一个 TFTP 服务器。PXE 客户端向 TFTP 服务器请求下载这个文件,TFTP 服务器说好啊,于是就将这个文件传给它。

然后,PXE 客户端收到这个文件后,就开始执行这个文件。这个文件会指示 PXE 客户端,向 TFTP 服务器请求计算机的配置信息 pxelinux.cfg。TFTP 服务器会给 PXE 客户端一个配置文件,里面会说内核在哪里、initramfs 在哪里。PXE 客户端会请求这些文件。

最好,启动 Linux 内核。一旦启动了操作系统,以后就啥都好办了。

 

更多学习内容:

简书-DHCP和PXE协议

 

posted @ 2018-06-15 11:22  kumata  阅读(3150)  评论(0编辑  收藏  举报