pxe启动文件制作 (pxe启动流程)

我是一名云平台IAAS层的运维开发工程师.在本系列文章中,我会介绍典型数据中心服务器装机的方方面面,欢迎大家关注.

本系列已经发布的文章,欢迎大家阅读

服务器装机(一) 服务器装机系统

服务器装机(二) PXE中交换机dhcp relay和dhcp服务器配置

服务器装机(三) 带外网络和服务器配置

0x00 电脑 装机系统典型网络配置

在上一篇文章中介绍了服务器PXE启动之后,网卡的PXE固件需要通过BOOTP(DHCP)协议到dhcp服务器得到一个地址,然后通过tftp协议拉取pxelinux.0和相应的配置文件,并充当bootloader启动装机linux系统.

这篇文章详细介绍PXE固件通过DHCP协议从dhcp服务器得到IP以及pxelinux.0文件时需要在交换机和服务器上进行的关键配置.

典型的数据中心网络中,服务器(包括dhcp服务器)会上联接入交换机,接入交换机会上联汇集交换机.

一般的,接入交换机下面会开启不同的vlan来跑不同的数据流,每个vlan下面基本都有自己的网关.

接入交换机和汇集交换机一般使用三层互联+路由协议(OSPF或者BGP)来让不同接入交换机下的服务器可以互相访问.当然,接入交换机和汇集交换机也可以通过透传VLAN的方式打通不同接入交换机之间的服务器互访,但是透传VLAN会导致二层广播域太大,大量广播包可能冲垮整个网络.

下面介绍上图中服务器①PXE从dhcp服务器⑤得到IP地址和其他配置需要在交换机和dhcp服务器上要做的关键配置.

0x01 交换机dhcp relay配置

所有的服务器装机时都需要从同一台dhcp服务器得到IP地址和pxelinux.0文件信息. 而BOOTP(DHCP)本身是工作在二层,基于广播包的协议,无法透过三层网络.

也就是说,如果在带内接入交换机②不配置dhcp relay的情况下. 电脑 上图服务器①PXE启动的时候,带内网口会广播DHCPDISCOVER请求,在本网络内(当前带内接入交换机②下),没有dhcp服务器,所以不会有DHCPOFFER回来,机器就一直请求,无法完成PXE启动.

当在带内交换机②配置了dhcp relay之后. 交换机②收到广播DHCPDISCOVER请求之后,它会向自己配置的dhcp relay server ⑤单播这个DHCPDISCOVER请求,这个单播包通过汇集交换机③,dhcp服务器所在的交换机④,到达装机服务器⑤上的dhcpd进程. 然后dhcpd进程处理好之后将DHCPOFFER包原路返回到服务器①.后续的DHCPREQUEST和DHCPACK包也走相同的访问链路.

典型的,交换机②上需要有如下的配置. (下面是H3C交换机的配置语法,不同厂商的交换机语法不同)

dhcp enable #交换机dhcp总开关 interface Vlan-interface3 #服务器地址所在的Vif ip address 192.168.10.1 255.255.255.0 #服务器地址的网关和掩码 dhcp select relay #开启dhcp relay dhcp relay server-address 192.168.1.2 #dhcpd服务器的IP地址 dhcp relay server-address 192.168.1.x # 可以指定多个dhcpd服务器的IP地址#

其中最关键的就是开启全局dhcp开关. 在vif下开启dhcp relay,然后配置好正确的dhcp服务器地址,如果有多个dhcp服务器,可以配置多个,交换机会同时转发DHCPDISCOVER请求. 配置好之后,在交换机上ping一下配置的dhcp服务器地址,确保可以通.

0x02 dhcpd服务器配置

一般我们会使用isc dhcpd服务器. 对于PXE和有dhcp relay的情况,典型配置分成如下三部分.电脑

第一部分主要配置tftp服务器和dns服务器的ip地址,以及pxe启动的文件在tftp服务器的位置.这儿假设tftp服务器为192.168.1.3,dns服务器为192.168.1.4,dhcp服务器为192.168.1.2,它们所在交换机的网关为192.168.1.1/24

allow booting; #允许IP分配allow bootp; #兼容BOOTP协议ping-check true; #分配IP之前先用ping确定当前IP没有被占用ping-timeout 2;next-server 192.168.1.3; #tftp服务器地址filename \"/pxelinux.0\"; #从tftp服务上下载的用于启动服务器的文件default-lease-time 200; #分配的IP地址租约时间max-lease-time 400;option domain-name-servers 192.168.1.4; #dns服务器IP,会配置到机器的/etc/resolv.conf中

第二部分需要配置dhcpd监听的IP地址192.168.1.2所在的网段,不然dhcpd监听起不来.

subnet 192.168.1.0 netmask 255.255.255.0 {}

第三部分配置是最重要的,对于每个要安装机器所在的带内接入交换机网段,都需要有如下一段配置. 其中subnet声明需要匹配上过来的DHCPDISCOVER请求中giaddr(gateway ipaddress),这样dhcpd服务器才知道要分配哪个网段中的地址给这个请求服务器. option routers和option subnet-mask返回给服务器网关和netmask,pool决定了dhcpd服务器对这个接入交换机下面的服务器会分配的IP范围.

subnet 192.168.10.0 netmask 255.255.255.0 { option routers 192.168.10.1; #服务器需要配置的网关和netmask option subnet-mask 255.255.255.0; pool { #dhcpd服务器可以分配的IP范围 range 192.168.10.2 192.168.10.250; } }0xff 总结

在典型的数据中心网络中,服务器PXE装机通常需要需要跨过接入交换机和汇集交换机.本文介绍了在交换机和dhcp服务器中的关键配置. 欢迎大家继续关注,后续更多干货.


电脑 电脑