【第三次作业:架设一台NFS服务器 和 DNS域名解析服务】

一.本次任务

架设一台NFS服务器,并按照以下要求配置
1、开放/nfs/shared目录,供所有用户查询资料
2、开放/nfs/upload目录,为192.168.xxx.0/24网段主机可以上
传目录,
并将所有用户及所属的组映射为nfs-upload,其UID和GID均为
210
3、将/home/tom目录仅共享给192.168.xxx.xxx这台主机,并
只有用户tom对该目录有读写权限

二. 实验步骤

前情提要:

① 需要准备两台版本一致的 linux 主机且网络可互通,这里我的服务端为 192.168.11.128,客户端为 192.168.11.129

② 关闭服务端防火墙以及 selinux

[root@server ~]# systemctl stop firewalld
 
[root@server ~]# setenforce 0

③ 磁盘挂载操作

[root@server ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.

④ 配置 yum 源文件

[root@server ~]# vim /etc/yum.repos.d/base.repo
 
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0

1.开放 /nfs/shared 目录,供所有用户查询资料

安装 nfs-utils 共享文件系统并启动程序

[root@server ~]# dnf install nfs-utils -y
 
[root@server ~]# systemctl start nfs-server.service 

编辑 nfs 主配置文件

[root@server ~]# vim /etc/exports
 
# 共享目录(根目录)   允许访问的主机*(权限,参数)
/nfs/shared  *(ro)    

根据配置文件创建资源文件并查看文件权限,确保所有用户可读 /nfs/shared 路径下文件即可

[root@server ~]# mkdir -pv /nfs/shared
mkdir: 已创建目录 '/nfs'
mkdir: 已创建目录 '/nfs/shared'
 
[root@server ~]# touch /nfs/shared/test{1..10}
 
[root@server ~]# ll -d /nfs/shared/
drwxr-xr-x. 2 root root 137  5月 29 20:01 /nfs/shared/

由于上面我们修改了 nfs 的配置文件,想要文件生效我们要重启 nfs-server 服务,但在这里我们不能直接用 systemctl restart nfs-server 来重启服务,这样我们每重启一次服务就会重新进行端口注册,推荐用 exportfs -ra 来实现。刷新后未出现报错说明我们的配置没有问题!

[root@server ~]# exportfs -ra # 重新导出(re-export)并刷新所有 NFS 共享目录,结合了 -r(重新读取配置)和 -a(应用到所有目录)的功能

客户端主机向服务端主机建立 nfs 连接

想要建立连接我们的客户端也需要下载 nfs-utils 服务程序

[root@client ~]# mount /dev/sr0 /mnt
 
[root@client ~]# dnf install nfs-utils -y

客户端查询 nfs 服务器(IP 为 192.168.11128)导出的共享目录列表

[root@client ~]# showmount -e 192.168.11.128
 
Export list for 192.168.11.128
/nfs/shared *

创建一个挂载目录 /dbw,在将 /nfs/shared 文件系统挂载到 /dbw 目录(可共享文件路径)

[root@client ~]# mkdir /dbw
 
[root@client ~]# mount 192.168.11.128:/nfs/shared /dbw

查看 /nfs/shared 路径,可以看到服务端所共享的文件

[root@client ~]# ll /dbw

2.开放 /nfs/upload 目录,为 192.168.xxx.0/24 网段主机可以上传目录,并将所有用户及所属的组映射为 nfs-upload,其 UID 和 GID 均为 210

编辑 nfs 配置文件

[root@server ~]# vim /etc/exports
# 共享目录(根目录)   允许访问的主机*(权限,参数)
/nfs/shared  *(ro)
 
/nfs/upload  192.168.11.0/24(rw,all_squash,anonuid=210,anongid=210)

根据配置文件创建资源文件并查看文件权限,确保用户可读可写 /nfs/shared 路径下文件即可;刷新

[root@server ~]# mkdir -pv /nfs/upload
mkdir: 已创建目录 '/nfs/upload'
 
[root@server ~]# touch /nfs/upload/red{1..10}
 
[root@server ~]# ll -d /nfs/upload/
drwxr-xr-x. 2 root root 127  5月 29 20:26 /nfs/upload/
 
[root@server ~]# chmod o+w /nfs/upload/ -R   # 修改其他用户权限,加上可写权限
 
[root@server ~]# exportfs -ra

根据配置文件中所写,需要创建一个 uid 为 210 且 gid 也为 210 的用户账号

[root@client ~]# useradd -r -u 210 nfs-upload
 
[root@client ~]# id nfs-upload 
用户id=210(nfs-upload) 组id=210(nfs-upload) 组=210(nfs-upload)

客户端查询 NFS 服务器导出的共享目录列表

[root@server ~]# showmount -e 192.168.96.142
 
Export list for 192.11.129.142:
/nfs/shared *
/nfs/upload 192.11.129.0/24

将 /nfs/upload 文件挂载到 /dbw 目录并查看共享目录下是否有服务端共享的文件,挂载之前我们先要取消前面挂载到 /dbw 目录下的 /nfs/shared 文件共享目录

[root@client ~]# umount 192.168.11.129:/nfs/shared /dbw
umount: /dbw: not mounted.
 
[root@client ~]# ll /dbw
total 0
 
[root@client ~]# mount 192.168.11.129:/nfs/upload /dbw
 
[root@client ~]# ll /dbw

在客户端下上传文件并查看

[root@client ~]# touch /dbw/red111
 
[root@client ~]# ll /dbw

3.将 /home/tom 目录仅共享给 192.168.xxx.xxx 这台主机,并只有用户 tom 对该目录有读写权限

编辑 nfs 配置文件

[root@server ~]# vim /etc/exports
 
# 共享目录(根目录)   允许访问的主机*(权限,参数)
/nfs/shared  *(ro)
 
/nfs/upload  192.168.11.0/24(rw,all_squash,anonuid=210,anongid=210)
 
/home/tom  192.168.11.132(rw)

根据配置文件创建资源文件并查看文件权限,确保 tom 可读可写 /home/tom 路径下文件即可;刷新

[root@server ~]# mkdir -pv /home/tom 
mkdir: 已创建目录 '/home/tom'
 
[root@server ~]# touch /home/tom/tom{1..10}
 
[root@server ~]# ll -d /home/tom
drwxr-xr-x. 2 root root 127  5月 29 22:00 /home/tom
 
[root@server ~]# useradd tom
 
[root@server ~]# chown tom:tom /home/tom    # 改变文件所有者
[root@server ~]# chmod 700 /home/tom     # 改变文件权限仅 tom 用户有读写执行权限
 
[root@server ~]# exportfs -ra

根据配置文件中所写,创建 tom ,id为 1001

[root@client ~]# useradd tom
 
[root@client ~]# id tom
uid=1001(tom) gid=1001(tom) groups=1001(tom)

将 /home/tom 文件挂载到 /dbw 目录并查看共享目录下是否有服务端共享的文件,挂载之前我们先要取消前面挂载到 /dbw 目录下的 /nfs/upload 文件共享目录;客户端 root 用户无权限查看 /dbw 下文件

[root@client ~]# umount 192.168.11.129:/nfs/upload /dbw
umount: /dbw: not mounted.
 
[root@client ~]# ll /dbw
total 0
 
[root@client ~]# mount 192.168.11.129:/home/tom /dbw
 
[root@client ~]# ll /dbw
ls: cannot open directory '/dbw': Permission denied

注意:主机每次重启后服务端都要开启 nfs-server 服务程序

[root@server ~]# systemctl restart nfs-server.service

1.关闭防火墙以及 seliunx

systemctl stop firewalld
setenforce 0

2.挂载磁盘且配置 yum 源

[root@server ~]# mount /dev/sr0 /mnt
 
[root@server ~]# vim /etc/yum.repos.d/base.repo 
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0

3.下载 bind 服务程序

[root@server ~]# rpm -ql bind

4.查看 bind 的配置文件

[root@server ~]# rpm -ql bind

在这里插入图片描述

(一).正向解析

1.找到配置文件后进入编辑

[root@server ~]# vim /etc/named.conf 

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

2.根据上一步配置文件中我们写的正向解析中的资源文件为 named.openlab ,用 vim 来创建编写

[root@server ~]# vim /var/named/named.openlab

在这里插入图片描述

3.修改完配置后需重启程序

[root@server ~]# systemctl restart named

4. 打开客户端主机并进行测试

[root@bogon ~]# nmcli device show

在这里插入图片描述

5.使用 nslookup 命令将域名解析为对应的 IP 地址

[root@bogon ~]# nslookup
> server 192.168.11.128
Default server: 192.168.11.128
Address: 192.168.11.128#53
> 192.168.11.111
** server can't find 111.11.168.192.in-addr.arpa: NXDOMAIN
> 192.168.11.111
** server can't find 111.11.168.192.in-addr.arpa: NXDOMAIN
> 192.168.11.128        
** server can't find 128.11.168.192.in-addr.arpa: NXDOMAIN
> ^C[root@bogon ~]# 
[root@bogon ~]# nslookup
> server 192.168.11.128
Default server: 192.168.11.128
Address: 192.168.11.128#53
> server 192.168.11.111
Default server: 192.168.11.111
Address: 192.168.11.111#53
> server 192.168.11.100
Default server: 192.168.11.100
Address: 192.168.11.100#53
> server 192.168.11.200
Default server: 192.168.11.200
Address: 192.168.11.200#53
> server wwww.openlab.com
nslookup: couldn't get address for 'wwww.openlab.com': not found
[root@bogon ~]# nslookup
> server www.openlab.com
Default server: www.openlab.com
Address: 15.197.148.33#53
Default server: www.openlab.com
Address: 3.33.130.190#53
> 

6.在客户端修改 DNS 解析配置文件

[root@client ~]# vim /etc/resolv.conf

# Generated by NetworkManager
search localdomain
nameserver 192.168.11.2

7.使用解析工具 dig 时就不用在输入 server 指定本地 dns 服务器

在这里插入图片描述

(二) .反向连接

进入 named.conf 文件编辑反向解析

[root@server ~]# vim /etc/named.conf

在这里插入图片描述
根据区域文件创建资源文件

[root@server ~]# vim /var/named/named.192 
 
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      ns.openlab.com.
142     IN      PTR     ns.openlab.com.
 
100     IN      PTR     www.openlab.com.
 
111     IN      PTR     ftp.openlab.com.
 
222     IN      PTR     mail.openlab.com.

重启服务

[root@server ~]# systemctl restart named

.在客户端测试反向解析(通过 IP 地址获取域名地址)
在这里插入图片描述

[root@client ~]# dig -x 192.168.96.111   # 执行反向DNS查找

在这里插入图片描述

主从DNS服务器

完全区域传送

两个服务器都进行防火墙和 selinux 的关闭以及 bind 服务程序的安装

[root@server/client ~]# systemctl stop firewalld
[root@server/client ~]# setenforce 0
 
[root@server/client ~]# mount /dev/sr0 /mnt
 
[root@server/client ~]# dnf install bind -y

主服务端操作,编辑主配置文件设置监听IP
在这里插入图片描述
主服务端操作打开区域配置文件,添加如下内容,重点为:允许从服务器的同步请求,即修改为 allow-transfer {允许同步区域信息的主机IP参数

[root@server ~]# vim /etc/named.rfc1912.zones
 
zone "openlab.com" IN {
        type master;
        file "openlab.com.zone";
        allow-transfer { 192.168.96.132; }; 
};
 
zone "96.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.96.arpa";
        allow-transfer { 192.168.96.132; };
};

主服务端操作,设置正反向解析数据配置文件

正向解析:

    [root@server ~]# cd /var/named/
     
    [root@server named]# ls
     
    [root@server named]# cp -a named.localhost openlab.com.zone
[root@server named]# vim openlab.com.zone
 
 
$TTL 1D
@       IN SOA  ns.openlab.com. admin.openlab.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.openlab.com.
 
        NS      slave.openlab.com.
 
ns      IN      A       192.168.96.142
 
www     IN      A       192.168.96.142
 
bbs     IN      A       192.168.96.142
 
ftp     IN      CNAME   www
 
slave   IN      A       192.168.96.132

反向解析:

[root@server ~]# cd /var/named/
 
[root@server named]# ls
 
[root@server named]# cp -a named.loopback 192.168.96.arpa
[root@server named]# vim /var/named/192.168.96.arpa
 
$TTL 1D 
@       IN SOA  ns.openlab.com admin.openlab.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.openlab.com.
        NS      slave.openlab.com.
142     IN      PTR     ns.openlab.com.
142     IN      PTR     www.openlab.com.
142     IN      PTR     bbs.openlab.com.
142     IN      PTR     ftp.openlab.com.
132     IN      PTR     slave.openlab.com.

主服务端重启操作
[root@server named]# systemctl restart named
从服务端操作,修改主配置文件
[root@client ~]# vim /etc/named.conf
在这里插入图片描述
从服务端操作,修改区域配置文件,填写主服务器的 IP 地址与要抓取的区域信息,注意此时的服务类型应该是 slave(从)

[root@client ~]# vim /etc/named.rfc1912.zones
 
// 添加以下内容
zone "openlab.com" IN {
        type slave;
        masters { 192.168.96.142; };
        file "slaves/openlab.com.zone";
};
 
zone "96.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.96.142; };
        file "slaves/192.168.96.arpa";
};

从服务端操作,重启服务,注意:当从服务器的 DNS 服务程序在重启后,就自动从主服务器上同步了数据配置文件,且该文件默认会放置在区域配置文件中所定义的目录位置中

[root@client ~]# cd /var/named/slaves/
 
[root@client slaves]# ls
 
[root@client slaves]# systemctl start named
 
[root@client slaves]# ls

从服务端操作,确认从服务端的网卡 DNS 地址修改为自己的 IP:192.168.48.132,使从服务器自身也能提供的 DNS 域名解析服务,在进行测试

[root@client ~]# vim /etc/resolv.conf
 
# Generated by NetworkManager
search localdomain
nameserver 192.168.96.132

测试:

①
[root@client ~]# nslookup www.openlab.com
 
Server:		192.168.96.132
Address:	192.168.96.132#53
 
Name:	www.openlab.com
Address: 192.168.96.142
 
 
②
[root@client ~]# nslookup 192.168.96.142
 
142.96.168.192.in-addr.arpa	name = ftp.openlab.com.
142.96.168.192.in-addr.arpa	name = bbs.openlab.com.
142.96.168.192.in-addr.arpa	name = ns.openlab.com.
142.96.168.192.in-addr.arpa	name = www.openlab.com.
 
 
③
[root@client ~]# dig @192.168.96.142 www.openlab.com
 
; <<>> DiG 9.16.23-RH <<>> @192.168.96.142 www.openlab.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48827
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 0fc87638dddfd1d801000000682d936b60af0867c60c2eee (good)
;; QUESTION SECTION:
;www.openlab.com.		IN	A
;; ANSWER SECTION:
www.openlab.com.	86400	IN	A	192.168.96.142
;; Query time: 0 msec
;; SERVER: 192.168.96.142#53(192.168.96.142)
;; WHEN: Wed May 21 16:48:43 CST 2025
;; MSG SIZE  rcvd: 88

在主服务端修改数据配置文件

[root@server ~]# vim /var/named/openlab.com.zone
 
$TTL 1D
@       IN SOA  openlab.com. admin.openlab.com. (
                                        1       ; serial  ; 修改,需要加1
                                        3      ; refresh  ; 修改
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.openlab.com.
 
        MX      8 mail.openlab.com. ; 添加
 
        NS      slave.openlab.com.
 
ns      IN      A       192.168.96.142
 
www     IN      A       192.168.96.142
 
bbs     IN      A       192.168.96.142
 
mail    IN      A       192.168.96.142 ; 添加
 
ftp     IN      CNAME   www
 
slave   IN      A       192.168.96.132
 
www1    IN      CNAME   www ; 添加

主从服务端重启服务

[root@server ~]# systemctl restart named

从服务端测试

①
[root@client ~]# nslookup mail.openlab.com
 
Server:		192.168.96.132
Address:	192.168.96.132#53
 
Name:	mail.openlab.com
Address: 192.168.96.142
 
 
②
[root@client ~]# nslookup www1.openlab.com
 
Server:		192.168.96.132
Address:	192.168.96.132#53
 
www1.openlab.com	canonical name = www.openlab.com.
Name:	www.openlab.com
Address: 192.168.96.142
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值