搭建DHCP、PXE、DNS、HTTP以及NFS服务综合实验的超详细讲解

77 篇文章 0 订阅
8 篇文章 0 订阅

1.实验要求

(1)准备3台虚拟机,一台Windows虚拟机PC1(不限制win7或者win10)一台Linux服务器server1(IP是172.16.100.100/24)、一台网卡为DHCP类型的Linux服务器server2和一台空虚拟机server3。虚拟机网络使用仅主机模式。

(2)server1提供DHCP服务给PC1和server2分配对应网段的IP地址。

(3)server1提供PXE服务,能够使server3可以自动安装Centos7 Linux操作系统。

(4)在server1安装和启动httpd服务对外提供Web服务,并搭建DNS服务负责解析域名www.kgc.com 为172.16.100.100,使得PC1能够使用域名www.kgc.com访问Web服务器

(5)在server2安装NFS服务,提供共享目录/share ,在/share目录中创建文件index.html,文件内容自定义。把server2的/share目录通过NFS挂载到server1的/var/www/html目录下,使得PC1访问Web服务时能够显示自定义的内容。

2.实验步骤

2.1 步骤解答问题(1)

server1

在这里插入图片描述

[root@clr ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=7acafc56-e5b0-4abd-9a96-27db5a96e4b9
DEVICE=ens33
ONBOOT=yes
IPADDR=172.16.100.100
NETMASK=255.255.255.0
GATEWAY=172.16.100.2
DNS1=172.16.100.2

在这里插入图片描述

注意:此时由于更改了虚拟机的IP地址,使用Xshell或者MobaXterm将无法连接虚拟机,即使修改为正确的IP地址,依然无法连接;这是因为虚拟机server1修改后的网段为172.16.100.0,与宿主机不在同一个网段解决办法:设置虚拟机为仅主机模式,并将虚拟机和宿主机的VMnet都设置在同一网段172.16.100.0,即可解决问题。

在这里插入图片描述

在这里插入图片描述

第一问中,只要将server1的IP地址修改为题目指定的IP地址,并且Xshell或者MobaXterm能够连接到虚拟机server1就可以了。

2.1 步骤解答问题(2)

server1

[root@clr ~]# systemctl stop firewalld  #临时关闭防火墙
[root@clr ~]# setenforce 0   
[root@clr ~]# mount /dev/sr0 /mnt  #将光盘/dev/sr0挂载到/mnt目录下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@clr ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
tmpfs           394M   28K  394M    1% /run/user/0
/dev/sr0        4.4G  4.4G     0  100% /mnt  #新挂载的光盘
[root@clr /mnt]# yum install -y dhcp
[root@clr /etc/dhcp]# vim dhcpd.conf   

#   see /usr/share/doc/dhcp*/dhcpd.conf.example #原始的dhcpd.conf配置文件中内容为空,需要将这个文件下面的/usr/share/doc/dhcp*/dhcpd.conf配置文件复制到dhcpd.conf   

[root@clr ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf   #将/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example这个文件中的内容复制到/etc/dhcp/dhcpd.conf这个文件中
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
[root@clr ~]# systemctl start dhcpd    #开启dhcp服务器
[root@clr ~]# vim /etc/dhcp/dhcpd.conf


option domain-name-servers 172.16.100.100;    #切记此处一定要指定DNS服务器的地址为server1的IP地址,否则server2无法通过server1的DHCP服务自动获取IP地址和默认网关

default-lease-time 600000;   #增大此处此处DHCP服务的租约时间,防止实验过程中由于租约到期,而导致server2没有ip地址
max-lease-time 7200000;

#网段声明
subnet 172.16.100.0 netmask 255.255.255.0 {    #声明要分配的网段地址
  range 172.16.100.110  172.16.100.210;   #设置地址池
  option routers 172.16.100.100;     #指定默认网关地址,也就是server1的IP地址
}

在这里插入图片描述

在这里插入图片描述

server2

在这里插入图片描述

[root@myhost2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=57f3a172-be68-4537-b551-761a3086b4f8
DEVICE=ens33
ONBOOT=yes

在这里插入图片描述

[root@myhost2 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.100.110  netmask 255.255.255.0  broadcast 172.16.100.255
        inet6 fe80::7426:183f:1077:c9d4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:e2:4b:fe  txqueuelen 1000  (Ethernet)
        RX packets 13052  bytes 1173848 (1.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6099  bytes 711656 (694.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.1 步骤解答问题(3)

server1

(1)安装并启用 TFTP 服务

在这里插入图片描述

[root@clr ~]# systemctl stop firewalld
[root@clr ~]# setenforce 0
[root@clr ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

安装xinetd和tftp-server服务;

在这里插入图片描述

修改/etc/xinetd.d/tftp配置文件;

在这里插入图片描述

[root@clr ~]# vim /etc/xinetd.d/tftp 

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

###开启tftp和xinetd服务,并设置为开机自启动
[root@clr ~]# systemctl start tftp
[root@clr ~]# systemctl enable tftp
[root@clr ~]# systemctl start xinetd
[root@clr ~]# systemctl enable xinetd

(2)启用 DHCP 服务

在这里插入图片描述

[root@clr ~]# vim /etc/dhcp/dhcpd.conf 


option domain-name-servers 172.16.100.100;    #切记此处一定要指定DNS服务器的地址为server1的IP地址,否则server2无法通过server1的DHCP服务自动获取IP地址和默认网关

default-lease-time 600000;
max-lease-time 7200000;

# Use this to enble / disable dynamic dns updates globally.
ddns-update-style none;
next-server 172.16.100.100;
filename "pxelinux.0";


subnet 172.16.100.0 netmask 255.255.255.0 {
  range 172.16.100.110  172.16.100.210;
  option routers 172.16.100.100;     #定义DHCP服务的网关,也就是server1的IP地址 此处默认网关地址一定要指向TFTP服务器的IP地址
}
[root@clr ~]# systemctl start dhcpd   #开启dhcp服务,并设置为开机自启动
[root@clr ~]# systemctl enable dhcpd

(3)准备 Linux 内核、初始化镜像文件

在这里插入图片描述

[root@clr ~]#  cd /mnt/images/pxeboot	#已事先把光盘挂载到/mnt目录中
[root@clr ~]#  cp vmlinuz /var/lib/tftpboot/    #复制Linux系统的内核文件 到TFTP根目录下
[root@clr ~]#  cp initrd.img /var/lib/tftpboot/    #复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下

(4)准备 PXE 引导程序

安装syslinux软件;

在这里插入图片描述

将pxelinux.0文件复制到tftp的根目录/var/lib/tftpboot/中;

在这里插入图片描述

[root@clr ~]#  yum -y install syslinux									#PXE引导程序由软件包 syslinux 提供
[root@clr ~]#  cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/	#复制 PXE引导程序 到TFTP根目录下

(5)安装FTP服务,准备CentOS 7 安装源

在这里插入图片描述
在这里插入图片描述

[root@clr ~]#  yum -y install vsftpd  #安装TFTP服务
[root@clr ~]#  mkdir /var/ftp/centos7
[root@clr ~]#  mount /dev/sr0 /var/ftp/centos7  #将光盘镜像文件挂载到ftp根目录下的centos7目录中
[root@clr ~]#  systemctl start vsftpd    #开启ftp服务,并设置为开机自启动
[root@clr ~]#  systemctl enable vsftpd

(6)配置启动菜单文件

在这里插入图片描述

###默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
[root@clr ~]# mkdir /var/lib/tftpboot/pxelinux.cfg		  

[root@clr ~]# vim /var/lib/tftpboot/pxelinux.cfg/default	
default auto 							#指定默认入口名称
prompt 0							#设置是否等待用户选择,“1”表示等待用户控制

label auto								#图形安装(默认)引导入口,label用来定义启动项,指定入口类型
kernel vmlinuz							#kernel 和 append用来定义引导参数,kernel指定内核文件
append initrd=initrd.img method=ftp://172.16.100.100/centos7   
#append用于指定系统的引导文件,initrd用于设置系统引导参数,method用于指定安装源的软件包

在这里插入图片描述

(7)实现Kickstart无人值守安装

准备安装应答文件,安装system-config-kickstart 工具

[root@clr ~]# yum install -y system-config-kickstart

在这里插入图片描述
应答文件中基本配置选项如下:

在这里插入图片描述

应答文件中安装方法选项如下:

在这里插入图片描述

应答文件中引导装载程序选项如下:

在这里插入图片描述

应答文件中分区信息选项如下:

在这里插入图片描述

分配/boot分区;

在这里插入图片描述

分配swap分区;

在这里插入图片描述

分配根目录;

在这里插入图片描述

分配后的内存信息;

在这里插入图片描述

应答文件中网络配置选项如下:

在这里插入图片描述

应答文件中验证选项保持默认配置,不做任何操作;

应答文件中显示配置选项如下:

在这里插入图片描述

应答文件中显示配置保持默认操作,此处不做配置;

应答文件中软件包选择选项如下:

在这里插入图片描述
应答文件中预安装家脚本保持默认操作,此处不做配置;

应答文件中安装后脚本选项如下:

在这里插入图片描述

保存配置文件;

在这里插入图片描述

配置图形化脚本文件;

在这里插入图片描述

[root@clr ~]# vim /var/ftp/ks.cfg 

reboot
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$n82FaQp2$UbGYQRTr4Dyzue1GLWfqe1
# System language
lang zh_CN
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled
# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Africa/Abidjan
# Use network installation
url --url="ftp://172.16.100.100/centos7"
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=500
part swap --fstype="swap" --size=4096
part / --fstype="xfs" --grow --size=1

%post --interpreter=/bin/bash
mkdir /etc/yum.repos.d/repo.bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak
echo [local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0  > /etc/yum.repos.d/local.repo
%end

%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
%end                                                                 

将生成的自动应答文件ks.cfg文件复制到ftp的根目录中;

在这里插入图片描述

添加自动应答文件ks.cfg的位置;

在这里插入图片描述
在这里插入图片描述

[root@clr ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 

default auto
prompt 0

label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://172.16.100.100/centos7 ks=ftp://172.16.100.100/ks.cfg

label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://172.16.100.100/centos7

label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://172.16.100.100/centos7

(8)验证一键自动化装机是否成功;

在这里插入图片描述

2.1 步骤解答问题(4)

server1

(1)安装http并启动http服务;

[root@clr ~]# yum install -y httpd
[root@clr ~]# systemctl start httpd
[root@clr ~]# systemctl enable httpd

(2)安装并修改DNS的主配置文件;

[root@clr ~]# yum install -y bind    #同时安装DNS服务(软件名叫bind)
已加载插件:fastestmirror, langpacks
 
[root@clr ~]# vim /etc/named.conf     #修改主配置文件
options {
        listen-on port 53 { 172.16.100.100; };  #监听53号端口,并使用172.16.100.100(也就是本机server1的ip地址)提供DNS域名解析服务
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };  #允许所有网段使用本服务器的DNS解析服务

(3)修改区域配置文件,添加正反向区域配置;

在这里插入图片描述

[root@clr ~]# vim /etc/named.rfc1912.zones 



zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
};


zone "100.16.172.in-addr.arpa" IN {
        type master;
        file "kgc.com.zone.local";
};

(4)配置正反向区域数据文件;

[root@clr ~]# cd /var/named
[root@clr /var/named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.
[root@clr /var/named]# cp -a named.localhost kgc.com.zone #配置正向区域数据文件,并保留源文件的权限和属主的属性复制
[root@clr /var/named]# cp -a named.localhost kgc.com.zone.local  #配置反向区域数据文件,并保留源文件的权限和属主的属性复制
[root@clr /var/named]# ls
data  dynamic  kgc.com.zone  kgc.com.zone.local  named.ca  named.empty  named.localhost  named.
[root@clr /var/named]# vim kgc.com.zone   #修改并配置正向区域数据文件

$TTL 1D
@       IN SOA  @ admin.kgc.com. (   #“@”符号表示当前的DNS区域名,末尾的‘.’是根域的意思,切记不可省略
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       172.16.100.100      #记录主机IP地址
www IN A 172.16.100.100   #记录正向解析www.kgc.com对应的IP为172.16.100.100
ayu IN A  172.16.100.201    #记录正向解析ayu.kgc.com对应的IP为172.16.100.201


[root@clr /var/named]# vim kgc.com.zone.local     #修改并配置反向区域数据文件

$TTL 1D
@       IN SOA  kgc.com admin.kgc.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      kgc.com.          #记录当前区域的DNS服务器名称
        A       172.16.100.100    #记录主机IP地址
100 IN PTR www.kgc.com.  #记录反向解析172.16.100.100对应的域名为www.kgc.com
201 IN PTR ayu.kgc.com.
       #记录反向解析172.16.100.201对应的域名为ayu.kgc.com

在这里插入图片描述
在这里插入图片描述

[root@clr /var/named]# systemctl start named  #启动DNS服务
[root@clr /var/named]# systemctl enable named  #设置DNS服务开机自启动

客户端win10

(1)关闭客户端NAT模式中的使用本地DHCP服务将IP地址分配给虚拟机;

在这里插入图片描述

(2)更改网络连接设置,选择自动获取IP地址和DNS服务器地址;

在这里插入图片描述

(3)验证DHCP和DNS服务器是否生效;

在这里插入图片描述
在这里插入图片描述

2.1 步骤解答问题(5)

server2

(1)安装软件,启动服务

服务端安装并启动nfs-utils、rpcbind软件包;

[root@clr ~]#yum -y install nfs-utils rpcbind
[root@clr ~]#systemctl  start rpcbind  #切记一定要先启动rpcbind服务,再启动nfs服务
[root@clr ~]#systemctl  start nfs
[root@clr ~]#systemctl enable rpcbind #将rpcbind服务和nfs服务设为开机启动
[root@clr ~]#systemctl enable nfs  

(2)准备共享目录

修设配置文件,设置共享目录;

[root@clr ~]#mkdir -p /opt/share
[root@clr ~]#echo 234 >> /opt/share/index.html   #在共享目录/opt/share/index.html中写入自定义内容234

[root@clr ~]#vim /etc/exports
/opt/share 172.168.100.0/24(rw,sync,no_root_squahs)
[root@clr ~]# systemctl restart nfs #重新启动nfs服务
[root@clr ~]# showmount -e 172.16.100.110
Export list for 172.16.100.110:
/opt/share 172.16.100.0/24

server1

(1)安装软件,启动服务

客户端安装并启动rpcbind软件包;

[root@clr ~]#yum -y install rpcbind
[root@clr ~]#systemctl  start rpcbind  #启动rpcbind服务
[root@clr ~]#systemctl enable rpcbind #将rpcbind服务设为开机启动

(2)在客户端创建指定挂载目录,并将172.16.100.100:/opt/sharel挂载到server1的/var/www/html目录下;

[root@clr ~]# showmount -e 172.16.100.110  #查看nfs服务端是否已经成功将指定目录共享出来
Export list for 172.16.100.110:
/opt/share 172.16.100.0/24
[root@clr ~]# mkdir /opt/mydata
[root@clr ~]# mount 172.16.100.100:/opt/share /var/www/html  #将172.16.100.100:/opt/sharel共享目录挂载到server1的/var/www/html目录下

在这里插入图片描述

客户端win10

在这里插入图片描述
至此,该实验已圆满完成!

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Ubuntu搭建pxe服务器详细步骤如下: 1.安装系统镜像和Ubuntu Server 首先需要安装系统镜像,可以从Ubuntu官网下载ISO镜像文件。然后安装Ubuntu Server,具体安装步骤根据自己的喜好和实际情况进行选择。 2.安装和配置DHCP 安装DHCP服务,使用命令sudo apt-get install isc-dhcp-server。安装完之后,修改/etc/default/isc-dhcp-server文件,将INTERFACESv4设为需要连接的网卡。 然后修改/etc/dhcp/dhcpd.conf文件,加入以下内容: subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; option routers 192.168.0.1; option broadcast-address 192.168.0.255; filename "pxelinux.0"; next-server 192.168.0.2; } 这里要根据实际情况配置IP地址和网关地址等信息。 3.安装和配置TFTP 安装TFTP服务器,使用命令sudo apt-get install tftpd-hpa。安装完之后,修改/etc/default/tftpd-hpa文件,将TFTP_DIRECTORY设为存放ISO镜像的目录。 然后再修改/etc/xinetd.d/tftp文件,将disable设置为no。 4.安装PXELINUX PXELINUX是一个基于SYSLINUX的项目,它提供了用于网络引导的程序。使用以下命令安装PXELINUX: sudo apt-get install syslinux-common syslinux-tftpboot pxelinux 然后在TFTP_DIRECTORY目录下创建pxelinux.cfg目录,并在该目录下创建default文件,内容为: DEFAULT menu.c32 PROMPT 0 TIMEOUT 300 ONTIMEOUT local MENU TITLE PXE Menu LABEL Ubuntu 20.04.2 LTS KERNEL ubuntu20.04/vmlinuz APPEND initrd=ubuntu20.04/initrd 这里的KERNEL、APPEND和initrd需要根据实际情况填写。 5.配置防火墙 如果启用了防火墙,需要添加相关的规则以允许PXE和TFTP流量通过。 6.测试 最后测试PXE服务器是否成功配置,将要安装的计算机连接到同一网络中,启动计算机并进入BIOS设置,将网络引导设置为第一项即可。 以上是Ubuntu搭建pxe服务器详细步骤,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上花开,静待绽放!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值