DHCP:Dynamic Host Configuration Protocol
IP/Nermask
Gateway
DNS Server
bootp:boot protocol --> dhcp
1. Client:dhcp discover:发现
2. Server:dhcp offer:(IP/netmask,gw)
3. Client:dhcp request
4. Server:dhcp ack
续租:
Client:dhcp request
Server:dhcp ack
Server:dhcp nak
Linux DHCP协议的实现程序:dhcp,dnsmasq
dhcp:
/usr/sbin/dhcpd
/etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd
/etc/dhcp/dhcpd6.conf --> /etc/tc.d/init.d/dhcpd6
/usr/sbin/dhcrelay
/etc/rc.d/init.d/dhcrelay
67/udp
dhclient:68/udp
dhcpd.conf:
subnet NETWORK netmask MASK{ :定义子网,用于指明地址池;
range START_IP END_IP :指明起始地址
}
host passacaglia{
hardware ethernet 0:0:c0:5d:bd:95;
filename “ ”:指明引导文件名称;
next-server:提供引导文件的服务器ip地址;(为tftpserver,一般使用pxe时会用到此指令)
fixed-address IP:获得主机的固定ip地址
}
查看地址分配记录:
~]# cat /var/lib/dhcpd/dhcpd.leases
配置选项:
option domain-name “example.org”:定义搜索域;
option domain-name-servers ns1.example.org, ns2.example.org;:指明配置给客户端的0dns地址;
default-lease-time 600:默认租期;
max-lease-time 7200:最大租约期限;
option routers GW1,GW2,…:配置给客户端的默认网关。
option broadcast-address BROADCAST_ADDRESS;:配置给客户端的广播地址;
演示:dhcp服务器的配置
1. 实验环境准备;
两台虚拟机,都是centos6系统,一台作为dhcp服务器,一台作为客户端;
为了防止dhcp服务器对局域网的干扰。我们这里网络连接模式选择vmnet2通信;
2. 配置dhcp服务器;
Note:dhcp服务器的ip配置的静态ip地址,为192.168.19.134
3. 客户端设置为dhcp,用dhclient –d命令让其工作在前台;
测试:客户端获取到了ip地址,并在分配的地址范围之内;
tftp server:
tftp也是文件服务器的一种,不过一般在使用pxe装机环境下,使用的较多。
演示:
1. 安装tftp,编辑配置文件,将disable的值改为no;
其中/var/lib/tftpboot为tftp的工作目录
2. 启动超级守护进程;
3. 测试;
PXE
PXE:preboot execute environment,我们在大批量的安装linux系统时,通过光驱一个一个安装不仅麻烦,而且效率低下。此时我们便可以通过PXE安装。
1. Pxe安装流程;
1) 客户机启动选择pxe网卡启动,从本网络中的dhcp服务器获取ip
2) DHCP服务器发送ip给客户机;
3) 客户机向本机的tftp服务器索取文件
4) 客户机去的bootstrap文件后执行引导文件完成引导,读取配置文件,加载内核和文件系统
5) 进入安装画面,此时通过选择http、ftp、nfs方式进行安装;
2. 实现pxe网络安装必需的四个要素;
1) 客户机的网卡必需为pxe网卡
2) 网络中必需要有dhcp和tftp服务器,这两个服务器可以是同一台主机;
3) 所安装的操作系统必需支持网络安装。
4) 必须要有ftp,http,nfs,至少一个服务器,当然也可以和dhcp和tftp服务器同为一台物理主机。
示例1:centos6上pxe的实现
1. 安装dhcp,并复制/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example到/etc/dhcp/dhcpd.conf,编辑配置文件;
2. 安装tftp-server,syslinux,tftp,xinetd,并编辑/etc/xinetd.d/tftp文件,将disable的值改为no,开启tftp;
3. 确保httpd已安装,并将光盘镜像文件,挂载至网页文件目录下,这里在/var/www/html/目录下创建了centos6目录
4. 准备/var/lib/tftpboot/目录下文件(tftp默认目录)
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /var/www/html/centos6/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /var/www/html/centos6/isolinux/ {boot.cfg,vesamenu.c32,splash.png} /var/lib/tftpboot/
创建/var/lib/tftpboot/pxelinux.cfg目录,并在此目录下编辑default文件;
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /var/www/html/centos6/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
5. 准备kickstart文件,并将其放置在网页文件目录中(这里放在/var/www/html目录下,在上面default文件中指明的ks目录必须跟kickstart真实放置的目录对应),kickstart文件可用system-config-kickstart生成;
6. 启动服务,查看各服务端口是否开启;
7. 测试;
1) 将虚拟机网络连接设置问vmnet2通信,并且ip地址配置成静态ip;
2) 新建一台虚拟机,网络为vmnet2通信,开机测试;
Note:要保证dhcp服务器上的selinux和iptables关闭;
3) 进入菜单选项;
4) 自动化部署安装;
示例2:pxe的实现(centos7)
1. 安装dhcp,并复制/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example到/etc/dhcp/dhcpd.conf,编辑配置文件;
2. 启动服务并验证udp的67端口是否开启
3. 安装tftp-server,xinetd,启动并测试udp的69号端口;
修改xinetd目录下的tftp配置文件,将disable的值改为no;
随后开启超级守护进程xinetd服务;
4. 安装httpd,并将镜像文件挂载至 网页目录;
5. 准备/var/lib/tftpboot目录下文件;
1) 安装syslinux程序包,它会提供pxelinux.0文件,将其复制到目录下;
2) 复制/usr/share/syslinux目录下的chain.c32,mboot.c32,menu.c32,memdisk四个文件,分别为基于链式方式引导文件,内存磁盘引导项,菜单项,内存当磁盘的模拟文件;
3) 复制光盘中images/pxeboot下的文件;
4) 准备kickstart文件;制作kickstart文件可用systemctl-config-kickstart文件,并将此文件复制到/var/www/html目录下;
Note:如果复制的本机中的anaconda-ks.cfg,注意修改权限。否则最后安装时可能会报错;
5) 在/var/lib/tftpboot目录下创建pxelinux.cfg目录,并创建为menu.c32提供菜单的配置文件(即菜单加载时用到的配置文件信息)
6. 测试;
1) 虚拟机中将服务器的网络连接自定义为vmnet2。防止dhcp服务器对局域网的干扰。并且更改服务器ip地址为静态ip;
2) 开启dhcp,vsftpd,等服务;
3) 新建一台虚拟机,网络连接也是vmnet2,测试开机,成功获取到ip地址并开始安装,等待安装完成即可;
本文转自 claude_liu 51CTO博客,原文链接:http://blog.51cto.com/claude666/2070080,如需转载请自行联系原作者