LINUX从零开始——SERVICES(系统&服务管理进阶)——Day3 [DNS服务基础、特殊解析、DNS子域授权、DNS主从架构]

一、环境的准备
1.将虚拟机A与虚拟机B两台虚拟机还原快照,开机利用root进行登录

昨日习题:
案例1:为虚拟机A 配置以下虚拟Web主机

  • 实现三个网站的部署
  • 实现客户端访问server0.example.com网页内容为 大圣归来
  • 实现客户端访问www0.example.com网页内容为 大圣又归来
  • 实现客户端访问webapp0.example.com网页内容为 大圣累了
    虚拟机A:
    [root@A ~]# firewall-cmd --set-default-zone=trusted
    [root@A ~]# setenforce 0
    [root@A ~]# yum -y install httpd
    [root@A ~]# mkdir /var/www/nsd01
    [root@A ~]# mkdir /var/www/nsd02
    [root@A ~]# mkdir /var/www/nsd03
    [root@A ~]# echo ‘大圣归来’ > /var/www/nsd01/index.html
    [root@A ~]# echo ‘大圣又归来’ > /var/www/nsd02/index.html
    [root@A ~]# echo ‘大圣累了’ > /var/www/nsd03/index.html
    [root@A ~]# vim /etc/httpd/conf.d/vhost.conf

    ServerName server0.example.com
    DocumentRoot /var/www/nsd01


    ServerName www0.example.com
    DocumentRoot /var/www/nsd02


    ServerName webapp0.example.com
    DocumentRoot /var/www/nsd03

    [root@A ~]# systemctl restart httpd

虚拟机B:测试
[root@B ~]# vim /etc/hosts
192.168.4.7 server0.example.com www0.example.com webapp0.example.com
[root@B ~]# curl server0.example.com
[root@B ~]# curl www0.example.com
[root@B ~]# curl webapp0.example.com

案例2:为虚拟机A 配置Web访问控制
在 Web 网站 http://server0.example.com 的 DocumentRoot 目录下创建一个名为 private 的子目录,要求如下:
1)在server0.example.com的DocumentRoot目录下,private的子目录里书写网页文件index.html内容为 大圣偷偷归来
2)此页面只能在本机浏览,但是从其他系统不能访问这个目录的内容

虚拟机A:
[root@A ~]# mkdir /var/www/nsd01/private
[root@A ~]# echo ‘大圣偷偷归来’ > /var/www/nsd01/private/index.html
[root@A ~]# vim /etc/httpd/conf.d/myacl.conf

Require ip 192.168.4.7

[root@A ~]# systemctl restart httpd
[root@A ~]# vim /etc/hosts
192.168.4.7 server0.example.com
[root@A ~]# curl server0.example.com/private/ #以/结尾
大圣偷偷归来

虚拟机B:
[root@B ~]# curl server0.example.com/private/ #以/结尾

403 Forbidden

Forbidden

You don't have permission to access /private/ on this server.

[root@B ~]#

案例3:为虚拟机A 使用自定Web根目录
调整 Web 站点 http://www0.example.com 的网页目录,要求如下:
1)新建目录 /webroot,作为此站点新的网页目录
2)确保站点 http://www0.example.com 仍然可访问

虚拟机A:
[root@A ~]# vim /etc/httpd/conf.d/vhost.conf

ServerName server0.example.com
DocumentRoot /var/www/nsd01


ServerName www0.example.com
DocumentRoot /webroot


ServerName webapp0.example.com
DocumentRoot /var/www/nsd03

[root@A ~]# mkdir /webroot
[root@A ~]# echo ‘wo shi webroot’ > /webroot/index.html

[root@A ~]# vim /etc/httpd/conf.d/myacl.conf

Require ip 192.168.4.7


Require all granted

[root@A ~]# systemctl restart httpd

虚拟机B:
[root@B ~]# curl www0.example.com
wo shi webroot
[root@B ~]#

案例4:为虚拟机A 部署站点
为站点 webapp0.example.com 进行配置,要求如下:
1)此虚拟主机侦听在端口8909
2)从浏览器访问 http://webapp0.example.com:8909

虚拟机A:
[root@A ~]# vim /etc/httpd/conf.d/vhost.conf

ServerName server0.example.com
DocumentRoot /var/www/nsd01


ServerName www0.example.com
DocumentRoot /webroot

Listen 8909

ServerName webapp0.example.com
DocumentRoot /var/www/nsd03

[root@A ~]# systemctl restart httpd

虚拟机B:
[root@B ~]# curl webapp0.example.com:8909
大圣累了

案例5:普通NFS共享的实现
1.在虚拟机A上配置NFS服务,只读的方式共享目录 /public
2.在虚拟机B上访问NFS共享目录
a)将虚拟机A 的 /public 挂到本地 /mnt/nfsmount
b)这些文件系统在系统启动时自动挂载

虚拟机A:
[root@A ~]# yum -y install nfs-utils
[root@A ~]# mkdir /public
[root@A ~]# touch /public/1.txt
[root@A ~]# ls /public/
[root@A ~]# vim /etc/exports
/public *(ro)
[root@A ~]# systemctl restart rpcbind #先重启
[root@A ~]# systemctl restart nfs-server #后重启

虚拟机B:
[root@B ~]# mkdir /mnt/nfsmount
[root@B ~]# vim /etc/fstab
192.168.4.7:/public /mnt/nfsmount nfs defaults,_netdev 0 0
[root@B ~]# mount -a
[root@B ~]# df -h | tail -1
192.168.4.7:/public 17G 3.5G 14G 21% /mnt/nfsmount
[root@B ~]#

###################################################################################
二 、环境准备

1.防火墙设置:
虚拟机A
[root@A ~]# firewall-cmd --set-default-zone=trusted
[root@A ~]# firewall-cmd --get-default-zone

虚拟机B
[root@B ~]# firewall-cmd --set-default-zone=trusted
[root@B ~]# firewall-cmd --get-default-zone

2.设置SELinux运行模式为宽松
虚拟机A:
[root@A ~]# getenforce
Enforcing
[root@A ~]# setenforce 0 #设置当前系统SELinux为宽松
[root@A ~]# getenforce #查看当前系统SELinux运行模式
Permissive
[root@A ~]# vim /etc/selinux/config
SELINUX=permissive

虚拟机B:操作同上

###################################################################################
三 、构建NFS服务

案例:普通NFS共享的实现
1.在虚拟机A上配置NFS服务,只读的方式共享目录 /public
2.在虚拟机B上访问NFS共享目录
a)将虚拟机A 的 /public 挂到本地 /mnt/nfsmount
b)这些文件系统在系统启动时自动挂载

虚拟机A:
1.创建共享目录
[root@A ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.54.el7.x86_64
[root@A ~]# yum -y install nfs-utils

[root@A ~]# mkdir /public
[root@A ~]# touch /public/1.txt
[root@A ~]# ls /public/

2.书写配置文件
[root@A ~]# vim /etc/exports
/public *(ro)

3.重启服务
[root@A ~]# systemctl restart rpcbind
[root@A ~]# systemctl restart nfs-server

虚拟机B:
[root@B ~]# mkdir /mnt/nfsmount
[root@B ~]# vim /etc/fstab
192.168.4.7:/public /mnt/nfsmount nfs defaults,_netdev 0 0
[root@B ~]# mount -a
[root@B ~]# df -h | tail -1

###################################################################################
四 、专为客户端挂载设计,触发挂载

•由 autofs 服务提供的“按需访问”机制
–只要访问挂载点,就会触发响应,自动挂载指定设备
–闲置超过时限(默认5分钟)后,会自动卸载

虚拟机B
1.安装软件包
[root@B ~]# yum -y install autofs
2.重启服务
[root@B ~]# systemctl restart autofs #重启服务
[root@B ~]# systemctl enable autofs #设置开启自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/autofs.service to /usr/lib/systemd/system/autofs.service.

[root@B ~]# systemctl status autofs #查看服务的状态

•主配置文件 /etc/auto.master
–监控点目录 挂载配置文件的路径
•挂载配置文件,比如 /etc/auto.misc
–触发点子目录 -挂载参数 :设备名

虚拟机B:实现在/nsd2002目录,触发挂载/dev/cdrom设备,触发挂载到/nsd2002/test
1.修改主配置文件
[root@B ~]# yum -y install autofs
[root@B ~]# mkdir /nsd2002
[root@B ~]# vim /etc/auto.master #添加配置
/nsd2002 /opt/dc.txt
监控点目录 挂载配置文件的路径
2.建立挂载配置文件
[root@B ~]# cp /etc/auto.misc /opt/dc.txt
[root@B ~]# vim /opt/dc.txt #只保留一行
test -fstype=iso9660 :/dev/cdrom
触发点子目录 -挂载参数 :设备名
3.重启服务
[root@B ~]# systemctl restart autofs
[root@B ~]# ls /nsd2002/test
[root@B ~]# df -ah

autofs和NFS进阶

案例:普通NFS共享的实现
1.在虚拟机A上配置NFS服务,只读的方式共享目录 /public
2.在虚拟机B上,以触发式挂载虚拟机A的共享目录 /public,监控目录为/myauto,挂载点为/myauto/nfs

虚拟机A:
1.创建共享目录
[root@A ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.54.el7.x86_64
[root@A ~]# yum -y install nfs-utils

[root@A ~]# mkdir /public
[root@A ~]# touch /public/1.txt
[root@A ~]# ls /public/

2.书写配置文件
[root@A ~]# vim /etc/exports
/public *(ro)

3.重启服务
[root@A ~]# systemctl restart rpcbind
[root@A ~]# systemctl restart nfs-server

虚拟机B:
[root@B ~]# mkdir /myauto
[root@B ~]# vim /etc/auto.master #添加配置
/myauto /etc/nsd.conf

[root@B ~]# cp /etc/auto.misc /etc/nsd.conf
[root@B ~]# vim /etc/nsd.conf #只保留一行内容
nfs -fstype=nfs 192.168.4.7:/public

[root@B ~]# systemctl restart autofs
[root@B ~]# ls /myauto/
[root@B ~]# ls /myauto/nfs
1.txt
[root@B ~]# df -ah

###################################################################################
五、DNS域名解析系统:将域名解析为对应IP地址

•为什么需要DNS系统
–www.baidu.com 与 119.75.217.56,哪个更好记?
–互联网中的114查号台/导航员
•DNS服务器的功能
–正向解析:根据注册的域名查找其对应的IP地址
–反向解析:根据IP地址查找对应的注册域名,不常用

DNS服务器的分类:
一级DNS服务器、二级DNS服务器、三级DNS服务器、根域名DNS服务器

域名体系结构:树型结构
完整合格域名:最后都要以点作为结尾
www.qq.com.
根域名
LINUX从零开始——SERVICES(系统&服务管理进阶)——Day3 [DNS服务基础、特殊解析、DNS子域授权、DNS主从架构]_第1张图片
•Full Qualified Domain Name(FQDN),完全合格主机名
– 站点名.域名后缀
– 站点名. … … .二级域.一级域

•常见的顶级/一级域名
–国家/地区域:.cn、.us、.kr、.hk、.tw、… …
–组织域:.com、.net、.edu、.org、.gov、.mil、… …

•BIND服务器端程序
–主要执行程序:/usr/sbin/named----》systemd----》systemctl
–系统服务:named
–默认端口:DNS协议 53
–运行时的虚拟根环境:/var/named/chroot/

•主配置文件:/etc/named.conf #设置DNS服务器负责解析的域名 tedu.cn
•地址库文件:/var/named/ #完整主机名与IP地址对应关系 www.tedu.cn —>1.1.1.1

虚拟机A:
1.安装软件包
[root@A~]# yum -y install bind-chroot bind
[root@A~]# rpm -qa bind*
bind-9.9.4-29.el7.x86_64 //域名服务包
bind-chroot-9.9.4-29.el7.x86_64 //提供虚拟根支持,牢笼政策

2.修改主配置文件
[root@A ~]# cp /etc/named.conf /etc/named.bak
[root@A ~]# vim /etc/named.conf
options {
directory “/var/named”; #指定地址库文件存放的路径
};
zone “tedu.cn” IN { #指定本机负责解析的域名
type master; #指定本机为权威主DNS服务器
file “tedu.cn.zone”; #指定地址库文件名称
};

3.建立地址库文件
注意事项:
1)保证named用户对于地址库文件有读取权限
2)所有的域名都必须以点作为结尾,如果不以点作为结尾,则默认补全本地址库文件负责的域名
[root@A ~]# cd /var/named/
[root@A named]# cp -p named.localhost tedu.cn.zone #-p保持权限不变进行复制
[root@A named]# ls -l tedu.cn.zone
[root@A named]# ls -l named.localhost
[root@A /]# vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS a #声明DNS服务器叫a
a A 192.168.4.7 #声明a的IP地址是192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
[root@A named]# systemctl restart named
[root@A named]# systemctl status named

虚拟机B:
1.指定DNS服务器位置
[root@B ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
2.测试域名解析
[root@B ~]# nslookup www.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: www.tedu.cn
Address: 1.1.1.1

虚拟机A:测试
[root@A /]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@A /]# nslookup www.tedu.cn

###################################################################################
六、多区域的DNS服务器

虚拟机A:
1.修改主配置文件
[root@A /]# vim /etc/named.conf
options {
directory “/var/named”;
};
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
zone “360.com” IN {
type master;
file “360.com.zone”;
};
2.建立地址库文件
[root@A /]# cd /var/named/
[root@A named]# cp -p named.localhost 360.com.zone
[root@A named]# vim 360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
a A 192.168.4.7
www A 3.3.3.3

[root@A named]# systemctl restart named

虚拟机B:
[root@B ~]# nslookup www.360.com
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: www.360.com
Address: 3.3.3.3

###################################################################################
七、DNS的特殊的解析记录

1.DNS的轮询
•基于DNS的站点负载均衡
–一个域名 —> 多个不同IP地址
–每个IP提供镜像服务内容
[root@A /]# vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS a
a A 192.168.4.7
www A 192.168.4.100
www A 192.168.4.150
www A 192.168.4.200
ftp A 2.2.2.2
[root@A /]# systemctl restart named

2.DNS的泛域名解析
虚拟机A:
[root@A /]# vim /var/named/tedu.cn.zone
tedu.cn. NS a
a A 192.168.4.7
www A 192.168.4.11
www A 192.168.4.12
www A 192.168.4.13
ftp A 2.2.2.2

  •            A     1.2.3.4
    

[root@A /]# systemctl restart named

虚拟机B:
[root@B ~]# nslookup wwwww.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53

Name: wwwww.tedu.cn
Address: 1.2.3.4

[root@B ~]#

3.解析记录的别名
虚拟机A:
[root@A /]# vim /var/named/tedu.cn.zone
tedu.cn. NS a
a A 192.168.4.7
www A 192.168.4.11
www A 192.168.4.12
www A 192.168.4.13
ftp A 2.2.2.2

  •            A   1.2.3.4
    

tts CNAME ftp #tts的解析结果与ftp的解析结果一致
[root@A /]# systemctl restart named

虚拟机B:
[root@B ~]# nslookup tts.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53

tts.tedu.cn canonical name = ftp.tedu.cn.
Name: ftp.tedu.cn
Address: 2.2.2.2

总结:DNS服务器资源解析记录的类型都有哪些?
NS解析记录:声明DNS服务器的解析记录
A解析记录:正向解析记录
CNAME:解析记录的别名

你可能感兴趣的:(linux)