DHCP、PXE、DNS和NFS综合小项目(详细到爆炸!)

馋奶兔 提交于 2020-12-18 13:12:19

项目要求:

1)准备3台虚拟机,一台Windows虚拟机PC1(不限制win7或者win10)、一台Linux服务器server1(IP是172.16.100.100/24)和一台空虚拟机server2。虚拟机网络使用仅主机模式。
2)server1提供DHCP服务给PC1和server2分配对应网段的IP地址。
3)server1提供PXE服务,能够使server2可以自动安装Centos7 Linux操作系统。
4)在server1安装和启动httpd服务对外提供Web服务,并搭建DNS服务负责解析地址www.mhh.com,使得PC1能够使用域名www.mhh.com访问Web服务器。
5)在server2安装NFS服务,提供共享目录/share ,在/share目录中创建文件index.html,文件内容自定义。把server2的/share目录通过NFS挂载到server1的/var/www/html目录下,使得PC1访问Web服务时能够显示自定义的内容。



项目要求一:

1)修改服务器server1虚拟机IP

vim /etc/sysconfig/network-scripts/ifcfg-ens33 #编辑网卡配置文件
systemctl restart network #重启网卡令更改后配置生效
ifconfig  #查看网卡配置详情

在这里插入图片描述

重启并查看是否更改成功

在这里插入图片描述

2)配置虚拟机网络使用仅主机模式

编辑→虚拟网络编辑器→点击更改设置,然后改为“仅主机模式”,圈的使用本地DHCP关掉,因为本地DHCP和之后要配置的网段不在同一网段,会导致冲突。然后“应用”,然后“确定”。

在这里插入图片描述

3)创建新虚拟机步骤

在这里插入图片描述

兼容性

在这里插入图片描述

安装来源

在这里插入图片描述

操作系统选择

在这里插入图片描述

选位置安装

在这里插入图片描述

处理器设置

在这里插入图片描述

虚拟机内存至少要2G,否则装机会提示内存空间不足,出错卡住

在这里插入图片描述

网络类型选主机模式

在这里插入图片描述

I/O控制器类型默认

在这里插入图片描述

磁盘类型默认

在这里插入图片描述

选择磁盘默认

在这里插入图片描述

容量大小自定

在这里插入图片描述

指定磁盘默认

在这里插入图片描述

自定义硬件

在这里插入图片描述

声卡和打印机不需要选择移除

在这里插入图片描述

网络适配器选仅主机模式

在这里插入图片描述

使用物理驱动器选择自动检测

在这里插入图片描述

配置完成

在这里插入图片描述

PXE(项目要求2和3)

1)配置本地yum源仓库

mount /dev/cdrom /mnt/  #把光盘挂载到/mnt目录下
cd /etc/yum.repos.d/   #切换到yum.repos.d目录下 
mkdir repos.bak            #新建一个目录,用于备份里面原有的文件或目录
mv *.repo repos.bak     #将所有的里面所有的文件移动到刚创建的目录中

vim local.repo

[local]							#仓库类别
name=local						#仓库名称
baseurl=file:///mnt				#指定URL 访问路径为光盘挂载目录
enabled=1						#开启此yum源,此为默认项,可省略
gpgcheck=0						#不验证软件包的签名

yum clean all            		#删除yum缓存
yum makecache               	#更新yum缓存

在这里插入图片描述

配置完成以后:wq保存并退出

2)安装、配置及启用TFTP

yum -y install tftp-server xinetd
vim /etc/xinetd.d/tftp

在这里插入图片描述

在这里插入图片描述

:wq保存配置文件后,开启服务并设为开机自启

systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd

在这里插入图片描述

3)安装并启用 DHCP 服务

yum -y install dhcp #安装dhcp服务
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #用实例模板覆盖主配置文件
vim /etc/dhcp/dhcpd.conf #编辑dhcp配置文件
ddns-update-style none;		   #禁用 DNS 动态更新
next-server 172.16.100.100;	   #指定 TFTP 服务器的地址
filename "pxelinux.0";		   #指定要下载的 PXE 引导程序的文件

subnet 172.16.100.0 netmask 255.255.255.0 {    #声明要分配的网段地址
  range 172.16.100.100 172.16.100.200;	    #设置地址池
  option routers 172.16.100.100; #默认网关地址指向TFTP服务器的IP地址
}

systemctl start dhcpd
systemctl enable dhcpd

在这里插入图片描述

通过vim /etc/dhcp/dhcpd.conf 编辑dhcp配置文件

在这里插入图片描述

在这里插入图片描述

:wq保存配置文件,然后开启dhcp服务并设为开机自启

在这里插入图片描述

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

mount /dev/sr0 /mnt    #挂载光盘
cd /mnt/images/pxeboot	#切换到光盘的pxeboot目录下					
cp vmlinuz /var/lib/tftpboot/ #复制 Linux系统的内核文件到TFTP根目录下
cp initrd.img /var/lib/tftpboot/ #复制初始化镜像文件(linux引导加载模块)到TFTP根目录下

在这里插入图片描述

5)PXE引导程序

yum -y install syslinux	 #PXE引导程序由软件包 syslinux 提供
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制 PXE引导程序 到TFTP根目录下
ls /var/lib/tftpboot/   #查看是否已经复制过来

在这里插入图片描述

6)安装FTP服务,准备CentOS7安装源

yum -y install vsftpd #安装ftp服务
mkdir /var/ftp/centos7 #创建安装源目录
cp -rf /mnt/* /var/ftp/centos7/ #将挂载的光盘里的镜像文件强行复制到刚创建的目录里

在这里插入图片描述

复制以后查看已复制成功

在这里插入图片描述

systemctl start vsftpd #启动ftp服务
systemctl enable vsftpd #设置开机自启ftp服务

7)配置启动菜单

默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default

cd /var/lib/tftpboot #切换到tftp根目录下
ls  #查看有没有pxelinux.cfg,没有就创建一个
mkdir /var/lib/tftpboot/pxelinux.cfg #创建一个pxelinux.cfg目录		  

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

label auto								#图形安装(默认)引导入口,label 用来定义启动项
kernel vmlinuz							#kernel 和 append用来定义引导参数
append initrd=initrd.img method=ftp://192.168.163.5/centos7

label linux text						#文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.163.5/centos7

label linux rescue						#救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.163.5/centos7

在这里插入图片描述

8)关闭防火墙并开启新虚拟机验证PXE网络安装

systemctl stop firewalld.service  #关闭防火墙服务
setenforce 0 #关闭安全选项

在这里插入图片描述

开启新创建的虚拟机(下图加载中)

在这里插入图片描述

PXE网络安装完成

1

验证项目要求2

1)虚拟机win10上验证(PC1)

在这里插入图片描述

2)新装虚拟机上开机验证(server2)

在这里插入图片描述

配置正向解析(项目要求4)

1)关闭防火墙及安全选项(前面已关不再操作),安装bind包

yum install -y bind #安装bind软件包
rpm -qc bind #查询bind软件包配置文件所在路径
/etc/named.conf              #主配置文件 
/etc/named.rfc1912.zones     #区域配置文件 
/var/named/named.localhost   #区域数据配置文件

在这里插入图片描述

2)修改主配置文件

vim /etc/named.conf 

options {
   listen-on port 53 { any; };  #监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有

#######listen-on-v6 port 53  { : : 1; };  #ipv6行如不使用可以注释掉或者删除
   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解析服务的网段,也可用any代表所有
   ......
}
zone "." IN {                  #正向解析"."根区域 
type hint;                     #类型为根区域
file "named.ca";               #区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};
include "/etc/named.rfc1912.zones"; #包含区域配置文件里的所有配置

在这里插入图片描述

3)修改区域配置文件

vim /etc/named.rfc1912.zones   #可在文件里有模版, 可复制粘贴后修改
zone "mhh.com" IN {         #正向解析"benet.com"区域 
       type master;           #类型为主区域 
       file "mhh.com.zone"; #指定区域数据文件为benet.com.zone 
       allow-update { none; };
}

在这里插入图片描述

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

cd /var/named/
cp -p named.localhost mhh.com.zone #保留源文件的权限和属主的属性复制
vim /var/named/mhh.com.zone

$TTL 1D   #设置缓存解析结果的有效时间,就是一条域名解析记录在DNS服务器中的存留时间为1天
@       IN SOA mhh.com. admin.mhh.com. (   #admin.mhh.com这里也可以用原文件里的地址,表示管理员邮箱
                                         0     ;serial
                                         1D    ;refresh                                                                            1H    ;retry
                                         1W    ;expire
                                         3H )  ;minimum
        NS     mhh.com.       #记录当前区域的DNS服务器的名称 
        A      172.16.100.100 #记录主机IP地址
www  IN A      172.16.100.100 #记录正向解析www.benet.com对应的IP

#"@"这里是一个变量,当前DNS区域名
#SOA标记用于同步主从服务器的区域数据,如更新序列号相同则不会更新
#"benet.com."此为完全合格域名(FQDN),后面有个"."不能漏掉
"#"admin.benet.com."表示管理员邮箱,这里的"@"是变量,所以用"."代替

通过vim /var/named/mhh.com.zone进入区域数据配置文件

在这里插入图片描述

5)打开dns服务,关闭防火墙

在这里插入图片描述

6)测试DNS解析

PC1上验证

在这里插入图片描述

在这里插入图片描述

服务器上验证

在这里插入图片描述

NFS

在server2上操作

1)首先确认server2作为NFS服务器的IP地址,使用ifconfig查看

在这里插入图片描述

2)安装 nfs-utils、rpcbind 软件包

rpm -q rpcbind nfs-utils 
yum -y install nfs-utils rpcbind

在这里插入图片描述

3) 设置共享目录

mkdir -p /opt/share
chmod 777 /opt/share/

vim /etc/exports
/opt/share 172.16.100.102/24(rw,sync,no_root_squash)

客户机地址可以是主机名、IP 地址、网段地址,允许使用“*”、“?”通配符。

常用选项 “rw” 表示允许读写,“ro” 表示为只读;

sync :表示同步写入到内存与硬盘中。

async :将数据先保存在内存缓冲区中,必要时才写入磁盘。

no_root_squash : 表示当客户机以root身份访问时赋予本地root权限(默认是root_squash)。

root_squash :表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。

all_squash :所有访问用户都映射为匿名用户或用户组。

subtree_check(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。

no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。

在这里插入图片描述

在这里插入图片描述

4)启动 NFS 服务程序

先启动rpcbind,再启动nfs

systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs

netstat  -anpt  |  grep  111     #查看rpcbind端口111是否开启, rpcbind默认使用tcp的111端口

在这里插入图片描述

5)在/opt/share目录下创建文件并编辑

在这里插入图片描述

在这里插入图片描述

6)查看本机发布的 NFS 共享目录

exportfs -rv			#发布共享
showmount -e            #查看共享

在这里插入图片描述

在server1上操作

7)客户机访问NFS共享资源

首先和server2一样,查询和安装 nfs-utils、rpcbind 软件包

rpm -q rpcbind nfs-utils
yum -y install nfs-utils rpcbind
systemctl start rpcbind
systemctl enable rpcbind


在这里插入图片描述

systemctl stop firewalld.service 
setenforce 0
showmount -e 172.16.100.102 #查看 NFS 服务器端共享了哪些目录

在这里插入图片描述

8)挂载NFS共享目录

cd /var/www/html #切换到要挂载的目录下
ls #查看是否有index.html文件
touch index.html #创建index.html文件
mount 172.16.100.102:/opt/share /var/www/html #挂载共享目录

在这里插入图片描述

9)验证共享是否成功

查看index.html内容发现server1上已经实现

在这里插入图片描述

打开虚拟机win10(PC1)发现无法访问

在这里插入图片描述

然后在server1上重新安装和启动http服务

在这里插入图片描述

再次在PC1上查看,PC1访问Web服务时能够显示自定义的内容。

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!