一、DHCP基础概念
DHCP:dynamic host configration protocol 动态主机配置协议
c/s架构:
server:静态地址。提供了一个地址池(列表):67/udp
client:动态地址,68/udp(服务器有时会向客户端发起请求)
DHCP工作范围:当前的物理网络,不能跨网络进行;
DHCP通信过程:(广播方式,brodcast)
client:dhcp discover报文
server:dhcp offer报文
client:dhcp request报文
server:dhcp ack报文(确认)
DHCP有租约的概念(lease),当可用时间剩余50%时进行续租(单播),续租时,client端再次发送dhcp request报文,server端发送dhcp ack报文,将使用时间延长至最大使用时间。当server端无法为该地址进行续租,就发送dhcp nak报文给client端,client重新发送discover报文请求新的地址;
二、DHCP基础配置
[root@localhost ~]# yum install -y dhcp [root@localhost ~]# rpm -ql dhcp /etc/NetworkManager /etc/NetworkManager/dispatcher.d /etc/NetworkManager/dispatcher.d/12-dhcpd /etc/dhcp /etc/dhcp/dhcpd.conf #dhcp配置文件(ipv4)默认为空,应该使用样例文件覆盖之 /etc/dhcp/dhcpd6.conf /etc/openldap/schema/dhcp.schema /etc/sysconfig/dhcpd #服务程序 /usr/bin/omshell /usr/lib/systemd/system/dhcpd.service /usr/lib/systemd/system/dhcpd6.service /usr/lib/systemd/system/dhcrelay.service /usr/sbin/dhcpd /usr/sbin/dhcrelay /usr/share/doc/dhcp-4.2.5 /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example #使用此配置文件进行配置 /usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example /usr/share/doc/dhcp-4.2.5/ldap /usr/share/doc/dhcp-4.2.5/ldap/README.ldap /usr/share/doc/dhcp-4.2.5/ldap/dhcp.schema /usr/share/doc/dhcp-4.2.5/ldap/dhcpd-conf-to-ldap /usr/share/man/man1/omshell.1.gz /usr/share/man/man5/dhcpd.conf.5.gz /usr/share/man/man5/dhcpd.leases.5.gz /usr/share/man/man8/dhcpd.8.gz /usr/share/man/man8/dhcrelay.8.gz /usr/share/systemtap/tapset/dhcpd.stp /var/lib/dhcpd /var/lib/dhcpd/dhcpd.leases /var/lib/dhcpd/dhcpd6.leases [root@localhost dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf cp:是否覆盖"./dhcpd.conf"? y [root@localhost dhcp]# sed -n "/^[^#]/p" dhcpd.conf #显示配置文件中非#号开头的行 option domain-name "tz.com"; #定义全局的域名 option domain-name-servers 172.16.0.1; #定义全局的dns域 default-lease-time 3600; max-lease-time 7200; log-facility local7; subnet 172.16.0.0 netmask 255.255.0.0 { #定义dhcp服务范围 range 172.16.61.1 172.16.61.61; #定义dhcp地址池 option routers 172.16.61.2; #定义该地址池所分配的路由 } [root@localhost dhcp]# systemctl start dhcpd #启动dhcp服务 [root@localhost dhcp]# ss -uan State Recv-Q Send-Q Local Address:Port Peer Address:Port UNCONN 0 0 *:67 *:*
使用同一物理网络的客户端进行dhcp请求:
DHCPOFFER来源于dhcp server
分配到的地址为172.16.61.1
PXE:preboot execution environment(域引导加载环境)
通过网卡引导操作系统
filename "":基于网卡引导时要加载的initial boot file的文件名;
next-server HOST:initial boot file所在的服务主机地址;
tftp—server:trivial
一、配置tftp-server
[root@localhost ~]# yum install -y tftp-server [root@localhost ~]# rpm -ql tftp-server /etc/xinetd.d/tftp /usr/lib/systemd/system/tftp.service /usr/lib/systemd/system/tftp.socket /usr/sbin/in.tftpd /usr/share/doc/tftp-server-5.2 /usr/share/doc/tftp-server-5.2/CHANGES /usr/share/doc/tftp-server-5.2/README /usr/share/doc/tftp-server-5.2/README.security /usr/share/man/man8/in.tftpd.8.gz /usr/share/man/man8/tftpd.8.gz /var/lib/tftpboot [root@localhost ~]# systemctl start tftp.socket #启动tftp-server服务 [root@localhost ~]# yum install -y syslinux #安装syslinux,提供各种bootloader [root@localhost ~]# rpm -ql syslinux | grep "\<pxe" /usr/share/doc/syslinux-4.05/pxelinux.txt /usr/share/syslinux/pxechain.com /usr/share/syslinux/pxelinux.0 #该文件为pxe使用到的bootloader
二、配置PXE(以CentOS 7为例)
[root@localhost tftpboot]# ll 总用量 39992 -rw-r--r--. 1 root root 20832 2月 23 08:46 chain.c32 #syslinux提供的bootloader -rw-r--r--. 1 root root 35745476 3月 28 2015 initrd.img #提供ramdisk文件(光盘提供) -rw-r--r--. 1 root root 33756 2月 23 08:46 mboot.c32 #syslinux提供的bootloader -rw-r--r--. 1 root root 26268 2月 23 08:46 memdisk #syslinux提供 -rw-r--r--. 1 root root 55140 2月 23 08:46 menu.c32 #syslinux提供的bootloader -rw-r--r--. 1 root root 26771 2月 23 08:37 pxelinux.0 #syslinux提供 drwxr-xr-x. 2 root root 6 2月 23 08:47 pxelinux.cfg #创建该目录 -rw-r--r--. 1 root root 5029136 3月 6 2015 vmlinuz #提供内核文件(光盘提供) [root@localhost pxelinux.cfg]# vim default #在pxelinux.cfg目录下创建default文件 default menu.c32 #展示文本界面 prompt 30 #提示符 timeout 60 #超时时长 MENU TITLE CentOS 7 PXE Menu #全局菜单项 LABLE linux #boot LABEL MENU LABLE Install CentOS 7 x86_64 #菜单项名称 KERNEL vmlinuz #提供内核文件 APPEND initrd=initrd.img inst.repo=http://172.16.61.2/centos7 ks=http://172. 16.61.2/centos7.cfg #提供pxe的repo仓库以及ks文件 [root@localhost cdrom]# mount --bind /media/cdrom/ /var/www/html/centos7 #使用光盘提供repo仓库 [root@localhost ~]# ls /var/www/html/ centos7 centos7.cfg index.html #配置好yum仓库以及ks文件 [root@localhost ~]# systemctl start httpd #启动httpd
三、配置dhcp-server
subnet 172.16.0.0 netmask 255.255.0.0 { range 172.16.61.44 172.16.61.61; option routers 172.16.61.2; filename "pxelinux.0"; next-server 172.16.61.2; #通过172.16.61.2主机加载pxelinux.0 } [root@localhost ~]# systemctl start dhcpd #启动dhcp服务
四、测试PXE
使用同一物理网络的主机调整boot顺序,将网卡引导调整到硬盘引导之上
当我们需要为局域网内的多台主机安装操作系统时pxe实现了统一安装的需求,我们不需要手动为每台主机安装操作系统,但是当我们对于每台主机有不同的需求的时,例如,有的主机需要安装CentOS6有主机需要安装CentOS7时,pxe就无法为我们提供可以选择的不同的操作系统。这时我们就需要用到cobbler了。
原文地址:http://tz666.blog.51cto.com/10990100/1744276